227 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			227 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| // Copyright (C) 2019 The Android Open Source Project
 | |
| //
 | |
| // Licensed under the Apache License, Version 2.0 (the "License");
 | |
| // you may not use this file except in compliance with the License.
 | |
| // You may obtain a copy of the License at
 | |
| //
 | |
| //     http://www.apache.org/licenses/LICENSE-2.0
 | |
| //
 | |
| // Unless required by applicable law or agreed to in writing, software
 | |
| // distributed under the License is distributed on an "AS IS" BASIS,
 | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| // See the License for the specific language governing permissions and
 | |
| // limitations under the License.
 | |
| 
 | |
| package {
 | |
|     default_visibility: [":__subpackages__"],
 | |
|     default_applicable_licenses: ["Android-Apache-2.0"],
 | |
| }
 | |
| 
 | |
| mainline_stubs_args =
 | |
|     "--error UnhiddenSystemApi " +
 | |
|     "--hide CallbackInterface " +
 | |
|     "--hide HiddenTypedefConstant " +
 | |
|     "--hide RequiresPermission " +
 | |
|     "--enhance-documentation "
 | |
| 
 | |
| // TODO: remove the hiding when server classes are cleaned up.
 | |
| mainline_framework_stubs_args =
 | |
|     mainline_stubs_args +
 | |
|     "--hide-package com.android.server "
 | |
| 
 | |
| priv_apps = " " +
 | |
|     "--show-annotation android.annotation.SystemApi\\(" +
 | |
|         "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
 | |
|     "\\) "
 | |
| 
 | |
| module_libs = " " +
 | |
|     " --show-annotation android.annotation.SystemApi\\(" +
 | |
|         "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
 | |
|     "\\)" +
 | |
|     " --show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
 | |
|         "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
 | |
|     "\\) "
 | |
| 
 | |
| mainline_service_stubs_args =
 | |
|     mainline_stubs_args +
 | |
|     "--show-annotation android.annotation.SystemApi\\(" +
 | |
|         "client=android.annotation.SystemApi.Client.SYSTEM_SERVER" +
 | |
|     "\\) " +
 | |
|     "--hide-annotation android.annotation.Hide " +
 | |
|     "--hide InternalClasses " // com.android.* classes are okay in this interface
 | |
| 
 | |
| // Defaults common to all mainline module java_sdk_library instances.
 | |
| java_defaults {
 | |
|     name: "framework-module-common-defaults",
 | |
| 
 | |
|     // 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"],
 | |
| 
 | |
|     // Make the source retention annotations available on the classpath when compiling
 | |
|     // the implementation library. (This should be in impl_only_libs but some modules
 | |
|     // use these defaults for java_library, sigh.)
 | |
|     libs: ["framework-annotations-lib"],
 | |
| 
 | |
|     // 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,
 | |
| 
 | |
|     // Enable api lint. This will eventually become the default for java_sdk_library
 | |
|     // but it cannot yet be turned on because some usages have not been cleaned up.
 | |
|     // TODO(b/156126315) - Remove when no longer needed.
 | |
|     api_lint: {
 | |
|         enabled: true,
 | |
|     },
 | |
| 
 | |
|     // The API scope specific properties.
 | |
|     public: {
 | |
|         enabled: true,
 | |
|         sdk_version: "module_current",
 | |
|     },
 | |
| 
 | |
|     // installable implies we'll create a non-apex (platform) variant, which
 | |
|     // we shouldn't ordinarily need (and it can create issues), so disable that.
 | |
|     installable: false,
 | |
| 
 | |
|     // Configure framework module specific metalava options.
 | |
|     droiddoc_options: [mainline_stubs_args],
 | |
| 
 | |
|     annotations_enabled: true,
 | |
| 
 | |
|     // Allow access to the stubs from anywhere
 | |
|     visibility: ["//visibility:public"],
 | |
|     stubs_library_visibility: ["//visibility:public"],
 | |
| 
 | |
|     // Hide impl library and stub sources
 | |
|     impl_library_visibility: [
 | |
|         ":__pkg__",
 | |
|         "//frameworks/base/api", // For framework-all
 | |
|     ],
 | |
|     stubs_source_visibility: ["//visibility:private"],
 | |
| 
 | |
|     defaults_visibility: ["//visibility:private"],
 | |
| 
 | |
|     // Collates API usages from each module for further analysis.
 | |
|     plugins: ["java_api_finder"],
 | |
| 
 | |
|     dist_group: "android",
 | |
| }
 | |
