This interface allows vendor to append their system server jars after AOSP's
without changing inherit order.
Test: booting
Test: build pass on branch r-fs-release with this patch
Bug: 140712566
Change-Id: I0ddf35bdf725c262f817985f5494b5968db21fcd
Merged-In: I0ddf35bdf725c262f817985f5494b5968db21fcd
(cherry picked from commit 2a703ce2f6)
Exempt-From-Owner-Approval: cherry-pick
product-installed-files generates more default artifacts than
$(call module-installed-files,$(call auto-included-modules)),
and it causes problems when we try to apply this mechanism to other
partition
So use product-installed-files with an empty parameter as static
whitelist
Test: apply require-artifacts-in-path to other partition(or path),
and then, m nothing
Test: add system module outside mainline_system.mk, and check if there is error.
Bug: 148993225
Change-Id: Ie110f20ff833229b23a777ff1decb32f84b9cef7
Merged-In: Ie110f20ff833229b23a777ff1decb32f84b9cef7
The target has been removed from all builders.
Bug: 151896491
Test: none
Change-Id: I5d1b1058b18153c9cedb33b151dec8daab3e2e57
Merged-In: I5d1b1058b18153c9cedb33b151dec8daab3e2e57
* changes:
generate multiple boot.img files in aosp_arm64
create emulator_arm64 device for sdk_phone_arm64 to use
support multiple boot.img files in release tools
multi boot.img support cleanups
Generate boot.img variants with different schemes for kernel compression
(gzip, lz4, none).
The boot image is removed from vbmeta for aosp_arm64 since it is
not possible currently to store the hashes of multiple variants of a
particular image. The GKI will be verified via VTS anyway.
Also remove some emulator-specific stuff from aosp_arm64.
Bug: 151094943
Change-Id: I465ea6c98d52e839284d51b246203f6b8dfb5566
Merged-In: I465ea6c98d52e839284d51b246203f6b8dfb5566
Support for generating multiple boot.img files is required in the
release tools to enable GKI distribution/signing.
Bug: 151094943
Change-Id: I536a286d3123f35918106a52c49b1148d746370f
Merged-In: I536a286d3123f35918106a52c49b1148d746370f
The kernel should not be specified in INTERNAL_RECOVERYIMAGE_ARGS, since
it is already given to mkbootimg directly.
The MKBOOTIMG_KERNEL_ARG macro is unused.
Bug: 151094943
Change-Id: Ie16a7bf7d77c0436d933abbb02c6dcb9202d5fe7
Merged-In: Ie16a7bf7d77c0436d933abbb02c6dcb9202d5fe7
This tool must match the one used to compile the source code for
compatibility.
Bug: 143977934
Test: m CLANG_COVERAGE=true dist
Merged-In: I71e0e7afb05dedd5f6a09d5e4099387c6262387f
Change-Id: I71e0e7afb05dedd5f6a09d5e4099387c6262387f
(cherry picked from commit b02f7dbaa4)
Until now, packages from system_ext don't create RRO packages, instead
it uses static overlay, but to make system_ext common, it should use
RRO.
Bug: 150820813
Test: m && check if there are RRO packages that use from system_ext apps
Change-Id: Id0ddb66adca07a6bb4dda66fbee49fd476ac5342
Merged-In: Id0ddb66adca07a6bb4dda66fbee49fd476ac5342
There are no known usages of these variables, and they've been
incorrectly set for a long time.
The phony for $(LOCAL_MODULE) in droiddoc to build the api txt
has been moved to soong.
Bug: 152479829
Test: m
Change-Id: I31742e50d1af42fb899c7a3436af5647bd90cc47
Merged-In: I31742e50d1af42fb899c7a3436af5647bd90cc47
This change collects the shared libraries files used by tests in
device-tests_host_shared-libs.zip. Then the host test can be run in
TradeFed host based on build artifacts.
Bug: 151172861
Test: m -j device-tests
Change-Id: Iac7cfe1310f2c63ace42272d41a54a032bc102bc
Merged-In: Iac7cfe1310f2c63ace42272d41a54a032bc102bc
Add support for building a non-v3 recovery image along with a
v3 boot.img and vendor_boot image.
Bug: 150825361
Change-Id: I80d4e71ff09b83dd1c7f9accb4de99a30f95f4bf
Merged-In: I80d4e71ff09b83dd1c7f9accb4de99a30f95f4bf
Move the build number file to out/soong so Soong can treat it
as an output path, and pass the name of the file to Soong instead
of the command to read it.
Test: m checkbuild
Change-Id: I9e1aecf33d11fe4fde34cd57cc9b1f1ad49b0424
Bug: 153071808
Merged-In: I9e1aecf33d11fe4fde34cd57cc9b1f1ad49b0424
It has been wrong to split ALL_VERSIONS into exclusive two sets of
before/after TARGET_PLATFORM_VERSION.
And PLATFORM_VERSION_ALL_CODENAMES supports all *active* list of
non-finalized codenames.
Bug: 152960049
Test: m
Change-Id: I1e87206a7f261e587cf079cb6b7025ca16aa4fe4
Also add multi-cert support to prebuilt apps so that they can benefit
from the new lineage feature.
Test: m GoogleServicesFramework w/ modified build rules
Test: m PrebuiltGmsCore w/ modified build rules
Test: apksigner lineage -v --print-certs -in <built_module_path>
Fixes: 152897457
Change-Id: If7d5d4bd308629c8340231520214c76c8a568a65
The recently added support for multiple kernels and boot.img files
missed the boot-test-harness.img.
Bug: 152464066
Change-Id: I6e146a0702bc933e0b62f36dc34aba913e57316f
Merged-In: I6e146a0702bc933e0b62f36dc34aba913e57316f
In order to enable the delivery of multiple kernel variants with
a platform build, add support for generating boot.img files from
multiple kernels.
The BOARD_KERNEL_BINARIES macro may be defined as a list of kernel
binaries to be used (if not, the original behavior and assumption of a
single kernel binary is preserved). Each kernel binary filename
must begin with "kernel". Any extra text in the filename is appended
to the boot.img name, so "kernel-gz" would generate "boot-gz.img".
Bug: 151094943
Change-Id: Icbbf227e9561f4aa11ce10db8d7aa81c7a81eb5b
Merged-In: Icbbf227e9561f4aa11ce10db8d7aa81c7a81eb5b
Propagate partition tag data to apexkeys.txt and
apkcerts.txt so that merge_target_files.py can build
merged versions of these files by filtering the
framework files for framework partitions and filtering
the vendor files for vendor partitions.
Bug: 138942268
Change-Id: Ic3226728e97dae84d38ec230ccc86d1b124bea94
Merged-In: Ic3226728e97dae84d38ec230ccc86d1b124bea94
1. Specify addition inputs needed for R8 / D8 / Javac actions so that
they can be successfully executed remotely.
2. Cleanup platform configuration so that pool-names are turned into a
common variable and re-used between javac / r8 / d8 actions.
Bug: b/152273259
Change-Id: I0231a96f6e4e094e98d0f89728f6ac3e34f78118
Merged-In: I0231a96f6e4e094e98d0f89728f6ac3e34f78118
The coverage infra ingests these xml files to track
api coverage of APIs. Create files equivalent to the
existing files for the new API surfaces defined in R.
Bug: 152949797
Test: m dist && du -hs out/dist/*.xml
Change-Id: Id1914c34d1e9527964251b328179d20613a2d712
This is a cherry-pick change.
Test: Built mainline module coverage data
Bug: 152117890
Change-Id: Ibb809c3e8b599b467c7176e750e0b78a5bfee38e
Merged-In: Ibb809c3e8b599b467c7176e750e0b78a5bfee38e
verify-at-runtime is deprecated in favor of extract. Update to
stop deprecation warnings during OTAs.
Bug: 149794809
Test: manual OTA
Change-Id: I9b8365a1fba5fd18420661a3e6ada77f3609bcc7
This interface allows vendor to append their boot jars after AOSP's
without changing inherit order.
Test: get_build_var PRODUCT_BOOT_JARS
Bug: 152267233
Change-Id: I6beb8cc9d7fcf0d474b24f634e81657aa42e7ed7
Merged-In: I6beb8cc9d7fcf0d474b24f634e81657aa42e7ed7
(cherry picked from commit 012118da8f)
This dependency is now defined in ALL_SDK_FILES.
Test: lunch sdk; make sdk
Bug: 151160048
Change-Id: Ia740466e493d745d83039ba9991547a6c2d3bd2c
Merged-in: Ia740466e493d745d83039ba9991547a6c2d3bd2c
The GKI boot.img should be generated alongside the GSI. To make this
possible, define a flag (TARGET_NO_VENDOR_BOOT) that can be used to
disable the generation of the vendor_boot image.
Bug: 138323550
Merged-In: I91181853b26815e68a2fa2216b68579780d034dc
Change-Id: I91181853b26815e68a2fa2216b68579780d034dc
In the case when both ODM_MANIFEST_SKUS and ODM_MANIFEST_FILE are
both empty, also checks VINTF compatibility for empty SKU case.
Same for device manifest. Although right now, DEVICE_MANIFEST_FILE and
DEVICE_MANIFEST_SKUS cannot be both empty (because libvintf requires
vendor manifest exists barring manifest fragments), let libvintf throws
an error for this case. In the build system, simply handle vendor manifest
the same way as ODM manifest.
Fixes: 148601741
Test: manual
Change-Id: Ia0655fd4d37f6286b164a3221ec4b2716f29147d
Merged-In: Ia0655fd4d37f6286b164a3221ec4b2716f29147d
If DEVICE_MANIFEST_FILE / ODM_MANIFEST_FILES is set, also include check
for empty vendor / odm SKU, respectively. Then, do cross product of
vendor SKUs and ODM skus, and check each possible combination.
Test: build with and without vendor skus
Test: m check-vintf-all
Bug: 148601741
Change-Id: I23cc81998e7afc36c43540bf6d615b4d4b288447
Merged-In: I23cc81998e7afc36c43540bf6d615b4d4b288447
Single vendor can support multiple skus with different
capabilities. Add support to define and build sku
based device manifests.
Specify DEVICE manifests in BoardConfig.mk as below.
# installed to /vendor/etc/vintf/manifest_{sku}.xml
DEVICE_MANIFEST_SKUS := sku1 sku2 sku3
DEVICE_MANIFEST_SKU1_FILE := device/foo/bar/manifest_sku1.xml
DEVICE_MANIFEST_SKU2_FILE := device/foo/bar/manifest_sku2.xml
DEVICE_MANIFEST_SKU3_FILE := device/foo/bar/manifest_sku3.xml
Bug: 148601741
Change-Id: Id57d4ad21b0d3edf8d60d07446b6b806c1df20ab
Merged-In: Id57d4ad21b0d3edf8d60d07446b6b806c1df20ab
Previously, has-system-sdk-version incorrectly returned true for
the sdk version 'system_server_current', just because it started with
system_. Since system_server_current is a totally different API surface
than system_*, make the macro to return false for system_server_*.
Bug: 146757305
Test: m
Test: add 'sdk_version: "system_server_current" to wifi-service-pre-jarjar
Change-Id: I43700545b0f120fa987696b8f03a4765d97e13e2
If we're not doing a full build, leave
$(PRODUCT_OUT)/.installable_files* alone rather
than truncating it. This prevents the clean logic
in Soong from removing everthing that we're trying
to use to build an image using the snod, vnod, etc.
goals.
Bug: 149460609
Test: make droid, make vnod, verify vendor.img
Change-Id: I612e32621b8045d085829507f22f6385b859f0c2
Merged-In: I612e32621b8045d085829507f22f6385b859f0c2
When using an archive to provide kernel modules, the archive is directly
expanded into the output directory. The output directory is currently
removed prior to that to ensure no stale modules are present if they
were removed as part of a change in an incremental build.
Unfortunately if kernel modules are also provided via the regular
BOARD_*_KERNEL_MODULES macros, the removal of the output kernel module
directory will race with the copying of kernel modules in
BOARD_*_KERNEL_MODULES, resulting in some of those kernel modules not
being present in the output.
Kernel modules removed from BOARD_*_KERNEL_MODULES do not currently get
removed from the output directory in an incremental build anyway. So in
order to support using BOARD_*_KERNEL_MODULES and
BOARD_*_KERNEL_MODULES_ARCHIVE conurrently, take out the removal of the
output directory prior to archive expansion.
Bug: 149866863
Change-Id: Ib373650ddcb0fb5782a13d68a8869a9117e42ccc
This switches:
BUILD_COPY_HEADERS / LOCAL_COPY_HEADERS
BUILD_HOST_EXECUTABLE
BUILD_HOST_SHARED_LIBRARY
BUILD_HOST_STATIC_LIBRARY
to errors by default. Devices can set
BUILD_BROKEN_USES_BUILD_HOST_EXECUTABLE (etc) to turn these errors back
to warnings. I've done that for all of our internal devices.
Bug: 130719878
Bug: 130696912
Bug: 130722971
Bug: 130723227
Test: remove the BUILD_BROKEN_USES_* lines from a device, see errors
Change-Id: I1aecf97f64e281df3682ff0a0fb3ac4283790acd
The current package logic is based on general-tests and device-tests,
which have special rules to package test artifacts in a diffrent way.
vts-core suite should follow the generic *ts package rule.
Bug: 149249068
Test: m -j vts-core && vts-core-tradefed
run some vts-core test
Change-Id: Ib6ab7eb0fb4b8c898a0b3617d10be04dc98c2daa
Commit I30137c3caef91805d9143d404e5e4d06c0fccc30 adds boot-debug.img
to allow adb root with an user build GSI image.
https://source.android.com/compatibility/vts/vts-on-gsi
Another commit I5b005097b73f59857c3a2f92d693b3e67ee8424e adds
vendor_boot.img to pair with a generic kernel image, the GKI boot.img.
To allow adb root for devices using a GKI, vendor_boot-debug.img is
introduced. The image combination used in VTS will be:
Old devices without GKI:
GSI system.img + boot-debug.img + vendor.img, etc.
New devices with GKI:
GSI system.img + GKI boot.img + vendor_boot-debug.img + vendor.img, etc.
Note that boot-debug.img still can be used on new devices for
non-compliance scenario.
Bug: 147849477
Test: lunch aosp_cf_x86_64_phone-userdebug; make vendorbootimage_debug
Test: `make dist`, checks that both vendor_boot-debug.img and
vendor-ramdisk-debug.cpio.gz are in $OUT/ and out/dist.
Test: `make dist`, checks that installed-files-vendor-ramdisk-debug.{json,txt} are
in $OUT/ and out/dist.
Change-Id: I66b662d8b1e5c619ed7bb81e40233fe9df363b27
This CL adds a new make target for line coverage, That is, by running
`make haiku-line-coverage` you can get a set of all profile (*.gcno) files
for all fuzz targets and for all critical components of Android,
packed into a zip called `line_coverage_profiles.zip`. Furthermore the set of
all fuzz targets are instrumented with line coverage and packed into
another zip called `line_coverage_fuzz_targets.zip`
To properly run the make target enable NATIVE_LINE_COVERAGE first:
NATIVE_LINE_COVERAGE=true NATIVE_COVERAGE=true COVERAGE_PATHS=* make haiku-line-coverage
Bug: b/148234755
Test: Make target buils successfully on master/aosp. Binaries tested on taimen
devices.
Change-Id: I6a1e11068119337628c2ae5ee3baf2fc394add05
If EMMA_INSTRUMENT is turned on but no APKs were built the rule to
collect jacoco-report-classes.jar would error with missing directories
and an empty zip file. Switch to soong_zip, which doesn't error
on empty zip files, and hide the errors if $(TARGET_COMMON_OUT_ROOT)
or $(HOST_COMMON_OUT_ROOT) don't exist.
Test: m EMMA_INSTRUMENT=true TARGET_BUILD_APPS=Camera2
Change-Id: I09e30e37dc38f32f55b3f91bfc4d12c9e753083f
With kernel support being removed for execute-only memory layouts,
remove support for XOM until there's kernel support again.
This allows us to gain the code-size improvements from
"-z noseparate-code".
Bug: 147300048
Test: Compiled binaries no longer marked XOM by default.
Change-Id: I08a054e903b202f513d3b3381afd606bb87cf257
This is to unify boot jars with system server jars:
PRODUCT_SYSTEM_SERVER_JARS and PRODUCT_UPDATABLE_SYSTEM_SERVER_JARS
do not overlap.
Test: aosp_walleye-userdebug boots
Exempt-From-Owner-Approval: cherry-pick.
Bug: 146363577
Change-Id: Ief8994cc34cb6f7951051313dd66a1334a3a73b4
Merged-In: Ief8994cc34cb6f7951051313dd66a1334a3a73b4
(cherry picked from commit 19ed3a0db7)
This is to unify boot jars with system server jars:
PRODUCT_SYSTEM_SERVER_JARS and PRODUCT_UPDATABLE_SYSTEM_SERVER_JARS
do not overlap.
Test: walleye-userdebug boots
Bug: 146363577
Change-Id: Ief8994cc34cb6f7951051313dd66a1334a3a73b4
The public platform version no longer can be a codename, it is
always the most recently released platform. A new build property
and API provides either the offical version or the current codename
as appropriate. This will avoid breaking apps that look at the
platform version while development is under a codename.
Changes from the original version:
- Logic for emitting system properties has also been added to
buildinfo_common.sh to make sure that ro.${partition}.build.*
are consistent with ro.build.*.
- We also use PLATFORM_VERSION_LAST_STABLE as the value set in the
boot image os_version header / hash tree additional headers to
ensure they match with the ro.build.version.release system property.
This is hopefully a temporary workaround while we stop using the
system property for this purpose.
Bug: 143175463
Test: manual
Change-Id: Iaeefb35137de01c6ea57115d8830dd9bc30eccba
When OVERRIDE_PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE is set to
false, it must not copy the value to
PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE but leave it empty
because Soong always set EnforceProductPartitionInterface to true if
PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE has value.
Bug: 148952638
Test: Build with
OVERRIDE_PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE=false
Change-Id: I6435157ff993e53669b4244c9be74efbcc84107d
Regardless of the value of PRODUCT_USE_DYNAMIC_PARTITION_SIZE
"use_dynamic_partition_size=true" is passed to build_image.sh.
Pass the value of PRODUCT_USE_DYNAMIC_PARTITION_SIZE just like it is
done for other properties.
Test: 1. build a target with fixed partition sizes and
"PRODUCT_USE_DYNAMIC_PARTITION_SIZE := false".
2. check the value of "use_dynamic_partition_size" in the
corresponding system_image_info.txt.
3. repeat steps 1 and 2 with this fix and see the difference.
Change-Id: Ia121d3d67f554f8ae4e211ad4e2c381a43409f01
These options are not used anymore.
Bug: 119800099
Exempt-From-Owner-Approval: Rebase after conflict
Test: m
Change-Id: I1057a6fc420b45e326ec7744b6df159f950ad853
Test: taimen-userdebug boots when built with
DEXPREOPT_USE_ART_IMAGE=true
Test: Check logcat for checksum verification failures.
(Build ART with extra logging in OatFileAssistant.)
Test: Check that bootclasspath-checksums from some prebuilt
oat files contain only one image checksum followed by
dex file checksums with
grep -az -A1 -E '^bootclasspath-checksums$' <oat-file> | \
xargs -0 echo | gawk '{print $2}'
Bug: 119800099
Change-Id: I241b65d7323901906ffcde91ca9ba173e1755ad7