Commit Graph

34527 Commits

Author SHA1 Message Date
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
Dan Willemsen 6402873d49 Apply ALLOW_MISSING_DEPENDENCIES to droiddoc template dir
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
2017-06-12 19:31:50 -07:00
Paul Duffin c45b7e3d98 Added android.test.mock to PRODUCT_PACKAGES
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
2017-06-09 13:34:13 +01:00
Treehugger Robot d6e8002734 Merge "Delay the write-back of misc_info in sign_target_files_apks.py." 2017-06-08 22:24:53 +00:00
Dan Willemsen 25a4c9481b Merge "Add mising AAPT2 dependency" 2017-06-08 16:10:05 +00:00
Dan Willemsen c401a62d81 Add mising AAPT2 dependency
Bug: 33381544
Test: m clean; mma -j with a prebuilt aar using aapt2
Change-Id: Ie41def84aa35f3774abd6d713fb4a75d63a88876
2017-06-08 00:14:32 -07:00
Treehugger Robot 61ddffc6af Merge "Find target keywords in the first 100 lines." 2017-06-08 01:40:59 +00:00
Chih-Hung Hsieh 655c542dc8 Find target keywords in the first 100 lines.
Bug: 62416199
Test: warn.py build.log
Change-Id: I8c5ef310758fdd44519aeb1efe2f0bd92fe1ac87
2017-06-07 23:17:13 +00:00
Treehugger Robot 288a675fd9 Merge changes Ifbeed546,Ia283252d,I28c85736
* changes:
  More aapt2 aar prebuilt fixes
  Use framework resources for prebuilt aars with aapt2
  Don't attempt to write to / for aar prebuilts
2017-06-07 23:00:24 +00:00
Tao Bao 46a5999a02 Delay the write-back of misc_info in sign_target_files_apks.py.
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
2017-06-07 15:13:50 -07:00
Treehugger Robot 8340ae35a7 Merge "Fix ALLOW_MISSING_DEPENDENCIES in PDK builds" 2017-06-07 01:34:02 +00:00
Yi Kong 1923ed7f41 Merge "Switch to clang-4053586" 2017-06-06 21:09:43 +00:00
Treehugger Robot 9718140570 Merge "Fix the broken script in AssertFingerprintOrThumbprint." 2017-06-05 22:33:05 +00:00
Treehugger Robot 401b1d2509 Merge "Remove three board_avb_* args from META/misc_info.txt." 2017-06-05 20:01:05 +00:00
Tao Bao d2d01e519e Fix the broken script in AssertFingerprintOrThumbprint.
Bug: 62252466
Test: Re-generate an incremental OTA that goes from the fingerprint to
      thumbprint, and check the updater-script.
Change-Id: I6e2cbf68cbd22fbcf0d200fc3fdc8a33da510a53
2017-06-05 12:27:52 -07:00
Tao Bao 3ebfddeabe Remove three board_avb_* args from META/misc_info.txt.
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
2017-06-05 10:33:52 -07:00
Yi Kong dd65f96c3d Switch to clang-4053586
Bug: 37423073
Test: Build on multiple devices
Change-Id: Ic1a5f515db66275ee96fb6a614ffbb719bb91859
2017-06-02 22:13:01 -07:00
Dan Willemsen ccc48163ea Fix ALLOW_MISSING_DEPENDENCIES in PDK builds
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
2017-06-02 15:25:20 -07:00