Commit Graph

2099 Commits

Author SHA1 Message Date
Yifan Hong
cb35bd9e51 Build non-sparse super image if necessary.
If TARGET_USERIMAGES_SPARSE_EXT_DISABLED is set, don't provide
--sparse to lpmake, so that a non-sparse super image is built.

Test: build with the flag set.
Fixes: 120041578
Change-Id: I5a26e4c793b0e2ddc89e9c38c8828ac21044e78a
2019-04-03 10:58:25 -07:00
Martin Stjernholm
c712ac1001 Merge "Drop libsigchain from the system image." 2019-04-01 19:15:25 +00:00
Martin Stjernholm
f8b6fefcd1 Drop libsigchain from the system image.
It is now in the Runtime APEX and considered internal there.

Test: Flash and boot
Test: atest CtsCompilationTestCases CtsBionicTestCases
Bug: 118374951
Bug: 124293228
Change-Id: I33bb9c238d7db46795deb592c9d20fe6591c1654
2019-04-01 18:37:06 +01:00
Treehugger Robot
c2fe916233 Merge "Move super.img to obj/PACKAGING" 2019-04-01 16:21:07 +00:00
Yifan Hong
5478754cd6 Move super.img to obj/PACKAGING
To avoid the confusion. super.img isn't intended to be flashed
during day-to-day development.

Test: m superimage
Bug: 128891161
Change-Id: I9d62e5929b415343b2d890ab21e6ae51175af2ae
2019-03-29 14:47:28 -07:00
Anton Hansson
8adf501905 Merge "Access PRODUCT_ variables directly" 2019-03-29 16:54:47 +00:00
Treehugger Robot
20ac920654 Merge "Make the APEX lib absence check optional, for local use." 2019-03-29 13:43:32 +00:00
Anton Hansson
8dab0a6f50 Access PRODUCT_ variables directly
This CL simplifies the PRODUCTS.$(INTERNAL_PRODUCT).X accesses of
product variables, and removes unnecessary stripping of them.

Replace: '\$\(PRODUCTS\.\$\(INTERNAL_PRODUCT\)\.([^\)]*)\)' with '$(\1)'
Replace: '\$\(strip\s*\$\(PRODUCT_([^\)]*)\)\)' with '$(PRODUCT_\1)'

A few minor manual tweaks.

Bug: 116769560
Test: presubmit
Change-Id: I70c54f1582e3cc780028535960147d99ebc2e0e1
2019-03-28 15:54:25 +00:00
Martin Stjernholm
c9d5858f58 Make the APEX lib absence check optional, for local use.
Test: m systemimage (with and without failure)
Bug: 124293228
Bug: 129466457
Change-Id: I8bf5ba51232bb9961bdedd56d0f17ee1d8698f54
2019-03-28 15:08:32 +00:00
SzuWei Lin
29770fa2bf Fix build error on empty ramdisk
package `init_vendor` is the only content of ramdisk so far.
We would get build error if we do not include init_vendor.
The patch fix the build error for the case that ramdisk is empty.

Bug: 129386309
Test: lunch aosp_arm64_ab-userdebug; make ramdisk -j
Test: Build pass
Change-Id: I7c7c828b5f29350268d4789393b90740dd68162d
2019-03-28 13:41:01 +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
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
Treehugger Robot
02699e40ea Merge "Check that Runtime APEX libraries don't end up in /system/${LIB}." 2019-03-22 12:34:05 +00: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
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
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
Treehugger Robot
7e87c72fb0 Merge "Moving system_other key into product.img" 2019-03-21 04:26:21 +00:00
Anton Hansson
4ea6474e95 Merge "System-specific product sysprops" 2019-03-20 12:40:44 +00:00
Anton Hansson
c371f19e89 Merge "Rename DEVICE arg in common buildprops script" 2019-03-20 10:25:01 +00:00
Bowgo Tsai
e4544b1c02 Moving system_other key into product.img
Currently system_other AVB public key is placed in system.img.
However, this makes it's harder to have a *generic* system.img
across different product configs. Moving the key to /product
partition to allow more product-specific AVB keys.

Device board config can add /product/etc/fstab.postinstall,
to mount system_other with this key in /product. It can specify
different mount options, file systems, verity settings, etc., in
this product-specific fstab as well.

Bug: 123611926
Test: `make productimage` checks the following is generated.
      $OUT/product/etc/security/avb/system_other.avbpubkey
      Also checks it's included in $OUT/installed-files-product.{json, txt}

