Commit Graph

2074 Commits

Author SHA1 Message Date
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
Steven Laver 9e73e82a12 Allow properties to be derived from partition-specific properties
This change allows ro.product.[brand|device|manufacturer|model|name] and
ro.build.fingerprint to be derived at boot time (and in the OTA
generation scripts) from partition-specific properties.

Test: booted system image, verified properties
Test: booted recovery image, verified properties
Test: unpacked OTA package, verified build fingerprint
Bug: 120123525
Change-Id: Iadd230a0577f35c7c37b0f911e91a5c2863ed1fe
2019-02-11 23:03:00 +00:00
Treehugger Robot 143ff1ff9a Merge "Only pick DTBs from BOARD_PREBUILT_DTBIMAGE_DIR" 2019-02-08 22:02:05 +00:00
Hridya Valsaraju c63a74474b Only pick DTBs from BOARD_PREBUILT_DTBIMAGE_DIR
This change is required to prevent the build system
from picking up DTB files from subdirectories to
BOARD_PREBUILT_DTBIMAGE_DIR.

Test: make bootimage
Bug: 123648105

Change-Id: Ibc2a133f3c9be6362579dc9bf9ca399912b9d8a2
2019-02-08 09:36:44 -08:00
Dan Willemsen f4249d1052 Make the duplicate header copy warning more explicit
So that it's easier to understand which makefile is actually being used,
and which ones are being ignored.

Test: manually check the warnings on a device that sets BUILD_BROKEN_DUP_COPY_HEADERS
Change-Id: If9e29458eaa655b28e6b770d194d1da867cb8d16
2019-02-07 18:43:53 -08:00
Hridya Valsaraju a941899906 Allow for a separate recovery DTBO to be used for non-A/B devices.
This CL allows for a separate recovery DTBO to be used by
specifying it with the board config variable
BOARD_PREBUILT_RECOVERY_DTBOIMAGE.

Bug: 123889996
Test: make recoveryimage and make dist on a target that builds
recovery.img and unpack_bootimg.py to test that BOARD_PREBUILT_RECOVERY_DTBOIMAGE
gets used as the recovery DTBO.

Change-Id: I6f83f37c3c894b2acddab1000224cd433649faa1
2019-02-05 18:19:39 +00:00
Treehugger Robot 76f2628654 Merge "dynamic partitions: round partitions to BOARD_SUPER_PARTITION_ALIGNMENT" 2019-02-02 01:39:37 +00:00
Yifan Hong 5cc9230914 Merge "Add kernel info to compatibility.zip" 2019-01-31 19:06:19 +00:00
Yifan Hong 770ab053b0 Add kernel info to compatibility.zip
Add kernel configs / version to verified_assembled_vendor_manifest.xml
so that the kernel of the incoming package can be checked against
the framework. Previously, the running kernel was used instead.

Bug: 111125947
Test: test_extract_kernel
Test: manual OTA on Pixel 3 from build:
      Android P (kernel version 4.9.96)
      to ToT build:
      device kernel version = (manually modified) framework requirement = latest,
      PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS = true

Change-Id: Id524a58e94bdb6bba348ca461c9d33614ce451a9
2019-01-30 13:28:03 -08:00
Bowgo Tsai cca76ddc1b Adding per-partition SPL into AVB prop descriptors
Bug: 119549677
Test: build and avbtool info_image
Change-Id: I0726d740c532ffd70beb09f98e088abcdfa110ef
2019-01-30 21:54:54 +08:00
Bowgo Tsai 867ab6606e DAP: building system_other.img for retrofit devices
For dynamic partitions in retrofit devices, system partition will be
a logical partition but system_other is not. However, current
build system use the same settings (logical) for both system.img and
system_other.img, leading AVB unable to locate the footer from the end
of system_other partition.

This commit support building system_other.img with correct partition size
while building system.img as a dynamic image.

Bug: 123506156
Test: check there is "system_other_size=2952790016" in file
      $OUT/obj/PACKAGING/system_other_intermediates/system_other_image_info.txt
Test: build system_other.img, then
      `simg2img $OUT/system_other.img system_other.img.raw`, checks the
      raw image size.

Change-Id: I748320a7770c694d06f06f4a35bfceb622849aa8
2019-01-30 09:58:07 +08:00
Mark Salyzyn 1d8d3bef47 dynamic partitions: round partitions to BOARD_SUPER_PARTITION_ALIGNMENT
For the worst minimum_io_size for the BOM for the flash device on
the products, set BOARD_SUPER_PARTITION_ALIGNMENT so that we can
in advance get a summary from the build that the update may fail.

Test: build
Bug: 122328872
Change-Id: I95515e58e5308b7a1e637fc8c8791c0fc61e81f2
2019-01-29 14:50:10 -08:00
Tom Cherry c683233b64 Merge "Remove ro.expect.recovery_id" 2019-01-29 17:07:51 +00:00
Anton Hansson 02d7d48d4a Merge "Allow merging product_services into /product" 2019-01-29 09:28:40 +00:00
Yifan Hong ab1ec4dbe3 Enforce no unused HALs when product matrix exists.
Also, remove old TODO message because it cannot be fixed.

