Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 431db93d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Create permission for managing one-time permission sessions"

parents ebab3d10 43e17e03
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -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_CONTENT_SUGGESTIONS = "android.permission.MANAGE_CONTENT_SUGGESTIONS";
    field public static final String MANAGE_DEBUGGING = "android.permission.MANAGE_DEBUGGING";
    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_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_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS";
    field public static final String MANAGE_ROLLBACKS = "android.permission.MANAGE_ROLLBACKS";
    field public static final String MANAGE_ROLLBACKS = "android.permission.MANAGE_ROLLBACKS";
    field public static final String MANAGE_SENSOR_PRIVACY = "android.permission.MANAGE_SENSOR_PRIVACY";
    field public static final String MANAGE_SENSOR_PRIVACY = "android.permission.MANAGE_SENSOR_PRIVACY";
@@ -7247,8 +7248,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 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.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(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(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) 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 stopOneTimePermissionSession(@NonNull String);
  }
  }
  public static final class PermissionManager.SplitPermissionInfo {
  public static final class PermissionManager.SplitPermissionInfo {
+2 −4
Original line number Original line Diff line number Diff line
@@ -318,8 +318,7 @@ public final class PermissionManager {
     * @hide
     * @hide
     */
     */
    @SystemApi
    @SystemApi
    @RequiresPermission(allOf = {Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
    @RequiresPermission(Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS)
            Manifest.permission.PACKAGE_USAGE_STATS})
    public void startOneTimePermissionSession(@NonNull String packageName, long timeoutMillis,
    public void startOneTimePermissionSession(@NonNull String packageName, long timeoutMillis,
            @ActivityManager.RunningAppProcessInfo.Importance int importanceToResetTimer,
            @ActivityManager.RunningAppProcessInfo.Importance int importanceToResetTimer,
            @ActivityManager.RunningAppProcessInfo.Importance int importanceToKeepSessionAlive) {
            @ActivityManager.RunningAppProcessInfo.Importance int importanceToKeepSessionAlive) {
@@ -340,8 +339,7 @@ public final class PermissionManager {
     * @hide
     * @hide
     */
     */
    @SystemApi
    @SystemApi
    @RequiresPermission(allOf = {Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
    @RequiresPermission(Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS)
            Manifest.permission.PACKAGE_USAGE_STATS})
    public void stopOneTimePermissionSession(@NonNull String packageName) {
    public void stopOneTimePermissionSession(@NonNull String packageName) {
        try {
        try {
            mPermissionManager.stopOneTimePermissionSession(packageName,
            mPermissionManager.stopOneTimePermissionSession(packageName,
+5 −0
Original line number Original line Diff line number Diff line
@@ -3591,6 +3591,11 @@
    <permission android:name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"
    <permission android:name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"
        android:protectionLevel="signature|privileged" />
        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.
    <!-- @SystemApi Allows an application to manage the holders of a role.
         @hide
         @hide
         STOPSHIP b/145526313: Remove wellbeing protection flag from MANAGE_ROLE_HOLDERS. -->
         STOPSHIP b/145526313: Remove wellbeing protection flag from MANAGE_ROLE_HOLDERS. -->
+0 −1
Original line number Original line Diff line number Diff line
@@ -130,7 +130,6 @@ applications that come with the platform
        <permission name="android.permission.APPROVE_INCIDENT_REPORTS"/>
        <permission name="android.permission.APPROVE_INCIDENT_REPORTS"/>
        <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
        <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
        <permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
        <permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
        <permission name="android.permission.PACKAGE_USAGE_STATS" />
    </privapp-permissions>
    </privapp-permissions>


    <privapp-permissions package="com.android.phone">
    <privapp-permissions package="com.android.phone">
+6 −8
Original line number Original line Diff line number Diff line
@@ -3025,10 +3025,9 @@ public class PermissionManagerService extends IPermissionManager.Stub {
    @Override
    @Override
    public void startOneTimePermissionSession(String packageName, @UserIdInt int userId,
    public void startOneTimePermissionSession(String packageName, @UserIdInt int userId,
            long timeoutMillis, int importanceToResetTimer, int importanceToKeepSessionAlive) {
            long timeoutMillis, int importanceToResetTimer, int importanceToKeepSessionAlive) {
        mContext.enforceCallingPermission(Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
        mContext.enforceCallingPermission(Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS,
                "Must be able to revoke runtime permissions to register permissions as one time.");
                "Must hold " + Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS
        mContext.enforceCallingPermission(Manifest.permission.PACKAGE_USAGE_STATS,
                        + " to register permissions as one time.");
                "Must be able to access usage stats to register permissions as one time.");
        packageName = Preconditions.checkNotNull(packageName);
        packageName = Preconditions.checkNotNull(packageName);


        long token = Binder.clearCallingIdentity();
        long token = Binder.clearCallingIdentity();
@@ -3042,10 +3041,9 @@ public class PermissionManagerService extends IPermissionManager.Stub {


    @Override
    @Override
    public void stopOneTimePermissionSession(String packageName, @UserIdInt int userId) {
    public void stopOneTimePermissionSession(String packageName, @UserIdInt int userId) {
        mContext.enforceCallingPermission(Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
        mContext.enforceCallingPermission(Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS,
                "Must be able to revoke runtime permissions to remove permissions as one time.");
                "Must hold " + Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS
        mContext.enforceCallingPermission(Manifest.permission.PACKAGE_USAGE_STATS,
                        + " to remove permissions as one time.");
                "Must be able to access usage stats to remove permissions as one time.");
        Preconditions.checkNotNull(packageName);
        Preconditions.checkNotNull(packageName);


        long token = Binder.clearCallingIdentity();
        long token = Binder.clearCallingIdentity();