Commit Graph

55004 Commits

Author SHA1 Message Date
Tao Bao 3d33aa7c2c Merge "Remove the workaround that forces rebuilding recovery patch." 2019-10-09 18:22:26 +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
Tao Bao 17f505e7ea Merge "releasetools: Fix the support for getting reproducible images." 2019-10-08 19:53:55 +00:00
David Anderson a8b633d181 Merge "Add IBootControl HAL 1.1." 2019-10-08 19:03:05 +00:00
Tao Bao 163df7d40b Merge "releasetools: Move BuildInfo into common." 2019-10-08 17:44:15 +00:00
Tao Bao dc66f02c54 Merge "releasetools: Move MockScriptWriter into test_utils." 2019-10-08 14:13:47 +00:00
Treehugger Robot 3da3191366 Merge "Fix zsh compatibility issue in build/envsetup.sh" 2019-10-08 11:41:26 +00:00
Tao Bao 3ed35d3d25 releasetools: Fix the support for getting reproducible images.
We used to support getting idempotent images when given the same inputs,
by specifying UUID and AVB salt to the image builders. The support was
broken by Q changes that moved away from build-time fingerprints [1].

This CL addresses the issue by updating the logic in computing UUID and
AVB salt to be based on BuildInfo.fingerprint, as opposed to the
deprecated static build fingerprint.

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

Bug: 134525174
Test: TreeHugger
Test: lunch a target; `atest --host releasetools_test releasetools_py3_test`
Test: `m dist`; `unzip out/dist/target_files.zip IMAGES/\*`;
      `zip -d out/dist/target_files.zip IMAGES/\*`
Test: `add_img_to_target_files -a out/dist/target_files.zip`. Verify that
      the rebuilt images are identical to the ones deleted.
Change-Id: I8844fc7f044e9abfcd96a00e8958fa0583c70eaf
2019-10-07 23:32:07 -07:00
Tao Bao 1c320f8573 releasetools: Move BuildInfo into common.
There is no change to module functionalities. Testcases are moved around
accordingly.

Bug: 134525174
Test: TreeHugger
Test: lunch a target; atest --host releasetools_test releasetools_py3_test
Change-Id: I7bc8f49cc239e7c6655fe5e375508f01c1743b94
2019-10-07 20:13:59 -07:00
Tao Bao e114804150 releasetools: Move MockScriptWriter into test_utils.
Bug: 134525174
Test: TreeHugger
Test: lunch a target; atest --host releasetools_test releasetools_py3_test
Change-Id: I6d30f4d153d59d65227275e1d3285e30dfafd90e
2019-10-07 20:00:34 -07:00
Tao Bao 7e49064030 Merge "releasetools: Update OWNERS." 2019-10-08 02:12:22 +00:00
David Anderson b9e8d8cac8 Add IBootControl HAL 1.1.
Bug: 138861550
Test: m check-vndk-list
Test: m
Change-Id: If09d031e5acf1178fce942526782a41426c5180b
Merged-In: If09d031e5acf1178fce942526782a41426c5180b
2019-10-07 17:13:11 -07:00
Treehugger Robot 4dc0c25643 Merge "Check if installable before installing unstripped" 2019-10-07 23:56:05 +00:00
Tao Bao 60f5d67677 releasetools: Update OWNERS.
Test: N/A
Change-Id: Ie476ff08a360f15f769e54dca7428a2d055f1a37
2019-10-07 12:39:55 -07:00
Tao Bao 7b1c49a70d Merge "releasetools: Update the handling of recovery fstab." 2019-10-07 19:33:21 +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
Tao Bao ae3a9a138d Merge "releasetools: Fix releasetools_py3_test." 2019-10-07 19:06:07 +00:00
Tao Bao d253f8a614 Merge "releasetools: Update tests to match SparseImage change." 2019-10-07 18:52:04 +00:00
Nikita Ioffe 42b2b54c2b Merge "Unconditionally install shim apex on system partition" 2019-10-07 15:10:10 +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
Nikita Ioffe b6eeae7289 Unconditionally install shim apex on system partition
Trying to do it on per-device basis is prone to errors and already
bitten us several times. For example, currently aosp_taimen doesn't
install shim apex on system partition, but specifies
ro.apex.updatable = "true", which means that it doesn't pass CTS tests.

