Loading Android.bp +140 −14 Original line number Diff line number Diff line Loading @@ -415,21 +415,18 @@ java_defaults { ], } java_library { name: "framework-minus-apex", // Separated so framework-minus-apex-defaults can be used without the libs dependency java_defaults { name: "framework-minus-apex-with-libs-defaults", defaults: ["framework-minus-apex-defaults"], installable: true, // For backwards compatibility. stem: "framework", apex_available: ["//apex_available:platform"], visibility: [ "//frameworks/base", // TODO(b/147128803) remove the below lines "//frameworks/base/apex/blobstore/framework", "//frameworks/base/apex/jobscheduler/framework", "//frameworks/base/packages/Tethering/tests/unit", "//packages/modules/Connectivity/Tethering/tests/unit", libs: [ "framework-virtualization.stubs.module_lib", "framework-location.impl", ], } java_defaults { name: "framework-non-updatable-lint-defaults", lint: { extra_check_modules: ["AndroidFrameworkLintChecker"], disabled_checks: ["ApiMightLeakAppVisibility"], Loading @@ -443,6 +440,43 @@ java_library { "UseOfCallerAwareMethodsWithClearedIdentity", ], }, } // we are unfortunately building the turbine jar twice, but more efficient and less complex // than generating a similar set of stubs with metalava java_library { name: "framework-minus-apex-headers", defaults: ["framework-minus-apex-defaults"], installable: false, // For backwards compatibility. stem: "framework", apex_available: ["//apex_available:platform"], visibility: [ "//frameworks/base/location", ], compile_dex: false, headers_only: true, } java_library { name: "framework-minus-apex", defaults: [ "framework-minus-apex-with-libs-defaults", "framework-non-updatable-lint-defaults", ], installable: true, // For backwards compatibility. stem: "framework", apex_available: ["//apex_available:platform"], visibility: [ "//frameworks/base", "//frameworks/base/location", // TODO(b/147128803) remove the below lines "//frameworks/base/apex/blobstore/framework", "//frameworks/base/apex/jobscheduler/framework", "//frameworks/base/packages/Tethering/tests/unit", "//packages/modules/Connectivity/Tethering/tests/unit", ], errorprone: { javacflags: [ "-Xep:AndroidFrameworkCompatChange:ERROR", Loading @@ -453,7 +487,7 @@ java_library { java_library { name: "framework-minus-apex-intdefs", defaults: ["framework-minus-apex-defaults"], defaults: ["framework-minus-apex-with-libs-defaults"], plugins: ["intdef-annotation-processor"], // Errorprone and android lint will already run on framework-minus-apex, don't rerun them on Loading Loading @@ -481,6 +515,7 @@ java_library { installable: false, // this lib is a build-only library static_libs: [ "app-compat-annotations", "framework-location.impl", "framework-minus-apex", "framework-updatable-stubs-module_libs_api", ], Loading Loading @@ -690,6 +725,97 @@ stubs_defaults { ], } // Defaults for the java_sdk_libraries of unbundled jars from framework. // java_sdk_libraries using these defaults should also add themselves to the // non_updatable_modules list in frameworks/base/api/api.go java_defaults { name: "framework-non-updatable-unbundled-defaults", defaults: ["framework-non-updatable-lint-defaults"], sdk_version: "core_platform", // Api scope settings public: { enabled: true, sdk_version: "module_current", libs: ["android_module_lib_stubs_current"], }, system: { enabled: true, sdk_version: "module_current", libs: ["android_module_lib_stubs_current"], }, module_lib: { enabled: true, sdk_version: "module_current", libs: ["android_module_lib_stubs_current"], }, test: { enabled: true, sdk_version: "test_frameworks_core_current", libs: ["android_test_frameworks_core_stubs_current"], }, stub_only_libs: [ "framework-protos", ], impl_only_libs: [ "framework-minus-apex-headers", // full access to framework-minus-apex including hidden API "framework-annotations-lib", ], visibility: ["//visibility:public"], stubs_library_visibility: ["//visibility:public"], stubs_source_visibility: ["//visibility:private"], impl_library_visibility: [ ":__pkg__", "//frameworks/base", "//frameworks/base/api", // For framework-all ], defaults_visibility: [ "//frameworks/base/location", ], plugins: [ "error_prone_android_framework", ], errorprone: { javacflags: [ "-Xep:AndroidFrameworkCompatChange:ERROR", "-Xep:AndroidFrameworkUid:ERROR", ], }, // Include manual annotations in API txt files merge_annotations_dirs: ["metalava-manual"], // Use the source of annotations that affect metalava doc generation, since // the relevant generation instructions are themselves in javadoc, which is // not present in class files. api_srcs: [":framework-metalava-annotations"], // Framework modules are not generally shared libraries, i.e. they are not // intended, and must not be allowed, to be used in a <uses-library> manifest // entry. shared_library: false, // Prevent dependencies that do not specify an sdk_version from accessing the // implementation library by default and force them to use stubs instead. default_to_stubs: true, // Subdirectory for the artifacts that are copied to the dist directory dist_group: "android", droiddoc_options: [ "--error UnhiddenSystemApi " + "--hide CallbackInterface " + "--hide HiddenTypedefConstant " + "--hide RequiresPermission " + "--enhance-documentation " + "--hide-package com.android.server ", ], annotations_enabled: true, } build = [ "AconfigFlags.bp", "ProtoLibraries.bp", Loading api/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ combined_apis { "framework-devicelock", "framework-graphics", "framework-healthfitness", "framework-location", "framework-media", "framework-mediaprovider", "framework-ondevicepersonalization", Loading api/StubLibraries.bp +1 −1 Original line number Diff line number Diff line Loading @@ -527,7 +527,6 @@ java_library { static_libs: [ "all-updatable-modules-system-stubs", "android-non-updatable.stubs.test", "private-stub-annotations-jar", ], defaults: [ "android.jar_defaults", Loading Loading @@ -652,6 +651,7 @@ java_defaults { api_surface: "test", api_contributions: [ "framework-virtualization.stubs.source.test.api.contribution", "framework-location.stubs.source.test.api.contribution", ], } Loading api/api.go +5 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ const art = "art.module.public.api" const conscrypt = "conscrypt.module.public.api" const i18n = "i18n.module.public.api" const virtualization = "framework-virtualization" const location = "framework-location" var core_libraries_modules = []string{art, conscrypt, i18n} Loading @@ -42,7 +43,7 @@ var core_libraries_modules = []string{art, conscrypt, i18n} // APIs. // In addition, the modules in this list are allowed to contribute to test APIs // stubs. var non_updatable_modules = []string{virtualization} var non_updatable_modules = []string{virtualization, location} // The intention behind this soong plugin is to generate a number of "merged" // API-related modules that would otherwise require a large amount of very Loading Loading @@ -296,8 +297,10 @@ func createMergedFrameworkImpl(ctx android.LoadHookContext, modules []string) { } func createMergedFrameworkModuleLibStubs(ctx android.LoadHookContext, modules []string) { // The user of this module compiles against the "core" SDK, so remove core libraries to avoid dupes. // The user of this module compiles against the "core" SDK and against non-updatable modules, // so remove to avoid dupes. modules = removeAll(modules, core_libraries_modules) modules = removeAll(modules, non_updatable_modules) props := libraryProps{} props.Name = proptools.StringPtr("framework-updatable-stubs-module_libs_api") props.Static_libs = transformArray(modules, "", ".stubs.module_lib") Loading location/Android.bp +20 −3 Original line number Diff line number Diff line Loading @@ -15,10 +15,27 @@ filegroup { ], } java_library { name: "framework-location.stubs.module_lib", java_sdk_library { name: "framework-location", srcs: [ ":framework-location-nonupdatable-sources", ], sdk_version: "core_platform", defaults: ["framework-non-updatable-unbundled-defaults"], permitted_packages: [ "android.location", "com.android.internal.location", ], libs: [ "app-compat-annotations", "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage ], hidden_api_packages: [ "com.android.internal.location", ], aidl: { include_dirs: [ "frameworks/base/location/java", "frameworks/base/core/java", ], }, } Loading
Android.bp +140 −14 Original line number Diff line number Diff line Loading @@ -415,21 +415,18 @@ java_defaults { ], } java_library { name: "framework-minus-apex", // Separated so framework-minus-apex-defaults can be used without the libs dependency java_defaults { name: "framework-minus-apex-with-libs-defaults", defaults: ["framework-minus-apex-defaults"], installable: true, // For backwards compatibility. stem: "framework", apex_available: ["//apex_available:platform"], visibility: [ "//frameworks/base", // TODO(b/147128803) remove the below lines "//frameworks/base/apex/blobstore/framework", "//frameworks/base/apex/jobscheduler/framework", "//frameworks/base/packages/Tethering/tests/unit", "//packages/modules/Connectivity/Tethering/tests/unit", libs: [ "framework-virtualization.stubs.module_lib", "framework-location.impl", ], } java_defaults { name: "framework-non-updatable-lint-defaults", lint: { extra_check_modules: ["AndroidFrameworkLintChecker"], disabled_checks: ["ApiMightLeakAppVisibility"], Loading @@ -443,6 +440,43 @@ java_library { "UseOfCallerAwareMethodsWithClearedIdentity", ], }, } // we are unfortunately building the turbine jar twice, but more efficient and less complex // than generating a similar set of stubs with metalava java_library { name: "framework-minus-apex-headers", defaults: ["framework-minus-apex-defaults"], installable: false, // For backwards compatibility. stem: "framework", apex_available: ["//apex_available:platform"], visibility: [ "//frameworks/base/location", ], compile_dex: false, headers_only: true, } java_library { name: "framework-minus-apex", defaults: [ "framework-minus-apex-with-libs-defaults", "framework-non-updatable-lint-defaults", ], installable: true, // For backwards compatibility. stem: "framework", apex_available: ["//apex_available:platform"], visibility: [ "//frameworks/base", "//frameworks/base/location", // TODO(b/147128803) remove the below lines "//frameworks/base/apex/blobstore/framework", "//frameworks/base/apex/jobscheduler/framework", "//frameworks/base/packages/Tethering/tests/unit", "//packages/modules/Connectivity/Tethering/tests/unit", ], errorprone: { javacflags: [ "-Xep:AndroidFrameworkCompatChange:ERROR", Loading @@ -453,7 +487,7 @@ java_library { java_library { name: "framework-minus-apex-intdefs", defaults: ["framework-minus-apex-defaults"], defaults: ["framework-minus-apex-with-libs-defaults"], plugins: ["intdef-annotation-processor"], // Errorprone and android lint will already run on framework-minus-apex, don't rerun them on Loading Loading @@ -481,6 +515,7 @@ java_library { installable: false, // this lib is a build-only library static_libs: [ "app-compat-annotations", "framework-location.impl", "framework-minus-apex", "framework-updatable-stubs-module_libs_api", ], Loading Loading @@ -690,6 +725,97 @@ stubs_defaults { ], } // Defaults for the java_sdk_libraries of unbundled jars from framework. // java_sdk_libraries using these defaults should also add themselves to the // non_updatable_modules list in frameworks/base/api/api.go java_defaults { name: "framework-non-updatable-unbundled-defaults", defaults: ["framework-non-updatable-lint-defaults"], sdk_version: "core_platform", // Api scope settings public: { enabled: true, sdk_version: "module_current", libs: ["android_module_lib_stubs_current"], }, system: { enabled: true, sdk_version: "module_current", libs: ["android_module_lib_stubs_current"], }, module_lib: { enabled: true, sdk_version: "module_current", libs: ["android_module_lib_stubs_current"], }, test: { enabled: true, sdk_version: "test_frameworks_core_current", libs: ["android_test_frameworks_core_stubs_current"], }, stub_only_libs: [ "framework-protos", ], impl_only_libs: [ "framework-minus-apex-headers", // full access to framework-minus-apex including hidden API "framework-annotations-lib", ], visibility: ["//visibility:public"], stubs_library_visibility: ["//visibility:public"], stubs_source_visibility: ["//visibility:private"], impl_library_visibility: [ ":__pkg__", "//frameworks/base", "//frameworks/base/api", // For framework-all ], defaults_visibility: [ "//frameworks/base/location", ], plugins: [ "error_prone_android_framework", ], errorprone: { javacflags: [ "-Xep:AndroidFrameworkCompatChange:ERROR", "-Xep:AndroidFrameworkUid:ERROR", ], }, // Include manual annotations in API txt files merge_annotations_dirs: ["metalava-manual"], // Use the source of annotations that affect metalava doc generation, since // the relevant generation instructions are themselves in javadoc, which is // not present in class files. api_srcs: [":framework-metalava-annotations"], // Framework modules are not generally shared libraries, i.e. they are not // intended, and must not be allowed, to be used in a <uses-library> manifest // entry. shared_library: false, // Prevent dependencies that do not specify an sdk_version from accessing the // implementation library by default and force them to use stubs instead. default_to_stubs: true, // Subdirectory for the artifacts that are copied to the dist directory dist_group: "android", droiddoc_options: [ "--error UnhiddenSystemApi " + "--hide CallbackInterface " + "--hide HiddenTypedefConstant " + "--hide RequiresPermission " + "--enhance-documentation " + "--hide-package com.android.server ", ], annotations_enabled: true, } build = [ "AconfigFlags.bp", "ProtoLibraries.bp", Loading
api/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ combined_apis { "framework-devicelock", "framework-graphics", "framework-healthfitness", "framework-location", "framework-media", "framework-mediaprovider", "framework-ondevicepersonalization", Loading
api/StubLibraries.bp +1 −1 Original line number Diff line number Diff line Loading @@ -527,7 +527,6 @@ java_library { static_libs: [ "all-updatable-modules-system-stubs", "android-non-updatable.stubs.test", "private-stub-annotations-jar", ], defaults: [ "android.jar_defaults", Loading Loading @@ -652,6 +651,7 @@ java_defaults { api_surface: "test", api_contributions: [ "framework-virtualization.stubs.source.test.api.contribution", "framework-location.stubs.source.test.api.contribution", ], } Loading
api/api.go +5 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ const art = "art.module.public.api" const conscrypt = "conscrypt.module.public.api" const i18n = "i18n.module.public.api" const virtualization = "framework-virtualization" const location = "framework-location" var core_libraries_modules = []string{art, conscrypt, i18n} Loading @@ -42,7 +43,7 @@ var core_libraries_modules = []string{art, conscrypt, i18n} // APIs. // In addition, the modules in this list are allowed to contribute to test APIs // stubs. var non_updatable_modules = []string{virtualization} var non_updatable_modules = []string{virtualization, location} // The intention behind this soong plugin is to generate a number of "merged" // API-related modules that would otherwise require a large amount of very Loading Loading @@ -296,8 +297,10 @@ func createMergedFrameworkImpl(ctx android.LoadHookContext, modules []string) { } func createMergedFrameworkModuleLibStubs(ctx android.LoadHookContext, modules []string) { // The user of this module compiles against the "core" SDK, so remove core libraries to avoid dupes. // The user of this module compiles against the "core" SDK and against non-updatable modules, // so remove to avoid dupes. modules = removeAll(modules, core_libraries_modules) modules = removeAll(modules, non_updatable_modules) props := libraryProps{} props.Name = proptools.StringPtr("framework-updatable-stubs-module_libs_api") props.Static_libs = transformArray(modules, "", ".stubs.module_lib") Loading
location/Android.bp +20 −3 Original line number Diff line number Diff line Loading @@ -15,10 +15,27 @@ filegroup { ], } java_library { name: "framework-location.stubs.module_lib", java_sdk_library { name: "framework-location", srcs: [ ":framework-location-nonupdatable-sources", ], sdk_version: "core_platform", defaults: ["framework-non-updatable-unbundled-defaults"], permitted_packages: [ "android.location", "com.android.internal.location", ], libs: [ "app-compat-annotations", "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage ], hidden_api_packages: [ "com.android.internal.location", ], aidl: { include_dirs: [ "frameworks/base/location/java", "frameworks/base/core/java", ], }, }