Commit Graph

25714 Commits

Author SHA1 Message Date
Ulya Trafimovich
e245e00d7b Initialize DEX_PREOPT_DEFAULT based on global dexpreopt settings.
Bug: 177214554
Test: lunch cf_x86_phone-userdebug && m
Test: Ensure that `find out -name dexpreopt.config` lists before and
    after the fix are identical (for target cf_x86_phone-userdebug).
Test: TARGET_PRODUCT=mainline_modules_x86_64 \
    TARGET_BUILD_VARIANT=userdebug \
    build/soong/soong_ui.bash --make-mode UipbUtil
Change-Id: I28b38c08ad570d53dc679f9b42975545d457416e
2021-01-11 17:02:16 +00:00
yangbill
732b858481 Add unit_test option to module-info.json
Bug: 176096135
Test: atest -m hello_world_test, check module-info.json
Change-Id: Id8bc2eb0d93896afcbe5ce87b0205528615f090e
2021-01-08 17:36:56 +08:00
Treehugger Robot
17652e8981 Merge "Implement fake vendor snapshot" 2021-01-08 00:24:51 +00:00
Bob Badour
ddfcfb8e2b Merge changes from topic "revert-1541855-revert-1377717-metalics-BOEMJWNSHV-PBOZXBJQZD"
* changes:
  Revert^2 "Rough-in license metadata support to make."
  Revert^2 "Add variables for notice deps, license kinds etc."
2021-01-07 22:42:08 +00:00
Inseob Kim
c497641e6f Implement fake vendor snapshot
A fake vendor snapshot is a vendor snapshot whose prebuilt binaries and
captured headers are all empty. It's much faster to be built than the
real vendor snapshot, so users can exploit the fake vendor snapshot to
reduce the size of vendor snapshot they need, by installing the fake
snapshot and then inspecting the ninja dependencies.

Bug: 157967325
Test: m dist vendor-fake-snapshot
Change-Id: I7fa5d5033a296965b21e840765cc7fe02fd1f44e
2021-01-07 13:56:33 +09:00
Bob Badour
7a95820907 Revert^2 "Rough-in license metadata support to make."
Changed shell script to /bin/sh syntax for portability to mac_os etc.

54066744f0

Change-Id: Ibd472fc1bedfdc228a704108f0280b13ab1c9333
2021-01-06 20:52:43 -08:00
Bob Badour
21bd34fe09 Revert^2 "Add variables for notice deps, license kinds etc."
dcfb9c5ef5

Change-Id: I6a60f55ab0e7013061a695cb1b7c5ffde29577dd
2021-01-06 20:46:49 -08:00
Jose "Pepe" Galmes
bee0c588a8 Merge "Support for recovery snapshot." 2021-01-06 21:17:54 +00:00
Bob Badour
2d76d2df84 Merge changes from topic "revert-1377717-metalics-BOEMJWNSHV"
* changes:
  Revert "Add variables for notice deps, license kinds etc."
  Revert "Rough-in license metadata support to make."
2021-01-06 19:17:43 +00:00
Jerome Gaillard
dcfb9c5ef5 Revert "Add variables for notice deps, license kinds etc."
Revert "Export soong license data to make."

Revert "Add ability to declare licenses in soong."

Revert submission 1377717-metalics

Reason for revert: This has broken renderscript_mac target for aosp-master, see b/176909442

Reverted Changes:
I26ac54ca9:Define the standard license_kind rules.
I656486070:Export soong license data to make.
If9d661dfc:Export soong license data to make.
I97943de53:Add ability to declare licenses in soong.
Icaff40171:Rough-in license metadata support to make.
Ib8e538bd0:Add variables for notice deps, license kinds etc.

Change-Id: I1f672e6e8ec48f0141bb4b6cc4eb2efed1eeef6b
2021-01-06 19:00:05 +00:00
Jerome Gaillard
54066744f0 Revert "Rough-in license metadata support to make."
Revert "Export soong license data to make."

