userdata.img becomes 4GB in P and it doesn't work well with patcher in
android studio. We decided to remove userdata.img in system image zip
and generate userdata.img by emulator.
This cl does not impact real devices.
BUG: 79925096
Change-Id: I5406b28291f140e2ebdbcd7c6f684f60ac59b62b
Signed-off-by: Weilun Du <wdu@google.com>
We have use case that uses the timestamp for PLATFORM_SECURITY_PATCH in
device specific Makefile, but need to handle the platform-dependent
`date` command. This CL computes and exposes
PLATFORM_SECURITY_PATCH_TIMESTAMP from the core build system.
Bug: 80311893
Test: Use PLATFORM_SECURITY_PATCH_TIMESTAMP in device-specific folder,
on both of Linux and macOS. Check the value.
Change-Id: I27a88dcebde7a1c204491f5f5c45c5160398dbb6
We've had a report of Android.mk files changing one of these paths,
leading to very strange issues. Nobody should be writing to these
variables after they're set.
Bug: 76424357
Test: diff build-aosp_arm.ninja
Change-Id: I66a9740d89feae342af13341ee3a630a20d62b64
Proguard treats -dontobfuscate -keepattributes *Annotations* the
same as -dontobufscate by keeping all attributes. R8, even in
proguard compatibility mode, discards all attributes that don't
match, including EnclosingClass attributes that may be necessary.
Pass -keepattributes * whenever passing -dontobfuscate to make R8
act more like proguard.
This isn't a complete solution, some modules may set
LOCAL_PROGUARD_ENABLED := custom and then manually specify
-dontobfuscate on the command line or in a flags file, in which
case they will see the incorrect behavior of R8.
Bug: 80081393
Test: m checkbuild
Test: examine attributes on com.android.stk.BootCompletedReceiver
in out/target/common/obj/APPS/Stk_intermediates/classes.dex
Change-Id: I761f2d0617c5295df8fc7adfc4fd00d2aa41961e
This reverts commit 777cf2c450.
Reason for revert: manifest merger is used for libraries forced to aapt2 now
Bug: 79481102
Test: m checkbuild
Change-Id: I9b67fd2a9b3234798b2aac879b5242c2097b3863
This CL enables CFI on security sensitive components for product
configs that inherit core_64_bit.mk (and core_64_bit_only.mk). Note
that this only requests the build system to do so. Internal build
logic will dictate if this is actually enabled on the build or
not (CFI is currently disabled for ARM32 and MIPS for example).
In addition, this also restricts CFI_INCLUDE_PATHS and
PRODUCT_CFI_INCLUDE_PATHS to Arm64 architectures only. This helps
narrow which targets enable CFI out of the box.
Bug: 66301104
Test: CFI is enabled on aosp_* targets
Change-Id: I52af499dc34cd4b42fbfb1175f6a37aaf17b65dd
adbd for recovery partition is built separately. No need to copy.
Instead, the recovery version adbd.recovery is added to
PRODUCT_PACKAGES.
Bug: 79146551
Test: m -j
Test: adb reboot recovery; adb devices
Change-Id: I7f0ee8b21cbafc0ab5a4eb1f9c8ee70774617013
If the default manifest that doesn't set minSdkVersion is passed to
manifest merger along with a library manifest that does, it will fail
with:
.../DefaultManifest.xml Error:
uses-sdk:minSdkVersion 1 cannot be smaller than version 14 declared in library ...
Translate LOCAL_MIN_SDK_VERSION or LOCAL_SDK_VERSION to minSdkVersion
in DefaultManifest.xml.
Bug: 79481102
Test: m checkbuild
Change-Id: I4d792d48612e6a1111e05a9e4a71bb4d87eae1ad
If manifest merger sees a manifest with an sdk codename instead
of a number it fails with:
Exception in thread "main" java.lang.NoClassDefFoundError: com/android/sdklib/SdkVersionInfo
at com.android.manifmerger.XmlDocument.getApiLevelFromAttribute(XmlDocument.java:384)
at com.android.manifmerger.XmlDocument.addImplicitElements(XmlDocument.java:418)
at com.android.manifmerger.XmlDocument.merge(XmlDocument.java:161)
at com.android.manifmerger.ManifestMerger2.merge(ManifestMerger2.java:909)
at com.android.manifmerger.ManifestMerger2.merge(ManifestMerger2.java:263)
at com.android.manifmerger.ManifestMerger2.access$600(ManifestMerger2.java:61)
at com.android.manifmerger.ManifestMerger2$Invoker.merge(ManifestMerger2.java:1530)
at com.android.manifmerger.Merger.process(Merger.java:153)
at com.android.manifmerger.Merger.main(Merger.java:42)
Caused by: java.lang.ClassNotFoundException: com.android.sdklib.SdkVersionInfo
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
... 9 more
Add sdklib to the classpath to fix it.
Test: m java
Bug: 77569197
Change-Id: I54fd9edb36aca32cff507340a76eee5e367529e6
Test: Set a device with PRODUCT_USE_LOGICAL_PARTITIONS,
boot, examine /proc/cmdline
Test: build with USE_LOGICAL_PARTITIONS=true
Fixes: 79885414
Change-Id: I593b457786f3cf1bc50dedbc9b603e5408461bcc
LOCAL_STATIC_JAVA_AAR_LIBRARIES are slightly different from
LOCAL_STATIC_ANDROID_LIBRARIES, due to b/78447299 the
AndroidManifest.xml from ANDROID libraries are ignored.
Temporarily add support for LOCAL_STATIC_JAVA_AAR_LIBRARIES
when using LOCAL_USE_AAPT2 := true, treating them the same
as LOCAL_STATIC_ANDROID_LIBRARIES except that they are
merged by android_manifest.xml
Bug: 78447299
Bug: 79481102
Test: m FORCE_AAPT2=true checkbuild
Change-Id: Ia6210810c1ea6e776be97ae1c9a586b5de844125
LOCAL_PRIVATE_PLATFORM_APIS := ture means that the apps or packages can
use the private API. So, if LOCAL_PRIVATE_PLATFORM_APIS := true, they
are linked to ".impl" instead of ".stub".
Bug: 77577799
Test: build
Change-Id: I782e52078bb8c4139c3a24862cb381f6a84e53fe
This reverts commit ba7699fb9a.
Reason for revert: Broke boot tests on walleye and taimen
Bug: 80142285
Change-Id: Ida54a0b875147420e6e9c0af41b14af50f6397e3
Allows speed-profile compiling vendor modules.
The profile will not correctly get copied during first boot, but this
is should only be a minor issue.
Bug: 78472563
Bug: 71901335
Test: make
Change-Id: I15c6f90b6bbd284ab48fd750267bed5189c9fea4
After https://android-review.googlesource.com/688488
BOARD_PLAT_PUBLIC[PRIVATE]_SEPOLICY_DIR can now specify multiple
directories.
Bug: n/a
Test: build sepolicy
Change-Id: Id850327c29bc626d3d721935edcb2b7afd2fd283
The name of the runtime library name for the SDK library
org.apache.http.legacy has changed to org.apache.http.legacy.impl as it
is now built using java_sdk_library construct where *.impl suffix is
automatically added to the runtime lib.
Bug: 77577799
Test: m -j
Merged-In: Ie049d06d78cc403454c2885def88a167975b4204
Change-Id: Ie049d06d78cc403454c2885def88a167975b4204
(cherry picked from commit 7f9a1a49cf)
The name of the runtime library name for the SDK library
org.apache.http.legacy has changed to org.apache.http.legacy.impl as it
is now built using java_sdk_library construct where *.impl suffix is
automatically added to the runtime lib.
Bug: 77577799
Test: m -j
Merged-In: Ie049d06d78cc403454c2885def88a167975b4204
Change-Id: Ie049d06d78cc403454c2885def88a167975b4204
(cherry picked from commit 7f9a1a49cf)
Switch to using AAPT2 by default. Can be disabled globally with
FORCE_AAPT2=false or per-module with LOCAL_USE_AAPT2 := false.
Bug: 79481102
Test: m checkbuild
Change-Id: I35719f708fa3bcc1d54721e62ac9cc8780f7cbbe
The presence of LOCAL_STATIC_ANDROID_LIBRARIES is used early to
decide whether to move resources to overlays, and late to decide
whether to add --auto-add-overlay. If support_libraries.mk moves
the last LOCAL_STATIC_ANDROID_LIBRARIES value to
LOCAL_STATIC_JAVA_LIBRARIES then the resources will be moved to
overlays but --auto-add-overlay will not be added, causing aapt2
to fail with:
error: resource bool/leanback_outline_clipping_disabled does not override an existing resource.
note: define an <add-resource> tag or use --auto-add-overlay.
Bug: 79481102
Test: m FORCE_AAPT2=true java
Change-Id: Icc67acf23b846bd506a5d397d02ad5775ad0ea1d
The location of AndroidManifest.xml has already been computed
by android_manifest.mk, don't duplicate the logic. Fixes an
extra regeneration triggered by $(wildcard $(my_android_manifest))
when LOCAL_FULL_MANIFEST_FILE points to a generated file, which
will not exist on the first run of kati.
Test: m
Change-Id: Ia56693a4dbbc7d78900019b887f766938dc55dab
There are some cases where --auto-add-overlay is added for legitimite
reasons, for example in RROs. Only filter it out from modules that
were using --extra-packages for support library modules.
Test: m FORCE_AAPT2=true java
Change-Id: I165fa577f2204ecbc57e71f946db3f346568ad81
The objective of this commit is to support these 3 combinations:
1. Master-GSI + Master-VENDOR (w/ BOARD_VNDK_VERSION)
2. Master-GSI + Master-VENDOR (w/o BOARD_VNDK_VERSION for upgrading devices)
3. Master-GSI + O-MR1-VENDOR (w/ BOARD_VNDK_VERSION)
This commit defines a new property `ro.vndk.lite` to indicate the status
of BOARD_VNDK_VERSION run-time enforcement. Now, all devices should
have `ro.vndk.version` so that `libhidlbase.so`, `libRSCpuRef.so`, and
`libnativeloader.so` can find the versioned VNDK directory.
Bug: 78605339
Test: aosp_sailfish Master-SYSTEM + Master-VENDOR boots
Test: aosp_sailfish Master-GSI + Master-VENDOR boots
Test: aosp_walleye Master-SYSTEM + Master-VENDOR boots
Test: aosp_walleye Master-GSI + Master-VENDOR boots
Test: aosp_walleye Master-GSI + O-MR1-VENDOR boots
Change-Id: Iee9553b3ca9e0798a873e655d87d10cdc23d4b1c
Merged-In: Iee9553b3ca9e0798a873e655d87d10cdc23d4b1c
(cherry picked from commit d73b94c097)
When linking in the UBSan minimal runtime, don't export the symbols.
This was resulting in an edge case where symbols were sometimes
undefined at runtime on address sanitized builds if static library
dependencies were integer overflow sanitized.
Bug: 78766744
Test: readelf on libraries show either inclusion of the shared library
or no undefined symbols related to the minimal runtime.
Change-Id: I4382cc72baefd7fa96cd83e8349e82f7b083f5aa
Merged-In: I4382cc72baefd7fa96cd83e8349e82f7b083f5aa
(cherry picked from commit e508169caf)
Apparently empty PRIVATE_RS_TARGET_API is not the same as current,
pass 0 explicitly.
Test: forrest ub-renderscript-test
Change-Id: I8b2001b12161f07c404f78f63a80d82dffa1075f
There are too many problems when using the stripped jars. One of them
being that the OatFileAssistant can't open the dex files since the
dex location stored in hte oat file is the system partition one.
Bug: 67345922
Bug: 70934104
Test: make
Change-Id: I3812471330ec1d2e3a435f42a3e975de750004ff
Fix mismatch between output directory of zipsync and input
directory of aapt2.
Bug: 79481102
Test: m checkbuild
Change-Id: If012c943af0c04cc3f0dd5c4266126412ae0a759
Merged-In: If012c943af0c04cc3f0dd5c4266126412ae0a759
(cherry picked from commit 164a33f194)
CTS harness code is moved to the new git project.
Update cts.mk to point to the new repo.
Bug: 78461075
Bug: 79201478
Bug: 79695450
Test: make cts -j32 WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=true
TARGET_PRODUCT=aosp_arm64
Test: cts-tradefed run cts --compatibility:include-filter
CtsGestureTestCases
Test: cts/run_unit_tests.sh
Test: make gts -j32 WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=true
TARGET_PRODUCT=aosp_arm64
Change-Id: I94c03071ec3db5a52c0fc0185bf69e2e57da9b21
There was a bug that when an unbundled app is built without SDK
(LOCAL_SDK_VERSION isn't set), it is linked to the nonexisting stubs
library from java_sdk_library. The built stubs libs are not created for
unbundled builds. For unbundled builds, we need to use the prebuilt
stubs lib.
Bug: 77575606
Test: m -j
Test: make -j dist
ANDROID_BUILDSPEC=vendor/google/build/app_build_spec.mk
Change-Id: I70cced1c872053e151fea157e3a6d218b1fab9dc
Fix some incorrect dependencies after I12d33e52019aebac6ea33271939228e4690a4173.
Bug: 73885582
Test: m java FORCE_AAPT2=true
Change-Id: Ica2758991603e1605f629d843d19df5e2ef4fae1
Renderscript was using LOCAL_RENDERSCRIPT_TARGET_API := 0 to mean
current. Use current instead, and check for it when comparing
if LOCAL_RENDERSCRIPT_TARGET_API >= 21.
Fixes an issue where LOCAL_RENDERSCRIPT_TARGET_API := 0 was being
treated as < 21, causing the renderscript resources to be passed
to aapt2:
out/target/common/obj/APPS/RSTestBackward_intermediates/flat-res/zip_res.flata.contents/raw/bc32: error: resource file cannot be a directory.
Bug: 79481102
Test: m java FORCE_AAPT2=true
Change-Id: I7726d0463ce1693bc9653b4d869ced181c491036
LLVM r328258 turned on a feature called temporary dtor inlining by
default for all of C++ in clang-tidy. This feature appears to be
somewhat over-aggressive when objects are being passed by value. For
example, given:
void foo(std::unique_ptr<int> i);
void bar() {
auto x = std::make_unique<int>();
int *i = x.get();
foo(std::move(x));
*i = 99;
}
...clang-tidy will complain about `*i = 99;` being a definite
use-after-free. This is incorrect, however: `foo` could stash the
`unique_ptr` it's given in a global, or a class member, or ...
Until upstream fixes this bug, it's probably best to keep this disabled.
Bug: None
Test: Ran the analyzer across Android locally. Nothing broke; number of
complaints dropped significantly.
Change-Id: I742eedf598a72a533285d913d191bfbbf0ce1688
For SDK builds, $(AAPT) points to a prebuilt and aapt is not
necessarily in the path.
Test: make -j32 <some SDK build> tests
Bug: 70934104
Bug: 67345922
Change-Id: Icfd62a4e3ec284ed59a61714765e5a909a27947d
We need the jars on boot and system server classpath in order to
symbolize profile information. Having the jars packed in a dist zip will
help a lot with the tools.
Test: m
Bug: 73313191
Change-Id: I5b64268d240055282099e9b86a5e6869e6405968
When linking in the UBSan minimal runtime, don't export the symbols.
This was resulting in an edge case where symbols were sometimes
undefined at runtime on address sanitized builds if static library
dependencies were integer overflow sanitized.
Bug: 78766744
Test: readelf on libraries show either inclusion of the shared library
or no undefined symbols related to the minimal runtime.
Change-Id: I4382cc72baefd7fa96cd83e8349e82f7b083f5aa
Properly check the value of PRIVATE_ENFORCE_USES_LIBRARIES instead of
only checking that the variable is non-empty.
Change the logic to use product libraries instead of the common ones.
This is required so that dex2oat can find the oat files when stripping
is enabled.
Bug: 70934104
Bug: 67345922
Test: manual
Change-Id: Iee71c2b26f3c0e136a8971ab913725b2b6e100b8
Building with FORCE_AAPT2=true will turn on AAPT2 for all modules
unless they set LOCAL_USE_AAPT2 := false. The build system will
attempt to rewrite common AAPT patterns into AAPT2 patterns,
including removing --extra-packages for support library packages,
removing LOCAL_RESOURCE_DIR point to support library resources,
adding a default empty manifest file if it doesn't exist, and
converting LOCAL_STATIC_JAVA_AAR_LIBRARIES to
LOCAL_STATIC_ANDROID_LIBRARIES.
Bug: 79481102
Test: m checkbuild
Change-Id: I8d9d55fe4d5d5c965c64b0407efe74e0afc35c3a
Patch Iaf5853361767f0ea3e9ad4ec908aadd72d639c79 missed one rename
of my_support_library_sdk_raise to my_proguard_sdk_raise.
Test: m checkbuild
Change-Id: Ie3d4536bd80654a7eb4f209ef6d6a8de502a6cdc
Allow non-negative integers instead of positive integers in math
functions so that LOCAL_RENDERSCRIPT_TARGET_API := 0 can be compared
against 21.
Test: make -f ${ANDROID_BUILD_TOP}/build/make/core/math.mk RUN_MATH_TESTS=true
Test: $(get_build_var CKATI) -f ${ANDROID_BUILD_TOP}/build/make/core/math.mk RUN_MATH_TESTS=true
Change-Id: If2504b7de81f8dd676af749a04c9f3e580f298b6
Turn commented out tests into assertion tests, and add more for
functions that didn't have tests.
Test: make -f ${ANDROID_BUILD_TOP}/build/make/core/math.mk RUN_MATH_TESTS=true
Test: $(get_build_var CKATI) -f ${ANDROID_BUILD_TOP}//build/make/core/math.mk RUN_MATH_TESTS=true
Change-Id: I411844fbf00268f863260b7ee42d1795f05c0d16
Required libraries are specified with LOCAL_USES_LIBRARIES
Optional libraries are specified with LOCAL_OPTIONAL_USES_LIBRARIES
The make rule cross references the libraries against what's stored
in the manifest.
Verification is enabled if LOCAL_ENFORCE_USES_LIBRARIES is true. This
defaults to true if either of LOCAL_USES_LIBRARIES or
LOCAL_OPTIONAL_USES_LIBRARIES are specified.
Bug: 70934104
Bug: 67345922
Test: manual
(cherry picked from commit 09f3b97f4b)
Merged-In: Ifca7d1a993620e9d0e42dc497a4a5d7a6c3f4172
Change-Id: I670431f938c31115a7812c1857c31b9f71675632
The objective of this commit is to support these 3 combinations:
1. Master-GSI + Master-VENDOR (w/ BOARD_VNDK_VERSION)
2. Master-GSI + Master-VENDOR (w/o BOARD_VNDK_VERSION for upgrading devices)
3. Master-GSI + O-MR1-VENDOR (w/ BOARD_VNDK_VERSION)
This commit defines a new property `ro.vndk.lite` to indicate the status
of BOARD_VNDK_VERSION run-time enforcement. Now, all devices should
have `ro.vndk.version` so that `libhidlbase.so`, `libRSCpuRef.so`, and
`libnativeloader.so` can find the versioned VNDK directory.
Bug: 78605339
Test: aosp_sailfish Master-SYSTEM + Master-VENDOR boots
Test: aosp_sailfish Master-GSI + Master-VENDOR boots
Test: aosp_walleye Master-SYSTEM + Master-VENDOR boots
Test: aosp_walleye Master-GSI + Master-VENDOR boots
Test: aosp_walleye Master-GSI + O-MR1-VENDOR boots
Change-Id: Iee9553b3ca9e0798a873e655d87d10cdc23d4b1c
Required libraries are specified with LOCAL_USES_LIBRARIES
Optional libraries are specified with LOCAL_OPTIONAL_USES_LIBRARIES
The make rule cross references the libraries against what's stored
in the manifest.
Verification is enabled if LOCAL_ENFORCE_USES_LIBRARIES is true. This
defaults to true if either of LOCAL_USES_LIBRARIES or
LOCAL_OPTIONAL_USES_LIBRARIES are specified.
Bug: 70934104
Bug: 67345922
Test: manual
Change-Id: Ifca7d1a993620e9d0e42dc497a4a5d7a6c3f4172
Soong needs PLATFORM_VERSION to pass as --version-name when building
framework-res.apk.
Bug: 78324052
Test: aapt dump badging $OUT/system/framework/framework-res.apk | grep -i version
Change-Id: If47839182a1dd7c7a768b1253dd8b575d777ca7e
Merged-In: If47839182a1dd7c7a768b1253dd8b575d777ca7e
(cherry picked from commit 34aba6cf72)
This reverts commit da8febf39c.
Bug: http://b/73768157
Reason for revert: breaks several bionic/debuggerd/libunwind_stack gtests
Change-Id: I161cf85cf352b80644524fd4bb70ff7c75fbc1d0
Soong needs PLATFORM_VERSION to pass as --version-name when building
framework-res.apk.
Bug: 78324052
Test: aapt dump badging $OUT/system/framework/framework-res.apk | grep -i version
Change-Id: If47839182a1dd7c7a768b1253dd8b575d777ca7e
Files in this partition aren't actually installed, so we don't need to
use the BUILD_PREBUILT logic for APKs.
Bug: 66960479
Test: try PRODUCT_COPY_FILES of an apk into system, errors
Test: try PRODUCT_COPY_FILES of an apk into system_other, accepted
Change-Id: Ie721d2b884c6badfbe0e46f55c265b770bed618b
Merged-In: Ie721d2b884c6badfbe0e46f55c265b770bed618b
(cherry picked from commit 7d957c911a)
This reverts commit 44988be862.
Three known build failures with lld are fixed by
(1) adding --no-fatal-warnings to link
(2) disable LLD for some PGO build targets
(3) disable LLD for some art oatdump tests, pending c/681542
Change-Id: Icebf6661509bf4f6051f91dc74eaa07dbc7c1d42
Bug: 73768157
Some errors with HOST_PREFER_32_BIT:
HOST_PREFER_32_BIT=true m -j32 test-art-host-gtest
This reverts commit 962424149d.
Change-Id: I788ec3e39d6989d583d3c7d4706299fe5a7841f2
make <test> should fail if the test has a poorly configured
atest configuration
BUG: 73082610
Test: cd packages/apps/Bluetooth/tests/unit; mma
Modify AndroidTest.xml to a not well-formed xml; mma
Then, it should build fail.
atest -v BluetoothInstrumentationTests
Change-Id: I774b4eb81a1b9e9ae31de949aea995d2f258e9a1
* Use clang lld by default, unless LOCAL_USE_CLANG_LLD
or USE_CLANG_LLD is set to false or 0.
Bug: 73768157
Test: make checkbuild and boot
Change-Id: I9b28550a0626c96f6e025b0f20705a2e4a5049d7
error while loading shared libraries: libc++.so:
cannot open shared object file: No such file or directory
BUG: N/A
Test: make -j16 liblatinime_host_unittests
out/host/linux-x86/testcases/liblatinime_host_unittests/x86_64/liblatinime_host_unittests
Change-Id: I97738f728c29ab904fc979ff9b08a8d5bd1328cd
This is to support /product/lib. Shared libraries with
LOCAL_PRODUCT_MODULE := true or product_specific: true has been
installed in /system/lib. They are now installed in /product/lib.
Bug: 73095206
Test: build succeeded && product libraries are installed under
/product/lib
Change-Id: Ic49a0a3e1e47666c4d15189ab6fded8007ecb498
Use a list of support library java and android libraries exported
from Soong to rewrite dependencies into the appropriate
LOCAL_STATIC_JAVA_LIBRARIES and LOCAL_STATIC_ANDROID_LIBRARIES.
Bug: 78300023
Test: m checkbuild
Change-Id: I4fd1e563272fcef9238a46cda840210529bd706a
Merged-In: I4fd1e563272fcef9238a46cda840210529bd706a
(cherry picked from commit ceadbadc5d)
Use a list of support library java and android libraries exported
from Soong to rewrite dependencies into the appropriate
LOCAL_STATIC_JAVA_LIBRARIES and LOCAL_STATIC_ANDROID_LIBRARIES.
Bug: 78300023
Test: m checkbuild
Change-Id: I4fd1e563272fcef9238a46cda840210529bd706a
Merged-In: I4fd1e563272fcef9238a46cda840210529bd706a
(cherry picked from commit ceadbadc5d)
Use a list of support library java and android libraries exported
from Soong to rewrite dependencies into the appropriate
LOCAL_STATIC_JAVA_LIBRARIES and LOCAL_STATIC_ANDROID_LIBRARIES.
Bug: 78300023
Test: m checkbuild
Change-Id: I4fd1e563272fcef9238a46cda840210529bd706a
Merged-In: I4fd1e563272fcef9238a46cda840210529bd706a
(cherry picked from commit ceadbadc5d)
Move cts-tradefed to a new dir.
Fix cts.mk to point to the new dir.
Bug: 78461075
Bug: 79201478
Test: make cts -j32 WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=true TARGET_PRODUCT=aosp_arm64
Test: cts-tradefed run cts --compatibility:include-filter CtsGestureTestCases
Test: cts/harness/tools/cts-tradefed/tests/run_tests.sh
Test: make gts -j32 WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=true TARGET_PRODUCT=aosp_arm64
Change-Id: I8b610bf2f0b84baa7e8a30759f7d53d1b2a5d8f1
Modules declare 'vintf_fragments' much like
they declare 'rc_file'. These are verified
in mass during a device build.
Test: `m` can cause verify_vintf_matrices to
pass or fail.
Test: build OTA package and check to make sure it
contains the correct assembled matrices.
Bug: 66917623
Change-Id: I504985100069456a0ca4d0180387d271bb283d49
If a static android library lib1 has LOCAL_STATIC_ANDROID_LIBRARIES
lib2, then the R.class files for packages in lib2 will be merged
into the jar for lib1. If an app has lib1 in its
LOCAL_STATIC_ANDROID_LIBRARIES it will get the R.class files from
lib2 through lib1, instead of regenerating the R.java files with
numbering that matches the resource table of the app.
This was worked around for support libraries by keeping a
fix_dependencies.mk that added transitive static support libraries
to the direct static dependencies of apps. Instead, propagate
the packages that aapt2 generated R.java files for up as
--extra-packages arguments to the next aapt2 invocation, which
will force aapt2 to regenerate the R.java files for those packages.
Bug: 78300023
Test: m checkbuild
Change-Id: I7375e13241b4c4f2933032409fb7935abe133bfc
Merged-In: I7375e13241b4c4f2933032409fb7935abe133bfc
(cherry picked from commit 43c247e181)
Soong uses lists of proguard flags files from dependencies instead
of a single concatenated file. Allow Soong to pass the list to
make, which will concatenate it.
Move the check inside ifdef LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
in case Soong exports an Android library with an empty
LOCAL_SOONG_EXPORT_PROGUARD_FLAGS.
Bug: 73724997
Test: m checkbuild
Change-Id: Ia8f229ec5f9fc99a23bd471dfa70c9de7316de94
Merged-In: Ia8f229ec5f9fc99a23bd471dfa70c9de7316de94
(cherry picked from commit 42669e6dc7)
Allows modules to specify LOCAL_DEX_PREOPT_APP_IMAGE := false if they
have a profile.
Bug: 77342775
Test: make
Change-Id: Ied7a8099b199904638dabdb09faf879d3216e73d
If a static android library lib1 has LOCAL_STATIC_ANDROID_LIBRARIES
lib2, then the R.class files for packages in lib2 will be merged
into the jar for lib1. If an app has lib1 in its
LOCAL_STATIC_ANDROID_LIBRARIES it will get the R.class files from
lib2 through lib1, instead of regenerating the R.java files with
numbering that matches the resource table of the app.
This was worked around for support libraries by keeping a
fix_dependencies.mk that added transitive static support libraries
to the direct static dependencies of apps. Instead, propagate
the packages that aapt2 generated R.java files for up as
--extra-packages arguments to the next aapt2 invocation, which
will force aapt2 to regenerate the R.java files for those packages.
Bug: 78300023
Test: m checkbuild
Change-Id: I7375e13241b4c4f2933032409fb7935abe133bfc
They should be depended on by specifying LOCAL_SDK_VERSION. Depending
on them directly makes it difficult to rename or modify these targets,
as I've found when working on b/77525052.
This list can be further extended to other libraries that should not
be depended on directly.
Bug: b/77525052
Test: make
Change-Id: I911bcc8a5a90995b3607599388dc6119eb88ea96
During a build, we load product configuration three different times --
to dump some initial variables, when parsing the CleanSpec.mk files, and
again when we parse the Android.mk files.
The BoardConfig.mk find commands use -path, which isn't supported by the
Kati find optimizer, so we end up spending ~125ms in each of the above
cases (on my machine, internal master -- aosp is closer to 30ms).
Instead, do the search during the initial dumping of variables, and pass
in TARGET_DEVICE_DIR into the later runs, using that to load the
BoardConfig.mk file.
Bug: 78020936
Test: out/build-taimen.ninja is identical
Test: out/soong.log shows that we're not running these finds again
Change-Id: I6f186e1879aa362528b48b8a00be3f7a9f88bfc5
This saves ~300ms from get_build_var on our internal tree (1.3s ->
1.0s). On AOSP, it only saves ~60ms (0.60s -> 0.54s).
It's also ran during lunch, and twice during every build (though the
second time it was run with Kati's find emulator, which significantly
reduces the overhead).
Bug: 78020936
Test: diff out/.module_paths/AndroidProducts.mk.list with existing find
results
Change-Id: I195b2840854122e41275e24e886ca8c8cda13dac
find .... -name oem\*.prop
Kati can't emulate this command -- it can't currently handle backslashes
in the middle of an argument, only at the beginning or end. So this
falls back to actually calling find, which can take a few seconds if
you've got a large vendor tree. Just switch all of these over to quoted
arguments instead of escaping the *.
Bug: 78020936
Test: Check out/soong.log for timing info
Test: out/build-taimen.ninja is identical
Change-Id: Ifde75948f677ad95107d9419a462649024f544b8
Files in this partition aren't actually installed, so we don't need to
use the BUILD_PREBUILT logic for APKs.
Bug: 66960479
Test: try PRODUCT_COPY_FILES of an apk into system, errors
Test: try PRODUCT_COPY_FILES of an apk into system_other, accepted
Change-Id: Ie721d2b884c6badfbe0e46f55c265b770bed618b
This reverts commit 2325d05510.
Reason for revert: Broke -plus-aosp builds. Reverting there to fix.
Change-Id: I625092da1df78ac76590ab27b01ed6f506e5e237
* changes:
sdk lib name can be in LOCAL_[STATIC_]JAVA_LIBRARIES
java_sdk_library supports test as another API scope
Support LOCAL_SDK_LIBRARIES for "current" builds.
When an sdk lib name (a module defined with java_sdk_library{...}) is
listed in LOCAL_JAVA_LIBRARIES or LOCAL_STATIC_JAVA_LIBRARIES, the name
is translated to the stubs lib name of the sdk lib.
We have to support this at least until all existing references to sdk
libs are all correctly converted to LOCAL_SDK_LIBRARIES.
Bug: 77575606
Test: m -j
Change-Id: I8cff668afd6b5f265cc7ae6fe6f5fa36b76b8334
When a module built with LOCAL_SDK_VERSION := test_current, then
it is linked against test variant of the sdk stubs library.
Bug: 77575606
Test: m -j
Change-Id: I08ce120d8e4774722a95bfc4e200ad7d123abc70
Soong uses lists of proguard flags files from dependencies instead
of a single concatenated file. Allow Soong to pass the list to
make, which will concatenate it.
Move the check inside ifdef LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE
in case Soong exports an Android library with an empty
LOCAL_SOONG_EXPORT_PROGUARD_FLAGS.
Bug: 73724997
Test: m checkbuild
Change-Id: Ia8f229ec5f9fc99a23bd471dfa70c9de7316de94
Resolve these using the naming scheme from sdk_library.go, added
in I4a4ccf6e730e041703c63bb275d8860d0de96887.
Also re-write the LOCAL_SDK_VERSION logic, as it was becoming a
real mess.
Bug: 77575476
Test: With uiautomator in a follow-on CL
Change-Id: I11bd10c02df3d458a4ed6de90114e27fabe8d9e0
* changes:
Pass --dex-location when processing prebuilt profiles
Fix speed-profile compilation for prebuilds
Update profile rules to support binary profiles
This happens by default now.
Test: make
Bug: 73313191
(cherry picked from commit 25ef4c018a)
Merged-In: I5cc0efb656e1b44a161420c49250640bc9d702c5
Change-Id: I5cc0efb656e1b44a161420c49250640bc9d702c5