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
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
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
verify-at-runtime is deprecated in favor of extract. Update to
stop deprecation warnings during OTAs.
Bug: 149794809
Test: manual OTA
Change-Id: I9b8365a1fba5fd18420661a3e6ada77f3609bcc7
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
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
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 was missed when we moved from a single target for checking all
VNDK libraries to using timestamp files for checking individual VNDK
libraries.
Test: Build success.
Change-Id: I3be19f6755b24fff2446449a9dbc84db9a20ea41
Building device_manifest.xml or device_compatibility_matrix.xml only
builds vendor manifest / matrices, but not all device manifest /
matrices (e.g. vintf_fragments, ODM manifest, etc.). Make the name more
accurate.
Test: m check-vintf-all
Change-Id: Ib017507c421355263d53a9e5b357f169c77da36d
jacoco-report-classes-all.jar now depends on all installed files
including apks in /apex. Previously, it depended only on files under
system.img and as a result jacoco for other partitions were missing.
Bug: 147296855
Test: m
Change-Id: I755de1205ebc43c197af36a13cca5f4b49e275e8
These are a (partial) list of files that we'd install with a default
build. The idea is that if something is removed from this list, soong_ui
can remove it from the installed location before running ninja.
It's okay if there are things missing from this list, it's not intended
to be a 100% solution replacing installclean / CleanSpec.mk, just
something that handles 80% of the cases without user involvement.
In particular, if something is removed from PRODUCT_PACKAGES, we'll
remove it from disk, but not necessarily rebuild the image files. That's
the same as most use cases of CleanSpec.mk today, and often some other
change will trigger the necessary images to be rebuilt.
We should be able to fix that by changing all of the image creation
rules to depend on the (partial) list of files they care about, or by
fixing ninja to rebuild things when their list of dependencies change.
(Other tools run into this same problem)
The list of test files is also included so that we can remove obsolete
tests from their "installed" locations within test suites and the
testcases folders.
Test: remove a module from PRODUCT_PACKAGES, see the print and file removed
Test: change the name of a cts test, see the old one removed from cts
Change-Id: I67f270a6713369099ca523aaf991ee3beb815c0a
Use ro.product.vndk.version to show the VNDK version that the product
partition is using.
When PRODUCT_PRODUCT_VNDK_VERSION is set, add ro.product.vndk.version
in /product/build.prop.
If PRODUCT_PRODUCT_VNDK_VERSION is "current", ro.product.vndk.version
will have the VNDK version in PLATFORM_VNDK_VERSION. Otherwise, it
will have the value defined in PRODUCT_PRODUCT_VNDK_VERSION.
Bug: 144534640
Test: Check if /product/build.prop has "ro.product.vndk.version"
Change-Id: If5e7e3a6c155de45f88f68700f16175656896afe
Dist ramdisk-recovery.img and misc_info.txt. This is useful for
re-creating boot.img without having to download a huge target_files zip
file.
Change-Id: I2e1c1d547c95ca3433f89c68428c0c98fa4d19cd
The check is implemented in Soong via the apex_available property.
For a module that should be in the APEX named "foo" and shouldn't be in
any other APEX and also in the platform (the non-updatable part), the
property can be set to "foo" (without "//apex_available:platform")
to express the restriction and then Soong will enforce it.
Bug: 128708192
Test: m
Change-Id: Ia1aaaacd685f466447b61deae2849cb0aa83def3
The test was to ensure that bionic libs are not installed to the
non-updatable part of the platform (e.g. system/lib). However, for
bionic libs, we actually have been installing them for bootstrapping.
Specifically, they are installed to /system/lib/bootstrap, not
/system/lib. The test has passed just because it didn't look into
/system/lib/bootstrap. Removing the unnecessary check.
Bug: 128708192
Bug: 133140750
Test: m
Test: m out/target/prduct/$(TARGET_DEVICE)/system/lib/libc.so doesn't
work
Change-Id: I93cbd74972cdd2daea45612136d5133fa49ab76a
Use apex_available property to prevent modules that are only for the
NN apex from being used outside of the APEX.
Bug: 128708192
Bug: 133140750
Test: m
Change-Id: I57fe857d99088ef08e065dd2a3fc5a9389b6eb0f
Use apex_available property to prevent modules that are only for the
conscrypt apex from being used outside of the APEX.
Bug: 128708192
Bug: 133140750
Test: m
Change-Id: I08ca6cd8e5e4a254d9dd62695ee3ed317503d874