Commit Graph

34494 Commits

Author SHA1 Message Date
Dan Austin 9978b5274c Update coverage sanitizer flags in make
Update the coverage sanitizer flags in make to use the new
flavor of coverage sanitization.

Bug: 63108942

Test: Test fuzzer runs with coverage guards.

Change-Id: I12bda1767b69d0d89557e5f8a91da50b0f137ff3
2017-06-29 08:53:02 -07:00
Howard Chen b83b205265 Add a make maco to convert string to upper case
There's already a to-lower function. Add a to-upper function to make
it complete.

Bug:36012197
Test: `make` pass, flash images from $OUT and boot device with chain
partitions

Change-Id: I39fe8c277a3cf6b87fc3c411eeab2fa5fb40007b
2017-06-29 16:18:47 +08:00
Tao Bao 9ea6a8b817 Merge "Allow packing custom radio images into target_files zip." 2017-06-28 22:03:19 +00:00
Treehugger Robot 682849976d Merge "Support replacing AVB signing keys." 2017-06-28 19:36:09 +00:00
Dimitry Ivanov cdf3927ec4 Add libdl.so to the list of system shared libs
Note that libdl is already (always) implicitly loaded
because libc.so has a dependency on it.

Also make sure that libc.so always preceding libdl.so
in dt_needed list.

Bug: http://b/62815515
Test: make
Change-Id: I94c9d676b7fa98438b452d24f6c3bbf93166c6a9
2017-06-27 16:05:13 -07:00
Tao Bao 95a95c3a5e Allow packing custom radio images into target_files zip.
Radio images are added to INSTALLED_RADIOIMAGE_TARGET, which by default
will be packed under RADIO/ in a target_files zip. This CL introduces
BOARD_PACK_RADIOIMAGES that allows additionally copying them into
IMAGES/, which will then be included into <product>-img.zip.

Bug: 62195105
Test: Define BOARD_PACK_RADIOIMAGES and `m dist`. Check the generated
      target_files zip and <product>-img.zip.
Change-Id: I3deafd2dfecd1d4dbfdfc2d002fc40ef22fb60ea
2017-06-27 13:50:12 -07:00
Tao Bao 639118ff4d Support replacing AVB signing keys.
sign_target_files_apks.py now supports signing targets using verified
boot 2.0 (aka AVB). It allows replacing AVB signing keys for both of
chained and non-chained partitions.

An example command line looks as follows.
 $ ./build/tools/releasetools/sign_target_files_apks.py \
     --avb_vbmeta_key external/avb/test/data/testkey_rsa2048.pem \
     --avb_vbmeta_algorithm SHA256_RSA2048 \
     --avb_vbmeta_extra_args \
         "--signing_helper_with_files ./signing-helper.sh" \
     --avb_system_key external/avb/test/data/testkey_rsa4096.pem \
     --avb_system_algorithm SHA256_RSA4096 \
     --avb_system_extra_args \
         "--signing_helper_with_files ./signing-helper.sh" \
     product-target_files.eng.zip signed-product-target_files.zip

To verify the signed images:
 $ unzip signed-product-target_files.zip IMAGES/\*
 $ avbtool verify_image --image IMAGES/vbmeta.img \
     --expected_chain_partition system:1:testkey_rsa4096_pub.pem \
     --key external/avb/test/data/testkey_rsa2048.pem

Bug: 38315721
Test: sign_target_files_apks.py on AVB-enabled target w/ and w/o chained
      partitions respectively. Check the signing command lines; validate
      the signed images with 'avbtool verify_image'.
Change-Id: Ia009555b16ddb6d8ba6a0858d5ca7d983bbab887
2017-06-27 10:50:46 -07:00
Treehugger Robot bf215d166b Merge "Get java config from soong" 2017-06-23 21:40:16 +00:00
Treehugger Robot 47b734db57 Merge "Build: Use ART phony packages in runtime_libart" 2017-06-23 01:47:33 +00:00
Colin Cross b12d4b7ac2 Get java config from soong
Soong will export java config variables.