Revert "Add ability to declare licenses in soong."

Revert submission 1377717-metalics

Reason for revert: This has broken renderscript_mac target for aosp-master, see b/176909442

Reverted Changes:
I26ac54ca9:Define the standard license_kind rules.
I656486070:Export soong license data to make.
If9d661dfc:Export soong license data to make.
I97943de53:Add ability to declare licenses in soong.
Icaff40171:Rough-in license metadata support to make.
Ib8e538bd0:Add variables for notice deps, license kinds etc.

Change-Id: Iaf2243cba16f6191b022371a14f81ef8194a47d1
2021-01-06 19:00:05 +00:00
Bob Badour
5e35fecc1d Merge changes from topic "metalics"
* changes:
  Rough-in license metadata support to make.
  Add variables for notice deps, license kinds etc.
2021-01-06 18:08:06 +00:00
Inseob Kim
d8cc1352b5 Implement directed vendor snapshot
Vendors can now generate only needed modules by setting the following
Makefile variables:

- DIRECTED_VENDOR_SNAPSHOT: set to true
- VENDOR_SNAPSHOT_MODULES: list of snapshot candidates

e.g.

DIRECTED_VENDOR_SNAPSHOT := true
VENDOR_SNAPSHOT_MODULES := toybox_vendor sh_vendor libbase libcutils ...

Bug: 157967325
Test: m dist vendor-snapshot after setting those in BoardConfig.mk
Change-Id: Iea1ddbe78e143316fb6cb5027de90b9c83252f80
2021-01-06 23:10:41 +09:00
Bill Yi
0fc21ee8a5 Merge "Merge RQ1A.210105.003 to aosp-master - DO NOT MERGE" 2021-01-06 13:58:59 +00:00
Inseob Kim
5cbfbf4ca7 Merge "Support building mixed versions of sepolicy" 2021-01-06 05:07:05 +00:00
Bill Yi
8d34c584de Merge RQ1A.210105.003 to aosp-master - DO NOT MERGE
Merged-In: Ic0390b8c19cbe4b38042939647e316901bb4bd17
Change-Id: I4f5adfb48b892311c1bd2dd2a50b670547eb2fb5
2021-01-05 18:30:21 -08:00
Inseob Kim
fb7c801b67 Support building mixed versions of sepolicy
Now newer system policy and older vendor policy can be built together by
setting following variables:

- BOARD_SEPOLICY_VERS
- BOARD_REQD_MASK_POLICY (copy of older system/sepolicy/reqd_mask)
- BOARD_PLAT_VENDOR_POLICY (copy of older system/sepolicy/vendor)
- BOARD_(SYSTEM_EXT|PRODUCT)_(PUBLIC|PRIVATE)_PREBUILT_DIRS (copy of
  older system_ext and product policies)

Bug: 168159977
Test: try normal build and mixed build
Test: boot and check selinux denials
Change-Id: I4e2890c96cab69e60c83c60f8c396cfe049ec05b
2021-01-06 10:41:45 +09:00
Bob Badour
20fc1b3719 Rough-in license metadata support to make.
Change-Id: Icaff40171b94538219a8caa697b182dbdcc8229a
2021-01-05 08:42:48 -08:00
Bob Badour
6421674a39 Add variables for notice deps, license kinds etc.
Change-Id: Ib8e538bd09044a5791083b362d807cd9293833d5
2021-01-05 08:42:48 -08:00
Jiyong Park
cddea9b426 Add TARGET_FORCE_APEX_SYMLINK_OPTIMIZATION
The APEX symlink optimization is a build-time trick to save the
storage/RAM usage of APEX by replacing some files in APEX with symlinks
to the files in the system partition. The optimization however is
automatically turned off for 'updatable: true' APEXes because doing the
optimization for them will hide the sys-health implication until when
the APEXes are built unbundled (i.e. prebuilt) and thus the
optimization is impossible.

