Commit Graph

21593 Commits

Author SHA1 Message Date
Nicolas Geoffray 2ca0e49f61 Remove support for stripping dex.
Stripping is incompatible with ART module updatability.

Bug: 65154345
Bug: 138851227

Test: build and observe no change in output (stripping is not used by
default).

Change-Id: Ic2d9738ef393814c3af3cad116071f7b5938aa84
2019-10-21 09:36:45 +01:00
Treehugger Robot 46cfab96d8 Merge "Fix odm output directory for devices w/o vendor partition" 2019-10-11 10:46:43 +00:00
Xin Li 51a7d20229 Merge "DO NOT MERGE - Merge QP1A.191005.007 into master" 2019-10-11 02:56:40 +00:00
Xin Li 66ec993fe5 DO NOT MERGE - Merge QP1A.191005.007 into master
Bug: 142297020
Merged-In: I063f0430347d9f1e6ea5a8133204585833ed5ddc
Change-Id: I6fe9ad3f71b30ba7c1cf9d6941450809cfc66909
2019-10-10 22:54:06 +00:00
cfig 1aeef725a7 AVB: decouple vbmeta.img from recovery.img for non-A/B devices
For following cases:
Case 1: A/B devices: no change
Case 2: non-A/B devices, with unsigned recovery image:
    not allowed anymore by mandating BOARD_AVB_RECOVERY_KEY_PATH
Case 3: non-A/B devices, with signed recovery image:
    vbmeta.img should not include ChainPartitionDescriptor of recovery.img,
    otherwise device can not even boot into normal mode if recovery partition
    is damaged

This CL will cause a build break if BOARD_AVB_RECOVERY_KEY_PATH
is not set for non-A/B targets with recovery.img
The following is an example to fix the build break by specifying
AVB signing configs for the recovery.img.

BOARD_AVB_RECOVERY_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA2048
BOARD_AVB_RECOVERY_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 2

Also note that libavb in bootloader needs an update to include this
commit Iaa886037edb18c2ff6c60fa2a7f883ab7303ba1a, to support verifying
recovery.img independently (not through vbmeta.img).

Bug: 130351427
Test (Case 3):
  normal   mode: avb_slot_verify(flags=AVB_SLOT_VERIFY_FLAGS_NONE)
  recovery mode: avb_slot_verify(flags=AVB_SLOT_VERIFY_FLAGS_NO_VBMETA_PARTITION)
Test: PYTHONPATH=build/make/tools/releasetools \
    python -m unittest test_validate_target_files
Test: Use a lunch'd target. `atest --host releasetools_test releasetools_py3_test`
Test: validate_target_files.py with Case-3 target files
Change-Id: I2a73252b385fa463b4abd444923a8acc473df0b4
2019-10-10 14:28:34 +00:00
dianlujitao 339ef4cf3f Fix odm output directory for devices w/o vendor partition
Change-Id: Iba6c169630ea6bf61b9057a9994e5eb824915304
2019-10-10 09:55:09 +08:00
Treehugger Robot 818df7b0d0 Merge "Adding boot-test-harness.img" 2019-10-09 23:49:46 +00:00
Tao Bao cbd6d498d2 Remove the workaround that forces rebuilding recovery patch.
The issue has been addressed on releasetools script side, by specifying
UUID and AVB salt to get reproducible images [1].

[1] https://android-review.googlesource.com/c/platform/build/+/1135332

Fixes: 134525174
Test: `m dist` with a non-A/B target.
      `validate_target_files out/dist/target_files.zip` passes.
Change-Id: Ida6750291706036c9b0c192d8abcde6d65155287
2019-10-08 22:23:37 +00:00
Bowgo Tsai 5c40c7166f Adding boot-test-harness.img
In commit I30137c3caef91805d9143d404e5e4d06c0fccc30, we added
a boot-debug.img to allow adb root when using an user build GSI image.

However, to run automated tests, it requires additional properties,
which are not needed for GSI compliance:
    ro.audio.silent=1
    ro.test_harness=1

This CL adds an additional boot-test-harness.img for automated tests,
and keeps the original boot-debug.img for GSI compliance.

Note: boot-test-harness.img won't be built by default, it needs
      explicit `make bootimage_test_harness`.

Bug: 140036184
Test: `m bootimage_test_harness`, flashes boot-test-harness.img and checks
      adb root works and test harness props are set.
Test: `m bootimage_test_harness dist -j32`, checks both
      boot-test-harness.img and ramdisk-test-harness.img are under ./out/dist/.
Test: `system/tools/mkbootimg/unpack_bootimg.py --boot_img $OUT/boot-test-harness.img --out ramdisk-test-harness`,
      checks the extracted out/ramdisk is as expected
