The makefile implementation of dexpreopt is lagging behind the Soong
implementation in the way it handles transitive dependencies: Soong
propagates class loader context through transitive dependencies, such
as static libraries, but makefiles only propagate that information
through uses-library dependencies.
This discrepancy is caused by the difficulty of handling class loader
contexts in makefies: since there is no topological order in handling
module and its dependencies, the information is propagated via file
level dependencies on dexpreopt.configs and merged into the module's
dexpreopt.config with a python script.
To handle transitive dependencies correctly, it is necessary to
generate dexpreopt.config files for all libraries, not just those that
enable dexpreopt.
This change only prepares dex_preopt_odex_install.mk for that and
updates if for corresponding changes in manifest_check.py. It does not
enable generation of dexpreopt.config files for non uses-library
dependencies (e.g. static libraries). This will be done as a follow-up.
Changes:
- renamed option for dependency dexpreopt.config files
- added option for self dexpreopt.config
- moved variable definitions so that they can be used both by
uses-library check and dexpreopt command
- add 'Optional' field in makefile-generated dexpreopt.config to
align it on par with Soong-generated configs
- modify dex_preopt_config_merger.py to add uses-libraries propagated
via dexpreopt.config 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'
# a few unrelated errors caused by missing optional uses-libraries
# android.net.ipsec.ike
# androidx.window.extensions
# androidx.window.sidecar
# that were present before this patch
Change-Id: I6522319a8415f22f90fc96059a34675fb830e5cc
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
This is what mk2rbc assumes, and previously that
assumption was incorrect when passing a list to
mkstrip.
Bug: 226974242
Test: Presubmits
Change-Id: I7b1596662df7c966404aab2a99d7c2e53d917bd6
Stdout gets redirected to a makefile that is
ingested by the rest of the build system.
The trace outputs were being mixed up with
the rest of the output, making them hard to
read. In addition, some of the trace output
wasn't commented out, so it was defining
make rules.
Fixes: 230495885
Test: Manually
Change-Id: I02f9038cd89598fc1c1561bf4bf2997ac090d9e9
The system image itself is being removed from the sdk zip,
so remove the NOTICE file for it at the same time.
Bug: 205008975
Test: m sdk sdk_repo dist
Change-Id: Ib75b3e5919cd203e58e03efc1cb0a378283b0c34
When the freeze adds new libraries to the VNDK, we also need to
update the VNDK script.
Bug: 190577319
Test: run script on internal branch
Change-Id: I6f0ab177df5027ced0c4e198bb8a908da088eb85
Update PLATFORM_VERSION to UP1A. The codename is now UpsideDownCake.
Bug: 219519679
Test: m checkbuild
Change-Id: I61db64b279e4e64c9be33095bf98b3bbdb0e19d8
Merged-In: I61db64b279e4e64c9be33095bf98b3bbdb0e19d8
(cherry picked from commit 29919e3b66)
Propagate the new D8/R8 JVM flags vars that were formerly combined in
DEX_FLAGS.
Bug: 205303544
Test: time m
Change-Id: Ifc6051cd9422b3f5c52322833d9a7f5e8263f857
Even though build_image uses logger but there was no way to configure it
and even -v (verbose) didn't work.
common.ParseOptions() parses common arguments (e.g. -v -h --logfile).
Bug: n/a
Test: m
Test: build_image -v ... should print logs
Change-Id: I45a61ada9c6a5a616f05d3214e185d08b0f1c152
Adding members of the RelPgM team to fast track monthly Security SPL update approval
Bug: 219813826
Change-Id: I038e0c7aea6d1aefe5b847978838952fa653d11b
add_img_to_target_files.py will re-make image and build a new
signed vbmeta.img with new images in target-file.
We need to add vendor_kernel_boot into AVB signing list and make it
support that image.
Test: make dist -j110 and check vbmeta.img
Bug: 214409109
Signed-off-by: Lucas Wei <lucaswei@google.com>
Change-Id: Id07433f3dc33f95e2edd49de890f1e098cb9ef31
Signing tool assumes GSI targets has boot.img and get error without
these settings.
Bug: 229814765
Change-Id: I1e8e7f6375e396e1c2feb858b97e7d27dc5a2dec
To put in CI. At the end of every Android release, we need
to do 100,000 things to get the release ready. The process
to finalize the release for AIDL interfaces is automated now,
so we're adding a generic script. The goal is:
1. gradually add more pieces of the finalization process
which can be automated (VNDK, SDK, etc...)
2. when problems happen, we can fix them in real time in CI
3. once the entire release process is in CI, we can optimize
it, and we can require that new requirements on the
Android release process come with a script to satisfy them.
Until then, this script will be used to test the automated parts
of the release process in CI.
Bug: 190577319
Bug: 228979367
Test: ./build/make/finalize_branch_for_release.sh (in the T release branch)
Change-Id: Ie9ff42dd4c6e86d395bde3f14788029e5bde5fb2