TARGET_FORCE_APEX_SYMLINK_OPTIMIZATION forcibly disables the safety net.
When it is set to true, the symlink optimization is done regardless of
the 'updatable' property. This is useful for some of the devices like Go
where most APEXes (even the 'updatable: true' ones) should be
effectively non-updatable.

Bug: 175630508
Test: TARGET_FORCE_APEX_SYMLINK_OPTIMIZATION=true m and check that
updatable APEXes have symlinks to system libs

Change-Id: I261fd4ab2dd8e62ff435306b11168121cbcf662a
2021-01-05 21:03:30 +09:00
SzuWei Lin
baf5c8114b Make ro.product.cpu.abilist.* to be fetched dynamically
The patch rename the original ro.product.cpu.abilist* to
ro.system.product.cpu.abilist*. The property service will
define ro.product.cpu.abilist* by the intersect ABIs of
ro.{partition}.product.cpu.abilist*.

Bug: 176520383
Test: build aosp_arm64-userdebug and check the system/build.prop
Change-Id: I26e404632b28e9f6abd462920e0084ad2022a763
2020-12-31 16:59:27 +08:00
Jose Galmes
5cd2547df9 Support for recovery snapshot.
Bug: 171231437
Test: source build/envsetup.sh
Test: ALLOW_MISSING_DEPENDENCIES=true m -j nothing
Change-Id: I6dbcf21ee26c53cd3ac573d118a99d68161aa2c7
2020-12-21 08:32:44 -08:00
Yo Chiang
817e104290 Merge "Add support for packing multiple vendor ramdisks in vendor_boot" 2020-12-21 03:46:05 +00:00
Martin Stjernholm
3839f03b7d Add check that a module doesn't try to override itself.
If that happens it will be left out entirely.

It would be nice to catch this on the Soong level, but there are
several separate code paths there so this ensures it isn't missed.

Test: `m nothing` with packages/modules/ArtPrebuilt/Android.bp that
  had this mistake
Bug: 172480615
Change-Id: I2d31679b2ca5b57bf14f35703c10093275209890
2020-12-18 17:38:06 +00:00
Oleksiy Avramchenko
d3d0f7d62e Skip generate-common-build-props for older devices without /product
Common ro.product properties are always generated for the
product partition, even if it is not present. This was introduced
for the R release with Ia88c8efecb18db9c27baa466e492bfd898b581d3
"Generate product build props always" commit.

It violates CDD requirements for the devices which were released
earlier. Add optional parameter to build-properties which allows to
skip the common properies generation and product partition specific
checks to make sure common properties are not generated for
the devices released before R and without product partition.

Test: manual, build product/etc/build.prop for shipping levels 28, 30
      and for the devices with and without product partitions
Bug: 174677451
Change-Id: Ia3275d7229d0a873e0a4f1d1ea7a25c758c85bb9
2020-12-18 00:53:20 +01:00
Martin Stjernholm
d6e9ea97a6 Temporarily set default to keep building with ART sources.
Enables us to switch the default in .bp files, so ART prebuilt builds
can be tested with `m SOONG_CONFIG_art_module_source_build=false`.

Test: m
Test: m SOONG_CONFIG_art_module_source_build=false
Test: `m nothing` on some lunch targets that failed on internal
Bug: 172480615
Change-Id: I78725f77819dc29b47d2438dfe724532e4d2df47
2020-12-17 16:00:27 +00:00
Yo Chiang
d21e7dc833 Add support for packing multiple vendor ramdisks in vendor_boot
Add support for partitioning the vendor_boot kernel modules into
multiple vendor ramdisk fragments. The partition granularity is kernel
module directory. This mechanism builds upon the existing
BOARD_KERNEL_MODULE_DIRS mechanism. For example, say we have three
kernel module directories:

BOARD_KERNEL_MODULE_DIRS := foo bar baz

We can then define a vendor ramdisk fragment:

BOARD_MKBOOTIMG_ARGS += --header_version 4
BOARD_VENDOR_RAMDISK_FRAGMENTS := dlkm_foobar