Unconditionally installing shim APEX shouldn't introduce any problems
since apexd will skip its activation of devices that don't support
updatable APEX.

Test: m checkbuild
Bug: 140957666
Change-Id: I6b5e668b40b97752295c831684a7291842533c40
2019-10-07 12:14:08 +01:00
Yo Chiang 8ca4bf76d6 Merge "Clean up mainline whitelist in aosp_product.mk" 2019-10-07 10:28:46 +00:00
Roland Levillain 81681abfef Merge "Introduce build variable `OVERRIDE_TARGET_FLATTEN_APEX`." 2019-10-07 10:27:41 +00:00
Treehugger Robot 16652990ec Merge "Add x86 / x86_arm mainline_system product" 2019-10-07 10:27:14 +00:00
Treehugger Robot 7c7f144484 Merge "Remove healthd from base_product.mk" 2019-10-07 10:10:34 +00:00
Tao Bao 615b65d097 releasetools: Fix releasetools_py3_test.
Test: Use a lunch'd target;
      `atest --host releasetools_test releasetools_py3_test`
Change-Id: Ibcced83a7989ef8fc15464728ab1d5fa71ca988e
2019-10-06 23:29:34 -07:00
Tao Bao a264feffe8 releasetools: Update tests to match SparseImage change.
The previous change in commit 22632cc82c
changed the behavior in loading file map. It now always puts a copy of
the input text in `extra` field. Update the tests accordingly.

Bug: 79951650
Test: Use a lunch'd target; `atest --host releasetools_test`
Change-Id: Iccf06c817c1305bf9946d7759c6f6f6af21fe85e
2019-10-06 22:21:14 -07:00
Tao Bao 99d855db8f Merge "releasetools: Support verifying files with non-monotonic ranges." 2019-10-07 01:33:30 +00:00
Yo Chiang e9b513a35a Clean up mainline whitelist in aosp_product.mk
Bug: 138281437
Bug: 140912362
Test: for prod in aosp_bonito aosp_arm64 aosp_cf_x86_phone ; do \
        lunch ${prod}-userdebug \
        m -j100 nothing || exit 1 \
      done

Change-Id: I2bc1f49ce68e49313e5c00104aad7b21a101ca7a
2019-10-05 09:06:36 +00:00
SzuWei Lin 24e6bcd0b6 Remove healthd from base_product.mk
healthd had been deprecated from Android P.
Does not need to support it now.

Bug: 142164625
Bug: 138284857
Test: lunch gsi_arm64-userdebug;make -j
Test: No healthd in out folder
Change-Id: I48db70f4bf39f6322bd2e80e536e2ec96b3a6408
2019-10-05 14:05:48 +08:00
Tao Bao 765668fff7 releasetools: Update the handling of recovery fstab.
First, remove the use of info_dict['fstab'] in add_img_to_target_files.
 - info_dict['fstab'] corresponds to recovery fstab
   (`/etc/recovery.fstab`), which may differ from the one used for
   normal boot.
 - When calling build_image.ImagePropFromGlobalDict, we already have the
   desired info from global dict (`META/info_dict.txt`).

Second, common.LoadInfoDict now loads recovery fstab only for non-A/B
devices. Because the info is only meaningful for installing non-A/B OTAs
(under recovery mode).

Fixes: 132458722
Test: TreeHugger
Test: Build non-A/B incremental OTAs.
Change-Id: Id23e7b17264c123319fe00b1663d52bfd9b4a5e2
2019-10-04 22:39:32 -07:00
Yo Chiang 8b674819ac Add x86 / x86_arm mainline_system product
- Add mainline_x86 / mainline_x86_arm board
- Add mainline_system_x86 / mainline_system_x86_arm product
- BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4

