Commit Graph

48976 Commits

Author SHA1 Message Date
Anton Hansson
13ea2a6a7d Automate the strip and assignment of PRODUCT_ vars
With this change, all PRODUCT_ variables are treated the same
when it comes to stripping and assigning them to their final
variable name. In the past, all the PRODUCT variables needed
to be listed in two places to achieve this.

The documentation previously attached to the strip/assignment
is moved to the PRODUCT_ variable list in product.mk.

Also refactor some of the default value logic to cope with
the new automation.

Many places in the build system that currently refer to
$(PRODUCTS.$(INTERNAL_PRODUCT).X) can now be modified to
use $(X) directly.

Bug: 116769560
Test: verified noop on PRODUCT_ variables on all products in the tree
Change-Id: I5677c355e81359b1d3c0db2a2232941097a05047
2019-03-28 15:26:49 +00:00
Treehugger Robot
fde506a6d7 Merge "Phase out all _a targets" 2019-03-27 12:56:11 +00:00
SzuWei Lin
b90ffb0f9a Phase out all _a targets
The _a targets are build for Legacy GSI for non-system-as-root
partition layout devices. The Android build system is not able
to build a system image with non-system-as-root anymore.
Also, `init` supports mounting system-as-root system image at
all, all devices should no problem to mount it.

Bug: 124278972
Test: none
Change-Id: I9c56e7e5d8517a630854f030616c3b3ecb94b9a8
2019-03-27 12:16:43 +08:00
Tao Bao
5ed75d74e3 Merge "releasetools: Re-enable verifying AVB-signed images." 2019-03-27 03:20:13 +00:00
Treehugger Robot
d7060a50f9 Merge "Eliminate ENABLE_DEFAULT_TEST_LOCATION as it is always true" 2019-03-26 20:22:37 +00:00
Anton Hansson
2f5e18362b Merge "Unset system-as-root for mainline" 2019-03-26 19:34:13 +00:00
Tao Bao
a81d429928 releasetools: Re-enable verifying AVB-signed images.
This reverts commit 9788b4ed31. All the
blocking issues have been addressed.

Fixes: 120517892
Test: Run validate_target_files.py on crosshatch signed
      target_files.zip.
Change-Id: I95de241e159998e002dedddafea65953b1a1b263
2019-03-26 12:13:37 -07:00
Anton Hansson
cd0997c1e9 Merge "Move EmergencyInfo to the /product hierarchy" 2019-03-26 12:39:09 +00:00
Treehugger Robot
484e82f7ca Merge "Add art-tools to host build outputs" 2019-03-26 09:29:48 +00:00
Anton Hansson
cd2f94407c Unset system-as-root for mainline
This flag is not allowed to be true when dynamic partitions are
enabled, which mainline devices are expected to do.

Bug: 80410283
Test: make
Change-Id: I50c9fe9332ea1490a84484f9311cfe001a083754
2019-03-26 09:22:07 +00:00
Daniel Norman
c21a8448d1 Merge "Merges dynamic partition misc_info.txt keys from both system and other." 2019-03-25 23:15:09 +00:00
Daniel Norman
b455273444 Merge "Only call make_recovery_patch when BUILDING_SYSTEM_IMAGE." 2019-03-25 23:15:01 +00:00
Sasha Smundak
da25b691d3 Eliminate ENABLE_DEFAULT_TEST_LOCATION as it is always true
Bug: 117224272
Test: treehugger
Change-Id: Idd47ead31fcd89dbf728f140dc3353e5013ba352
2019-03-25 13:26:03 -07:00
Anton Hansson
735aa9180e Move EmergencyInfo to the /product hierarchy
The app is moving to /product.

Bug: 122353713
Test: build_test
Change-Id: I78dc47963de21b8966fdfe15ce18695bf0747221
2019-03-25 19:52:06 +00:00
Daniel Norman
adf8096c77 Only call make_recovery_patch when BUILDING_SYSTEM_IMAGE.
The recovery patch gets put in the SYSTEM directory. Placing the
recovery patch here doesn't make sense when not building the system
image, as is the case for merged (system + vendor) builds.