And let said ramdisk to contain the DLKM directories "foo" and "bar":

BOARD_VENDOR_RAMDISK_FRAGMENT.dlkm_foobar.KERNEL_MODULE_DIRS := foo bar
BOARD_VENDOR_RAMDISK_FRAGMENT.dlkm_foobar.MKBOOTIMG_ARGS := <mkbootimg args>

The built vendor_boot image would contain two ramdisks.
The first one being the "default" ramdisk, which contains DLKM directory
"baz" and the rest of the files that get's installed to
$(TARGET_VENDOR_RAMDISK_OUT).
The second one is the "dlkm_foobar" ramdisk, which contains the two DLKM
directories.

Design doc: go/vendor-boot-v4

Bug: 162864255
Test: Modify BoardConfig.mk to have a product build v4 vendor_boot
Test: Use unpack_bootimg to verify the vendor_boot image
Test: Teach a bootloader how to handle v4 boot image, flash boot &
  vendor_boot and boot device
Change-Id: Ibb1bbd7ebe36430c55ec6c4818c1d3888a319089
2020-12-17 11:07:04 +08:00
android-build-team Robot
d347de1f67 Version bump to RQ1A.210205.004 [core/build_id.mk]
Change-Id: Id846cdee713be9c77b1f9aca62175b247ef85969
2020-12-17 01:19:16 +00:00
android-build-team Robot
00993370b8 Version bump to RQ1A.210205.003 [core/build_id.mk]
Change-Id: Ifc0e46818342eb396dc57a755593f6f43c47eceb
2020-12-17 00:32:01 +00:00
Treehugger Robot
98b7ac4602 Merge "Move jacocoagent installation to base_system" 2020-12-17 00:25:50 +00:00
Yifan Hong
42cae00cb0 Move jacocoagent installation to base_system
jacocoagent and its dependencies emits artifacts to system/,
hence it belongs to base_system.mk. It was rather incorrect
to add jacocoagent to EVERY product makefile because those
product makefiles may be enforcing artifact path requirements
(e.g. generic_ramdisk.mk).

Test: EMMA_INSTRUMENT=true m nothing
Bug: 175605139
Bug: 173742069
Change-Id: If9cb93ab8fd69d11e764ab830dc791bbe6106cf5
2020-12-16 09:50:42 -08:00
Anton Hansson
ed3b56ebca Merge "Make TARGET_ARCH optional in BoardConfig" 2020-12-16 11:48:04 +00:00
Anton Hansson
e47d6e4a8c Merge "Add make support for Aml_abis and Ndk_abis options" 2020-12-16 11:38:49 +00:00
Anton Hansson
3ab1add1f2 Merge "Reformat _board_strip_readonly_list assigment" 2020-12-16 11:12:32 +00:00
android-build-team Robot
02157285ca Version bump to RQ1A.210205.002 [core/build_id.mk]
Change-Id: Ic89425a387bdbbb55064d9f0be992a45a5266d79
2020-12-16 00:19:42 +00:00
android-build-team Robot
ceec59a147 Make change and version bump to RQ1A.210205.001
Change-Id: I79647a21f2799112a0c9f43395eb8d422df8ae41
2020-12-15 21:49:54 +00:00
Paul Scovanner
15a1226d7d Update Security String to 2021-02-05
Bug: 175313938
Change-Id: I6a1139d288c24a11289fc53c9022fd6d70acd8e6
(cherry picked from commit d4d46ab023)
2020-12-15 21:45:24 +00:00
Anton Hansson
41f9cc2c6b Make TARGET_ARCH optional in BoardConfig
Not setting TARGET_ARCH is ok if TARGET_ARCH_SUITE is set instead. Skip
certain TARGET_ARCH-specific steps of the config:
- don't run the 'select' steps to figure out cpu flags
- don't generate dexopt config for TARGET_ARCH

