Check the SHA1 of recovery.img and boot.img embedded in the
install-recovery.sh.
Bug: 35411009
Test: validation script detects mismatch for both full recovery and
recovery-from-boot.
Change-Id: I5f07a869d9fa17fad26a22ef9ca3ecb06b1b28e3
make sync will build everything necessary to adb sync system
and vendor, without wasting time rebuilding system.img and
vendor.img.
Test: m -j sync
Change-Id: I91c0012eed6d58a338393cc375056a30e2a24b09
The script has been moved to /system/bin since L.
Bug: 35411009
Test: Generate a exact same OTA for bullhead.
Change-Id: Iaecb86e3dabc5b659605837bb06f16d20fa80334
To support extra files in package-modules.mk, allow the user to set
my_copy_pairs to a list of src:dest pairs that will be copied into the
zip file.
Test: build-aosp_arm.ninja is identical before/after
Test: codesearch says that these variables aren't otherwise used
Test: set my_copy_pairs, ensure that they exist in the zip.
Change-Id: Ia80cd136db8ad37a71010baf0552621b281c8bc3
We cannot cache the result of ($shell ...) and we have to run these on
every build even if we don't have to re-read the makefiles. Replace it
with make functions $(substr $(substr ... )).
Bug: 38399657
Test: `make` pass, flash images from $OUT and boot device with chain partitions
Change-Id: I6d4ff8e487931ba25008a2a881401a8951d4049e
TARGET_CORE_JARS and HOST_CORE_JARS define the minimal
bootclasspath jars necessary to run with dalvikvm/art.
Also refactor PRODUCT_BOOT_JARS in core-tiny.mk and core-minimal.mk
to reuse TARGET_CORE_JARS.
The above variables can be used from scripts with get_build_var
from envsetup.sh
$> get_build_var TARGET_CORE_JARS
<prints list of core jars>
(These changes are required to figure out what --bootclasspath_entry
to pass to desugar).
Bug: 36902714
Test: make -j32 build-art-host build-art-target
Test: lunch aosp_angler-userdebug && make -j32
Test: make -j32 PRODUCT-sdk_google_aw_x86-sdk
Merged-In: If12569719343bfbba20c1cda9a5302ab541dbfc6
Change-Id: If12569719343bfbba20c1cda9a5302ab541dbfc6
This reverts commit 8c50798243.
Possible culprit of breakage in git_master sdk_google_aw_x86:
FAILED: out/target/product/generic_x86/dex_bootjars/system/framework/x86/boot.art
ex2oatd E 06-15 03:56:00 47990 47990 runtime.cc:1761] Failed to return pre-allocated NoClassDefFoundError
dex2oatd F 06-15 03:56:00 47990 47990 thread.cc:3591] Check failed: new_exception != nullptr
Testing if Treehugger passes with the rollback before submitting
https://android-build.googleplex.com/builds/submitted/4101897/sdk_google_aw_x86-sdk/latest/view/logs/build_error.log
Change-Id: Iceac31e775eaf3cd5fd9b3d2a17d3af200e35b27
Fixes build breakage caused by having duplicate versions of
a class in the application and in the API. This workaround will
be removed once junit classes have been removed from the API.
Bug: 30188076
Test: make Browser2 ANDROID_FORCE_JACK_ENABLED=disabled
Change-Id: I9a9031d3ef6d82f35413b229d588a605f9ed39dc
TARGET_CORE_JARS and HOST_CORE_JARS define the minimal
bootclasspath jars necessary to run with dalvikvm/art.
Also refactor PRODUCT_BOOT_JARS to reuse TARGET_CORE_JARS.
(These changes are required to figure out what --bootclasspath_entry
to pass to desugar).
Bug: 36902714
Test: make -j32 && make -j32 build-art-host build-art-target
Change-Id: I620e28be41047a1d501d7f144fe415ee4a0af36f
Now, people can also use goma for building javac. Let me make it by
default.
Test: USE_GOMA=true m -j4
Bug: 62334576
Change-Id: I941ce42dc0f9cbd0dcc00e6fd19368c3af11695f
We should only disallow zip64 for the image and OTA zips (because we
don't have zip64 support in libziparchive yet). But target_files zips
are fine to use zip64 with host tools (and we already do that in
add_img_to_target_files.py).
This CL also sets the default compression method to DEFLATED when
creating the signed TF.zip.
Test: sign_target_files.apks.py signing a large TF.zip passes.
Change-Id: I8043739860604134fa1166e920c95c28797bbcc1
In case the system/vendor image is updated for an A/B target file, we'll
delay the write of META/care_map.txt. Specifically, we'll run "zip -d"
to remove the old entry and then zip in the new one from tmp dir.
Bug: 62345693
Test: Run add_img_to_target_files.py on sailfish target files, and
care_map.txt is updated.
Change-Id: Id2f9997aac50c0740e6944d0d0d43d98f5fc6c29
Current build system will include AVB metadata from each partition and
store them into /vbmeta partiton when BOARD_AVB_ENABLE is set, which makes
each partition tightly-coupled.
Add the support for 'chain partition':
- The vbmeta of each partition is stored on the same partition itself.
- The public key used to verify each partition is stored in /vbmeta.
For example, the following build variables are required to enable chain
partition for system partition:
- BOARD_AVB_SYSTEM_KEY_PATH := path/to/system_private_key
- BOARD_AVB_SYSTEM_ALGORITHM := SHA512_RSA8192
- BOARD_AVB_SYSTEM_ROLLBACK_INDEX := 1
- BOARD_AVB_SYSTEM_ROLLBACK_INDEX_LOCATION := 2
The corresponding settings will be added into META/misc_info.txt for
build_image.py and/or add_img_to_target_files.py:
- avb_system_key_path=path/to/system_private_key
- avb_system_algorithm=SHA512_RSA8192
- avb_system_add_hashtree_footer_args=--rollback_index 1
- avb_system_rollback_index_location=2
To enable chain partition for other partitions, just replace SYSTEM with
BOOT, VENDOR and/or DTBO in the build variables.
Also switch from `avbtool make_vbmeta_image --setup_rootfs_from_kernel system.img ...`
to `avbtool add_hashtree_footer --image system.img --setup_as_rootfs_from_kernel...`
when BOARD_BUILD_SYSTEM_ROOT_IMAGE is true. This works for both chained
and no-chained:
- chained: `avbtool add_hashtree_footer --setup_as_rootfs_from_kernel` will
add dm-verity kernel cmdline descriptor to system.img
- no-chained: `avbtool make_vbmeta_image --include_descriptors_from_image
system.img` will include the kernel cmdline descriptor from system.img into
vbmeta.img
Bug: 38399657
Test: `make` pass, flash images from $OUT and boot device without chain partitions
Test: `make` pass, flash images from $OUT and boot device with chain partitions
Test: `make dist` pass, flash images from TF.zip and boot device without chain partitions
Test: `make dist` pass, flash images from TF.zip and boot device with chain partitions
Test: follow the same steps in
https://android-review.googlesource.com/#/c/407572/
Change-Id: I344f79290743d7d47b5e7441b3a21df812a69099
Adding option "--padding_size 4096" when making vbmeta.img.
Bug: 38454093
Test: build vbmeta.img and check it's being padded.
Change-Id: Id3ba6bf9998755bae75ec8b272ceccf59f4b8666
Some of our minimal branches don't have the necessary droiddoc
templates, so don't cause a FindEmulator warning when the template dir
is missing and ALLOW_MISSING_DEPENDENCIES is set. The warnings will soon
be errors.
When the template directory is missing, ensure that the command doesn't
succeed by adding the directory into the dependency list. Passing a
missing directory doesn't cause an error otherwise, it just wouldn't use
the template.
Test: build-aosp_arm64.ninja is identical before and after this change
Test: Move away build/tools/droiddoc/templates-sdk; m -j libcore-docs
Change-Id: I122f3916b6ab348a5a98dcf2520992eda3655e26
Adds android.test.mock.jar to the /system/framework
directory. That will allow it to be dynamically included
with a uses-library manifest entry.
Bug: 30188076
Test: flash and check contents of /system/framework
Change-Id: I3ea0e558276176edd21e24c8337980c5c02a652e
Currently we're writing META/misc_info.txt to the new TF.zip during
ReplaceVerityPrivateKey(). We should delay that until we have replaced
everything in need. Otherwise we won't be able to replace/overwrite
that zip entry (unless `zip -d` first).
This CL also cleans up the return value of ReplaceVerityPublicKey() and
ReplaceVerityKeyId(), since the caller no longer needs the values.
Test: sign_target_files_apks.py and check the generated signed TF.zip.
Change-Id: I9fbd7182247728281519e5e3971557f6b018ad65
Bug: 62252466
Test: Re-generate an incremental OTA that goes from the fingerprint to
thumbprint, and check the updater-script.
Change-Id: I6e2cbf68cbd22fbcf0d200fc3fdc8a33da510a53
board_avb_algorithm and board_avb_key_path are overlapping with
avb_signing_args. In core/Makefile, only avb_signing_args (i.e.
INTERNAL_AVB_SIGNING_ARGS) will be used in the AVB-signing command. It
covers the contents in board_avb_{algorithm,key_path}. We should do the
same thing in tools/releasetools to avoid potential inconsistency.
This CL cleans up the logic in tools/releasetools, by always using
avb_signing_args. This also allows easier signing key replacement (so we
can replace the key/algorithm/signer in 'avb_signing_args').
board_avb_system_add_hashtree_footer_args is unused in releasetools
script, and the same information has been covered by
system_avb_add_hashtree_footer_args. This CL removes this arg as well.
Test: `m dist`. Then a) check the removed three args no longer exist in
META/misc_info.txt; b) check that rebuilding images with
add_img_to_target_files.py uses the same parameters.
Change-Id: I7db890b5c942de5b6868d8d1ebf937586d4729c0
ALLOW_MISSING_DEPENDENCIES was being set up before TARGET_BUILD_PDK, so
PDK builds were not triggering ALLOW_MISSING_DEPENDENCIES.
Bug: 62086238
Test: m -j nothing (check out/soong/soong.variables for AllowMissingDependencies)
Test: PDK_FUSION_PLATFORM_ZIP=test.zip m -j nothing (check AllowMissingDependencies)
Change-Id: I70919fbc7e397e55356cb467c6218cf6e7279c6c