Loading api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5708,6 +5708,7 @@ package android.permission { method @BinderThread public abstract void onRevokeRuntimePermission(@NonNull String, @NonNull String, @NonNull Runnable); method @BinderThread public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, @NonNull String, @NonNull java.util.function.Consumer<java.util.Map<java.lang.String,java.util.List<java.lang.String>>>); method @BinderThread public abstract void onSetRuntimePermissionGrantStateByDeviceAdmin(@NonNull String, @NonNull String, @NonNull String, int, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @BinderThread public void onUpdateUserSensitive(); field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService"; } Loading core/java/android/permission/IPermissionController.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -42,4 +42,5 @@ oneway interface IPermissionController { void setRuntimePermissionGrantStateByDeviceAdmin(String callerPackageName, String packageName, String permission, int grantState, in AndroidFuture callback); void grantOrUpgradeDefaultRuntimePermissions(in AndroidFuture callback); void updateUserSensitive(in AndroidFuture callback); } core/java/android/permission/PermissionControllerManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -599,4 +599,16 @@ public final class PermissionControllerManager { } }, executor); } /** * @see PermissionControllerService#onUpdateUserSensitive() * @hide */ public void updateUserSensitive() { mRemoteService.postAsync(service -> { AndroidFuture<Void> future = new AndroidFuture<>(); service.updateUserSensitive(future); return future; }); } } core/java/android/permission/PermissionControllerService.java +20 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,18 @@ public abstract class PermissionControllerService extends Service { @BinderThread public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback); /** * Called by system to update the * {@link PackageManager}{@code .FLAG_PERMISSION_USER_SENSITIVE_WHEN_*} flags for permissions. * <p> * This is typically when creating a new user or upgrading either system or * permission controller package. */ @BinderThread public void onUpdateUserSensitive() { throw new AbstractMethodError("Must be overridden in implementing class"); } /** * Set the runtime permission state from a device admin. * Loading Loading @@ -380,6 +392,14 @@ public abstract class PermissionControllerService extends Service { onGrantOrUpgradeDefaultRuntimePermissions(() -> callback.complete(true)); } @Override public void updateUserSensitive(AndroidFuture callback) { Preconditions.checkNotNull(callback, "callback cannot be null"); onUpdateUserSensitive(); callback.complete(null); } }; } } services/core/java/com/android/server/policy/PermissionPolicyService.java +3 −1 Original line number Diff line number Diff line Loading @@ -65,8 +65,8 @@ import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.android.server.policy.PermissionPolicyInternal.OnInitializedCallback; import java.util.ArrayList; import java.util.concurrent.CountDownLatch; Loading Loading @@ -309,6 +309,8 @@ public final class PermissionPolicyService extends SystemService { /* ignore */ } permissionControllerManager.updateUserSensitive(); packageManagerInternal.setRuntimePermissionsFingerPrint(Build.FINGERPRINT, userId); } } Loading Loading
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5708,6 +5708,7 @@ package android.permission { method @BinderThread public abstract void onRevokeRuntimePermission(@NonNull String, @NonNull String, @NonNull Runnable); method @BinderThread public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, @NonNull String, @NonNull java.util.function.Consumer<java.util.Map<java.lang.String,java.util.List<java.lang.String>>>); method @BinderThread public abstract void onSetRuntimePermissionGrantStateByDeviceAdmin(@NonNull String, @NonNull String, @NonNull String, int, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @BinderThread public void onUpdateUserSensitive(); field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService"; } Loading
core/java/android/permission/IPermissionController.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -42,4 +42,5 @@ oneway interface IPermissionController { void setRuntimePermissionGrantStateByDeviceAdmin(String callerPackageName, String packageName, String permission, int grantState, in AndroidFuture callback); void grantOrUpgradeDefaultRuntimePermissions(in AndroidFuture callback); void updateUserSensitive(in AndroidFuture callback); }
core/java/android/permission/PermissionControllerManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -599,4 +599,16 @@ public final class PermissionControllerManager { } }, executor); } /** * @see PermissionControllerService#onUpdateUserSensitive() * @hide */ public void updateUserSensitive() { mRemoteService.postAsync(service -> { AndroidFuture<Void> future = new AndroidFuture<>(); service.updateUserSensitive(future); return future; }); } }
core/java/android/permission/PermissionControllerService.java +20 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,18 @@ public abstract class PermissionControllerService extends Service { @BinderThread public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback); /** * Called by system to update the * {@link PackageManager}{@code .FLAG_PERMISSION_USER_SENSITIVE_WHEN_*} flags for permissions. * <p> * This is typically when creating a new user or upgrading either system or * permission controller package. */ @BinderThread public void onUpdateUserSensitive() { throw new AbstractMethodError("Must be overridden in implementing class"); } /** * Set the runtime permission state from a device admin. * Loading Loading @@ -380,6 +392,14 @@ public abstract class PermissionControllerService extends Service { onGrantOrUpgradeDefaultRuntimePermissions(() -> callback.complete(true)); } @Override public void updateUserSensitive(AndroidFuture callback) { Preconditions.checkNotNull(callback, "callback cannot be null"); onUpdateUserSensitive(); callback.complete(null); } }; } }
services/core/java/com/android/server/policy/PermissionPolicyService.java +3 −1 Original line number Diff line number Diff line Loading @@ -65,8 +65,8 @@ import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.android.server.policy.PermissionPolicyInternal.OnInitializedCallback; import java.util.ArrayList; import java.util.concurrent.CountDownLatch; Loading Loading @@ -309,6 +309,8 @@ public final class PermissionPolicyService extends SystemService { /* ignore */ } permissionControllerManager.updateUserSensitive(); packageManagerInternal.setRuntimePermissionsFingerPrint(Build.FINGERPRINT, userId); } } Loading