| 
 | |
| // Defaults for mainline module provided java_sdk_library instances.
 | |
| java_defaults {
 | |
|     name: "framework-module-defaults",
 | |
|     defaults: ["framework-module-common-defaults"],
 | |
|     sdk_version: "module_current",
 | |
| 
 | |
|     system: {
 | |
|         enabled: true,
 | |
|         sdk_version: "module_current",
 | |
|     },
 | |
|     module_lib: {
 | |
|         enabled: true,
 | |
|         sdk_version: "module_current",
 | |
|     },
 | |
|     defaults_visibility: [
 | |
|         ":__subpackages__",
 | |
|         "//frameworks/base/apex:__subpackages__",
 | |
|         "//frameworks/base/libs/hwui",
 | |
|         "//frameworks/base/wifi",
 | |
|         "//packages/modules:__subpackages__",
 | |
|         "//packages/providers/MediaProvider:__subpackages__",
 | |
|         "//system/apex/apexd:__subpackages__",
 | |
|     ],
 | |
| }
 | |
| 
 | |
| // Defaults for mainline module system server provided java_sdk_library instances.
 | |
| java_defaults {
 | |
|     name: "framework-system-server-module-defaults",
 | |
|     defaults: ["framework-module-common-defaults"],
 | |
|     sdk_version: "system_server_current",
 | |
| 
 | |
|     system_server: {
 | |
|         enabled: true,
 | |
|         sdk_version: "system_server_current",
 | |
|     },
 | |
|     defaults_visibility: [
 | |
|         ":__subpackages__",
 | |
|         "//art/libartservice:__subpackages__",
 | |
|         "//frameworks/base/apex:__subpackages__",
 | |
|         "//packages/modules:__subpackages__",
 | |
|         "//system/apex/apexd:__subpackages__",
 | |
|     ],
 | |
| }
 | |
| 
 | |
| stubs_defaults {
 | |
|     name: "service-module-stubs-srcs-defaults",
 | |
|     args: mainline_service_stubs_args,
 | |
|     installable: false,
 | |
|     annotations_enabled: true,
 | |
|     merge_annotations_dirs: [
 | |
|         "metalava-manual",
 | |
|     ],
 | |
|     filter_packages: ["com.android."],
 | |
|     check_api: {
 | |
|         current: {
 | |
|             api_file: "api/current.txt",
 | |
|             removed_api_file: "api/removed.txt",
 | |
|         },
 | |
|         api_lint: {
 | |
|             enabled: true,
 | |
|         },
 | |
|     },
 | |
|     dist: {
 | |
|         targets: ["sdk"],
 | |
|         dir: "apistubs/android/system-server/api",
 | |
|     },
 | |
| }
 | |
| 
 | |
| // Empty for now, but a convenient place to add rules for all
 | |
| // module java_library system_server stub libs.
 | |
| java_defaults {
 | |
|     name: "service-module-stubs-defaults",
 | |
|     dist: {
 | |
|         targets: ["sdk"],
 | |
|         dir: "apistubs/android/system-server",
 | |
|     },
 | |
| }
 | |
| 
 | |
| // These apex_defaults serve as a common place to add properties which should
 | |
| // affect all mainline modules.
 | |
| apex_defaults {
 | |
|     name: "q-launched-apex-module",
 | |
|     min_sdk_version: "29",
 | |
|     updatable: true,
 | |
|     defaults_visibility: ["//visibility:public"],
 | |
| }
 | |
| 
 | |
| apex_defaults {
 | |
|     name: "r-launched-apex-module",
 | |
|     min_sdk_version: "30",
 | |
|     updatable: true,
 | |
|     defaults_visibility: ["//visibility:public"],
 | |
| }
 | |
| 
 | |
| apex_defaults {
 | |
|     name: "s-launched-apex-module",
 | |
|     min_sdk_version: "31",
 | |
|     updatable: true,
 | |
|     defaults_visibility: [
 | |
|         "//art:__subpackages__",
 | |
|         "//packages/modules:__subpackages__",
 | |
|     ],
 | |
| }
 | |
| 
 | |
| apex_defaults {
 | |
|     name: "t-launched-apex-module",
 | |
|     min_sdk_version: "Tiramisu",
 | |
|     updatable: true,
 | |
|     defaults_visibility: ["//packages/modules:__subpackages__"],
 | |
| }
 |