Make it possible to provide a prebuilt hints file to specify different compression strategies on a file basis for all partitions using:
BOARD_EROFS_COMPRESS_HINTS := <path>/erofs-hints.txt
or separately for every partition using:
BOARD_SYSTEMIMAGE_EROFS_COMPRESS_HINTS := <path>/system-partition-erofs-hints.txt
BOARD_VENDORIMAGE_EROFS_COMPRESS_HINTS := <path>/vendor-partition-erofs-hints.txt
Hints format: Each line is defined by tokens separated by spaces in the following form:
<pcluster-in-bytes> <match-pattern>
pcluster-in-bytes can be specified as 0 which mean file will not be compressed
Bug: 231934752
Test: used dump.erofs -S system.img to verify the system image isn't compressed after specifying BOARD_SYSTEMIMAGE_EROFS_COMPRESS_HINTS := no-compress.txt, where no-compress.txt contains 0 .*
Test: used dump.erofs --nid=<inode-for-all-apk-files> vendor.img to verify apk files are not compressed (the rest of the partition content is compressed)
Test: used dump.erofs -S <all-images> to verify all images are not compressed after specifying BOARD_EROFS_COMPRESS_HINTS := <path>/no-compress.txt
Change-Id: I64054e26af5ea5781c45d2183b7796a9ad2b7927
* Use android_root or __file__ path to find
the source tree root and its sub directories.
* Use the sub directory list to clean up RBE-returned
warning lines, removing all mixed prefix before
the top sub directories.
* Change some re.match rules and order to save
unnecessary comparisons.
Test: warn.py --url=http://cs/android --separator='?l=' build.log > warnings.html
Test: warn.py --gencsv build.log > warnings.csv
Bug: 198657613
Change-Id: I78cc17d04b8ab9e12935ef04797f3272298d5267
* The index was a directory or file path.
This change adds additional entries that have
warning type prefix in the index.
* In the "Directories/Files with at least 1% warnings"
section, the list will include number of warnings for
(1) "all warnings in a directory/file"
(2) "warnings of a type in a directory/file"
(3) "warnings of a type in all directories/files"
Examples:
4273 (8.7%) frameworks/av/...
4130 (8.4%) packages/...
2427 (5.0%) [google-explicit-constructor] */...
1628 (3.3%) [cert-err34-c] */...
1099 (2.2%) [google-runtime-int] bionic/tests/math_data/...
608 (1.2%) [cert-err34-c] external/...
Bug: 231245501
Test: warn.py --url=http://cs/android --separator='?l=' build.log > warnings.html
Test: warn.py --gencsv build.log > warnings.csv
Change-Id: I13bb54c846ad514334f78c5a71e994a131a92963
The sdk_phone_armv7 product is designed to build system images, which
adds unnecessary dependencies and enables unnecessary checks (such as
verifying dexpreopt artifacts).
Bug: 205008975
Test: m sdk sdk_repo dist && diff android-sdk.zip (only build.prop diffs)
Change-Id: I940655c39a3ae58839521416abafaf461df44921
Summary:
- Create python classes for ninja vocbulary in `ninja_syntax.py`. These
classes will be serialized to a ninja file
- Create a Writer class in `ninja_writer.py`. The current API supports
adding variables,rules,build actions, etc. This can be extended in the
future (See `test_ninja_writer.py` for examples)
Future Work:
- Update the `Subninja` class once chDir is supported (aosp/2064612)
- Support a width parameter that will be used to wrap long lines of
text. This will improve readability of the generated files
Expected Use Case: Multi-tree build orchestrator
Test: python ./test_ninja_syntax.py
Test: python ./test_ninja_writer.py
Change-Id: I90c7ee69ddeb7c20c3fd4fca5a911dddbf2253bd
It might be useful to have access to the prebuilt that the Android build
used to create the pvmfw partition so add a new directory (similarly to
other partitions) containing the prebuilt (which is also the only
content of the partition). This is particularly useful in ATC, when
detecting if the prebuilt was updated by the build.
Bug: 232253742
Test: m
Change-Id: I1116d91ffb073821568bcaeed30bbb43873dcafa
The SDK no longer includes system images, so no longer needs to depend
on targets that are only relevant for the system images.
Remove all the explicit dependencies that end up depending on
"everything" but are not included in the sdk zip.
Two positive side-effects:
- fewer unused things get built (now ~32k targets, down from ~108k)
- apexes no longer get built, eliminating the risk of mismatch between
module sdk prebuilts and source-built AOSP apexes.
There are some potential risks with this CL:
- because we no longer forcefully rebuild everything, if there are bugs
in dependencies of exising files in the SDK, incremental builds may
not rebuild them.
- some files that get built into the SDK may be being built as a
side-effect of other files included in the SDK, so removing one file
may cause another to not get built. The solution to that is to add
the file not getting built to ALL_SDK_FILES.
Bug: 205008975
Test: m sdk sdk_repo dist && diff sdk.zip before/after (identical)
Change-Id: I97284864f66aa88556fbe16864f45b04be97634e
signapk currently accepts a Provider class that can be instantiated
and inserted before the signing. This commit adds support to specify
a -providerArg parameter that can be used to configure the Provider.
Prior to JDK 9 a Provider would accept a providerArg in a constructor
accepting a String; in JDK 9+ a Provider should first be instantiated
with the zero-arg constructor, then the configure method should be
called with the providerArg.
Bug: 142334653
Bug: 190974913
Fixes: 232134730
Test: Manually verified new Provider can be inserted with pre- and
post-JDK 9 behavior.
Change-Id: I96f027640c59d3357e8dcf656626d1601bfef861
Ensure annotated fields are kept when treeshaking-related optimizations
are enabled. Note that this still allows field removal if tree shaking
reveals no references, but will avoid removal if there are references
that might impact downstream usage, e.g., weak references.
Bug: 227455445
Test: atest InternalAnnotationsTest
Change-Id: I59c6277c43b14c5de8154fa1eefad01f0702e413
There are no more BUILD_HOST_DALVIK_* modules, remove the host dalvik
support. The equivalent support in Soong just copies the device dex
file to the host dalvik location.
Test: m checkbuild
Change-Id: I4bcf916518317b28d3217994b2fe9ee95d7f50d6
Because bpmodify is safe in multi-process env.
Bug: 190577319
Bug: 229413853
Test: aidl-freeze-api
Change-Id: Ie47afc25e2259bbcbbff50f98fa9d36887558d27
Downgrade OTA was broken because generic_ramdisk was removed from boot
partition in android T. Neither does O6 have init_boot. O6 also doesn't
include generic ramdisk in vendor boot, so no way for otatools to locate
contents of generic ramdisk. As a hack, omit boot partition timestamp if
we can't find ramdisk.
Test: generate T->S downgrade OTA for O6
Bug: 231656318
Change-Id: I9f5359462332aadadc324348873a3a4b2b126068
The adb module has been moved from system/core to packages/modules/adb.
Update the path to the adb tab completion script accordingly.
Also teach envsetup.sh to complain if completion files are not found.
Test: manual: adb tab completion works
Test: source build/envsetup.sh && declare -F _adb
Change-Id: I7d6fda3813b95e64de7b1953675f66659e750c31
This is a temporary workaround that should be replaced with build logic
that would propagate optionality via generated exported-sdk-libs files.
Bug: 214255490
Test: lunch aosp_cf_x86_64_phone-userdebug && m && launch_cvd \
&& adb wait-for-device && adb root \
&& adb logcat | grep -E 'ClassLoaderContext [a-z ]+ mismatch'
# empty output, no errors at boot
Change-Id: I05e22e5f72a9f936b6e0010240f5e71849a9b2b0
Only enable zucchini if configuration file zucchini_config.txt exits
in target files and version in source and target is the same.
Without this patch zucchini would be enabled if configuration file
was missing from both target files.
Bug: 231204699
Test: Run ota package generation with zucchini_config.txt missing from
both source and target zips. Confirm that zucchini is disabled.
Change-Id: Ia34998fd911d5860b38fe49fa5a88056a22d661e