summaryrefslogtreecommitdiff
path: root/api/api.go
AgeCommit message (Collapse)Author
2025-01-13Merge "Change CombinedApis to actually use WalkDepsProxy, also uses the ↵ Yu Liu
newly added AndroidLibraryDependencyInfo." into main am: f920cc5d8e am: a783122642 Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3446190 Change-Id: I72d0059f4170d0b4bb3291fa85ea80d3ffcd91ec Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-01-10Change CombinedApis to actually use WalkDepsProxy, also uses the newly Yu Liu
added AndroidLibraryDependencyInfo. Bug: 377723687 Test: Unit tests and compare the ninja and mk files generated. Change-Id: Iad4013d3212e8f575dd55bcfec0e2b659ae0d8db
2024-12-17Merge "Convert CombinedApis's GenerateAndroidBuildActions to use ↵ Yu Liu
ModuleProxy." into main am: d8c9b4edf7 am: 1a34e9431f Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3414380 Change-Id: I7aad646c118e81c6f0576751f3746358f0d63616 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-12-13Convert CombinedApis's GenerateAndroidBuildActions to use ModuleProxy. Yu Liu
Bug: 377723687 Test: Unit tests and compare the ninja and mk files generated. Change-Id: I6fe92d788c9bbbe3b5b476d61c94e1105d1859b0
2024-12-04Fix hidden API usages to alternative API usages Sandeep Bandaru
After moving the code to mainline module, all interactions from platform should be via APIs or relevant util classes cloned and jarjar'd within the module. This change moves such usages to existing APIs or makes a module-utils copy of such classes to be used independantly in the module. Flag: build.release_ondevice_intelligence_module Bug: 376427781 Change-Id: I5bc5fa5b7e2e2ba2899b4cbba536103d66a6aa19
2024-11-08Merge "Depend on exportable mainline module stubs for doc generation" into ↵ Linus Tufvesson
main am: bfb3ed2149 am: 2c8c4fa5d2 Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3342398 Change-Id: I57348dfb755982a4dfba4e2a7ce5232e8e62edb2 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-11-07Depend on exportable mainline module stubs for doc generation Jihoon Kang
This change modifies the dependency graph of framework-doc-stubs to depend on the exportable stub source jar of the mainline modules, so that the flagged apis symbols are not elided. Test: m doc dist && unzip -l out/dist/offline-sdk-docs-docs.zip | grep "android/configinfrastructure/aconfig" Bug: 377585897 Change-Id: I2de643c27417a0ccb21016a3bc495127f3a30f81
2024-10-25Separating framework platform crashrecovery jar Harshit Mahajan
Creating new jar "framework-platformcrashrecovery". This would separate all the apis to a different sdk library while still being part of core platform. This jar is behind release_crashrecovery_module flag which also controls enabling CrashRecovery module apex. Based on the flag only one of platformcrashrecovery jar or CrashRecovery Apex will be used. So essentially on device if release_crashrecovery_module flag is 1. true: CrashRecovery Apex is present, this jar is not used 2. false: CrashRecovery Apex is not used, this jar is present Bug: 289203818 Test: Jar is present in Bootclasspath on device Test: ExplcitHealthCheckService registered on device Flag: build.release_crashrecovery_module Change-Id: I4696e74a1ba236614398b48a6d7145777079286b
2024-10-22Remove dependencies on the 1-variant fallback Cole Faust
When adding a dependencies, if the variants don't match, but the dependency only has 1 variant anyways, soong will always use that variant. This makes it hard to add new variants to soong, because the 1-variant fallback stops being used and you start getting missing variant errors. Make changes to bp files such that all dependencies correctly specify the variant to use. Bug: 372091092 Flag: EXEMPT refactor Test: m nothing Change-Id: I305d9a549fc132c3d14f56eae1abbac1b9defd10
2024-10-07Remove dependencies on the 1-variant fallback Cole Faust
Currently, adding depedencies will use the only variant of a module if only 1 variant exists. Otherwise, the variations of the two modules + the variations explicitly requested must match. The 1-variant fallback causes issues for incremental soong, so remove reliances on it. Bug: 372091092 Test: m nothing --no-skip-soong-tests Change-Id: I778d1d8d67e9d0ccc3432f12e50d15c174b5dbf5
2024-09-05Don't evaluate configurable properties in load hooks Cole Faust
Load hooks are very early, when trying to change the configuration for certain modules in the build, we can't read the configuration this early. Bug: 362579941 Test: m nothing --no-skip-soong-tests Change-Id: I08252aa42a92498f90863522d8eba243cd035ffc
2024-08-06Revert "Revert "Remove full api surface from-text stubs java_api..." Jihoon Kang
Revert submission 3207397-revert-2982300-java_api_library_non_sdk-FIKZOSARQI Reason for revert: Post submit build breakage culprit fixed Reverted changes: /q/submissionid:3207397-revert-2982300-java_api_library_non_sdk-FIKZOSARQI Change-Id: Ie4741daf508c7cc9c6688091d44658bfb76df6b1
2024-08-05Revert "Remove full api surface from-text stubs java_api_library..." Liana Kazanova
Revert submission 2982300-java_api_library_non_sdk Reason for revert: DroidMonitor: Potential culprit for b/357648959 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Reverted changes: /q/submissionid:2982300-java_api_library_non_sdk Change-Id: I4224efbb47dc5ecf9afd7e3c9cd00b59a6c337ae
2024-08-02Remove full api surface from-text stubs java_api_library modules Jihoon Kang
The toggle between from-text and from-source stubs are made within java_sdk_library level stubs, and they no longer depend on the full api surface java_api_library modules. Therefore, these can be safely removed. This change also rename android_*_stubs_current.from-source to android_*_stubs_current, and remove the full api surface modules that are currently generated from api.go. Test: ENABLE_HIDDENAPI_FLAGS=true m Bug: 327507877 Change-Id: If1f081693c7380e2ed5b5d4a1a7f7365ef1770ca
2024-07-20Merge "Remove combined_apis_defaults module type" into main Treehugger Robot
2024-07-19Remove combined_apis_defaults module type Jihoon Kang
This change removes the combined_apis_defaults module type, given that combined_apis module type is not defaultable as it creates a default module in its module factory. The only usage of this module type has been removed with https://r.android.com/3184819 . Test: m nothing --no-skip-soong-tests Bug: 349800749 Change-Id: Ib78eb965124b2c80e871b1bc022011843ebaab9a
2024-07-18Support select in combined_apis properties Jihoon Kang
This change allows combined_apis.bootclasspath and combined_apis.system_server_classpath properties to be modified based on configuration using select statements. Bug: 349800749 Test: m nothing --no-skip-soong-tests Change-Id: I08bf4200738268fe833389f15e24271058528944
2024-06-20Update previous_api for droidstubs and java_api_library Paul Duffin
Needed to ensure recently added nullability annotations `@Nullable` and `@NonNull` are correctly replaced with `@RecentlyNullable` and `@RecentlyNonNull` respectively. Bug: 347751326 Test: # Build modules before and after this change and verify that # public stubs are unchanged but other stubs use the correct # nullability annotations. Change-Id: If97859b6207f03c1dcd3a0cc9c44f82147449cad
2024-05-03Build complete api-versions.xml files for module-lib/system-server Paul Duffin
Previously, APIs from updatable modules and information about the SDK extensions was only included in `api_versions_public` and `api_versions_system`. This change adds the following two modules: * `api_versions_module_lib_complete` * `api_versions_system_server_complete` It did not change `api_versions_module_lib` or `api_versions_system_server` because Android Lint requires that they do not include information about APIs from updatable modules because otherwise it will report calls within a module as it has no way to determine whether a call crosses an API boundary or not. Bug: 336993217 Test: TARGETS=$(for i in public system module-lib module-lib-complete system-server-complete; do U=$(echo $i | sed "s|-|_|g"); echo "out/target/common/obj/PACKAGING/api_versions_${U}_generated-api-versions.xml"; done) m $TARGETS; mkdir -p before; cp $TARGETS before m $TARGETS; mkdir -p after; cp $TARGETS after meld before after # Review differences. Change-Id: Ia542fbdc517fb223a0488f0e3f81b8727cb204e4
2024-02-14Merge "Set is_stubs_module for stubs modules" into main LaMont Jones
2024-02-14Set is_stubs_module for stubs modules Jihoon Kang
This change sets is_stubs_module property to true for combined modules genreated in `combined_apis` and non-updatable stub modules, which are not generated via java_sdk_library but are maintained separately. Test: m nothing --no-skip-soong-tests Bug: 310504781 Merged-In: I1293208e575a76db2cc4dc6c8564369804bb4ac5 Change-Id: I1293208e575a76db2cc4dc6c8564369804bb4ac5
2024-02-12Enforce bcp/sscp stubs do not compile against apps Spandan Das
This ensures that we do not run into circular depencies when UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true. When this variable is true, apps compile with a min_sdk_version equivalent to the sha of the apis (i.e. the java_genrule `api_fingerprint`). If the api stubs are allowed to depend on android apps, we will run into circular deps Implementation details 1. Modify the deps mutator of combined_apis to add a dependency on the stub java modules 2. Do a graph walk in GenerateAndroidBuildActions and ensure that no child is an android_app. This will be determined by casting to AndroidLibraryDependency. Re (2): this does a graph walk via ctx.WalkDeps, but should not be computationally intensive because (a) We do this for a single module (i.e. combined_apis) (b) The transitive closure is shallow since it starts from stubs Test: presubmits Test: locally, added an app to libs of `service-sdksandbox` and verified that the error is raised Bug: 315016205 Change-Id: Iaf35f03171d13d75e75de6e0e744fcf34e3294fd
2024-02-07Add merged txt filegroups that depend on the exportable non-updatable txt files Jihoon Kang
Currently, ther merged txt filegroups are dist'ed as api/*-current.txt and api/*-removed.txt files during droid dist build. This change adds additional merged txt filegroup modules that depend on the non-updatable exportable txt files instead of the checked in non-updatable txt files (under frameworks/base/core). These added modules will be dist'ed in droid build, instead of the currently existing merged txt filegroups. Test: m nothing && inspect ninja output Bug: 324254328 Change-Id: Ib0b47ba032a2917d0f2df6ad585d2102d6940c50
2024-01-31Merge changes from topic "framework-nfc-updatable" into main Treehugger Robot
* changes: nfc(api): Move NFC API lint baseline nfc(api): Move nfc classes to framework-nfc framework-nfc: Switch to "framework-module-defaults"
2024-01-12Merge "Define exportable full api surface stubs" into main Jihoon Kang
2024-01-12framework-nfc: Switch to "framework-module-defaults" Roshan Pius
Now that all the @hide usage of NFC API's from rest of platform is cleaned out, we can now switch to the module defaults and continue the separation of NFC API classes. Bug: 303286040 Test: Compiles Merged-In: I8bd5e38b1482600594c41660d14537cf15b48318 Change-Id: I8bd5e38b1482600594c41660d14537cf15b48318
2024-01-11Define exportable full api surface stubs Jihoon Kang
The two major roles of the full api surface stubs (i.e. android_*_stubs_current) are: - Appended to classpath when a module sets sdk_version - Input to generating hiddenapi flags and determine the accessibility of the api at runtime With Trunk Stable, all flagged apis that are not enabled should not be accessible at runtime. In other words, the currently existing full api surface stubs that include both non flagged and flagged apis should not be used to generate the hiddenapi flags. To resolve this problem, this change introduces full api surface stubs of the "exportable" stubs (i.e. non flagged apis + flagged apis enabled by release configuration). The new modules are named similarly to the currently existing full api surface stubs, but appends the "_exportable" prefix to differentiate with the currently existing modules. These modules are solely used for hiddenapi flags generation, and the currently existing modules continue to serve the first aforementioned role. The new modules will toggle between the from-text stubs module and the from-source stubs module when the exportable stubs can be generated from the from-text stubs generating `java_api_library` module. For now, these modules are always built from source. Test: m android_stubs_current_exportable Bug: 317426356 Change-Id: I1f6f738ae9c5ebf151a1554aa1e357ef0092c89c
2024-01-10Add combined_api_defaults module type Harshit Mahajan
Allow specifying default combined api properties. This would be currently used to control the enablement of new mainline modules Bug:b/289203818 Test: verified locally Change-Id: I9415140453ce04efd5461cb8684c70e987810ecc
2023-12-07Remove bp2build from frameworks/base/api/ Colin Cross
Bug: 315353489 Test: m blueprint_tests Change-Id: I50d938017203ad12198d8a6373c9aef80a8535c6
2023-11-17Created empty framework-nfc non-updatable module Roshan Pius
Bug: 303286040 Test: Device boots up after flashing Merged-In: Iad08614f0aa3b7bea12a1ad52debd0ee13302a8e Change-Id: Iad08614f0aa3b7bea12a1ad52debd0ee13302a8e
2023-10-23Created empty framework-location non-updatable module Mark White
Note that this is a re-cherry-pick of the original CL that is closer to the original CL than the first CP, to minimize the number of conflicts in Android.bp files. Bug: 289776578 Test: presubmit Merged-In: I721fc4ae5c62cf1eada9bb6b4e5b3f1a4c9db21a Change-Id: Ibf98f37cb795bc7f627a485546b6ce8ec23b3a9e
2023-10-23SdkTestCore for non-updatable modules Mark White
Provides SdkTestCore/test_core_current sdk_version for non-updatable modules that have their test scope dependent on test apis from framework-minus-apex. Ignore-AOSP-First: Change in topic with internal-first projects Bug: 289776578 Test: m checkapi Merged-In: I855346c01bb609e81b14dbdc13330315badc339e Change-Id: I855346c01bb609e81b14dbdc13330315badc339e
2023-10-03assign labels to merged_txt modules with defs Chris Parsons
This is groundwork for allowlist v2, and ensures that rdeps of merged_txt targets appropriately reflect that these targets exist. Fixes: 302061007 Test: Unit test update Change-Id: I1d64635bb3db50ee525f1a557fd4b73d50dba879
2023-09-13Change ConvertWithBp2build signature Chris Parsons
Test: See CL topic Change-Id: Id7d5366fd713409c2a9e12407b901d5d1d91a289
2023-08-15Merge "Use new merge-signatures metalava subcommand" into main Paul Duffin
2023-08-14Use new merge-signatures metalava subcommand Paul Duffin
Bug: 295737759 Test: ./gradlew Change-Id: Ied167094b04492ca49ea2b0e9d7fd91d534e483d
2023-08-14Define previous_api in full api surface stubs java_api_library defaults Jihoon Kang
previous_api input is required to migrate nullness information in metalava and generate loosely equivalent from-text stubs. Since "android.api.public.latest" is the only input for previous_api in the tree, this is hardcoded for full api surface java_api_library modules defaults for now. Test: m && compare nullness annotations for from-text stubs and from-source stubs Bug: 293962901 Change-Id: Ic07db8c3bd37fa41ff245952c94b5c5b4773af36
2023-06-02Create full API surface java_library in combined_apis Jihoon Kang
This change renames the full api surface stub jar generating java_library modules by adding ".from-source" suffix and creating the modules in combined_apis. Either the ".from-source" module or the ".from-text" module is added as static libs based on the build config. Bug: 284150060 Bug: 284995489 Bug: 285410821 Test: m && m --build-from-text-stub and verify no ninja path between android_stubs_current and android_stubs_current.from-source Change-Id: I1419af0cd0ca2199e82e3337717b6391a51267c4
2023-04-07Create java_defaults in api.go Jihoon Kang
combined_apis.bootclasspath lists java_sdk_library modules that contribute to API surfaces. The api_contribution modules generated from these sdk_library modules (more specifically, from droidstubs module created from the sdk_library module) are used to generate full api surface java_api_library modules. Currently, the java_defaults modules are hardcoded, but this leads to a duplicate source of truth, adding difficulty in scaling the api domains that contributes to api surfaces. Generating the java_defaults dynamically in combined_apis instead of hardcoding resolves this problem, as well as the discrepancy in the list of api contributions in aosp and internal master. Test: m android_<API_SURFACE_NAME>_stubs_current.from-text Bug: 277378670 Change-Id: I987c2c1d89535d2347cf14d084c9c9a47e1db5e0
2023-03-20Merge "Remove trimmed api versions file" Cole Faust
2023-03-14Remove trimmed api versions file Cole Faust
The trimmed api versions file was used to remove updatable apis from the lint database. This non-updatable lint database was used with modules that compile against module-lib or system-server sdks. However, now we have proper module-lib and system-server lint sdk databases, that don't have the updatable apis inherently, and we can remove the api versions trimmer. Bug: 193460475 Test: Presubmits Change-Id: Iac50c7647491ce3e4e85f75dd92d63c6ee1286b2
2023-03-08Remove unnecessary slice in combined_apis bp2build converter Zi Wang
Test: m and api_test Change-Id: Id36892325ffd35004c4b88b69d52f9e1c6afe759
2023-03-05Add minimal bp2build converter for combined apis Zi Wang
4 merged_txts targets will be generated for a combined_api target Test: api_conversion_test.go and TH Bug: 267600251 Change-Id: I8ec4a1073538c394a7eef896d8f6e354986fa2cd
2023-02-15Convert merged srcjar rule to Android.bp Anton Hansson
api.go was made to create modules that were hard to create in Android.bp. However since we now have a filegroup with all the public srcjars this rule can very easily be expressed in Android.bp. Test: build before & after (no diff) Change-Id: I1d6c6bdcd6b75693de1e80ced13efd1d10202171
2022-12-05Allow non-updatable modules to contribute to @TestApi Nikita Ioffe
java_sdk_libraries can be part of non-updatable modules. Those modules might have a need to expose @TestApis that are only used in CTS tests. This change adds an ability for them to do so by introducing all-non-updatable-modules-test-stubs, and adding it to the android_test_stubs_current. Note that this change doesn't allow updatable modules to contribute to test API stubs, since the list of the modules that can contribute to test APIs stubs is hardcoded in the non_updatable_modules constant. Bug: 261004711 Test: m Change-Id: I9d17f49702bd64f5718b445f14b203c146bc6794
2022-11-16Add framework-virtualization to combined_apis Nikita Ioffe
Since framework-virtualization is part of a non-updatable APEX module, it should still be allowed to compile against unstable APIs. However, the current setup of all-framework-module-impl prevents that, since the all-framework-module-lib target compiles against module_sdk. This change works around this by introducing the updatable-framework-module-impl target which builds against module_current SDK, and includes all updatable modules. The non-updatable modules are then statically linked into the all-framework-module-impl target, which builds against hidden APIs. Bug: 243512044 Test: builds Change-Id: I253aa8dcd7c9b109e023a44128ce08ec8f2b4d33
2022-10-12Add lint api database files for module and system server sdks Cole Faust
Soong modules compiled against the module or system server sdks should use the api_versions.xml for their respective sdk, but currently they use the public-filtered api database. Add module and system server sdk build targets to be used later. Right now they're unused. I'm adding them first so that they can be built on the build server, and then we can import them into prebuilts/sdk, as some builds require the api files to be prebuilt. Bug: 193460475 Test: m api-versions-xml-module-filtered api-versions-xml-system-server-filtered Change-Id: I668a878a470125ed3ecf79435713c27c4dd92b0a
2022-06-28Merge tm-dev-plus-aosp-without-vendor@8763363 Xin Li
Bug: 236760014 Merged-In: I5705ac7586cb73b7bc2bd60bb792d0a0a951ed74 Change-Id: I59a4fd917c95c8c9e258cd743cee2d950a46d9cd
2022-06-23Add a system variant of the merged annotations Anton Hansson
This is going to be disted instead of the monolithic one being used currently. Bug: 235140934 Test: m sdk-annotations{,-system}.zip and diff; manual spot checking Test: m sdk dist && diff out/dist/system-data/annotations.zip with this Change-Id: I9874f88e933a8b804a73638e6bac7a9d312c7c9f
2022-06-23Refactor merged annotations creation Anton Hansson
It's clearer to define the module in Android.bp, and keep our custom Go code to the minimal. The only thing the go code really needs to do is create a "all module annotations" module. This matches the pattern of the other modules here (the pattern was invented after sdk-annotations.zip was first migrated). Bug: 235140934 Test: m sdk-annotations.zip before/after (no diffs) Change-Id: Iae246081bcf4e5177d1da98c2e01c702fb349a22