Bug: 128838154
Test: Running make droid dist for a device target that sets PRODUCT_BUILD_SYSTEM_IMAGE to false.
Change-Id: Ib5ce8c8490024199f82d0c093e9a7ae2de5f71f5
2019-03-25 18:34:30 +00:00
Anton Hansson
072795054a Merge "Make mainline device enable property split" 2019-03-25 18:23:26 +00:00
Orion Hodson
b099a10add Add art-tools to host build outputs
Building of host tools stopped when moving to APEX. This change
re-enables building of host tools.

Bug: 128990084
Test: m -j72 && find out -name 'oatdump'
Change-Id: Iad42b4e36561001709634174014192e56a64aafd
2019-03-25 13:36:59 +00:00
Anton Hansson
018bd137b7 Make mainline device enable property split
This setting moves the PRODUCT_PROPERTY_OVERRIDES to
the vendor partition.

Bug: 80410283
Test: tail system/build.prop | grep ro.carrier=
      (empty)

Change-Id: I30d564fbd2dd3b56763ccff77979b223857f1c2f
2019-03-25 10:53:07 +00:00
Anton Hansson
94fa0e75cb Merge "Put DEVICE/PRODUCT overlays in different partitions" 2019-03-25 09:25:47 +00:00
Anton Hansson
9274688574 Merge "Set file system types for mainline_arm64 partitions" 2019-03-25 09:24:16 +00:00
Anton Hansson
115292896a Merge "Make mainline_system_arm64 build only /system" 2019-03-25 09:23:30 +00:00
Anton Hansson
30355b60f7 Merge "Enable AB_OTA_UPDATER for mainline" 2019-03-25 09:20:32 +00:00
Tao Bao
9a5093e5f9 Merge changes I91bd3dce,I2e941fd9
* changes:
  releasetools: Fix alignment issue when signing APEXes.
  releasetools: Fix an issue in handling PRESIGNED APEX keys.
2019-03-24 17:31:55 +00:00
Tao Bao
ffc9a30946 releasetools: Fix alignment issue when signing APEXes.
Previously it was following a wrong order by doing `zipalign` after
calling SignApk, which effectively compromised the signature. This CL
corrects the logic, and follows the same flow as in build system:
 - Pack APEX file;
 - `zipalign -f 4096`;
 - Call SignApk to sign the container with `-a 4096` flag.

Bug: 129148142
Test: Run sign_target_files_apks.py on taimen target_files.zip. Boot the
      image after signing.
Change-Id: I91bd3dce4f45c1891c5e122212a699f4808618fa
(cherry picked from commit 0e06cb0a8b)
2019-03-23 10:27:43 -07:00
Daniel Norman
19b9fe9fdf Merges dynamic partition misc_info.txt keys from both system and other.
To build a complete list of the dynamic partitions and partitions
groups, we need to merge the contribution from the system and other
target files.

Bug: 127687287
Test: Running merge_target_files.py and observing partition lists are
merged as expected.
Change-Id: I5bb9bd0e3179d48c9bfacdb3aca8253158f61cf6
2019-03-22 14:46:01 -07:00
Tao Bao
1e4cbfaf5c releasetools: Fix an issue in handling PRESIGNED APEX keys.
For PRESIGNED APEXes, we should keep carrying the matching public keys
at /system/etc/security/apex.

Bug: 129148142
Test: Run sign_target_files_apks.py on a target_files.zip with presigned
      APEXes. Check the output zip.
Change-Id: I2e941fd9b10e99d2db9df1e5308cbbe8c760177b
(cherry picked from commit bf3fb024cd)
2019-03-22 14:11:24 -07:00
Anton Hansson
1683198010 Set file system types for mainline_arm64 partitions
This config was in a weird state where it sets the OUT
directory for these partitions but not the file system
type. Within the build system, both of these variables
are used interchangeably to check whether these partitions
are expected to be present.

A typical mainline device is expected to /vendor and
/product, so just add these.

Bug: 120974093
Test: make
Change-Id: I803d7afdcadc37e4384ae80f08bc1c8db535d2f4
2019-03-22 17:25:43 +00:00
Martin Stjernholm
c62e31242d Merge "Exclude libdexfile_external.so to fix aosp_marlin-userdebug builds." 2019-03-22 15:35:09 +00:00
Martin Stjernholm
d185bb29ce Exclude libdexfile_external.so to fix aosp_marlin-userdebug builds.
Test: m systemimage
Bug: 124293228
Change-Id: I7a4744457396084ef9fd78d9c2f1efdabe0f981d
2019-03-22 14:24:08 +00:00
Anton Hansson
07fa9b13b4 Make mainline_system_arm64 build only /system
Configure this product not to build any of the other partitions.