Test: builds
Change-Id: If185543f8f36a30e7632946c16351d44f012bd6a
2017-06-22 17:21:05 -07:00
Andreas Gampe ae4916b0ad Build: Use ART phony packages in runtime_libart
Move definition of necessary packages for ART to art/Android.mk.
Use the phony packages defined there in runtime_libart.mk.

Bug: 62087184
Test: m
Test: Device boots
Change-Id: Iae6e5bba2184b098820783dc5e9f6b5f2a9836e9
2017-06-22 15:35:14 -07:00
Tianjie Xu 8fb65a5d63 Merge "Remove the obsolete location check for install-recovery.sh" 2017-06-22 18:12:44 +00:00
Tianjie Xu 924c1c0598 Merge "Verify the contents in install-recovery.sh" 2017-06-22 18:12:44 +00:00
Treehugger Robot f1610d82f9 Merge "Add LOCAL_OVERRIDES_MODULES" 2017-06-22 04:49:41 +00:00
Chih-hung Hsieh d79ce64555 Merge "Add OWNERS in build/make" 2017-06-22 04:27:13 +00:00
Chih-Hung Hsieh 044fc0c4a4 Add OWNERS in build/make
* Owners are selected from top CL approvals or owners.
  They will be suggested to review/approve future CLs.
* OWNERS files are recognized by the new find-owners plugin, see .md files in
  https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/

Test: build/make/tools/checkowners.py -c -v OWNERS
Change-Id: Ibe6765e5448c471ca413413e3d052507ccee4ea6
2017-06-21 16:09:56 -07:00
Treehugger Robot ccac0f861b Merge "Makefile: Add avbtool to INTERNAL_USERIMAGES_DEPS" 2017-06-21 23:06:19 +00:00
Chris Fries df0387ddab Makefile: Add avbtool to INTERNAL_USERIMAGES_DEPS
.. in order to let the system_other image use it.

Bug: 33203383 Can't build target on mac
Change-Id: Iac2faf0ebdcc933675afbec2301d5d455aa33501
2017-06-21 16:19:35 -05:00
Treehugger Robot 564ce0fa53 Merge "Add make sync target" 2017-06-21 02:42:28 +00:00
Treehugger Robot 5b91bd4ccb Merge "Support custom my_copy_pairs in package-modules.mk" 2017-06-21 02:36:14 +00:00
Treehugger Robot cd46f1012e Merge "Use make functions to convert a text to lower case" 2017-06-21 01:56:08 +00:00
Treehugger Robot 3952eef8ce Merge "LOCAL_PROPRIETARY_MODULE implies LOCAL_USE_VNDK" 2017-06-21 00:33:24 +00:00
Tianjie Xu 9c384d2ca5 Verify the contents in install-recovery.sh
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
2017-06-20 17:28:35 -07:00
Colin Cross 91a52277b0 Add make sync target
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
2017-06-20 16:57:52 -07:00
Tianjie Xu 78de9f173d Remove the obsolete location check for install-recovery.sh
The script has been moved to /system/bin since L.

Bug: 35411009
Test: Generate a exact same OTA for bullhead.
Change-Id: Iaecb86e3dabc5b659605837bb06f16d20fa80334
2017-06-20 16:52:54 -07:00
Dan Willemsen f354b178b1 Support custom my_copy_pairs in package-modules.mk
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
2017-06-20 16:00:48 -07:00
Yifan Hong 3ca68183bb LOCAL_PROPRIETARY_MODULE implies LOCAL_USE_VNDK
Test: m -j -k BOARD_VNDK_VERSION=true

Bug: 37342627

