Commit Graph

6871 Commits

Author SHA1 Message Date
Chris Gross
84b32c2ded Merge "Use BUILD_*_IMAGE flags in add_img_to_target_files." am: e08e40947b am: d169a3fcad
Original change: https://android-review.googlesource.com/c/platform/build/+/1321954

Change-Id: Id29c2ab31d3a64146d601dee437adf2773b84466
2020-06-19 23:07:13 +00:00
Chris Gross
e08e40947b Merge "Use BUILD_*_IMAGE flags in add_img_to_target_files." 2020-06-19 22:32:37 +00:00
Treehugger Robot
623bea86e1 Merge "Include image descriptor of only the first boot image in vbmeta" am: 397972fa6a am: 765d9a7e00
Original change: https://android-review.googlesource.com/c/platform/build/+/1328118

Change-Id: I7338d991ac9d6a51e29b1c1f94dd6088bb0238a4
2020-06-16 00:34:54 +00:00
Treehugger Robot
397972fa6a Merge "Include image descriptor of only the first boot image in vbmeta" 2020-06-16 00:05:28 +00:00
Tianjie Xu
31f2d57129 Merge "Fix the read on a closed zipfile" am: b5b25409b9 am: 916b0cc0bc
Original change: https://android-review.googlesource.com/c/platform/build/+/1332612

Change-Id: Ice5c9ff31052ad32fe66d3ac42c02e72bda6e315
2020-06-13 02:51:47 +00:00
Tianjie Xu
b5b25409b9 Merge "Fix the read on a closed zipfile" 2020-06-12 22:38:49 +00:00
Tianjie
eb06afb602 Fix the read on a closed zipfile
When calculating the dynamic fingerprints, we need to reopen the
input file if it's a ZipFile. Because the original object has been
closed.

Bug: 152167826
Test: generate an OTA package with zip input and overrides
Change-Id: I623da3cc5fcc91c6230fb5a6e86517ed995913b7
2020-06-11 22:51:07 -07:00
Oleg Aravin
9f2bd891e4 Merge "Attach apk_name as a suffix for the temporary files" am: 95f7a32fc6 am: cbdfb69686
Original change: https://android-review.googlesource.com/c/platform/build/+/1322367

Change-Id: I6ab246774cc4d6841a8491325d61ce88343dd232
2020-06-11 21:37:11 +00:00
Oleg Aravin
95f7a32fc6 Merge "Attach apk_name as a suffix for the temporary files" 2020-06-11 21:11:30 +00:00
J. Avila
7d9f715f29 Merge "Add LZ4 support to the release tools" am: b8d67f3722 am: d2cbd57b33
Original change: https://android-review.googlesource.com/c/platform/build/+/1329115

Change-Id: I91a65d982169c81409532561f6dae3ddb17b7398
2020-06-11 15:20:29 +00:00
J. Avila
98cd4cc7a3 Add LZ4 support to the release tools
The core android build platform has changed to add support for LZ4
compression for ramdisks, but the release tools were not. Fix this.

Bug: 156129966
Change-Id: I39680b91930d2d3cbd0cd565beb78e1ee699397e
2020-06-10 21:51:19 +00:00
Roopesh Nataraja
3e15f6edb1 Include image descriptor of only the first boot image in vbmeta
Multiple boot images can be generated based on BOARD_KERNEL_BINARIES
but vbmeta would capture the image descriptor of only the first boot
image specified in BUILT_BOOTIMAGE_TARGET.

Bug : 158213759
Test: Compile multiple boot images and check if vbmeta.img
      includes image descriptor of only the first boot image
      specified in BUILT_BOOTIMAGE_TARGET

Change-Id: Ib70f65d98546a436da82656bc5c911d437618bb5
2020-06-10 07:44:12 -07:00
Treehugger Robot
05048d976c Merge changes I53c05800,Ic218283b am: 470cfbe8d7 am: 21805afbc6
Original change: https://android-review.googlesource.com/c/platform/build/+/1317599