Bug: 120600021
Test: builds
Test: remove entry from product matrix, build fails.

Change-Id: I9a6e954a1003aa4ad1bbca184ad7041ffad6b99b
2019-01-28 15:09:54 -08:00
Anton Hansson d26e4eeec8 Allow merging product_services into /product
Allow devices to specify TARGET_COPY_OUT_PRODUCT_SERVICES := product,
which in effect treats all product_services modules the same as product
modules.

Do not generate license and build props for product_services when
this settings is enabled.

Bug: 113098451
Test: boot downstream product
Change-Id: Id51230b969900bebcf19d0138dfd6187dfce25b1
2019-01-28 21:24:59 +00:00
Tom Cherry 56ff89a90a Remove ro.expect.recovery_id
This is not used by anyone and the other half of the code to compare
against it is already functionally dead, so remove this.

Test: build
Change-Id: I44ed087cb7735bbc23e30b6c310c80eb3b7b6488
2019-01-28 10:56:37 -08:00
Treehugger Robot 8faac3669e Merge "Add security patch level to hashtree footer of system" 2019-01-24 19:28:29 +00:00
Treehugger Robot d2da2ce398 Merge "Sign system_other.img with AVB" 2019-01-24 05:31:37 +00:00
Treehugger Robot 2463c3ab2a Merge "Support including DTB image" 2019-01-23 20:56:55 +00:00
Hridya Valsaraju 9683b2f136 Support including DTB image
Bug: 111136242
Test: When BOARD_PREBUILT_DTB_DIR is set correctly,
generated $OUT/boot.img contains the DTB image.

Change-Id: I282e31b04cc60383377b9e9b54f8fe64a8140242
2019-01-23 09:14:55 -08:00
Bowgo Tsai 1e04bf7260 Sign system_other.img with AVB
Support signing system_other.img but shouldn't include it into the
top-level vbmeta.img. system_other verifiation will not be included
in /vbmeta chains and will be done separately.

Bug: 112103720
Test: avbtool info_image --image $OUT/system_other.img
Test: avbtool info_image --image $OUT/vbmeta.img, checks 'system_other' is NOT included.
Test: Checks $OUT/obj/PACKAGING/system_other_intermediates/system_other_image_info.txt
      See the following:
        avb_system_other_hashtree_enable=true
        avb_system_other_add_hashtree_footer_args=--rollback_index 1551744000
        avb_system_other_key_path=external/avb/test/data/testkey_rsa4096.pem
        avb_system_other_algorithm=SHA256_RSA4096

Change-Id: Ia152aaab1387dcf556a42222adb39ea76881263a
2019-01-23 15:17:41 +00:00
Hsin-Yi Chen 41319b3abc Add security patch level to hashtree footer of system
Test: avbtool info_image --image system.img
Bug: 122705329
Change-Id: I7b325a9a9aba2d98cb94c5fb8488b92f54e45dab
2019-01-22 17:11:15 +08:00
Evgenii Stepanov ffaf4815fc Merge "Limit 2 uses of SANITIZE_TARGET to ASan." 2019-01-19 01:32:51 +00:00
Evgenii Stepanov 60beecc90c Limit 2 uses of SANITIZE_TARGET to ASan.
These two places are checking for ifdef(SANITIZE_TARGET) but what
they are really looking for is the second stage of ASan build.

Fix the checks so that they do not apply to HWASan.

I have not seen any change in behavior, but there are some new files
under /system in hwasan build that were not there before, and things
keep working in general, so this feels like the right move.

Bug: 112438058
Test: none; SANITIZE_TARGET=hwaddress keeps working
Change-Id: I4544f408263b908be6ef4a47dd2b5c937e0c1f33
2019-01-18 14:06:11 -08:00
Dan Willemsen 674952098b Add PRODUCT_BUILD_*_IMAGE, BUILDING_*_IMAGE to control building of images
These centralize the decisions on whether to build certain images or
not, and allow the product definition to override that choice.

There are a few use cases here:

 * For GSI-like cases, we only want to build the system image. This
   didn't really change, but it's somewhat simpler to configure, and
   easier to understand the build logic.

 * On the opposite side, when you're planning on using a GSI, the device
   specific build can only build the vendor images (or some other set).

 * Some cases (Fuchsia, etc) don't want to build any images, as they'll
   be distributing the build artifacts in their own packaging.

I suspect in the future, TARGET_BUILD_APPS may be able to be refactored
into the third use case.

Test: treehugger
Test: Create a product definition that includes nothing, try to build it.
Test: compare build-aosp_crosshatch.ninja and build-crosshatch.ninja before/after
Change-Id: I685ab841be3718d3dd7052c28ccd764bb6f1991a
2019-01-18 13:11:34 -08:00