Context
- Create phony rule for java_api_library module with its artifact
(*.jar) as dependency
- Fix source directory base mislinkage issue for input text files passed
from java_api_contributions modules
Test: m
Change-Id: I055332fd5bc7ef0d03e7b311b0efa93f4454102f
This leads to an arm64 apex being used on a device that is mixed
x86_64 with nativebridge=arm64. A device like that doesn't appear
to work with arm64 binaries. For example, the boringssl-self-check
binary crashes on boot.
Bug: 260115309
Test: unit test
Test: boot emulator with this combination
Change-Id: Ic4a91974290a05b1799f755fcf52ef226d68f4c2
This change stops the build system from dexpreopting system server jars
for the secondary arch. System server jars are only loaded by the system
server, so the artifacts for the the secondary arch are not used.
Bug: 260577273
Test: Build a system image and no longer see artifacts for the
secondary arch.
Change-Id: I0b131a02e996ed50e7aec3bb0a221f8ceed9ce57
The min_sdk_version was added to the java_import in Tiramisu. This
change will propagate the min_sdk_version set on a java_library to the
java_import snapshot. If possible the min_sdk_version will be resolved
into a numerical version to ensure consistent behavior across build
releases.
Bug: 260560424
Test: m nothing
BUILD_NUMBER=fixed packages/modules/common/build/mainline_modules_sdks.sh
# Ran above before and after this change and made sure that only
# Tiramisu, UpsideDownCake and latest were changed and those changes
# were the addition of a min_sdk_version property.
#
# Ran the following command in tm-mainline-prod:
# lunch cf_x86_64_phone-userdebug
# m ART_MODULE_BUILD_FROM_SOURCE=false nothing`.
#
# It failed with:
# module "prebuilt_okhttp-norepackage" variant "android_common": should support min_sdk_version(33) for "AdServicesApk": min_sdk_version is not specified.
#
# Unpacked the Tiramisu art snapshot generated with this change into
# tm-mainline-prod and reran the previous command and it succeeded.
Change-Id: I9d9d730845554fc175d17f38c038e4e3c7d39e07
JavaDoc's implementation of `aidlFlags` omits `min_sdk_version`, and
therefore aidl compiler would default it to a default version.
To fix this, pass the min_sdk_version explicitly
Bug: 253122520
Test: TH
Test: go test ./java
Change-Id: Ia8f639174f8361136596d0e7b3286606f84705cd
In some cases the java_sdk_library needs to compile against hidden
platform APIs, in order to do so it needs to add impl_only_libs
dependency on the framework library, and set the sdk_version property to
the "core_*" one (e.g. core_platform).
However, if this java_sdk_library depends on the Android SDK in it's
stable API surface, then the setup above will break the stubs srcs
generation, as it uses the sdk_version of the java_sdk_library (e.g.
core_platform), which doesn't have symbols from the Android SDK.
This chage solves the problem by propagating the stub_only_libs to the
invocation that generates the stub sources. It allows the
java_sdk_libraries to add a stub_only_libs dependency on the
android_module_lib_stubs_current stubs library to fix their stubs build.
For more context see another change in this topic:
https://android-review.git.corp.google.com/c/platform/packages/modules/Virtualization/+/2310569
Bug: 243512044
Test: builds
Test: m nothing
Change-Id: Id745cfb2789901672561050c1c3f8bb163922379
sign_target_files_apks and check_target_files_signatures require that
certificates have a .x509.pem extension and reject missing.pem. Using
missing.x509.pem instead.
Bug: 259861670
Change-Id: I0b2367213a8cbe390c231a8609bb04df2b125eda
Context
- Update java_api_library module's prop name from api_providers to
api_contributions to adjust to module rename
- Update variables name correspondingly to enhance readability
Test: m
Change-Id: I93b941a572e04bed6084109d151ba83a82715651
Before this change, ANDROID_LINT_EXTRA_CHECK_MODULES was only read if
ANDROID_LINT_CHECK was also set. This change allows an entire module of
checks to be added to lint without having to specify all of the
individuals with ANDROID_LINT_CHECK.
This is part of a workaround to run some lint checks globally, but is
useful to provide more flexibility generally.
Bug: 236558918
Test: manually tested with AndroidFrameworkLintChecker
Change-Id: I2d3ec8a997d902c9d00a577a56f4b152b10e078a
Context
- fuzz_test.go is not listed in the soong/java test sources and is not
running on CI.
Implementation
- Fix fuzz_test.go and add to test sources
Test: m
Change-Id: If2685c646dec4885fc42d7760992309bfa9da382
Context
- Droidstubs module is currently responsible not only for java api stubs
generation, but also for checking api equality and compatibility.
- Generating stubs with incomplete api text file that does not list
entire api surface is done through metalava implicitly adding unlisted
methods from java source files to the stubs in droidstubs module.
- These factors make java stubs generation harder to debug, thus
introduce `java_api_contribution` and `java_api_library` modules to make java
api stubs and jar generation more explicit in Android.bp level and
eventually easier to debug.
Implementation
- `java_api_contribution` module is included in api domains' directory and
lists api text file directory to be added to the api surface
- `java_api_library` collects all api text file that forms the api surface
and creates stubs invoking metalava. Generated java stub files are
converted into `.srcjar`, and eventually `.jar` file which is the complete
api surface.
Test: m
Change-Id: I86f097cc8592334a5eaa900cec12764c5fcc09e7
This change is a no-op change. It doesn't enable userfaultfd GC by
default. ENABLE_UFFD_GC=true can be passed to the build system to enable
userfaultfd GC for testing purposes.
Bug: 242553398
Test: -
1. lunch aosp_oriole-userdebug
2. ENABLE_UFFD_GC=true m
3. See "--runtime-arg -Xgc:CMC" in .invocation files.
Change-Id: I789b49a71b9604fd41bf1ef77d0ac5bac4cbdf25
java_library modules with .kt srcs or common_srcs will be converted into
module type kt_jvm_library
Test: m bp2build, manually inspected build files for allowlisted modules
Bug: 258688914
Change-Id: I8293a11c8247b4b76358d0991f82c6b61b58adc3
The sdk snapshot must not be including implementation code for boot
libraries, the implementation is provided by dex jars within the
corresponding APEX. However, the snapshot does need a module for each
boot library so that the build can seamlessly access the dex files from
the APEX.
A java_library boot library (like core-oj) is represented in the
snapshot by a java_import module which requires a jar file to be
provided, otherwise it is disabled. However, that is provided purely
to keep Soong happy and should never be used.
Previously, the snapshot would contain an empty file for the jar. As
an empty file is an invalid jar any tool (like compiler) that tried
to consume it would fail which was the correct behavior. Unfortunately,
the error message that was produced was not very helpful, it was just
some variant on `invalid file` which lead to a lot of bugs being
raised.
This change replaces that empty file with a reference to the output
from a genrule which runs a script which produces a more useful error
message, with information on how to fix the issue, and fails the build.
It also adds a Name() method to the SdkMemberProperties type as that is
needed in AddInternalModule() to construct the name of the additional
module.
Tested as follows:
In AOSP/master make the following changes:
1. Temporarily set visibility on core-oj and core-libart to
//visibility:public.
2. Run packages/modules/common/build/mainline_modules_sdks.py to create
the snapshots.
For each of the S, T and latest snapshots I did the following in the
s-aml-prebuilt-test, t-aml-prebuilt-test and aosp/master branches:
1. Created an Android.bp file containing the following:
java_library {
name: "broken",
static_libs: [
"prebuilt_core-libart",
"prebuilt_core-oj",
],
}
2. Fix the visibility issues and run `m broken` where it fails with an
invalid file.
3. Delete the contents of the prebuilts/module_sdk/art/current/sdk
directory.
4. Unpack the relevant version of the art-module-sdk snapshot into the
directory.
5. Run `m broken` where it fails with the helpful message.
6. Test the instructions on how to use the ninja -t path tool to
identify the cause of the problem and fix it.
Bug: 257969510
Test: See above.
Change-Id: I125bde2d7202afff84c97daebcef37e21c548a3a
Remove all modules from legacyCorePlatformApiModules that exist
in internal master and build without the legacy stubs in an
aosp_sunfish-userdebug build.
Bug: 161973015
Test: builds
Change-Id: I2e6248ec0cde0d751f66f32bc7e787b7adbfb75b
Remove all modules from legacyCorePlatformApiModules that exist
in AOSP and build without the legacy stubs. The remaining modules
that exist in AOSP in all products and still need the legacy stubs are:
framework-jobscheduler
framework-minus-apex
framework-minus-apex-intdefs
FrameworksCoreTests
services
services.core.unboosted
Settings-core
SettingsLib
SettingsRoboTests
telephony-common
TeleService
The remainder of the modules still in the list either only exist in
internal master or are product-specific.
Bug: 161973015
Test: builds
Change-Id: I8995670aaaa8dce8e4a870ec1700d1dd7be7c95e
Remove modules that don't exist in an internal master
aosp_sunfish-userdebug build and also have no references in
codesearch.
Bug: 161973015
Test: builds
Change-Id: I4372f140b3fc7d6a9cda01a243f200fe084ef099
Sort the modules in legacyCorePlatformApiModules to simplify removing
unnecessary entries. Also remove a comment that doesn't add any value
and makes it harder to run scripts against the list.
Bug: 161973015
Test: builds
Change-Id: I0886baa42209600cfd1e16e5d4919a784efe29ab
SystemUI seems to build fine against the stable core platform API.
Bug: 161973015
Test: m SystemUI-core SystemUISharedLib SystemUI-tests
Change-Id: I584f98f991e0b9c8b1a5dba1fcc1bef0745dbdc0
There are no riscv64 prebuilts in apex sets, use arm64 ones for
now.
Test: lunch aosp_riscv64-userdebug && m droid dist
Change-Id: Iee2d669e01d93504642223939857634b7fd1c1ba
Allow genrules to access the turbine header jar outputs
from java_library modules using the .hjar output file
tag.
Bug: 251871740
Test: m checkbuild
Change-Id: Ib1ec9734323a51583057fb458f791e1e0bd0d767
Since Bazel's java_import requires a jars attribute to be specified,
the generated neverlink-duplicated module is of type java_library
Change-Id: I14a866dfc583507a9462add50d95060cbfe540c5
Bug: 244210934
Test: m bp2build, go test ./bp2build, manual inspection of generated Build and jar files