These products build only system.img and vbmeta.img.
These serve as a "golden example" for x86 / arm64 CSI.

Bug: 141972143
Bug: 141657175
Test: lunch mainline_system_x86-userdebug; m
Test: Compare $ANDROID_PRODUCT_OUT against sdk_phone_x86 / aosp_cf_x86_phone
Change-Id: I40dec69ceadfe7057c1706b883b81958d3c0a416
2019-10-05 11:35:33 +08:00
Yo Chiang 491966fb7f Merge "Re-submit "Make mainline device use apex"" 2019-10-05 03:32:45 +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
Anton Hansson b8205595c0 Re-submit "Make mainline device use apex"
The build system default was changed to not support apex, but
we want the mainline device to enable it.

Test: make mainline_system
Merged-In: I9f29e8354acffb1856dfd8a173b80a3f9324630c
Change-Id: I9f29e8354acffb1856dfd8a173b80a3f9324630c
2019-10-04 20:25:14 +08:00
Anton Hansson f89f29d669 Merge "CleanSpec for new system_other layout" 2019-10-04 06:30:55 +00:00
Tao Bao 22632cc82c releasetools: Support verifying files with non-monotonic ranges.
Fixes: 79951650
Test: Run validate_target_files on target_files.zip with files in
      non-monotonic ranges.
Test: python -m unittest test_validate_target_files
Test: python3 -m unittest test_validate_target_files
Change-Id: I82571d3358598775de4cdeb5e64035689fea6487
2019-10-03 23:21:22 -07:00
Treehugger Robot c578262e37 Merge "Enforce /system module RRO for mainline products" 2019-10-04 05:58:44 +00:00
Colin Cross a63ce3af4c Merge "Use -nostdlib++ instead of -nodefaultlibs" 2019-10-04 03:26:11 +00:00
Treehugger Robot b836b175c5 Merge "Fix lunch choices w/zsh" 2019-10-04 00:56:23 +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
Dan Willemsen 91763e93e6 Fix lunch choices w/zsh
zsh doesn't split variables (by default), but it will split command
output. bash will split both. Apparently a portable way to do this in
both is to just turn it into another command: "$(echo $var)".

Test: source build/envsetup.sh; lunch (see list; repeat in bash and zsh)
Change-Id: I9716a8d77aefdf05da8923deb9e37e0b6132b549
2019-10-03 15:15:37 -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
Anton Hansson 8db2605038 CleanSpec for new system_other layout
Bug: 141707536
Test: m
Change-Id: I120362a230eb08863311a9c0d8aeb2f0ab6c81c7
2019-10-03 14:19:58 +01:00
Guillaume Chelfi ce000fdc4d Fix zsh compatibility issue in build/envsetup.sh
Arrays are zero indexed in bash and one indexed in zsh by default. This
leads to an off-by-one issue in the `godir` and `choosevariant` commands: when
prompted to chose an option, in order to pick option "n" you have to input
"n+1".

In those two specific instances, by using "substring expansion" instead of
array indexing, one can get consistent behaviour between bash and zsh
(equivalent to zero indexing).

Test: manual -
 # godir
 $ zsh
 $ source build/envsetup.sh
 $ godir SurfaceFlinger # There should be many options
 # Pick 1, check that you end up in the right location
 $ godir SurfaceFlinger.cpp # There should be only one possibility
 # make sure you end up in the right location
 # repeat with bash (to ensure compatibility is not broken)

 # choosevariant
 $ zsh
 $ source build/envsetup.h
 $ choosevariant # pick whatever variant you want
 $ printconfig # make sure the variant matches your choice
 # repeat with bash (to ensure compatibility is not broken)

Change-Id: I998d8fb48b708066b6db28a2129a2b09785fb0b1
2019-10-03 12:02:46 +02:00
Steven Moreland 147f46ba72 Merge "Remove libhidltransport/libhwbinder from VNDK." 2019-10-02 21:10:50 +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