Change-Id: I7c7f317cca241af3f8822617d1367a5a2acb25b5
2020-06-08 16:21:45 +00:00
Jiyong Park
10e44533bc Merge changes I4d88733c,I61943476,Ibed9c96d am: c844de4241 am: 82d6dd6061
Original change: https://android-review.googlesource.com/c/platform/build/+/1317597

Change-Id: I1bb5bdf9d5dae7fe0455f517f6347d442d191440
2020-06-08 16:21:22 +00:00
Jiyong Park
fe7df0a0a7 <partition>/build.prop rules are defined using macro am: e28fa80e12 am: 236859d234
Original change: https://android-review.googlesource.com/c/platform/build/+/1317596

Change-Id: I4f05b3376ab6621787dd540f53ad851dff6194a3
2020-06-08 16:21:17 +00:00
Jiyong Park
cc49c6b8cd Leave a comment when removing a prop
post_process_prop.py doesn't simply drop a line when deleting a prop.
Instead, it makes the line as comment and leave a comment to clearly
mark that the prop was force removed. This is to aid the debugging.

Bug: 117892318
Test: m

Change-Id: I53c05800ff71d431a56dc370bcfe8bfc95c03bfc
2020-06-08 10:09:12 +09:00
Jiyong Park
35a83d1a5a remove buildinfo_common.sh
The shell script was responsible for appending some system properties
that are common to <partition>/build.prop files. The values of the
system properties were given via environment variables whose names were
slightly different from their corresponding make var names.

This change removes the script and instead write the system properties
directly in Make, thus eliminating the need to keep track of the mapping
across sysprop names, environment variable names, and make var names.

Bug: 117892318
Test: m

Change-Id: I4d88733c1afa30ea0c0c4fcfc2b349f07f7fc090
2020-06-05 10:50:15 +09:00
Jiyong Park
9ebefc640d Partial cherry-pick of ag/10260813
This change is a partial cherry-pick of ag/10260813
(Iaeefb35137de01c6ea57115d8830dd9bc30eccba) to prevent downstream merge
conflict when buildinfo_common.sh is removed by the upcoming changes.

Bug: 117892318
Test: m