Note that the only partition that currently has artifacts produced
is system_other, and this change doesn't appear to prevent odex/vdex
files from being created there anyway. However, it does allow
configuring the target device (mainline_arm64) to have more partitions
in a followup change.

Bug: 111533333
Test: make
Change-Id: Ib115cb03bc99b9b61e0d6f1b622784e7ad5fcea0
2019-03-22 14:07:49 +00:00
Anton Hansson
cb8276fa93 Put DEVICE/PRODUCT overlays in different partitions
This change changes auto-generated RROs from DEVICE_PACKAGE_OVERLAYS
to be generated in the vendor partition, as opposed to /product where
they were generated in the past.

Note that PRODUCT_PACKAGE_OVERLAYS continue generating RRO packages
to /product, which means that a single app can be overlayed from
different partitions. These RROs have been given module and package
names based on their location.

Bug: 127758779
Test: verify noop on presubmit targets
Change-Id: I5cee70e28e3969e67b2d83eaf25d9c6e3a11102d
2019-03-22 13:25:20 +00:00
Treehugger Robot
9da9c32e80 Merge "Adding adb_debug.prop" 2019-03-22 13:08:24 +00:00
Treehugger Robot
02699e40ea Merge "Check that Runtime APEX libraries don't end up in /system/${LIB}." 2019-03-22 12:34:05 +00:00
Bowgo Tsai
a280a66b5a Adding adb_debug.prop
The adb_debug.prop will be loaded by init when the file
/force_debuggable is present in the first-stage ramdisk, and the device
is unlocked. This file has the highest priority to override other system
properties, thus can override ro.debuggable to 1 to allow adb root.

Bug: 126493225
Test: boot a device with /force_debuggable in ramdisk, checks
      adb_debug.prop is loaded

Change-Id: I75d661bb04178f584d8b6f5eba26ae35ccb01239
2019-03-22 11:43:33 +08:00
Treehugger Robot
1d38fe98d1 Merge "Follow symlink when creating symbols.zip" 2019-03-21 22:19:49 +00:00
Martin Stjernholm
f1e7c7159b Check that Runtime APEX libraries don't end up in /system/${LIB}.
This is a stop-gap measure for a proper fix enforcing library "ownership" in
Soong: b/128708192

Test: m systemimage (with and without libs that exist in /system/lib)
Test: Check that this fails:
  m systemimage
  m out/target/product/taimen/system/lib/libjdwp.so
  m systemimage-nodeps
Bug: 124293228
Change-Id: Iac0d0cec7d9e216028a0caccfbb76838514d4a7b
2019-03-21 17:52:35 +00:00
Tao Bao
c62b9a2347 Merge changes I662aab3d,I5e741c27
* changes:
  Revert^2 "releasetools: check_target_files_signatures.py checks APEXes."
  releasetools: common.UnzipTemp() filters out non-matching patterns.
2019-03-21 16:38:04 +00:00
Anton Hansson
571fab0610 Enable AB_OTA_UPDATER for mainline
The file $(TARGET_OUT_ETC)/update_engine/update-payload-key.pub.pem
is installed conditionally based on this variable, and was found
to differ between mainline_system and the intended device targets.

Also move the variable from gsi_common.mk as GSI inherits the mainline
boardconfig. The variable is not a PRODUCT flag (and not inherited as
such), so fits better in the BoardConfig I think.

Bug: 80410283
Test: presubmit
Change-Id: Ida6fa923fd01b062ff3b93e7737e1e6edf7e4fa1
2019-03-21 14:54:43 +00:00
Anton Hansson
cece1e03af Merge "Read product/device RRO dirs separately from soong" 2019-03-21 11:28:19 +00:00
Jiyong Park
88e0980ddf Follow symlink when creating symbols.zip
Due to the runtime APEX, the symbols directory now contains a symlink;
./apex/com.android.runtime -> com.android.runtime.debug (or .release).

Previously, this symlink itself was included in the symbols.zip file.
And this is causing problem to the online stack tool which does not
follow the symlink in the zip file. Instead of fixing the problem in the
stack tool side, this change let the packaging routine to follow the
symlink and copy the files behind the symlink as if they were under a
directory that isn't a symlink. (i.e.
./apex/com.android.runtime/bin/dex2oat is added)