Test: Run `gunzip -c ramdisk | cpio -idm` for the ramdisk extracted from
      $OUT/boot-test-harness.img and $OUT/boot-debug.img, respectively.
      Then compare the root dirs of both, e.g.,
      `diff -rq --no-dereference ./ramdisk-test-harness ./ramdisk-debug`
Test: `m ramdisk_test_harness-nodeps` and `m bootimage_test_harness-nodeps`
Change-Id: Iadea0b5c933c3b7fa10dcf3d9e85596916b3333d
2019-10-08 10:22:13 +00:00
Treehugger Robot 4dc0c25643 Merge "Check if installable before installing unstripped" 2019-10-07 23:56:05 +00:00
Tao Bao e3c95f71e7 Merge "Enforce the consistency between AB_OTA_UPDATER and AB_OTA_PARTITIONS." 2019-10-07 19:06:46 +00:00
Jooyung Han 66bd7385d2 Check if installable before installing unstripped
When LOCAL_UNINSTALLABLE_MODULE is true, the module is not installed.
But its unstripped output is installed to the path based on
my_module_path which is not set for it is not installable. Moreover,
my_module_path is not reset after use.

As a result, when LOCAL_UNINSTALLABLE_MODULE is true, the path for
unstripped output is unexpected.

The installation is guarded by LOCAL_UNINSTALLABLE_MODULE now,
which was LOCAL_VNDK_DEPEND_ON_CORE_VARIANT.

Test: m
Change-Id: If18cf76118e058a9e0701a8d66f7ff0f534e5881
2019-10-07 22:33:47 +09:00
Roland Levillain 81681abfef Merge "Introduce build variable `OVERRIDE_TARGET_FLATTEN_APEX`." 2019-10-07 10:27:41 +00:00
Bill Peckham 959b5ebbf8 Merge "Moving recovery resources from /system to /vendor" 2019-10-05 03:14:12 +00:00
Roland Levillain b3a503df7f Introduce build variable `OVERRIDE_TARGET_FLATTEN_APEX`.
When `OVERRIDE_TARGET_FLATTEN_APEX` is defined (e.g. set in the
environment), `TARGET_FLATTEN_APEX` is forcibly assigned its value.

