_apkcerts_write_line has assumed that the stem name of a package is the
same as the module of it. That assumption however breaks for
APK-in-APEX, in which case the stem name is Foo while the module name is
Foo.com.android.bar (where com.android.bar is the name of the APEX where
the APK is in).
Fixing the issue by recording the stem name and use it.
Bug: 155440232
Test: OVERRIDE_TARGET_FLATTEN_APEX=true m apkcerts-list
and check the generat4ed apkcerts txt file to see that it has
Tethering.apk instead of Tethering.com.android.tethering.apex
Exempt-From-Owner-Approval: cherry-pick from AOSP
Merged-In: I56bc55e2231eb946617a9d6f97d55c9b61f3bff7
(cherry picked from commit f58fd52b14)
Change-Id: I56bc55e2231eb946617a9d6f97d55c9b61f3bff7
Everything should be getting device specific kernel headers from the
device_kernel_headers header library these days.
This does change the behavior of system libraries on devices using the
VNDK -- they no longer get device-specific kernel headers by default, as
we generally expect the system image to be device-independent. The few
libraries that may still need this can use:
LOCAL_HEADER_LIBRARIES += device_kernel_headers
Test: treehugger
Change-Id: I90ccb921d58b8d27dd0118a974202696e0af745f
check_vintf now checks deprecation as well, which
requires matrix fragments to exist. Update tests to
reflect this.
The test also uses legacy vendor manifest path, which makes
it not combined with the ODM manifests, causing sku_compat
test to fail. Fix it by using the new vendor manifest path
(which libvintf correctly combines it with the ODM manifests.)
Fixes: 155131894
Test: python -m unittest test_check_target_files_vintf
Change-Id: Ib660f8796efc3465d9513688695dac29c63a7514
The first component is the apex name, or a special name "platform"
if the boot jar is a platform jar rather than a part of some apex.
This is a prerequisite change for moving core-icu4j to a separate
com.android.i18n apex.
Old one-column format is still supported, but all unqualified
components of PRODUCT_BOOT_JARS get "platform:" prepended to them
after reading the product makefiles.
Test: aosp_walleye-userdebug boots
Bug: 138994281
Change-Id: I0f79c7d10477880ca65354251a5d1ca0b7ce79ab
This reverts commit a780171da6.
Reason for revert: This appears to be causing intermittent build
failures. Vendor is now small enough that sometimes it does not
get enough inodes allocated for the files that must be copied to it.
Bug: 155340761
Change-Id: I453101a65d4c8b5824467d0bb7cc8c3a03ca2740
When loading build info from a previous version of Android, the set of
allowed property sources should match those available in that version.
In this particular case, the product_services partition was a valid
property source in Android 10.
Bug: 155053195
Test: ran unit tests from test_common.py
Test: generated an incremental OTA which previously failed
Change-Id: Ic0b0a112656533eca78dee31517deff7e3c8d7cc
Continue the removal of emulator-specific bits from the generic
aosp_arm64 product.
Bug: 111538404
Change-Id: I97a8083bfdc3881ab70aaf73e9ace58435ddbc67
* changes:
Use .KATI_IMPLICIT_OUTPUTS in build/make/core/Makefile
java_source_list_file is only created when full_classses_jar is set
Remove empty rules for check_elf_files.timestamp
RECOVERY_FROM_BOOT_PATCH has been moved to vendor as per b/68319577. Hence,
the reserved size should be moved from system to vendor as well.
Bug: 68319577
Bug: 153581609
Test: m target-files-package for non-A/B devices
Change-Id: I2fd3fea10ec6dd06f19c5be753d63ddff1ec01f7
There were still two places where we weren't using it. There may be
more, but these are the ones that come up with aosp_cf_x86_phone.
Test: m out/target/product/vsoc_x86/root/default.prop
Test: m out/target/product/vsoc_x86/obj/NOTICE_VENDOR.txt
Change-Id: I17671ca2ed60332aed2bf76aa00e42a92661b58a
If we don't have any new dependencies, or we never set up the
check_elf_files.timestamp rule, don't create an empty one now.
There were >7000 of these unused and empty rules in my AOSP
aosp_cf_x86_phone build.
This was initially brought to my attention by the new checks in
https://github.com/google/kati/pull/189
Test: diff out/build-aosp_cf_x86_phone.ninja, only removed phony rules
Change-Id: Ia43cbbd04df4a01d2182b14e3ccbe5d5ecbcabad
This change enables recording ALL_DEPS information
without having to specify the deps-license goal, which
can be useful to populate the dependencies field of
module-info.json for various types of post-processing.
Usage: `RECORD_ALL_DEPS=true make droid` (preferred), or
`make RECORD_ALL_DEPS=true droid`.
Test: make, inspect module-info.json
Test: RECORD_ALL_DEPS=true make, inspect module-info.json
Bug: 151755703
Change-Id: Ib81a8dfb0ecbe0b63be320a9d33e558b419cb4b2
As auto generated RRO, an arbitrary RRO needs to be exempted as well.
It is okay because RRO packages can access only resource defined in
public.xml, when RRO packages want to refer other package's resource.
Bug: 152926556
Test: build RRO packages
Test: check if product/vendor app still can't use hidden APIs
Change-Id: I8dc2922af5eb5c87ccd97d1b8d080b3ed48cf9a6
$(SOONG_OUT_DIR)/ndk/% needs to be whistlisted in release branch
(ag/11251273)
Accordingly, restore it in aosp as well.
Bug: 148993225
Test: m nothing
Change-Id: I7503c007c3e786b0cab26ea1422f0d4ba5a40662
A module is marked unavailable for platform when 1) it does not have
"//apex_available:platform" in its apex_available property, or 2)
it depends on another module that is unavailable for platform.
In that case, LOCAL_NOT_AVAILABLE_FOR_PLATFORM is set to true for the
module in the Make world. Later, that flag is used to ensure that there
is no module with the flag is installed to the device.
The reason why this isn't entirely done in Soong is because Soong
doesn't know if a module will be installed to the device or not. To
explain this, let's have an example.
cc_test { name: "mytest", static_libs: ["libfoo"]}
cc_library_static { name: "libfoo", static_libs: ["libbar"]}
cc_library { name: "libbar", apex_available: ["com.android.xxx"]}
Here, libbar is not available for platform, but is used by libfoo which
is available for platform (apex_available defaults to
"//apex_available:platform"). libfoo is again depended on by mytest
which again is available for platform. The use of libbar should be
allowed in the context of test; we don't want to make libbar available
to platform just for the dependency from test because it will allow
non-test uses of the library as well.
Soong by itself can't tell whether libfoo and libbar are used only in the
context of a test. There could be another module depending them, e.g.,
cc_library_shared { name: "mylib", static_libs: ["libfoo"] }
can exist and it might be installed to the device, in which case
we really should trigger an error.
Since Make has the knowledge of what's installed and what's not,
the check should be done there.
Bug: 153073816
Test: m
Change-Id: I14ddf0e5700d0a7bf60e4e41536efbd26ab5ed3d
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
$(HOST_OUT)/% and $(SOONG_OUT_DIR)/ndk/% are not necessary anymore.
Bug: b/148993225
Test: m nothing
Change-Id: If2551283ebb6c516c029d1c04aebe25661bc6a1a
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
Change-Id: I0ddf35bdf725c262f817985f5494b5968db21fcd
The arguments transparency_log_servers and transparency_log_pub_keys
have been merged. Update the caller in the OTA script accordingly.
Also disable the test to contact aftl server until we have
a public server.
Bug: 153940575
Test: check the argument
Change-Id: If6a7e7d644884d395c75c2fcdfd6aa7c2380d851