Loading core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -4116,6 +4116,7 @@ package android.content.pm { public static interface PackageManager.OnPermissionsChangedListener { method public void onPermissionsChanged(int); method @FlaggedApi("android.permission.flags.device_aware_permission_apis") public default void onPermissionsChanged(int, @NonNull String); } @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_ROLE, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKED_COMPAT, android.content.pm.PackageManager.FLAG_PERMISSION_ONE_TIME, android.content.pm.PackageManager.FLAG_PERMISSION_AUTO_REVOKED}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags { core/java/android/content/pm/PackageManager.java +23 −3 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.app.PackageInstallObserver; import android.app.PropertyInvalidatedCache; import android.app.admin.DevicePolicyManager; import android.app.usage.StorageStatsManager; import android.companion.virtual.VirtualDeviceManager; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; Loading Loading @@ -710,12 +711,31 @@ public abstract class PackageManager { */ @SystemApi public interface OnPermissionsChangedListener { /** * Called when the permissions for a UID change. * Called when the permissions for a UID change for the default device. * * @param uid The UID with a change. * @see Context#DEVICE_ID_DEFAULT */ void onPermissionsChanged(int uid); /** * Called when the permissions for a UID change for a device, including virtual devices. * * @param uid The UID of permission change event. * @param persistentDeviceId The persistent device ID of permission change event. * * @see VirtualDeviceManager.VirtualDevice#getPersistentDeviceId() * @see VirtualDeviceManager#PERSISTENT_DEVICE_ID_DEFAULT */ public void onPermissionsChanged(int uid); @FlaggedApi(android.permission.flags.Flags.FLAG_DEVICE_AWARE_PERMISSION_APIS) default void onPermissionsChanged(int uid, @NonNull String persistentDeviceId) { Objects.requireNonNull(persistentDeviceId); if (Objects.equals(persistentDeviceId, VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT)) { onPermissionsChanged(uid); } } } /** @hide */ Loading core/java/android/permission/IOnPermissionsChangeListener.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -21,5 +21,5 @@ package android.permission; * {@hide} */ oneway interface IOnPermissionsChangeListener { void onPermissionsChanged(int uid); void onPermissionsChanged(int uid, String deviceId); } core/java/android/permission/PermissionManager.java +5 −4 Original line number Diff line number Diff line Loading @@ -1738,8 +1738,8 @@ public final class PermissionManager { } @Override public void onPermissionsChanged(int uid) { mHandler.obtainMessage(MSG_PERMISSIONS_CHANGED, uid, 0).sendToTarget(); public void onPermissionsChanged(int uid, String deviceId) { mHandler.obtainMessage(MSG_PERMISSIONS_CHANGED, uid, 0, deviceId).sendToTarget(); } @Override Loading @@ -1747,7 +1747,8 @@ public final class PermissionManager { switch (msg.what) { case MSG_PERMISSIONS_CHANGED: { final int uid = msg.arg1; mListener.onPermissionsChanged(uid); final String deviceId = msg.obj.toString(); mListener.onPermissionsChanged(uid, deviceId); return true; } default: Loading services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java +3 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ import android.app.ActivityManager; import android.app.AppOpsManager; import android.app.IActivityManager; import android.app.admin.DevicePolicyManagerInternal; import android.companion.virtual.VirtualDeviceManager; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledAfter; import android.content.Context; Loading Loading @@ -5327,7 +5328,8 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt IOnPermissionsChangeListener callback = mPermissionListeners .getBroadcastItem(i); try { callback.onPermissionsChanged(uid); callback.onPermissionsChanged(uid, VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT); } catch (RemoteException e) { Log.e(TAG, "Permission listener is dead", e); } Loading Loading
core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -4116,6 +4116,7 @@ package android.content.pm { public static interface PackageManager.OnPermissionsChangedListener { method public void onPermissionsChanged(int); method @FlaggedApi("android.permission.flags.device_aware_permission_apis") public default void onPermissionsChanged(int, @NonNull String); } @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_ROLE, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKED_COMPAT, android.content.pm.PackageManager.FLAG_PERMISSION_ONE_TIME, android.content.pm.PackageManager.FLAG_PERMISSION_AUTO_REVOKED}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags {
core/java/android/content/pm/PackageManager.java +23 −3 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.app.PackageInstallObserver; import android.app.PropertyInvalidatedCache; import android.app.admin.DevicePolicyManager; import android.app.usage.StorageStatsManager; import android.companion.virtual.VirtualDeviceManager; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; Loading Loading @@ -710,12 +711,31 @@ public abstract class PackageManager { */ @SystemApi public interface OnPermissionsChangedListener { /** * Called when the permissions for a UID change. * Called when the permissions for a UID change for the default device. * * @param uid The UID with a change. * @see Context#DEVICE_ID_DEFAULT */ void onPermissionsChanged(int uid); /** * Called when the permissions for a UID change for a device, including virtual devices. * * @param uid The UID of permission change event. * @param persistentDeviceId The persistent device ID of permission change event. * * @see VirtualDeviceManager.VirtualDevice#getPersistentDeviceId() * @see VirtualDeviceManager#PERSISTENT_DEVICE_ID_DEFAULT */ public void onPermissionsChanged(int uid); @FlaggedApi(android.permission.flags.Flags.FLAG_DEVICE_AWARE_PERMISSION_APIS) default void onPermissionsChanged(int uid, @NonNull String persistentDeviceId) { Objects.requireNonNull(persistentDeviceId); if (Objects.equals(persistentDeviceId, VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT)) { onPermissionsChanged(uid); } } } /** @hide */ Loading
core/java/android/permission/IOnPermissionsChangeListener.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -21,5 +21,5 @@ package android.permission; * {@hide} */ oneway interface IOnPermissionsChangeListener { void onPermissionsChanged(int uid); void onPermissionsChanged(int uid, String deviceId); }
core/java/android/permission/PermissionManager.java +5 −4 Original line number Diff line number Diff line Loading @@ -1738,8 +1738,8 @@ public final class PermissionManager { } @Override public void onPermissionsChanged(int uid) { mHandler.obtainMessage(MSG_PERMISSIONS_CHANGED, uid, 0).sendToTarget(); public void onPermissionsChanged(int uid, String deviceId) { mHandler.obtainMessage(MSG_PERMISSIONS_CHANGED, uid, 0, deviceId).sendToTarget(); } @Override Loading @@ -1747,7 +1747,8 @@ public final class PermissionManager { switch (msg.what) { case MSG_PERMISSIONS_CHANGED: { final int uid = msg.arg1; mListener.onPermissionsChanged(uid); final String deviceId = msg.obj.toString(); mListener.onPermissionsChanged(uid, deviceId); return true; } default: Loading
services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java +3 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ import android.app.ActivityManager; import android.app.AppOpsManager; import android.app.IActivityManager; import android.app.admin.DevicePolicyManagerInternal; import android.companion.virtual.VirtualDeviceManager; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledAfter; import android.content.Context; Loading Loading @@ -5327,7 +5328,8 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt IOnPermissionsChangeListener callback = mPermissionListeners .getBroadcastItem(i); try { callback.onPermissionsChanged(uid); callback.onPermissionsChanged(uid, VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT); } catch (RemoteException e) { Log.e(TAG, "Permission listener is dead", e); } Loading