Bug: 174315599
Test: lunch <product that sets TARGET_ARCH_SUITE but not TARGET_ARCH>
Change-Id: I74a9e71d0cc5c7f74d3b10b1c8bb89682c096d7c
2020-12-15 12:46:51 +00:00
Anton Hansson
5e05b8ef31 Add make support for Aml_abis and Ndk_abis options
Add a new TARGET_ARCH_SUITE which, when set to 'mainline_sdk' or 'ndk',
sets `Aml_abis: true` in soong.variables.

This is required to enable removing the custom soong.variables that
are being maintained for the ndk and mainline sdk builds.

Bug: 174315599
Test: TARGET_ARCH_SUITE=mainline-sdk m nothing; inspect soong.variables
      (ditto for ndk)
Change-Id: Ib651a637457310270840d721cdccf50bede3ee58
2020-12-15 12:46:46 +00:00
Anton Hansson
b7b3d8ead6 Reformat _board_strip_readonly_list assigment
Allows for adding comments between variable definitions. This matches
the style in product.mk

Test: m nothing
Change-Id: Icc1e3d635a885000c49371997a55001739c02587
2020-12-15 12:45:37 +00:00
Treehugger Robot
dec924e081 Merge "Revert^2 "Always turn on compatible property"" 2020-12-15 12:00:10 +00:00
Treehugger Robot
a25382e565 Merge "Allows GSI AVB keys on vendor boot even when not building vendor boot." 2020-12-15 02:48:43 +00:00
JaeMan Park
c21cde1007 Merge "Add java_sdk_library enforcement flag verification" 2020-12-15 00:00:33 +00:00
JaeMan Park
d06fe704b3 Merge "Add java_sdk_library enforcement flags to product.mk" 2020-12-15 00:00:05 +00:00
Diego Vela
f03fa0c5f2 Revert "Make ab_ota_partitions read only"
This reverts commit 929f1ad1d6.

Reason for revert: Caused a build break
Bug: 175633875

Change-Id: I6cb518a574c865a2e2c4ecdc4203dfa03bbf05d9
2020-12-14 23:08:31 +00:00
Daniel Norman
6af48c8312 Allows GSI AVB keys on vendor boot even when not building vendor boot.
This allows system-only builds (which disable vendor images) to inherit
from device makefiles that normally place GSI AVB keys on vendor boot.

Bug: 175594737
Test: lunch system-only build, m, observe warning not failure
Change-Id: Ib6c199d0a47b3b3be2143241d83ab586966cfd1e
2020-12-14 13:43:13 -08:00
Tianjie
929f1ad1d6 Make ab_ota_partitions read only
Now that we have moved the AB_OTA_BOOTLOADER_PARTITIONS &
AB_OTA_RADIO_PARTITIONS to BoardConfig, we can make the
ab_ota_partitions read only.

Eventually, the variable will be exposed as a product build
property. And we want its value to stay unchanged during the
build process.

Bug: 162148770
Test: build coral
Merged-In: I37ab41cf2ed7bc9cb6db6b4700c03ab48ed31fff
Change-Id: Ied45347c3e56e56d1372d51b98d7e52b02ff4755
(cherry-picked from commit 6e93f484ac)
2020-12-14 15:47:51 +00:00
Yifan Hong
e086ae045e require-artifacts-in-path does not require PRODUCT_NAME/BRAND.
Also make generic_ramdisk.mk not to define them.

Test: m nothing
Change-Id: I5eff49abebe4194e3eba78557e5765e6ef2231e6
2020-12-10 13:18:29 -08:00
Anton Hansson
63d3835f4a Merge changes Ib2a4a208,Ic8235912
* changes:
  Set allow list for generic ramdisk
  Add a "relaxed" mode for require-artifacts-in-path
2020-12-10 12:20:26 +00:00
Jaegeuk Kim
863a120b51 Merge "Enable system partition compression" am: 74e57f6482
Original change: https://android-review.googlesource.com/c/platform/build/+/1520098

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7b50510b61129704f71ab4d9c474d74f4739aef0
2020-12-10 00:58:46 +00:00