If OEM's custom partitions directly apply to AVB-enabled A/B AOSP-defined partitions, and if those AOSP partitions are configured to be dynamic, that custom partitions should be dynamic as same as the others to catch up with AOSP partitions' changes when product is updated through OTA.
Remove valid dynamic partitions' list since that is no more necessary.
Bug: 238968263
Change-Id: Ic69f4ba58304110932b70d325cbb61ca8a5afee0
There is a lot of pending cleanup pending on always having
the VNDK enabled. For instance, when some devices always
build with the core variant, it is impossible to have code
excluded from the system variant, since vendor code on
non-VNDK devices wouldn't be able to build.
This CL merely disables the flag. When it lands, there is a
lot of cleanup that would follow.
Bug: 122954981
Test: ¯\_(ツ)_/¯ removing untested paths
Change-Id: Ia9380fe54729ce1ab37cf0f5e8512be45cd550c7
Both androidx (Jetpack) and com.google.common (Guava) define
@VisibleForTesting annotations. These are used within these libraries
for test purposes, but have also been adopted throughout the platform
for platform-specific test code. Consequently, the current keep
rules end up keeping not only platform test code, but also library test
code that isn't actually needed.
Refine these rules by restricting VisibleForTesting-annotated keep
rules to include code *outside* of Jetpack/Guava. A longer term
solution will involve migrating away from these annotations toward
the platform-defined @TestApi and internal @VisibleForTesting variants.
Note that platform code using the androidx* and c.g.common*-defined
@VisibleForTesting annotations will still be kept.
This saves about ~11MB of dex code from platform apps/services.
Bug: 239961360
Test: m + validate dex changes for shrunk packages (SystemUI/Launcher)
Change-Id: Icd70090e615b72a2cfb9ce8c43edb17cb46e05e2
To migrate libwifi-hal module from make to soong, WIFI_ make variables
are added to soong config variables in `wifi` namespace.
Bug: 239984067
Test: m libwifi-hal
Merged-In: If60f5909619af887be8e0086a8dfef65dc97cce0
Change-Id: If60f5909619af887be8e0086a8dfef65dc97cce0
(cherry picked from commit 4abb3d43b4baf74cf7b17fee380d5b4c77a2bc9d)
Test: Built AFL fuzzers individually and built all using haiku command
and built libfuzzers individually and also by using haiku command. Ran
selected fuzzers manually to ensure fuzzing still worked.
Description: Previously we needed to add cc_afl_fuzz to build an afl fuzz binary,
however, to turn current libFuzzers into AFL fuzzers this would required
an update to each Android.bp file which is a lot of work, and would also
require an approval from each Android.bp file owner, which is even more
work.
To get around this (and also to match how AFL fuzzers are built in G3)
we will build AFL++ fuzz binaries by command line option FUZZ_FRAMEWORK.
When FUZZ_FRAMEWORK=AFL is set, all cc_fuzz modules will be built
Change-Id: I994bde63b759046c9e3d75d3acfdc1352412005b
Disable R8 shrinking by default if there are additional
SYSTEM_SERVER_JARS that may be downstream from services.jar, or if
the jar ordering is unreliable.
The longer term solution will be to feed R8 the SYSTEM_SERVER_JARS
explicitly during the shrinking phase, but for now this avoids
potential issues with such dowstream jars. Note that specific
products or targets can still opt-in explicitly even if there may be
ordering issues in SYSTEM_SERVER_JARS.
Bug: 240588226,235484969
Test: m + lunch various Arc/Wear/Auto targets
Change-Id: I1d824e1e61de65604123b65b25b192a8a32fd0c1
With R8 full mode, these annotations must be explicitly kept as
attributes. Also keep annotation defaults as they may be used at
runtime.
Test: m + presubmit
Bug: 215530220
Change-Id: Ibab630cd8498c5789ebcad6785fda24967df4d61
For some reason, some internal products were failing the
quick rbc ci check purely because of indentation differences
in the variable dump file. That file has a lot of wonky
leading indentation due to the foreaches and line breaks
in the function implementation that I couldn't figure
out how to remove. Instead, use a sed command to remove
leading spaces after writing the file.
Bug: 239453560
Test: build/bazel/ci/rbc_dashboard.py --quick on a new internal-only product
Change-Id: I4b34d8e0b5dbbfcbb9ed35345d216ca11a5a1198
When trying to build a single 64 bit and 32 bit image, there are
a few executables that are prefer32. When set, this will force all
of those targets to be compiled as 64 bit.
Test: With this option, drmserver/mediaserver are built as 64 bit.
Test: Without this option, drmserver/mediaserver are built as 32 bit.
Change-Id: I84f6be7fe0fa3a9ea86ecc4dd785aaf1825f9925
This is safe even though permission is not an optional mainline
module because devices that support mainline must pass GTS and
testModulesSignedCorrectly and testModulesPreloadedCorrectly in GTS
currently tests this, along with testMainlineApprovedTrain which checks
mandatory/optional, signing keys, and if what's preloaded are part of
approved trains.
Bug: 238175656
Test: # Cherry pick to branch that has Google signed prebuilts for
# permission and builds from prebuilts by default.
# Update the permission to an sdk snapshot generated with
# r.android.com/2151273.
# Make sure that the permission is built from prebuilts by
# default
Change-Id: Id4eb9ba0da8a05c41d3b29b1cb8fa1d2d485c7b9
(cherry picked from commit fb72d542ad)
Merged-In: Id4eb9ba0da8a05c41d3b29b1cb8fa1d2d485c7b9
(cherry-picked from fb72d542ad)
This is safe even though permission is not an optional mainline
module because devices that support mainline must pass GTS and
testModulesSignedCorrectly and testModulesPreloadedCorrectly in GTS
currently tests this, along with testMainlineApprovedTrain which checks
mandatory/optional, signing keys, and if what's preloaded are part of
approved trains.
Bug: 238175656
Test: # Cherry pick to branch that has Google signed prebuilts for
# permission and builds from prebuilts by default.
# Update the permission to an sdk snapshot generated with
# r.android.com/2151273.
# Make sure that the permission is built from prebuilts by
# default
Change-Id: Id4eb9ba0da8a05c41d3b29b1cb8fa1d2d485c7b9
Merged-In: Id4eb9ba0da8a05c41d3b29b1cb8fa1d2d485c7b9
Some targets rename protobuf.MessageLite with jarjar rules. This change
adds keep rules to keep the fields of renamed classes.
Bug: 233746531
Test: m checkbuild.
Change-Id: Ib487dbd35f69654489aa28577afb47b9fb87c6f6
Merged-In: I986f05455b45651749fb5f819661041d7399f683
Revert "Adding support for building AFLpp Test: Build AFL fuzzer..."
Revert submission 2124256-AFLpp support in Soong
Reason for revert: It is breaking the build
Reverted Changes:
Ie07ec3368:Adding support for building AFLpp Test: Build AFL ...
I5bd6d1e9b:Adding support for building AFLpp Test: Built AFL ...
Change-Id: Iad3fa47397cfe3310f80e109af93d66eb40d9ab4
Let the fsverity_manifest_generator logic be reused and just keep the
bits to generate the BuildManifest.apk. Since this can all be acheived
with a series of shell commands, remove the python script and just do it
directly in the Makefile.
Bug: 237384936
Test: TH
Change-Id: I168dc1cea0be72b5098f99e4183e080a687fb03e
With this change, if BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT is unset, a
target will be declared for super.img so it becomes possible to build it
(e.g. with `m superimage`), but it will not be part of the default `droid`
target. This is useful for building a `super.img` on targets that do
not normally need one without needing to go through a slow `m dist` step.
Change-Id: I599e93b3fc41fc2c0642761fcda757c40e2736d6
64-bit GSI requires support both 64_32-bit and 64-bit devices at
the same time. Add a new variable TARGET_DYNAMIC_64_32_MEDIASERVER
to put mediaserver_dynamic.rc into GSI. Which starts 64-bit
mediaserver if ro.zygote is zygote64. Otherwise, it keeps the
original behavior to start 32-bit meidaserver.
Bug: 236664614
Test: make gsi_arm64-user; Check system/etc/init
Test: make gsi_arm-user; Check systen/etc/init
Test: cts-tradefed; run cts-on-gsi -m CtsViewTestCases
Change-Id: I74699ec5fafadcbe78a7fef6d10aaed752cd5afa
If TARGET_NO_KERNEL is true (device has prebuilt boot.img), then the
init_boot.img build arguments wouldn't be propagated correctly.
This is because INTERNAL_INIT_BOOT_IMAGE_ARGS is misplaced within a
`ifneq ($(strip $(TARGET_NO_KERNEL)),true)` conditional block.
Fix this by moving INTERNAL_INIT_BOOT_IMAGE_ARGS initialization into the
`ifeq ($(BUILDING_INIT_BOOT_IMAGE),true)` block, which is closer to its
first use.
Bug: 237630862
Test: m initbootimage
Change-Id: I6c0ee2c4b5d0be77a93311eba714e0ed555ffd25
Some test modules such as `android_test` use the `host_required` attribute to include additional harness dependencies. For example, `CtsLibcoreTestCases` references `cts-dalvik-host-test-runner` in the `host_required` attribute since those jars are required by Tradefed at runtime.
This information needs to present in module_info.json and exported to properly generate Bazel targets that include these runtime dependencies.
Test: m out/target/product/coral/module-info.json
Bug: 220991354
Change-Id: I8d2ab0da04c9f4aff17d290999c69ffe0534729f
This reverts commit 9f1fad04ce.
Reason for revert: Fixed latent bug in OTA test
This change creates license texts and lists of projects to share for
individual files in dist instead of for dist goals.
If a distribution needs the license texts for part of a dist file or
for a combination of multiple files, whoever is distributing will have
to create a suitable text notice using `gen_notice{}` or `testnotice`
and include it among the dist files for the goal using `dist-for-goals`
or equivalent.
Bug: 151177513
Bug: 210912771
Bug: 235333302
Bug: 232138105
Bug: 235302632
Test: m cts dist
Test: m droid dist
Test: tapas google-tradefed-all && m dist
Change-Id: I9fbcb07acfa7b14a140563cb031374160b6b23c2
Merged-in: I9fbcb07acfa7b14a140563cb031374160b6b23c2
The makefile product inheritance code was supposed
to deduplicate inheritance calls, but there was
a bug in the uniq-word function that caused it
to not work when duplicated words were adjacent.
$(subst |||x|||,||| |||,|||x|||x|||) produces
||| |||x||| instead of ||| ||| |||.
Rewrite the uniq-word function to fix the bug.
This issue was causing a discrepency between
the makefile and starlark based product configurations,
as the starlark implementation didn't have this bug.
Bug: 237019892
Test: ./build/bazel/ci/rbc_dashboard.py --quick on an internal-only product
Change-Id: I543a80746412ffcb9743203399413a0e707111e6
(cherry picked from commit dccd189954)
Previously, any setting of SOONG_CONFIG_<m>_module_source_build (where
<m> is one of wifi, uwb or bluetooth) that was made before the
core/android_soong_config_vars.mk was processed would be replaced with
false. This change will only set them to false if they have not been
previously set.
Bug: 233965247
Test: m nothing
# After setting SOONG_CONFIG_wifi_module_source=true before this
# code. Without this change out/soong/soong.variables uses false
# for the wifi_module/module_source config variable. With this
# change it uses true.
Merged-In: I1dffeb055a68250f574630d4ef5fedc51bad4a2b
Change-Id: I1dffeb055a68250f574630d4ef5fedc51bad4a2b
Previously, any setting of SOONG_CONFIG_<m>_module_source_build (where
<m> is one of wifi, uwb or bluetooth) that was made before the
core/android_soong_config_vars.mk was processed would be replaced with
false. This change will only set them to false if they have not been
previously set.
Bug: 233965247
Test: m nothing
# After setting SOONG_CONFIG_wifi_module_source=true before this
# code. Without this change out/soong/soong.variables uses false
# for the wifi_module/module_source config variable. With this
# change it uses true.
Change-Id: I1dffeb055a68250f574630d4ef5fedc51bad4a2b
Flip the setting that controls R8 shrinking for system_server from
opt-in to opt-out. This can be controlled by vendor makefiles and from
the command-line using the `SYSTEM_OPTIMIZE_JAVA` boolean build flag.
Note that this change only enables code shrinking for system_server,
and should not impact stack traces except for certain stack frames
involving synthetics.
Additional (vendor) code that is loaded dynamically into
system_server, that references system_server code, should use
system_server APIs that are expicitly annotated with
`@android.annotation.SystemApi`.
Additional (vendor) code added directly to services.jar,
which doesn't fall into existing keep patterns in the services
proguard.flags configuration and would otherwise be stripped, should be
annotated with `@com.android.internal.annotations.Keep`.
Results: services.jar (20MB -> 17MB)
Bug: 210510433
Test: atest
CtsInstalledLoadingProgressHostTests
CtsAutoFillServiceTestCases
CtsAppSecurityHostTestCases
CtsAppTestCases
Change-Id: Icc77c9451d9a4a83e02cb591693354988f8d0ec4
It turns out dist goals do not map well to units of code distributed.
They often build a combination of files to distribute and files for
internal use only.
This change creates license texts and lists of projects to share for
individual files in dist instead of for dist goals.
If a distribution needs the license texts for part of a dist file or
for a combination of multiple files, whoever is distributing will have
to create a suitable text notice using `gen_notice{}` or `testnotice`
and include it among the dist files for the goal using `dist-for-goals`
or equivalent.
Bug: 151177513
Bug: 210912771
Bug: 235333302
Bug: 232138105
Bug: 235302632
Test: m cts dist
Test: m droid dist
Test: tapas google-tradefed-all && m dist
Change-Id: Id78f032575a2ac1a3cc70643b3ae4d2e6c32da04