diff options
-rw-r--r-- | Android.bp | 10 | ||||
-rw-r--r-- | core/java/android/annotation/SystemApi.java | 45 | ||||
-rw-r--r-- | media/Android.bp | 2 | ||||
-rw-r--r-- | services/Android.bp | 2 | ||||
-rw-r--r-- | services/core/java/com/android/server/package-info.java | 5 |
5 files changed, 57 insertions, 7 deletions
diff --git a/Android.bp b/Android.bp index 5da32f370f29..832ce8778a08 100644 --- a/Android.bp +++ b/Android.bp @@ -1145,7 +1145,7 @@ droidstubs { arg_files: [ "core/res/AndroidManifest.xml", ], - args: metalava_framework_docs_args + " --show-annotation android.annotation.SystemApi ", + args: metalava_framework_docs_args + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\) ", write_sdk_values: true, } @@ -1456,7 +1456,7 @@ droidstubs { merge_annotations_dirs: [ "metalava-manual", ], - args: " --show-annotation android.annotation.SystemApi", + args: " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\)", } java_library_static { @@ -1478,7 +1478,7 @@ droidstubs { removed_dex_api_filename: "removed-dex.txt", args: metalava_framework_docs_args + " --show-unannotated " + - " --show-annotation android.annotation.SystemApi " + + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\) " + " --show-annotation android.annotation.TestApi ", } @@ -1497,7 +1497,7 @@ droidstubs { " --hide ReferencesHidden " + " --hide UnhiddenSystemApi " + " --show-unannotated " + - " --show-annotation android.annotation.SystemApi " + + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\) " + " --show-annotation android.annotation.TestApi ", } @@ -1541,7 +1541,7 @@ droidstubs { arg_files: [ "core/res/AndroidManifest.xml", ], - args: metalava_framework_docs_args + " --show-annotation android.annotation.SystemApi", + args: metalava_framework_docs_args + " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\)", check_api: { current: { api_file: "api/system-current.txt", diff --git a/core/java/android/annotation/SystemApi.java b/core/java/android/annotation/SystemApi.java index e96ff01d0850..2cb93e4f8cea 100644 --- a/core/java/android/annotation/SystemApi.java +++ b/core/java/android/annotation/SystemApi.java @@ -41,4 +41,49 @@ import java.lang.annotation.Target; @Target({TYPE, FIELD, METHOD, CONSTRUCTOR, ANNOTATION_TYPE, PACKAGE}) @Retention(RetentionPolicy.RUNTIME) public @interface SystemApi { + enum Client { + /** + * Specifies that the intended clients of a SystemApi are privileged apps. + * This is the default value for {@link #client}. This implies + * MODULE_APPS and MODULE_LIBRARIES as well, which means that APIs will also + * be available to module apps and jars. + */ + PRIVILEGED_APPS, + + /** + * Specifies that the intended clients of a SystemApi are modules implemented + * as apps, like the NetworkStack app. This implies MODULE_LIBRARIES as well, + * which means that APIs will also be available to module jars. + */ + MODULE_APPS, + + /** + * Specifies that the intended clients of a SystemApi are modules implemented + * as libraries, like the conscrypt.jar in the conscrypt APEX. + */ + MODULE_LIBRARIES + } + + enum Process { + /** + * Specifies that the SystemAPI is available in every Java processes. + * This is the default value for {@link #process}. + */ + ALL, + + /** + * Specifies that the SystemAPI is available only in the system server process. + */ + SYSTEM_SERVER + } + + /** + * The intended client of this SystemAPI. + */ + Client client() default android.annotation.SystemApi.Client.PRIVILEGED_APPS; + + /** + * The process(es) that this SystemAPI is available + */ + Process process() default android.annotation.SystemApi.Process.ALL; } diff --git a/media/Android.bp b/media/Android.bp index a768b81731eb..d7cd054ddc3a 100644 --- a/media/Android.bp +++ b/media/Android.bp @@ -66,7 +66,7 @@ metalava_updatable_media_args = " --error UnhiddenSystemApi " + "--hide MissingPermission --hide BroadcastBehavior " + "--hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol " + "--hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo " + - "--hide HiddenTypedefConstant --show-annotation android.annotation.SystemApi " + "--hide HiddenTypedefConstant --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\) " droidstubs { name: "updatable-media-stubs", diff --git a/services/Android.bp b/services/Android.bp index 424e70a0e017..53d792d1033a 100644 --- a/services/Android.bp +++ b/services/Android.bp @@ -111,7 +111,7 @@ droidstubs { srcs: [":services-sources"], installable: false, // TODO: remove the --hide options below - args: " --show-single-annotation android.annotation.SystemApi" + + args: " --show-single-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.MODULE_LIBRARIES,process=android.annotation.SystemApi.Process.SYSTEM_SERVER\\)" + " --hide-annotation android.annotation.Hide" + " --hide-package com.google.android.startop.iorap" + " --hide ReferencesHidden" + diff --git a/services/core/java/com/android/server/package-info.java b/services/core/java/com/android/server/package-info.java index a783e8d61a32..dd94edd53c70 100644 --- a/services/core/java/com/android/server/package-info.java +++ b/services/core/java/com/android/server/package-info.java @@ -13,5 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +/** + * @hide + * TODO(b/146466118) remove this javadoc tag + */ @android.annotation.Hide package com.android.server; |