directories since the Android.mk files will not be found in these
directories.
Prunning out these directories decreased the make parse by nearly
a minute on a cold cache and eliminated 60,000+ stats on files in
the .git and .repo directories.
If a prebuilt specifies a LOCAL_CERTIFICATE, stick it in the
PACKAGES.* collection so that the predexopt process can work on the
file (which only works if the new .apk can be signed).
For host side test packages, the name of the jar file containing the tests is
declared in the packages Android.mk. The name of the make file needs to be
passed to the description generator so that it can pick up this information.
The makefile was not passing on the parameter containing the make file name.
Change things so that when $(LOCAL_PREBUILT_STRIP_COMMENTS) is
nonempty, we copy the source file using sed to strip out all the "#
line"-style comments and blank lines, saving considerable system image
space in the case of some wifi configurations.
Bug: 2036961
The SDK build doesn't have recovery, don't try to generate a patch or
include it in the system image size calculation. Also there's a
dependency on bsdiff that was omitted.
Instead of storing the whole recovery image in system in order to
flash it on first boot, we instead use an imgdiff patch from the boot
image to create the recovery image. This is substantially smaller
since it effectively only stores the recovery binary and UI images
(the kernel and the init binary are identical to that of the boot
image).
This change modifies the OTA-building script to create and install
these patches, and changes the calculation of the system image size in
the Makefile to reflect the new scheme.
Make some changes needed to applypatch in order to store the recovery
image in the system partition as a binary patch relative to the boot
image:
- make applypatch use shared libraries, so it's smaller. It will
need to be on the main system so it can install the recovery
image. Make an applypatch_static binary for use in recovery
packages (still needed for updating cupcake devices to donut).
- output the results of patching to an in-memory buffer and write
that to the partition; there's no convenient /tmp for us to us.
(This should be basically a no-op in recovery, since /tmp is a
ramdisk anyway.)
@since tags in the code, it's pulled from the API XML files also used by
apicheck.
The code now reads the apicheck XML, and applies it's versions to the DroidDoc
class models. The models output the version to HDF, and that's picked up by
the CS templates.
The clearsilver templates will be changed to be pretty in a follow up change.
Conflicts:
tools/droiddoc/src/DroidDoc.java
Now, by default, instead of fully building everything,
we skip dexing the modules that aren't going to be included
in the current build.
This will slow down some of the incremental builds (like tests),
but it improves the regular eng build from 27.5 minutes on my
Mac Pro to 25 minutes. That's not as much of an improvement
as I had hoped for, but it's still better.
There is also a change in here that puts the java-source-list
file which is used to get around limited command line lengths
in the proper directory. Before this change, it was an
accident that the directory for that file existed!
The build servers have GNU coreutils 5.93, where stat does not output
a newline. Ubuntu hardy has GNU coreutils 6.10, where it does.
Lacking a newline messes up the summing of the sizes. Fix
get-file-size to remove the newline if present, and make the total
calculation in assert-max-file-size more robust.
Also, if the image was too big, it was not actually making the build
fail (because /bin/false was not the last thing called). Fix that so
it does.
When I moved the building of the recovery image upwards in the file, I
moved an 'endif' surrounding it but not the matching 'if'. How did
this ever work?
There are currently two errors in the way we test the size of built
images against the size of the partition on the hardware:
- the limits in BoardConfig.mk are set with the data size only, but
images contain an extra 64 bytes per 2048-byte page. This means we
think the partition is about 1/32 smaller than it really is.
- when we deliver a build via OTA, the system partition ends up with
one more file than when it's flashed via fastboot. That file is a
copy of the recovery image. In order to be able to OTA a build, we
need to make sure the system partition has enough room for all the
system files plus the recovery image as well.
For the kila system partition, these errors are roughly the same order
of magnitude -- about 2MB, one in the "safe" direction, one in the
"unsafe" direction. This change fixes both to give us a more accurate
notion of how close we are to the limit.
Make the build emit a warning (but not fail) when the size is within
32kb of the limit.
Also, include the values of the partition size limits in an info file
in the target-files package, so post-processing tools can use them
without parsing the BoardConfig.mk file.