diff options
author | 2022-12-19 04:39:47 +0000 | |
---|---|---|
committer | 2023-01-09 15:22:48 +0000 | |
commit | 7957f6daed1d76f8be0b4610b9e64e0a87e6c5b6 (patch) | |
tree | 402d7e31b75fc266fc57649f89c72e48a15edf85 | |
parent | edb2048069d02d3d604ced759b36b2c3c22b7751 (diff) |
Move PermissionMethod/PermissionName to android.annotation
Remove these annotations from package manager, as they should
be available globally and were moved to android.annotation in
this change: aosp/2367449.
Bug: 263474178
Test: TH
Change-Id: Ibf36a0c36967c4372cd9bc23af50909fd52f30fa
7 files changed, 12 insertions, 96 deletions
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java index 6826b67316fb..3e21124aa66e 100644 --- a/core/java/android/app/ActivityManagerInternal.java +++ b/core/java/android/app/ActivityManagerInternal.java @@ -20,6 +20,8 @@ import static android.app.ActivityManager.StopUserOnSwitch; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.PermissionMethod; +import android.annotation.PermissionName; import android.annotation.UserIdInt; import android.app.ActivityManager.ProcessCapability; import android.app.ActivityManager.RestrictionLevel; @@ -31,8 +33,6 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ActivityPresentationInfo; import android.content.pm.ApplicationInfo; -import android.content.pm.PermissionMethod; -import android.content.pm.PermissionName; import android.content.pm.UserInfo; import android.net.Uri; import android.os.Bundle; diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 12a2cae4c5c8..9aeb53b3bd63 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -26,6 +26,8 @@ import android.annotation.DrawableRes; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.PermissionMethod; +import android.annotation.PermissionName; import android.annotation.RequiresPermission; import android.annotation.StringDef; import android.annotation.StringRes; @@ -53,8 +55,6 @@ import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; -import android.content.pm.PermissionMethod; -import android.content.pm.PermissionName; import android.content.res.AssetManager; import android.content.res.ColorStateList; import android.content.res.Configuration; diff --git a/core/java/android/content/pm/PermissionMethod.java b/core/java/android/content/pm/PermissionMethod.java deleted file mode 100644 index 647c696b87f3..000000000000 --- a/core/java/android/content/pm/PermissionMethod.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2022 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 android.content.pm; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Documents that the subject method's job is to look - * up whether the provided or calling uid/pid has the requested permission. - * - * <p>Methods should either return `void`, but potentially throw {@link SecurityException}, - * or return {@link android.content.pm.PackageManager.PermissionResult} `int`. - * - * @hide - */ -@Retention(CLASS) -@Target({METHOD}) -public @interface PermissionMethod { - /** - * Hard-coded list of permissions checked by this method - */ - @PermissionName String[] value() default {}; - /** - * If true, the check passes if the caller - * has any ONE of the supplied permissions - */ - boolean anyOf() default false; - /** - * Signifies that the permission check passes if - * the calling process OR the current process has - * the permission - */ - boolean orSelf() default false; -} diff --git a/core/java/android/content/pm/PermissionName.java b/core/java/android/content/pm/PermissionName.java deleted file mode 100644 index 719e13be05cc..000000000000 --- a/core/java/android/content/pm/PermissionName.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2022 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 android.content.pm; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.LOCAL_VARIABLE; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Denotes that the annotated {@link String} represents a permission name. - * - * @hide - */ -@Retention(CLASS) -@Target({PARAMETER, METHOD, LOCAL_VARIABLE, FIELD}) -public @interface PermissionName {} diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 2bdd360c58a6..ca71bb1d7743 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -22,6 +22,8 @@ import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.PermissionMethod; +import android.annotation.PermissionName; import android.annotation.RequiresPermission; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; @@ -48,7 +50,6 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; -import android.content.pm.PermissionName; import android.content.pm.ResolveInfo; import android.content.res.Configuration; import android.content.res.Resources; @@ -18483,6 +18484,8 @@ public final class Settings { * @see #checkCallingPermission * @hide */ + @PermissionMethod(orSelf = true) + @PackageManager.PermissionResult public static int checkCallingOrSelfPermission(@NonNull @PermissionName String permission) { return ActivityThread.currentApplication() .getApplicationContext().checkCallingOrSelfPermission(permission); diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index fc6d30bf58c9..8901a642b578 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -159,6 +159,8 @@ import android.Manifest; import android.Manifest.permission; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.PermissionMethod; +import android.annotation.PermissionName; import android.annotation.UserIdInt; import android.app.Activity; import android.app.ActivityClient; @@ -251,8 +253,6 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; import android.content.pm.ParceledListSlice; import android.content.pm.PermissionInfo; -import android.content.pm.PermissionMethod; -import android.content.pm.PermissionName; import android.content.pm.ProcessInfo; import android.content.pm.ProviderInfo; import android.content.pm.ProviderInfoList; diff --git a/tools/lint/common/src/main/java/com/google/android/lint/Constants.kt b/tools/lint/common/src/main/java/com/google/android/lint/Constants.kt index 3d5d01c9b7a0..0ef165f1523b 100644 --- a/tools/lint/common/src/main/java/com/google/android/lint/Constants.kt +++ b/tools/lint/common/src/main/java/com/google/android/lint/Constants.kt @@ -35,6 +35,6 @@ val ENFORCE_PERMISSION_METHODS = listOf( Method(CLASS_ACTIVITY_MANAGER_INTERNAL, "enforceCallingPermission") ) -const val ANNOTATION_PERMISSION_METHOD = "android.content.pm.PermissionMethod" -const val ANNOTATION_PERMISSION_NAME = "android.content.pm.PermissionName" +const val ANNOTATION_PERMISSION_METHOD = "android.annotation.PermissionMethod" +const val ANNOTATION_PERMISSION_NAME = "android.annotation.PermissionName" const val ANNOTATION_PERMISSION_RESULT = "android.content.pm.PackageManager.PermissionResult" |