Change-Id: I6bb878eeb2a7b2cb4392fd60bc397e35ad51a6e2
Merged-In: I6bb878eeb2a7b2cb4392fd60bc397e35ad51a6e2
2017-06-20 15:42:37 -07:00
Bowgo Tsai e615afd6d0 Use make functions to convert a text to lower case
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
2017-06-20 17:44:00 +08:00
Treehugger Robot 0effed4b94 Merge "AVB: support chain partition signing" 2017-06-20 06:57:34 +00:00
Treehugger Robot 6cb7688e85 Merge "core: Move core.oat bootjar definitions into envsetup.mk" 2017-06-16 02:06:02 +00:00
Igor Murashkin 9d4639c8c2 core: Move core.oat bootjar definitions into envsetup.mk
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
2017-06-16 00:54:47 +00:00
Nicolas Geoffray 8c2c1ed667 Merge "Add a new PRODUCT variable for forcing 'speed' preopt." 2017-06-15 11:38:24 +00:00
Mariano Giardina 1e14bc3b7b Merge "Revert "core: Move core.oat bootjar definitions into core/config"" 2017-06-15 11:01:29 +00:00
Mariano Giardina 2f137ee118 Revert "core: Move core.oat bootjar definitions into core/config"
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
2017-06-15 10:14:51 +00:00
Paul Duffin 3b3bffc0d0 Merge "Add junit/textui/** to the proguard filter" 2017-06-15 09:04:08 +00:00
Nicolas Geoffray 4a0ad4ac61 Add a new PRODUCT variable for forcing 'speed' preopt.
bug: 35872915
Test: build
Change-Id: Idfea3c379a2b1dab30ee94a58ffe86d508f8522f
2017-06-15 09:52:45 +01:00
Paul Duffin 54747a7f09 Add junit/textui/** to the proguard filter
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
2017-06-15 08:42:23 +01:00
Treehugger Robot aa09aa819f Merge "Set JAVAC_WRAPPER if USE_GOMA is set." 2017-06-15 07:28:26 +00:00
Igor Murashkin 5e1aa20225 Merge "core: Move core.oat bootjar definitions into core/config" 2017-06-15 03:06:12 +00:00
Igor Murashkin 8c50798243 core: Move core.oat bootjar definitions into core/config
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
2017-06-14 10:02:09 -07:00
Paul Duffin 87b69b97f3 Merge "Added android.test.mock to PRODUCT_PACKAGES" 2017-06-14 11:06:22 +00:00
Yoshisato Yanagisawa 4f3e5685fc Set JAVAC_WRAPPER if USE_GOMA is set.
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
2017-06-14 07:57:54 +00:00
Treehugger Robot 9baf675285 Merge "Allow sign_target_files_apks.py to create zip64 signed TF.zip." 2017-06-14 05:36:51 +00:00
Treehugger Robot 6b126fb7bc Merge "Align size of vbmeta image to 4k boundary" 2017-06-14 02:01:45 +00:00
Tianjie Xu 463c25f890 Merge "Fix duplicate 'META/care_map.txt' when calling add_img_to_target_files" 2017-06-14 00:19:59 +00:00
Tao Bao 2b8f489e30 Allow sign_target_files_apks.py to create zip64 signed TF.zip.
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
2017-06-13 13:01:23 -07:00
Tianjie Xu 9ac4cb0984 Fix duplicate 'META/care_map.txt' when calling add_img_to_target_files
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
2017-06-13 11:20:29 -07:00
Dan Willemsen cb07cb1aa7 Merge "Apply ALLOW_MISSING_DEPENDENCIES to droiddoc template dir" 2017-06-13 15:18:57 +00:00
Bowgo Tsai 3e599ead66 AVB: support chain partition signing
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
2017-06-13 17:45:10 +08:00
Bowgo Tsai 7cd30041e9 Align size of vbmeta image to 4k boundary
Adding option "--padding_size 4096" when making vbmeta.img.

Bug: 38454093
Test: build vbmeta.img and check it's being padded.
Change-Id: Id3ba6bf9998755bae75ec8b272ceccf59f4b8666
2017-06-13 11:31:06 +08:00