Change-Id: I6194347668fd57dfb29ce1bfda16b90088483591
Merged-In: Iaeefb35137de01c6ea57115d8830dd9bc30eccba
2020-06-05 10:49:35 +09:00
Jiyong Park
e28fa80e12 <partition>/build.prop rules are defined using macro
The macro `build-properties' is defined to generate build rules to
create <partition>/build.prop.

build.prop files in all partitions except for the system partition are
now build using the macro.

system partition will use the macro in the following changes.

Bug: 117892318
Test: m

Change-Id: Ibed9c96dac4366251ec59a0b1317aa92f501c9a3
2020-06-05 10:47:34 +09:00
Chris Gross
203191b5be Use BUILD_*_IMAGE flags in add_img_to_target_files.
Modify add_img_to_target_files.py to use the BUILDING_*_IMAGE flags when
deciding whether to create and add a given image to a target files
archive.

To do this, the BUILDING_*_IMAGE flags are now dumped to misc_info.txt.

The origin of this change was to use the BUILDING_USERDATA_IMAGE and
BUILDING_CACHE_IMAGE flags in add_img_to_target_files.py so that we
could reliably turn off the generation of the userdata and cache images.
The other image flags were added for symmetry.

Bug: 130307439
Test: m -j out/target/product/bonito/misc_info.txt
Test: m -j droid dist
Change-Id: I32d5a8d6c9ebb5f329d856030084d698ee8d271d
2020-06-04 17:53:04 +00:00
Oleg Aravin
8046cb0a2c Attach apk_name as a suffix for the temporary files
With this change the name of the signed and unsigned APK will be something like 'tmpadrbpp9f/tmpvl0lf2kr/tmpknja6mca_MyApk.apk' instead of 'tmpadrbpp9f/tmpvl0lf2kr/tmpknja6mca'.

The motivation for this change is a better logging and transparency what is being signed in the underlying client.

Change-Id: I32b0e93d5859ca3fb712e426705f16d329d71f0e
2020-06-02 16:03:21 -07:00
Yo Chiang
01a66620c0 Merge "releasetools: Fix non-existent required dependency" am: 61e1cc7317 am: 5e113d40d0
Change-Id: I236286dd8ee61e0163a941e6adb1a645489296eb
2020-06-01 06:59:20 +00:00
Yo Chiang
61e1cc7317 Merge "releasetools: Fix non-existent required dependency" 2020-06-01 06:31:07 +00:00
Jiyong Park
c96b261f59 Merge changes from topics "remove_bootimage_sysprops", "sysprop" am: 6dd5383c37 am: 04799633dd
Change-Id: Iddb4cfd419dc0f68e15cb62f2545d8bc178b42ca
2020-05-29 21:52:11 +00:00
Jiyong Park
ae55638f75 Refactor post_process_props.py
The script is refactored to not parse lines everytime a prop is looked
up or updated.

Also it is now built using python_binary_host.

Bug: 117892318
Test: m

Change-Id: I1677ca5aa919c54b7b0740fdc52e1399009f9a12
2020-05-27 12:52:44 +09:00
Jiyong Park
58dd353a07 remove code for default.prop
default.prop files are gone. Remove the code in post_process_prop.py
that handles the file.

Bug: 1313599
Test: m

Change-Id: I3b4ff4adac57a406b70300d34ece7028cb52eb2d
2020-05-27 12:52:43 +09:00
Treehugger Robot
93b42b8fe3 Merge "Allow more than one '=' in avb_extra_custom_image_extra_args." am: 6d412db1b3 am: 787ee95af2
Change-Id: I08b51e5b108019f28c8c9004ddcb931acd11caf0
2020-05-25 22:36:21 +00:00
Yo Chiang
a0359ca828 releasetools: Fix non-existent required dependency
HOST module img_from_target_files has non-existent required: zip2zip
HOST module releasetools_py3_test has non-existent required: otatools
HOST module releasetools_test has non-existent required: otatools

Bug: 7456955
Test: TH presubmit
Test: atest releasetools_test # Test result doesn't change
Change-Id: I4fa4fb9c120fda5d4cb309b1e3a2660c3387eb7f
2020-05-25 17:14:51 +08:00
Hongguang Chen
883eecbc4b Allow more than one '=' in avb_extra_custom_image_extra_args.
avb_extra_custom_image_extra_args can be set to
'oem=--signing_helper_with_files=/tmp/avbsigner.sh' on signing server.
The second '=' shouldn't be splitted in this case.

BUG: 154171021
Test: Manually sign target zip files which has custom images.
  sign_target_files_apks -d certs --avb_extra_custom_image_key \
    oem=oem_rsa4096.pem --avb_extra_custom_image_algorithm \
    oem=SHA256_RSA4096 --avb_extra_custom_image_extra_args \
    oem="--signing_helper_with_files=/tmp/avbsigner.sh" \
    xxxx-target_files.zip signed.zip

Change-Id: I815d574f791734d4c6a25a9f8d827b5b4f93d7cc
2020-05-24 21:10:44 -07:00
Tianjie Xu
7790069449 Merge "Add an option to input the boot variables for OTA package generation" am: 1ca7b10456 am: 0dbde58c9b
Change-Id: I27286dd6a6eae839231bacd508d9a014b9f8a32a
2020-05-21 18:27:34 +00:00
Tianjie Xu
1ca7b10456 Merge "Add an option to input the boot variables for OTA package generation" 2020-05-21 17:58:21 +00:00
Treehugger Robot
9e55d3d282 Merge "Add options to sign the prebuilt custom images." am: 8a87dae43b am: 1c23d3ce54
Change-Id: Ife592f30393e0411cb9ca94a34409aa9f111e8ec
2020-05-21 17:10:36 +00:00
Treehugger Robot
8a87dae43b Merge "Add options to sign the prebuilt custom images." 2020-05-21 16:34:13 +00:00
Tianjie
d6867167d1 Add an option to input the boot variables for OTA package generation
The values of the ro.boot* variables are not part of the image files
and are provided (e.g. by bootloaders) at runtime. Meanwhile, their
values may affect some of the device build properties, as a different
build.prop file can be imported by init during runtime.

This cl adds an option to accepts a list of possible values for some
boot variables. The OTA generation script later use these values to
calculate the alternative runtime fingerprints of the device; and
list the device names and fingerprints in the OTA package's metadata.

The OTA metadata is verified by the OTA server or recovery to ensure
the correct OTA package is used for update. We haven't made any
restrictions on what ro.boot* variables can be used for fingerprint
override. One possible candidate can be the skus listed in
ODM_MANIFEST_SKUS.

Bug: 152167826
Test: unittests pass, generate an OTA file with the new option
Change-Id: I637dea3472354236d2fd1ef0a3306712b3283c29
2020-05-20 19:01:17 -07:00
Treehugger Robot
5b79a329f1 Merge "sign_apex.py respects hash algorithm" am: ed67178e4a am: ef5e5708a9
Change-Id: Icd7e7c1a8612e47da115b7341aec95d9ccf2201d
2020-05-21 01:11:18 +00:00
Treehugger Robot
ed67178e4a Merge "sign_apex.py respects hash algorithm" 2020-05-21 00:35:54 +00:00
Hongguang Chen
f23364d280 Add options to sign the prebuilt custom images.
The custom images are any images owned by OEMs and SoCs, oem images
mounted on /oem is an example. The oem images can be used to customize
devices for different carriers, like wallpaper, ringtones, and
carrier-specific apks. OEMs can generate multiple oem images, like
oem.img, oem-carrier1.img and oem-carrier2.img and flash different oem
images for different carriers. The oem images are only one case, OEMs
and SoCs can add more custom images and mount them to custom partitions.

This change enables custom images to be vbmeta.img chained partitions.
The following configuration in BoardConfig.mk is an exmaple. It has two
custom partitions: oem and test. They will be signed by different keys.
And they will be chained by vbmeta.img. The custom images here are
prebuilts, which can be built by `make custom_images` separately.
BOARD_AVB_<CUSTOM_PARTITION>_IMAGE_LIST should include all custom images
to apply AVB signing. And to every custom partition, one image whose
name is partition name must be added in its
BOARD_AVB_<CUSTOM_PARTITION>_IMAGE_LIST.

BOARD_CUSTOMIMAGES_PARTITION_LIST := oem test

BOARD_AVB_OEM_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_OEM_ALGORITHM := SHA256_RSA4096
BOARD_AVB_OEM_ADD_HASHTREE_FOOTER_ARGS :=
BOARD_AVB_OEM_ROLLBACK_INDEX_LOCATION := 1
BOARD_AVB_OEM_PARTITION_SIZE := 5242880
BOARD_AVB_OEM_IMAGE_LIST := \
    device/xxxx/yyyy/oem/oem.img \
    device/xxxx/yyyy/oem/oem1.img

BOARD_AVB_TEST_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
BOARD_AVB_TEST_ALGORITHM := SHA256_RSA2048
BOARD_AVB_TEST_ADD_HASHTREE_FOOTER_ARGS :=
BOARD_AVB_TEST_ROLLBACK_INDEX_LOCATION := 2
BOARD_AVB_TEST_PARTITION_SIZE := 10485760
BOARD_AVB_TEST_IMAGE_LIST := \
    device/xxxx/yyyy/test/test.img \
    device/xxxx/yyyy/test/test1.img

To resign the custom images in the target zip file, the
avb_extra_custom_image_key, avb_extra_custom_image_algorithms and
avb_extra_custom_image_extra_args options are added to the
sign_target_files_apks tool too. The following test cases list some
examples about how to use them.

BUG: 154171021
Test: 1) "atest --host releasetools_test releasetools_py3_test -c"
  2) Build images by 'make dist', sign and validate target files.
   a) Test on dist w/ chained vbmeta_system and ome custom images
   sign_target_files_apks -d certs \
     --avb_extra_custom_image_key oem=oem_rsa4096.pem \
     --avb_extra_custom_image_algorithm oem=SHA256_RSA4096 \
     xxx-target_xxx.zip signed.zip
   validate_target_files.py signed.zip
   Flash image and boot up.
   Verify the oem images and vbmeta images in OUT and target zips by
   avbtool.

   b) Test on dist w/ chained vbmeta_system and oem and test custom images
   sign_target_files_apks -d certs \
     --avb_extra_custom_image_key oem=oem_rsa4096.pem \
     --avb_extra_custom_image_algorithm oem=SHA256_RSA4096 \
     --avb_extra_custom_image_extra_args oem=--do_not_generate_fec \
     --avb_extra_custom_image_key test=test_rsa4096.pem \
     --avb_extra_custom_image_algorithm test=SHA256_RSA4096 \
     xxx-target_xxx.zip signed.zip
   validate_target_files.py signed.zip
   Verify the oem, test images and vbmeta images in OUT and target zips
   by avbtool.

   c) Test on dist w/o chained partition.
   sign_target_files_apks -d certs xxx-target_xxx.zip signed.zip
   validate_target_files.py signed.zip
   Flash image and boot up.
   Verify the vbmeta images in OUT and target zips by avbtool.

Change-Id: Ifccfee5e8909697eef6ccda0cc352fa16a9f6db6
2020-05-20 04:10:00 +00:00
TreeHugger Robot
9817fa2953 Merge "Fix the syntax in install-recovery.sh" into rvc-dev am: 581a943336
Change-Id: I00241508e40d7c3fb50d2bff6da376131d805682
2020-05-19 22:44:42 +00:00
Yifan Hong
bdb3201353 Use add_slot_suffix function in edify script
Whenever a device is retrieved from fstab, wrap it with
add_slot_suffix() if it has slotselect option.

Test: change fstab (changes boot image, which is a static partition),
      change system partition (a dynamic partition),
      generate incremental OTA with --force_non_ab and apply it on
      cuttlefish
Bug: 153581609
Change-Id: Id3f8e4425b65176baf1b0ff1ee07ab3d820a3a7f
(cherry picked from commit ae6e0d5d28)
Merged-In: Id3f8e4425b65176baf1b0ff1ee07ab3d820a3a7f
2020-05-19 15:23:27 -07:00
Yifan Hong
65afc07f9d Support forcefully generating non-AB packages.
Force generate a non-A/B update package when requested.

Bug: 154344887
Test: ota_from_target_files.py --force_non_ab ...
Test: apply it as well

Change-Id: I5e81eb161722e07ef50081b6a16685cbc9963ae2
(cherry picked from commit 7169f754cc)
Merged-In: I5e81eb161722e07ef50081b6a16685cbc9963ae2
2020-05-19 15:23:27 -07:00
Treehugger Robot
c7d65744c4 Merge "support different boot partition sizes in aosp_arm64" am: def74b4c2b am: 3bfb87b96b
Change-Id: Iff0c4a70c7a3ed43d2f96a72a0dd16c4301386f0
2020-05-19 22:02:28 +00:00
Treehugger Robot
def74b4c2b Merge "support different boot partition sizes in aosp_arm64" 2020-05-19 21:30:07 +00:00
Tianjie
e55f62c971 Fix the syntax in install-recovery.sh
We recently modify the logic in install-recovery.sh to support
non-A/B updates on VAB launched devices. And the position of the
$(getprop ro.boot.slot_suffix) is misplaced for the recovery image.
For example:
"if ! applypatch --check EMMC$(getprop ro.boot.slot_suffix):/dev/block/recovery:SHA1"
should be:
"if ! applypatch --check EMMC:/dev/block/recovery$(getprop ro.boot.slot_suffix):SHA1"

Bug: 156979431
Test: rerun add_image_to_target_file, then validate_target_files
Change-Id: Id2d45e281151a46d66b37ea8fdb7b5cb4ae72e81
2020-05-19 13:44:26 -07:00
Jiyong Park
a1887f326c sign_apex.py respects hash algorithm
When sign_apex.py re-signs an apex, the hash algorithm is extracted and
it is used when re-packaging the file.

Bug: 155771970
Test: releasetools_py3_test doesn't regress
(some tests were failed, but they failed even without this change:
test_ApexApkSigner_apkKeyNotPresent (test_apex_utils.ApexUtilsTest) ... ERROR
test_ApexApkSigner_noApkPresent (test_apex_utils.ApexUtilsTest) ... ERROR
test_ApexApkSigner_noAssetDir (test_apex_utils.ApexUtilsTest) ... ERROR
test_ApexApkSigner_signApk (test_apex_utils.ApexUtilsTest) ... ERROR)

Change-Id: I996a33e0208d3dd3a04a31b8dafb27ef995297f2
2020-05-19 23:19:59 +09:00
Treehugger Robot
e18d90b28e Merge "Update auto-gen test config template with PARAMETERIZED_STRINGS placeholder" am: 203fd77042 am: b72fa3aaf6
Change-Id: I5ec86e149d8a5ec6dacc56afce1cfae81e714f5c
2020-05-18 02:28:33 +00:00
Treehugger Robot
203fd77042 Merge "Update auto-gen test config template with PARAMETERIZED_STRINGS placeholder" 2020-05-18 01:50:49 +00:00
Tianjie
620437b2bf Exclude vendor_boot in secondary payload
The secondary payload is used by factory OTA to speed up the first
boot of the device. The payload should only contain bootloaders
images and the precompiled apps in system_other. Remove vendor_boot
to reduce the secondary payload size.

Bug: 156782745
Test: build a package with secondary payload
Change-Id: I3a9f6dda00a5aac038438065e2bc6483d71b5e95
(cherry picked from commit c385064d94)
2020-05-15 22:36:00 +00:00
Steve Muckle
903a1ca7e1 support different boot partition sizes in aosp_arm64
The different boot images in aosp_arm64 have different partition size
requirements. Add support for defining a partition size associated with
each boot image variant.

This support is limited to aosp_arm64 currently, which is built with
recovery-as-boot.

A previous version of this change did not update the boot-debug image
AVB logic with the required macro for multiple boot partition size
support. This is now required because the aosp-arm64 boot.img is
configured as a chained AVB partition.

Bug: 156036850
Bug: 155049180
Change-Id: I66b57de91042bfd56ba54a3659843d8cf7873955
2020-05-15 10:16:17 -07:00
easoncylee
9425870f73 Update auto-gen test config template with PARAMETERIZED_STRINGS
placeholder

Bug: 134509111
Test: add "test_mainline_modules: [some.apk]" to TetheringTests,
and build the modules, confirm the parameterized option is added
in the test config.

Change-Id: I0f4f837412075520153d21c9ca12cf5c3f555de7
2020-05-15 11:43:43 +08:00
Treehugger Robot
b05afb3207 Merge "Fix _ImportParser() error if property is imported from oem partition." am: f774ae9aa0 am: 16402667c4
Change-Id: I9ad800b0f5aad55eac82c802cbb6b1b5a1926245
2020-05-15 01:18:06 +00:00