Loading core/api/test-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ package android { field public static final String RECORD_BACKGROUND_AUDIO = "android.permission.RECORD_BACKGROUND_AUDIO"; field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS"; field public static final String RESET_APP_ERRORS = "android.permission.RESET_APP_ERRORS"; field public static final String REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL = "android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL"; field public static final String SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS = "android.permission.SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS"; field public static final String START_TASKS_FROM_RECENTS = "android.permission.START_TASKS_FROM_RECENTS"; field public static final String SUSPEND_APPS = "android.permission.SUSPEND_APPS"; Loading Loading @@ -2045,6 +2046,7 @@ package android.permission { method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.permission.PermGroupUsage> getIndicatorAppOpUsageData(); method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.permission.PermGroupUsage> getIndicatorAppOpUsageData(boolean); method @NonNull public android.content.AttributionSource registerAttributionSource(@NonNull android.content.AttributionSource); method public void revokePostNotificationPermissionWithoutKillForTest(@NonNull String, int); } } Loading core/java/android/permission/IPermissionManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,8 @@ interface IPermissionManager { void revokeRuntimePermission(String packageName, String permissionName, int userId, String reason); void revokePostNotificationPermissionWithoutKillForTest(String packageName, int userId); boolean shouldShowRequestPermissionRationale(String packageName, String permissionName, int userId); Loading core/java/android/permission/PermissionManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -1362,6 +1362,26 @@ public final class PermissionManager { return false; } /** * Revoke the POST_NOTIFICATIONS permission, without killing the app. This method must ONLY BE * USED in CTS or local tests. * * @param packageName The package to be revoked * @param userId The user for which to revoke * * @hide */ @TestApi public void revokePostNotificationPermissionWithoutKillForTest(@NonNull String packageName, int userId) { try { mPermissionManager.revokePostNotificationPermissionWithoutKillForTest(packageName, userId); } catch (RemoteException e) { e.rethrowFromSystemServer(); } } /* @hide */ private static int checkPermissionUncached(@Nullable String permission, int pid, int uid) { final IActivityManager am = ActivityManager.getService(); Loading core/res/AndroidManifest.xml +6 −0 Original line number Diff line number Diff line Loading @@ -4438,6 +4438,12 @@ <permission android:name="android.permission.REVOKE_RUNTIME_PERMISSIONS" android:protectionLevel="signature|installer|verifier" /> <!-- @TestApi Allows an application to revoke the POST_NOTIFICATIONS permission from an app without killing the app. Only granted to the shell. @hide --> <permission android:name="android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL" android:protectionLevel="signature" /> <!-- @SystemApi Allows the system to read runtime permission state. @hide --> <permission android:name="android.permission.GET_RUNTIME_PERMISSIONS" Loading packages/Shell/AndroidManifest.xml +3 −0 Original line number Diff line number Diff line Loading @@ -614,6 +614,9 @@ <!-- Permission required for CTS test - CtsSafetyCenterTestCases --> <uses-permission android:name="android.permission.READ_SAFETY_CENTER_STATUS" /> <!-- Permission required for CTS test - Notification test suite --> <uses-permission android:name="android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL" /> <application android:label="@string/app_label" android:theme="@android:style/Theme.DeviceDefault.DayNight" android:defaultToDeviceProtectedStorage="true" Loading Loading
core/api/test-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ package android { field public static final String RECORD_BACKGROUND_AUDIO = "android.permission.RECORD_BACKGROUND_AUDIO"; field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS"; field public static final String RESET_APP_ERRORS = "android.permission.RESET_APP_ERRORS"; field public static final String REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL = "android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL"; field public static final String SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS = "android.permission.SET_AND_VERIFY_LOCKSCREEN_CREDENTIALS"; field public static final String START_TASKS_FROM_RECENTS = "android.permission.START_TASKS_FROM_RECENTS"; field public static final String SUSPEND_APPS = "android.permission.SUSPEND_APPS"; Loading Loading @@ -2045,6 +2046,7 @@ package android.permission { method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.permission.PermGroupUsage> getIndicatorAppOpUsageData(); method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.permission.PermGroupUsage> getIndicatorAppOpUsageData(boolean); method @NonNull public android.content.AttributionSource registerAttributionSource(@NonNull android.content.AttributionSource); method public void revokePostNotificationPermissionWithoutKillForTest(@NonNull String, int); } } Loading
core/java/android/permission/IPermissionManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,8 @@ interface IPermissionManager { void revokeRuntimePermission(String packageName, String permissionName, int userId, String reason); void revokePostNotificationPermissionWithoutKillForTest(String packageName, int userId); boolean shouldShowRequestPermissionRationale(String packageName, String permissionName, int userId); Loading
core/java/android/permission/PermissionManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -1362,6 +1362,26 @@ public final class PermissionManager { return false; } /** * Revoke the POST_NOTIFICATIONS permission, without killing the app. This method must ONLY BE * USED in CTS or local tests. * * @param packageName The package to be revoked * @param userId The user for which to revoke * * @hide */ @TestApi public void revokePostNotificationPermissionWithoutKillForTest(@NonNull String packageName, int userId) { try { mPermissionManager.revokePostNotificationPermissionWithoutKillForTest(packageName, userId); } catch (RemoteException e) { e.rethrowFromSystemServer(); } } /* @hide */ private static int checkPermissionUncached(@Nullable String permission, int pid, int uid) { final IActivityManager am = ActivityManager.getService(); Loading
core/res/AndroidManifest.xml +6 −0 Original line number Diff line number Diff line Loading @@ -4438,6 +4438,12 @@ <permission android:name="android.permission.REVOKE_RUNTIME_PERMISSIONS" android:protectionLevel="signature|installer|verifier" /> <!-- @TestApi Allows an application to revoke the POST_NOTIFICATIONS permission from an app without killing the app. Only granted to the shell. @hide --> <permission android:name="android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL" android:protectionLevel="signature" /> <!-- @SystemApi Allows the system to read runtime permission state. @hide --> <permission android:name="android.permission.GET_RUNTIME_PERMISSIONS" Loading
packages/Shell/AndroidManifest.xml +3 −0 Original line number Diff line number Diff line Loading @@ -614,6 +614,9 @@ <!-- Permission required for CTS test - CtsSafetyCenterTestCases --> <uses-permission android:name="android.permission.READ_SAFETY_CENTER_STATUS" /> <!-- Permission required for CTS test - Notification test suite --> <uses-permission android:name="android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL" /> <application android:label="@string/app_label" android:theme="@android:style/Theme.DeviceDefault.DayNight" android:defaultToDeviceProtectedStorage="true" Loading