Bug: 120846816
Test: m dist with marlin (flattened) and blueline (non-flattened)
examine symbols.zip file and check that unstripped shared libraries are
found under /apex/com.android.runtime directory
Change-Id: I1d1c787a2e8ab7209410dfa2cff749a7042e21b0
2019-03-21 18:48:16 +09:00
Logan Chien
81589605fd Merge "Update check_elf_file.py for clang-r353983" 2019-03-21 08:05:16 +00:00
Bowgo Tsai
dce018769f Merge "Only build system_other.avbpubkey when AVB is enabled" 2019-03-21 07:01:53 +00:00
Bowgo Tsai
8802b7119d Only build system_other.avbpubkey when AVB is enabled
/product/etc/security/avb/system_other.avbpubkey is only needed
when BOARD_AVB_ENABLE is true. This fixes the build error of
Marlin/Sailfish.

Bug: 123611926
Bug: 129029207
Test: make
Change-Id: I73f948d84f91cd6fbe49a2de7bf12e46eebe6ede
2019-03-21 14:26:33 +08:00
Vic Yang
30dda1da5e Merge changes from topic "vndk-no-vendor-variant"
* changes:
  Add support for no-vendor-variant VNDK
  Add module-target-built-files function
2019-03-21 04:30:47 +00:00
Treehugger Robot
7e87c72fb0 Merge "Moving system_other key into product.img" 2019-03-21 04:26:21 +00:00
Tao Bao
359862db12 Revert^2 "releasetools: check_target_files_signatures.py checks APEXes."
This reverts commit 5516d37f41.

The previous issue in unzipping non-matching files has been addressed
with commit a49054ca2f2959f50f3188914ec0faebc90ebcbe. This CL rolls
forward to allow dumping container certifcates for APEXes.

Bug: 128848294
Test: Run check_target_files_signatures.py on target_files.zips w/ and
      w/o APEX files.
Change-Id: I662aab3d96fc40ac8e5e206e32b73ac763220b70
2019-03-20 12:40:34 -07:00
Tao Bao
0ff15de32a releasetools: common.UnzipTemp() filters out non-matching patterns.
common.UnzipTemp() calls `unzip` to do the unzipping, which will
complain if there's non-existent names in the given list. Prior to this
CL, callers had to do the work to remove non-existent entries. This CL
filters out the given patterns in common.UnzipTemp()/common.UnzipToDir()
to make callers' works easier.

Bug: 128848294
Test: `m dist` with aosp_taimen-userdebug (which calls
      ota_from_target_files.py on a target_files.zip that doesn't
      contain RADIO/*).
Test: `python -m unittest test_common.CommonZipTest`
Change-Id: I5e741c27ea8d0b8126c398a7e1b56a8deb4a3d7f
2019-03-20 12:38:09 -07:00
Treehugger Robot
299d782ecd Merge "Remove protobuf-cpp-full-rtti from mainline" 2019-03-20 17:47:43 +00:00
Anton Hansson
2cad3f68c2 Merge "Fix the product-graph target" 2019-03-20 17:31:41 +00:00
Vic Yang
51512c558c Add support for no-vendor-variant VNDK
When TARGET_VNDK_USE_CORE_VARIANT is set to true, the vendor variant of
VNDK libraries are by default not installed.  Instead, the core variant
will be used by vendor binaries at runtime.

To ensure the core variant of VNDK libraries are installed, we also add
a flag LOCAL_VNDK_DEPEND_ON_CORE_VARIANT to indicate that the vendor
variant module depends on the core variant module.  This flag should be
set by Soong for all VNDK libraries without the vendor variant
installed.  When the flag is set, the vendor variant binary is also
compared against the core variant binary to ensure they are
functionally identical.

As we are merging the two variants for some libraries, we need a new
link type to denote a module is usable as both native:vndk and
native:platform.  We add native:platform_vndk for this.

Bug: 119423884
Test: With the corresponding Soong change, build with
      TARGET_VNDK_USE_CORE_VARIANT set to true.
Test: Add a dummy VNDK library and a dummy vendor binary that depends
      on it.  Build with no-vendor-variant VNDK and check the core
      variant is installed.
Test: Add conditional compilation based on __ANDROID_VNDK__ in the
      dummy VNDK library and check build fails.

Change-Id: I40000f2728e8193212113c1ee950e9d697f2d40d
2019-03-20 10:23:04 -07:00