Create permission for managing one-time permission sessions
Test: Manual Bug: 136219229 Change-Id: I6870c7782f2dd51c655eea37bcb2487e5e29dfff
This commit is contained in:
@@ -111,6 +111,7 @@ package android {
|
||||
field public static final String MANAGE_CONTENT_SUGGESTIONS = "android.permission.MANAGE_CONTENT_SUGGESTIONS";
|
||||
field public static final String MANAGE_DEBUGGING = "android.permission.MANAGE_DEBUGGING";
|
||||
field public static final String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS";
|
||||
field public static final String MANAGE_ONE_TIME_PERMISSION_SESSIONS = "android.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS";
|
||||
field public static final String MANAGE_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS";
|
||||
field public static final String MANAGE_ROLLBACKS = "android.permission.MANAGE_ROLLBACKS";
|
||||
field public static final String MANAGE_SENSOR_PRIVACY = "android.permission.MANAGE_SENSOR_PRIVACY";
|
||||
@@ -7242,8 +7243,8 @@ package android.permission {
|
||||
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToLuiApp(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
|
||||
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void revokeDefaultPermissionsFromLuiApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
|
||||
method @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void startOneTimePermissionSession(@NonNull String, long, int, int);
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void stopOneTimePermissionSession(@NonNull String);
|
||||
method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void startOneTimePermissionSession(@NonNull String, long, int, int);
|
||||
method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void stopOneTimePermissionSession(@NonNull String);
|
||||
}
|
||||
|
||||
public static final class PermissionManager.SplitPermissionInfo {
|
||||
|
||||
@@ -318,8 +318,7 @@ public final class PermissionManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(allOf = {Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
|
||||
Manifest.permission.PACKAGE_USAGE_STATS})
|
||||
@RequiresPermission(Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS)
|
||||
public void startOneTimePermissionSession(@NonNull String packageName, long timeoutMillis,
|
||||
@ActivityManager.RunningAppProcessInfo.Importance int importanceToResetTimer,
|
||||
@ActivityManager.RunningAppProcessInfo.Importance int importanceToKeepSessionAlive) {
|
||||
@@ -340,8 +339,7 @@ public final class PermissionManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(allOf = {Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
|
||||
Manifest.permission.PACKAGE_USAGE_STATS})
|
||||
@RequiresPermission(Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS)
|
||||
public void stopOneTimePermissionSession(@NonNull String packageName) {
|
||||
try {
|
||||
mPermissionManager.stopOneTimePermissionSession(packageName,
|
||||
|
||||
@@ -3591,6 +3591,11 @@
|
||||
<permission android:name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"
|
||||
android:protectionLevel="signature|privileged" />
|
||||
|
||||
<!-- @SystemApi Allows an application to start and stop one time permission sessions
|
||||
@hide -->
|
||||
<permission android:name="android.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS"
|
||||
android:protectionLevel="signature|installer" />
|
||||
|
||||
<!-- @SystemApi Allows an application to manage the holders of a role.
|
||||
@hide
|
||||
STOPSHIP b/145526313: Remove wellbeing protection flag from MANAGE_ROLE_HOLDERS. -->
|
||||
|
||||
@@ -130,7 +130,6 @@ applications that come with the platform
|
||||
<permission name="android.permission.APPROVE_INCIDENT_REPORTS"/>
|
||||
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
||||
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
|
||||
<permission name="android.permission.PACKAGE_USAGE_STATS" />
|
||||
</privapp-permissions>
|
||||
|
||||
<privapp-permissions package="com.android.phone">
|
||||
|
||||
@@ -3025,10 +3025,9 @@ public class PermissionManagerService extends IPermissionManager.Stub {
|
||||
@Override
|
||||
public void startOneTimePermissionSession(String packageName, @UserIdInt int userId,
|
||||
long timeoutMillis, int importanceToResetTimer, int importanceToKeepSessionAlive) {
|
||||
mContext.enforceCallingPermission(Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
|
||||
"Must be able to revoke runtime permissions to register permissions as one time.");
|
||||
mContext.enforceCallingPermission(Manifest.permission.PACKAGE_USAGE_STATS,
|
||||
"Must be able to access usage stats to register permissions as one time.");
|
||||
mContext.enforceCallingPermission(Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS,
|
||||
"Must hold " + Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS
|
||||
+ " to register permissions as one time.");
|
||||
packageName = Preconditions.checkNotNull(packageName);
|
||||
|
||||
long token = Binder.clearCallingIdentity();
|
||||
@@ -3042,10 +3041,9 @@ public class PermissionManagerService extends IPermissionManager.Stub {
|
||||
|
||||
@Override
|
||||
public void stopOneTimePermissionSession(String packageName, @UserIdInt int userId) {
|
||||
mContext.enforceCallingPermission(Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
|
||||
"Must be able to revoke runtime permissions to remove permissions as one time.");
|
||||
mContext.enforceCallingPermission(Manifest.permission.PACKAGE_USAGE_STATS,
|
||||
"Must be able to access usage stats to remove permissions as one time.");
|
||||
mContext.enforceCallingPermission(Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS,
|
||||
"Must hold " + Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS
|
||||
+ " to remove permissions as one time.");
|
||||
Preconditions.checkNotNull(packageName);
|
||||
|
||||
long token = Binder.clearCallingIdentity();
|
||||
|
||||
Reference in New Issue
Block a user