This is useful to enable/disable APEX flattening from the command
line (thus ignoring the product's default configuration), for testing
purposes.

Note: Previously it was possible to set `TARGET_FLATTEN_APEX` directly
and have the same effect, but recent changes in the build
configuration now prevent that option.

Test: Check that:
        export OVERRIDE_TARGET_FLATTEN_APEX=true \
          && . ./build/envsetup.sh \
          && lunch aosp_walleye-userdebug \
          && export OVERRIDE_TARGET_FLATTEN_APEX=true \
          && build/soong/soong_ui.bash --dumpvar-mode TARGET_FLATTEN_APEX
      returns:
        true
Bug: 121117762

Change-Id: Ib9ccae38430340de38e4758b4f55df2c65ea60d5
2019-10-04 18:35:49 +01:00
Colin Cross a63ce3af4c Merge "Use -nostdlib++ instead of -nodefaultlibs" 2019-10-04 03:26:11 +00:00
Bill Peckham e868aec14b Moving recovery resources from /system to /vendor
This change is part of a topic that moves the recovery resources from the
system partition to the vendor partition, if it exists, or the vendor directory
on the system partition otherwise. The recovery resources are moving from the
system image to the vendor partition so that a single system image may be used
with either an A/B or a non-A/B vendor image. The topic removes a delta in the
system image that prevented such reuse in the past.

The recovery resources that are moving are involved with updating the recovery
partition after an update. In a non-A/B configuration, the system boots from
the recovery partition, updates the other partitions (system, vendor, etc.)
Then, the next time the system boots normally, a script updates the recovery
partition (if necessary). This script, the executables it invokes, and the data
files that it uses were previously on the system partition. The resources that
are moving include the following.

* install-recovery.sh
* applypatch
* recovery-resource.dat (if present)
* recovery-from-boot.p (if present)

This change includes the platform build system and release tools changes to
move the recovery resources from system to vendor (or /system/vendor). The
release tools need to know where to generate the recovery patch, and they
discover this from misc_info.txt variable board_uses_vendorimage, which the
platform build system generates.

We remove applypatch from PRODUCT_PACKAGES, but it is added back as a required
module in target/product/base_vendor.mk.

Several release tools rely on the misc_info.txt board_uses_vendorimage variable
to know how to generate and detect the recovery patch.

This change partially removes the --rebuild_recovery flag from the
merge_target_files.py script. The flag will be fully removed in a follow-on
change.

Bug: 68319577
Test: Ensure that recovery partition is updated correctly.
Change-Id: Ia4045bd67ffb3d899efa8d20dab4c4299b87ee5f
2019-10-04 00:04:34 +00:00
Colin Cross 84783a776e Use -nostdlib++ instead of -nodefaultlibs
Host builds using libc++ used -nodefaultlibs to turn off the default
C++ runtime, and then added back all the other necessary libraries.
Clang supports -nostdlib++ since https://reviews.llvm.org/D47115
that removes the C++ runtime without affecting the other default
libraries.  Use -nostdlib++, and remove the lists of default
libraries.

Test: m checkbuild
Change-Id: Ib8b761534f64fd7f881e14598e514783678e0b35
2019-10-03 16:04:52 -07:00
Elliott Hughes bda45088a2 Merge "Remove ro.bionic.ld.warning." 2019-10-03 20:10:50 +00:00
Logan Chien 455d7e545a Merge "Always check ELF files for `check-elf-files`" 2019-10-03 15:51:09 +00:00
Elliott Hughes 787ac2ed38 Remove ro.bionic.ld.warning.
Bug: http://b/141754375
Test: treehugger
Change-Id: I07c0d5424dde16e85bcd6d5639bc594ee8582b20
2019-10-02 11:40:59 -07:00
Tao Bao a835f38f0b Enforce the consistency between AB_OTA_UPDATER and AB_OTA_PARTITIONS.
They are designed to be used as a pair -- we should create separate
flags when there's a need.

Fixes: 130433003
Test: TreeHugger
Test: Define only one of them. `m dist` fails.
Change-Id: Ied57bd67fbed59b160c407dbb4c0d624581c58f7
2019-10-02 05:53:31 +00:00
Yo Chiang 9c683dc968 Merge "Change RRO enforcement logic" 2019-10-02 02:34:35 +00:00
Yifan Hong 4ba2bdb13e Merge "Add virtual_ab to dynamic_partitions_info.txt" 2019-10-02 00:36:24 +00:00
Treehugger Robot 7a4bf49fb9 Merge "Generation of C Flags Artifacts" 2019-10-01 19:25:50 +00:00
Yo Chiang 4693fd1d05 Change RRO enforcement logic
Change RRO logic from
"Enforce RRO for all modules when PRODUCT_ENFORCE_RRO_TARGETS is '*'"
to
"Enforce RRO for all modules when PRODUCT_ENFORCE_RRO_TARGETS includes '*'"

Bug: b/137727426
Test: test build on local machine
Change-Id: I10b215c28919988ec58deb1fe3d5498ad4e73eb4
2019-10-01 15:08:36 +08:00
Treehugger Robot 4ad561c6f8 Merge "recovery: install system_ext file_contexts and property_contexts" 2019-10-01 02:25:50 +00:00
Treehugger Robot 0fee5b9d55 Merge "Add phony rule for 'fuzz' in Make context, not soong." 2019-09-30 20:24:19 +00:00
Jesse Pai d004692025 Generation of C Flags Artifacts
Modifications made to make/core to handle new C Flags build variables which
store which module uses which flag.
C Flags build variables generated by Soong.

Bug: 140442588
Test: Executed m dist and presubmit
Change-Id: I4c730b9dba27672c6a9f75cf35beaf6311174af0
2019-09-30 16:24:35 +00:00
Bowgo Tsai 07365dfb08 recovery: install system_ext file_contexts and property_contexts
System Ext partition is not mounted in recovery mode. Install
system_ext_file_contexts and system_ext_property_contexts into
rootdir for recovery. This is similar to how we deal with system,
product, vendor, odm *_contexts files.

Bug: 137712473
Test: m bootimage for pixel 2, system_ext_file_contexts and
      system-ext_property_contexts appear in $OUT/recovery/root/
Change-Id: I94b965d775e727fbbe26c8b715bbce3ca6179fa7
2019-09-28 09:09:37 +08:00
Treehugger Robot 1623ec97f1 Merge "add vendor_boot image support" 2019-09-27 21:07:24 +00:00
Mitch Phillips ceefc44008 Add phony rule for 'fuzz' in Make context, not soong.
Allows us to use dist-for-goals and produce the fuzz target packages as
part of a normal dist.

Bug: 141026328
Test: m dist fuzz
Change-Id: Idffa879eb11266bfce18e0f9164e7ef80769cbc2
2019-09-27 13:58:01 -07:00
Steve Muckle e1b1086ef3 add vendor_boot image support
The vendor_boot partition is generated by mkbootimg and contains all the
device-specific information that used to reside in the boot partition.

Bug: 137297791
Change-Id: I5b005097b73f59857c3a2f92d693b3e67ee8424e
2019-09-27 10:26:00 -07:00
Yifan Hong 72a1367d5b Add virtual_ab to dynamic_partitions_info.txt
... so that it can be used during OTA package generation.

Bug: 141720569
Test: apply virtual A/B OTA
Change-Id: I3a1df1afb7676eed6d22be49270354119bfb5a75
2019-09-26 18:22:46 -07:00
Treehugger Robot 90c7163e7e Merge "cleanup: remove unused variable" 2019-09-26 16:42:41 +00:00
Jooyung Han f251232bb1 cleanup: remove unused variable
removing an unused variable: vndk_snapshot_configs_out in
core/tasks/vndk.mk

Test: m vndk
Change-Id: I2dc76ec7e41c8b1e818ecd056526a8c61a18da92
2019-09-25 10:33:58 +09:00
Anton Hansson ee07ef0019 Improve error message for artifacts outside requirement
Print the allowed paths as part of the error message.

Test: m
Change-Id: Ieb6303f39260ce83232b1c9a0a30e8cac76e2c9c
2019-09-24 12:40:25 +01:00
Treehugger Robot 30648c3a21 Merge "Fix to avoid breaking aosp_x86 build" 2019-09-20 22:48:10 +00:00
hamzeh 53cedb0653 Fix to avoid breaking aosp_x86 build
Removing this section as per suggetion in comment#6 (b/139694329)

Bug: 139694329
Test: none
Change-Id: I51b0ab17aeff5897932203773bd02a4951268a73
2019-09-20 12:43:02 -07:00
Dan Shi d9bef81f7c Merge "Create a vts-core suite harness package" 2019-09-20 18:06:19 +00:00
Daniel Mentz 8bfd896e3d Merge "Don't package mke2fs.conf in otatools.zip" 2019-09-20 17:12:12 +00:00
Logan Chien 2a88075617 Always check ELF files for `check-elf-files`
With this commit, the build system always checks ELF files when
`check-elf-files` is one of the make goals regardless
`PRODUCT_CHECK_ELF_FILES` is specified or not.

This commit also adds `BUILD_BROKEN_PREBUILT_ELF_FILES` for targets that
haven't been cleared.

If this commit breaks your target (usually breaks the targets running
`make checkbuild`), you may triage the breakage by adding the following
setting to your `BoardConfig.mk`:

    BUILD_BROKEN_PREBUILT_ELF_FILES := true

Bug: 141176116
Test: lunch aosp_crosshatch-userdebug && make check-elf-files
Change-Id: Ibe65c977a4ab3d40ba35892ed177eca62c837c35
2019-09-20 10:08:08 -07:00
Dan Shi 796ff4ffb5 Create a vts-core suite harness package
vts-core.zip will include all vts-core tests and suite harness
(vts-core-tradefed).

Bug: 141012181
Test: m -j vts-core

Change-Id: Ib13a2bffb4dc9619d2732d65729ecb0246a0b9a0
2019-09-19 13:13:44 -07:00
Treehugger Robot 30e613a48d Merge "Add backend for LOCAL_FUZZ_DATA for cc_fuzz corpus/dict." 2019-09-19 13:51:17 +00:00
Mitch Phillips fd6d9022fe Add backend for LOCAL_FUZZ_DATA for cc_fuzz corpus/dict.
Adds the backend makefile parser for the LOCAL_FUZZ_DATA vars generated
by the cc_fuzz target.

Bug: 141026328
Test: m example_fuzzer, fuzz target should have adjacent corpus/dict
files.

Change-Id: Ide2c34318f11be132992650ce5cc1fd27895915c
2019-09-18 18:58:28 -07:00
Daniel Mentz f846914c9f Don't package mke2fs.conf in otatools.zip
mke2fs.conf is now packaged into the Python executable mkuserimg_mke2fs
and no longer needs to be packaged directly into otatools.zip.

Change-Id: I06216ccd60f834747f9302e30397a7f0bae53726
2019-09-18 18:24:41 -07:00
Treehugger Robot bd496d27ad Merge "Remove TARGET_TRANSLATE_2ND_ARCH" 2019-09-18 20:47:43 +00:00
Colin Cross 02b50d12be Remove TARGET_TRANSLATE_2ND_ARCH
TARGET_TRANSLATE_2ND_ARCH is never set to true any more,
TARGET_NATIVE_BRIDGE_ARCH := arm is always used instead.

Bug: 141242600
Test: m checkbuild
Change-Id: Id3e0614a1d8a088d37929655b74fecd812606db2
2019-09-18 16:23:04 +00:00
Logan Chien e34b4dea34 Merge "Add check-elf-files as a checkbuild prerequisite" 2019-09-17 18:08:31 +00:00
Jaewoong Jung 9f2e68009d Merge "Revert "Build: Fix test data no present in test suite zip files."" 2019-09-17 14:00:45 +00:00