Test: run the following command and checks that
      PRODUCT/etc/security/avb/system_other.avbpubkey is updated:
      ./build/tools/releasetools/sign_target_files_apks \
        --avb_system_other_algorithm SHA256_RSA2048 \
        --avb_system_other_key external/avb/test/data/testkey_rsa2048.pem \
        out/dist/*-target_files-*.zip signed-target_files.zip

Change-Id: I6804f29941bec54375d80bd68a5aedb5c23b842e
2019-03-20 16:18:11 +08:00
Yifan Hong
69e0d61cbe Add supernod build target.
superimage-nodeps and supernod depends
on images from $(ANDROID_PRODUCT_OUT) (not from
target files package). It doesn't rebuild source
images if they are present.

A typical workflow is:

    m -j
    # change code in system
    m snod -j
    m supernod -j

Test: For non retrofit, run:
      `m snod -j; m supernod -j`
Fixes: 128321505
Change-Id: Ib8c011cadb9c0cd334234aef39f19be6a48fee62
2019-03-13 11:15:21 -07:00
Anton Hansson
ee4c970eb0 System-specific product sysprops
This change makes it possible for products to specify the values
of the ro.product.system.X sysprops independently from the
corresponding sysprops on the other partitions.

Leave the fingerprint as-is for now. It will be changed to follow
suit in a followup change.

Bug: 110206836
Test: make
Change-Id: Id30012e1948df792778b102203116d4ae3f68e56
2019-03-12 18:03:44 +00:00
Anton Hansson
ef0b949be3 Rename DEVICE arg in common buildprops script
A followup change will make it not always equal TARGET_DEVICE,
so that name is unsuitable. Make its name follow the other product
variables.

Bug: 110206836
Test: presubmit
Change-Id: Icb1422ec5e7af658c5cc3070993c472e99805c6b
2019-03-12 18:03:23 +00:00
Tri Vo
9f18c64d07 Merge "recovery: install product_file_contexts and product_property_contexts" 2019-03-07 18:32:48 +00:00
Anton Hansson
2507ce486d Merge "Modify INTERNAL_KERNEL_CMDLINE instead of BOARD_ variant" 2019-02-28 10:26:18 +00:00
Anton Hansson
72e36f0278 Modify INTERNAL_KERNEL_CMDLINE instead of BOARD_ variant
The current modification of the variable within the build system
prohibits making the variable readonly.

Test: build_test
Test: boot blueline
Change-Id: Iec6058a163b5951db389d4adc0d9d0397431efb1
2019-02-27 14:29:01 +00:00
Treehugger Robot
55ebd61486 Merge "Fix dynamic partition size check for devices with recovery" 2019-02-27 01:58:58 +00:00
Yifan Hong
accf09b2e0 Fix dynamic partition size check for devices with recovery
Devices with TARGET_NO_RECOVERY unset will contain a patch
of the recovery image in the system image. Fix
corresponding size checks.

Fixes: 120043292
Bug: 124489494
Test: build cuttlefish with DAP

Change-Id: I508881f421672180ab852c0f9216184b925d83ad
2019-02-25 16:10:43 -08:00
Anton Hansson
4208c81ab9 Merge "Add support for *_CPU_VARIANT_RUNTIME flags" 2019-02-22 12:34:02 +00:00
Anton Hansson
b5312392a0 Merge "Move ART cpu properties to /vendor" 2019-02-22 12:14:49 +00:00
Logan Chien
7d35910451 Merge "Refine lsdump_paths.txt dependencies" 2019-02-22 09:08:03 +00:00
Logan Chien
5f4e29b090 Refine lsdump_paths.txt dependencies
This commit moves $(LSDUMP_PATHS) from the prerequisite of
lsdump_paths.txt to the prerequisite of findlsdumps. This change makes
it possible to dump the list of lsdump files without actually building
all lsdump files.

Bug: 124829578
Test: make out/target/product/generic/lsdump_paths.txt
      # does not build the actual lsdump files
Test: make findlsdumps  # builds lsdump_paths.txt and all lsdump files
Change-Id: I924f1c0c61391e958521c376a061651f2a301adb
2019-02-22 10:55:44 +08:00
Tianjie Xu
df5978803d Merge "Dump a copy of metadata file for full OTA" 2019-02-21 18:00:55 +00:00
Anton Hansson
71b7f7fbd0 Add support for *_CPU_VARIANT_RUNTIME flags
Specified in the BoardConfig, and default to the value of the non
_RUNTIME variants.

These flags do not modify build-time compilation, but get written to
system properties on /vendor and can be inspected at runtime to
run/compile code for the specified cpu.

Migrate the bionic and ART cpu variant flags to use the new variables,
but leave the ART preopting using the non-_RUNTIME variants.

Bug: 120773446
Test: boot downstream device specifying CPU_VARIANT_RUNTIME flags
Test: grep dalvik.vm vendor/default.prop
Change-Id: Idc81110172582f38f84cca87f2eff140c5b5f9ac
2019-02-21 14:32:13 +00:00
Anton Hansson
30851f2540 Move ART cpu properties to /vendor
System properties relating to the physical hardware belong
on the vendor partition. Move the ART-related cpu variant
sysprops there.

This also brings the ART sysprops in line with the equivalent
bionic sysprops.

Bug: 120773446
Test: make, boot
Test: grep dalvik.vm vendor/default.prop
Change-Id: I3f843a7070dd0d9148737e040fe87d6461977d09
2019-02-21 14:13:44 +00:00
Bill Peckham
f753e15791 Include merge_target_files.py deps in otatools.zip, use common argv processing.
The merge_target_files.py script needs fc_sort and sefcontext_compile, so
include these tools into otatools.zip via core/Makefile.

Modify tools/releasetools/merge_target_files.py to use the otatools common argv
processing to take advantage of the '--path' option so that we add point the
'--path' option to an extracted otatools.zip package to gain access to fc_sort,
sefcontext_compile, and soong_zip (previously included in otatools.zip).

Bug: 123600124
Test: extract otatools.zip, use --path option to point to it, verify result
Change-Id: I7d84525981b8741c6bdbcac9984256920fc7f417
2019-02-21 00:50:54 +00:00
xunchang
3b548b0302 Dump a copy of metadata file for full OTA
When building the full OTA file, write a copy of the metadata to the
dist dir. Then it will show up in the artifact of the build page for
users to parse.

Bug: 124783265
Test: make dist and check the output metadata
Change-Id: I2eb06bbf3cbb9f3653ca3352f3d601b09403d59d
2019-02-20 15:32:28 -08:00
Tri Vo
62d51b65aa recovery: install product_file_contexts and product_property_contexts
Product partition is not mounted in recovery mode. Install
product_file_contexts and product_property_contexts into rootdir for
recovery. This is similar to how we deal with system, vendor, and odm
*_contexts files.

And remove unnecessary ifdefs.

Test: m bootimage for pixel 3, product_file_contexts and
product_property_contexts appear in $OUT/recovery/root/
Change-Id: I416d9e6ea742e67a6fe294f1ad8b78fb9b844260
2019-02-19 18:32:55 -08:00
Jiyong Park
bcc8d8a2d4 Install apexkeys.txt into the target-files package
The file contains information about apex-to-keys mappings.

Bug: 124406181
Test: m dist and check if META/apexkeys.txt file exist in the
target-files package.

Change-Id: If8da917a8b4d4e8326614b34067c14ed0df59cb3
2019-02-19 14:18:46 +09:00
Treehugger Robot
01a05483ed Merge "Support verifying system_other" 2019-02-18 05:21:27 +00:00
Treehugger Robot
06ec0577b6 Merge "Use predefined macros instead of hardcoding the path" 2019-02-16 22:56:47 +00:00
Bill Peckham
f3c50438c3 Merge "Include soong_zip in OTA tools package." 2019-02-16 00:38:07 +00:00
Bill Peckham
eabb713f15 Include soong_zip in OTA tools package.
Including soong_zip in the OTA tools package enables its use in target files
repackaging scripts.

Bug: 124468071
Test: Generate build, verify that soong_zip exists in otatools.zip at bin/soong_zip
Change-Id: Iee0d9dba73a66de4d1aa6970dd8fb8debb723660
2019-02-15 11:25:34 -08:00
Roman Kiryanov
4985cc829d Use predefined macros instead of hardcoding the path
There are predefined macros image targets that are
already checked in dependencies, use them instead
of hardcoding the same path again.

Bug: 79601115
Test: make -j
Change-Id: I12b64a646df038de017ba2ef18f3d0e4274f7caa
Signed-off-by: Roman Kiryanov <rkir@google.com>
2019-02-15 10:38:02 -08:00
Roman Kiryanov
e64998fe3b Check INSTALLED_SYSTEMIMAGE_TARGET to build INSTALLED_QEMU_SYSTEMIMAGE
This change checks if INSTALLED_SYSTEMIMAGE_TARGET
is defined to generate INSTALLED_QEMU_SYSTEMIMAGE
to improve debugging.

Bug: 79601115
Test: make -j
Change-Id: Ia1aad7dbaab1d2de11a1bc3ffe7c7ae714f5f6eb
Signed-off-by: Roman Kiryanov <rkir@google.com>
2019-02-15 10:37:54 -08:00
Bowgo Tsai
45db7cefb3 Support verifying system_other
This commit extracts the AVB key used to sign system_other.img into
system.img, for init to verify system_other's AVB metadata.

The extracted key will locate in:
    /system/etc/security/avb/system_other.avbpubkey

Bug: 123611926
Test: build and checks the following is generated
      $OUT/system/etc/security/avb/system_other.avbpubkey

Change-Id: Icdc703ff5a0d50f8140bb652507b9b4cbc8a2118
2019-02-13 17:00:49 +08:00
Treehugger Robot
cb52058f8f Merge "Adding per-partition SPL into AVB prop descriptors" 2019-02-12 23:30:13 +00:00
Steven Laver
0cf76f544b Merge "Allow properties to be derived from partition-specific properties" 2019-02-12 16:44:57 +00:00