words() attempts to join all the elements of a list
and then resplit them to more closely match make.
But sometimes, like when calling words() on a product
variable, not all of the elements are strings. In
that case, just return the list unchanged.
Bug: 267407943
Test: ./out/rbcrun ./build/make/tests/run.rbc
Change-Id: I738d0c86c8935f446807cc79623f796e8cae3c01
Dexpreopt generates profiles that need to be installed in the APEX.
Soong will skip the dex2oat step after it generates the build rule for
profiles.
Bug: 241823638
Test: -
1. Patch ag/20581649 PS2.
2. banchan com.android.btservices x86_64 && m
3. Check that "javalib/service-bluetooth.jar.prof" exists in the APEX.
Change-Id: I5cad1b0e1027935fd78e80ad7b07e039f7b8d432
When building a target with a prebuilt init_boot image, we still need to
use the correct name for the image.
Test: m
Bug: 268050089
Change-Id: I8fd11d8c17c2c140b7cff1dd8255c8b8728ea196
Additional analysis revealed more edge cases where external library
code was getting kept unnecessarily. Further refine the keep rules to
avoid these cases. Now, we only apply keep globally for the
`com.android.internal.annotations.VisibleForTesting` annotation.
VisibleForTesting annotations defined externally (e.g., by androidx or
guava) will *only* be respected in platform-defined packages. This
helps trim unused code from deps like gRPC and Dagger, saving up to
~hundreds of KB per package that uses these libraries.
Bug: 248580093
Test: m + verify exclusion of external test code (e.g., from dagger)
Change-Id: Iab7559c08d3ae1ac74f18e3cf3a1b4828a3736cf
Enable the new soong_zip feature to general-tests.zip,
host-unit-tests.zip, android-cts.zip, android-mts.zip etc. This is a
following change of https://r.android.com/2395452. With `-sha256` flag,
file header of generated zip files contains SHA256 checksum for each
file, which can then be used by downstream systems.
Bug: 259513199
Test: run `m dist host-unit-tests general-tests cts mts` and check zip
files under `out/dist/`
Change-Id: I726b5261d177beadcd8f707e2cd2cb5cdef20273
Add support for creating a modules.load.recovery file in the
vendor_kernel_boot image when
BOARD_VENDOR_KERNEL_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD is specified.
Bug: 266752750
Change-Id: I430b785c13dca84949da5032e05025385168df07
Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
Bug: b/261642850
Test: Build and check warnings. Add two xfail tests in art and see the
results locally.
Change-Id: I122ee2cbfa37bdb71026781efe6cb7131b873ae0
Some of these -dontwarn settings were added because r8 did not have access to transitive dependencies. Now these dependencies are passed as -libraryjars we can remove some of the -dontwarns.
Test: TARGET_BUILD_VARIANT=userdebug MODULE_BUILD_FROM_SOURCE=true \
UNBUNDLED_BUILD_SDKS_FROM_SOURCE=true \
packages/modules/common/build/mainline_modules_arm64.sh -j120
Bug: 242088131
Change-Id: I408a8f3ac9d11c1bd6608f2a18fd2291db8c9275
Added new properties, which could be set for AOSP/GSI builds.
These properties are going to be used for attestation feature through
Build.java class. Earlier in AOSP builds attestation ids were different
from provisioned ids in Keymint. These properties will be identical to
provisioned ids.
Bug: 110779648
Bug: 259376922
Test: atest VtsAidlKeyMintTargetTest:PerInstance/NewKeyGenerationTest#EcdsaAttestationIdTags/0_android_hardware_security_keymint_IKeyMintDevice_default
Test: atest VtsAidlKeyMintTargetTest:PerInstance/NewKeyGenerationTest#EcdsaAttestationIdTags/1_android_hardware_security_keymint_IKeyMintDevice_strongbox
Test: atest CtsKeystoreTestCases:android.keystore.cts.KeyAttestationTest CtsKeystoreTestCases:DeviceOwnerKeyManagementTest
Change-Id: I9eea5e0f2fabc667b3efedeeefdf12e7b4fc9502
Extra space in variable names causes dependencies for
INSTALLED_VBMETAIMAGE_TARGET to be missing. Remove extraneous sspaces.
Bug: 263568805
Test: lunch cuttlefish, m distclean, m, and check
$OUT/vbmeta_vendor_dlkm.img
Change-Id: If818a8af42c407a7213f58a7142dffb9dee1fd16
1. The location of the r8.jar and d8.jar files was no longer correct.
2. $(JAVA) was not defined before rbe.mk was included.
3. $(JAVA) includes options, which much be stripped to be a rewrapper toolchain input.
Test: ran against an RBE cluster with RBE_D8_EXEC_STRATEGY=remote and RBE_R8_EXEC_STRATEGY=remote
Change-Id: Icf434f5c0fda687c70c75b01b0bfd63bcd8cc474
For targets with BoardUsesRecoveryAsBoot set to true, binaries in
generic_ramdisk are installed to $OUT/recovery/root/first_stage_ramdisk
This path is not on generic_ramdisk.mk 's allowlist, hence build fails.
To fix the failure, add $OUT/recovery/root/first_stage_ramdisk/system to
allow list.
Test: th, lunch eos-userdebug(a dedicated recovery partition target) and build.
Bug: 265477065
Change-Id: I89cf229adc028a7e5de632b9a3188ecb411de735
initrd_bootconfig is required for signing the virt apex & hence needs to
run outside the source tree as well.
Test: NA
Bug: 245277660
Change-Id: Id1776661e76a75cfb3cf530e7777dc4292522dd0
Currently we only have vbmeta_system and vbmeta_vendor. Add
BOARD_AVB_VBMETA_CUSTOM_PARTITIONS , which allows OEMs to define
their own vbmeta_*.img partitions. example: aosp/2381823
Bug: 263568805
Change-Id: Id671e2c3aee9ada90256381cce432927df03169b
/dev/null is a security requirement for bionic, /dev/console is needed
so the kernel can set-up stdout stderr and stdin before running /init.
Bug: 254835242
Change-Id: I865856885e9957ea17e28b62273e701af9bfc56f
When we have dedicated .mk files for each modules (e.g. usb, drm, etc)
and those modules have their own linker configuration requirements, it
would make more sense to have "fragments" for linker configuration.
This change introduces a new list variable to store the list of linker
configuration fragments. When it's set, vendor/etc/linker.config.pb is
generated from the list of input fragments.
Bug: 264330513
Test: set PRODUCT_VENDOR_LINKER_CONFIG_FRAGMENTS
Test: m vendorimage (generates vendor/etc/linker.config.pb)
Change-Id: I9eed0f90add0191885b7195efdab94b5b1a4a62d
Some products access the SOONG_CONFIG variables
directly, instead of using soong_config_set. When
they do that, they could end up with duplicate values
in those variables, causing duplicate keys to be
generated in a json map.
Use $(sort) to dedup the map keys before writing them
out.
Bug: 249685973
Test: Presubmits
Change-Id: If0c16377bdfbd3f836ebec9262bec7cf562f339c
Inherit references (@inherit in make, 1-tuples in starlark)
usually appear in list product variables, where they're
evaluated before printing. But sometimes they can be copied
into a regular global variable, in which case they won't
be evaluated before printing. The 1-tuples were failing to
print, so adapt them to their make representation before
printing.
Fixes: 264554449
Test: ./out/rbcrun ./build/make/tests/run.rbc
Change-Id: I5ac6eb996c25ee5e77aa26ed5c4b6b6cc31819d1
This reverts commit 97c140ccad.
As vsdk can capture hwasan snapshot with aosp/2358699, we don't need
this workaround any more.
Bug: 234772527
Test: TH
Change-Id: I94e751949d679a31060bb5fea0147947fc6682f4
The target was missing in the mk file, causing "commands commence before
first target" error.
Test: TH
Change-Id: I0ec4f636daf1171e81bf9c7c764b15e07a25fc80
Add environment variable KEEP_APEX_INHERIT condition check to set the
proper value of Soong conditional variable library_linking_strategy. If
the KEEP_APEX_INHERIT exists, the "min_sdk_version" in condition will be
set to "apex_inherit". For more detail:
https://docs.google.com/document/d/1R2vZw0cQa-haAMgFyQ682uSq9aGBNQrzMHKIsU17-XY/edit?usp=sharing&resourcekey=0-gUbs463r9LCKs7vdP_Xkmg
Test: build module locally, and check the corresponding change.
Presbumit
Bug: 254634795
Change-Id: I0ddc999a19d9f164477d69be0e4aebc91e06a3ad
Merged-In: Ic5da1c83b3b9c090bc2a24d36b1a4ac936ce1a59
Updates hardcoded /system path to use
the qualifier before colon to support
/system_ext paths in dex_preopt.mk.
Bug: 155630745
Test: m dist droid with a system server
library on a system_ext partition
Change-Id: I4dccc1f55bd2cafa13d57b46f122c44f66da335b
checkvintf --check-one is to check the consistency of VINTF data in a
single partition. To read VINTF from /vendor partition, it should read
/apex as well to gather VINTF from vendor apexes.
Bug: 262189711
Test: m check-vintf-all
Change-Id: I70b194f4dae47ca6080dcdfb3baa69ac7da9b653
Make's clear-var-list causes the variables to exist as empty strings.
Mimic that functionality in starlark for the variable diff and ?=.
Bug: 262303006
Test: ./out/rbcrun ./build/make/tests/run.rbc
Change-Id: I5f9c8cf342d875b1022c5c74906e59fa68fcd6c9
intention was to symlink modules in vendor_dlkm to system_dlkm. Typo
caused the same modules to link itself.
Test: build, make sure vendor_dlkm's modules.dep contains system
dependency
Change-Id: I19664cd9a8578566d3a038885b8ce27556801a79
Kernel modules in vendor_dlkm might have dependency on system_dlkm. To
correctly generate modules.dep files, copy system_dlkm modules to depmod
staging dir before calling depmod.
Test: m, check $OUT/vendor_dlkm/lib/modules/module.dep, make sure it
contains dependency on /system/lib/modules
Bug: 149866755
Change-Id: Ibdf6d63df1413543471a3d18108eba6fdcde9ba4
This gets b (and other scripts that are coming soon) into the path without running lunch.
Also gets rid of the make dumpvar ANDROID_BUILD_PATHS variable, used to set a few more paths,
so that the setting is all in one place, now that the get_abs_build_var is cached.
Test: Lots of manual checks of before and after combinations
Change-Id: I745168c43ccf2fef4cdd22657fd087f1ad07e510
Currently, if BOARD_*_KERNEL_MODULES_LOAD is set to empty string, we
default to load all modules listed in BOARD_*_KERNEL_MODULES. For
system_dlkm, we do not want to load any modules unless they are
dependency of vendor kernel modules. Therefore we need to create an
empty modules.load file for system_dlkm. Add 'false' as an out of band
value to indicate that an empty modules.load file should be generated.
Bug: 149866755
Test: th
Change-Id: Ieaaeb2f9a824e97671acff465bbd4da83dfd9aa0
Example usage:
PRODUCT_INCLUDE_TAGS += use_myspecial_sdk
This also populates the allowlist with go/nogo mainline tags. Usage of
`PRODUCT_INCLUDE_TAGS` outside this allowlist will raise an error
in product config
Test: TH
Change-Id: Ica82a8f65cbfda600d72fc54fb873c1eaa1666a7
Add the pvmfw.bin binary to the target_files archive to bring back
ATC-based change detection for pvmfw (which compares the content of
PVMFW/ between builds) and therefore bring back our TreeHugger
pre-submit tests for it. Those were introduced in c7b837872d ("Create
$(zip_root)/PVMFW & archive prebuilt used") but inadvertently removed
in d000004876 ("core: Get pmvfw.img partition from Soong").
Bug: 261393794
Test: m target-files-package
Change-Id: I0141d59154b54641cb348af3b98fe12624d5939e