Loading core/api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -251,6 +251,7 @@ package android.app { method @RequiresPermission("android.permission.MANAGE_APPOPS") public void getHistoricalOpsFromDiskRaw(@NonNull android.app.AppOpsManager.HistoricalOpsRequest, @Nullable java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>); method public static int getNumOps(); method public boolean isOperationActive(int, int, String); method public int noteOpNoThrow(int, @NonNull android.content.AttributionSource, @Nullable String); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void offsetHistory(long); method public static String opToPermission(int); method public static int permissionToOpCode(String); Loading core/java/android/app/AppOpsManager.java +21 −9 Original line number Diff line number Diff line Loading @@ -8272,15 +8272,25 @@ public class AppOpsManager { cb = new IAppOpsCallback.Stub() { public void opChanged(int op, int uid, String packageName, String persistentDeviceId) { if (Flags.deviceAwarePermissionApisEnabled()) { if (callback instanceof OnOpChangedInternalListener) { ((OnOpChangedInternalListener)callback).onOpChanged(op, packageName, persistentDeviceId); } if (sAppOpInfos[op].name != null) { callback.onOpChanged(sAppOpInfos[op].name, packageName, UserHandle.getUserId(uid), persistentDeviceId); } } else { if (callback instanceof OnOpChangedInternalListener) { ((OnOpChangedInternalListener) callback).onOpChanged(op, packageName); } if (sAppOpInfos[op].name != null) { callback.onOpChanged(sAppOpInfos[op].name, packageName, UserHandle.getUserId(uid)); } } } }; mModeWatchers.put(callback, cb); Loading Loading @@ -8940,6 +8950,8 @@ public class AppOpsManager { * * @hide */ @TestApi @SuppressLint("UnflaggedApi") public int noteOpNoThrow(int op, @NonNull AttributionSource attributionSource, @Nullable String message) { return noteOpNoThrow(op, attributionSource.getUid(), attributionSource.getPackageName(), Loading core/java/android/permission/PermissionUsageHelper.java +1 −2 Original line number Diff line number Diff line Loading @@ -359,8 +359,7 @@ public class PermissionUsageHelper implements AppOpsManager.OnOpActiveChangedLis new PermissionGroupUsage(usage.packageName, usage.uid, usage.lastAccessTime, permGroup, usage.isRunning, isPhone, usage.attributionTag, attributionLabel, usagesWithLabels.valueAt(usageNum), VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT)); usagesWithLabels.valueAt(usageNum), deviceId)); } } Loading services/core/java/com/android/server/appop/AppOpsService.java +10 −2 Original line number Diff line number Diff line Loading @@ -661,8 +661,12 @@ public class AppOpsService extends IAppOpsService.Stub { @NonNull OpEntry createEntryLocked(String persistentDeviceId) { // TODO(b/308201969): Update this method when we introduce disk persistence of events // for accesses on external devices. final ArrayMap<String, AttributedOp> attributedOps = mDeviceAttributedOps.get( ArrayMap<String, AttributedOp> attributedOps = mDeviceAttributedOps.get( persistentDeviceId); if (attributedOps == null) { attributedOps = new ArrayMap<>(); } final ArrayMap<String, AppOpsManager.AttributedOpEntry> attributionEntries = new ArrayMap<>(attributedOps.size()); for (int i = 0; i < attributedOps.size(); i++) { Loading @@ -680,8 +684,12 @@ public class AppOpsService extends IAppOpsService.Stub { @NonNull OpEntry createSingleAttributionEntryLocked(@Nullable String attributionTag) { // TODO(b/308201969): Update this method when we introduce disk persistence of events // for accesses on external devices. final ArrayMap<String, AttributedOp> attributedOps = mDeviceAttributedOps.get( ArrayMap<String, AttributedOp> attributedOps = mDeviceAttributedOps.get( PERSISTENT_DEVICE_ID_DEFAULT); if (attributedOps == null) { attributedOps = new ArrayMap<>(); } final ArrayMap<String, AttributedOpEntry> attributionEntries = new ArrayMap<>(1); if (attributedOps.get(attributionTag) != null) { attributionEntries.put(attributionTag, Loading services/core/java/com/android/server/policy/PermissionPolicyService.java +1 −1 Original line number Diff line number Diff line Loading @@ -237,7 +237,7 @@ public final class PermissionPolicyService extends SystemService { mAppOpsCallback = new IAppOpsCallback.Stub() { public void opChanged(int op, int uid, @Nullable String packageName, String persistentDeviceId) { if (Objects.equals(persistentDeviceId, if (!Objects.equals(persistentDeviceId, VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT)) { return; } Loading Loading
core/api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -251,6 +251,7 @@ package android.app { method @RequiresPermission("android.permission.MANAGE_APPOPS") public void getHistoricalOpsFromDiskRaw(@NonNull android.app.AppOpsManager.HistoricalOpsRequest, @Nullable java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>); method public static int getNumOps(); method public boolean isOperationActive(int, int, String); method public int noteOpNoThrow(int, @NonNull android.content.AttributionSource, @Nullable String); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void offsetHistory(long); method public static String opToPermission(int); method public static int permissionToOpCode(String); Loading
core/java/android/app/AppOpsManager.java +21 −9 Original line number Diff line number Diff line Loading @@ -8272,15 +8272,25 @@ public class AppOpsManager { cb = new IAppOpsCallback.Stub() { public void opChanged(int op, int uid, String packageName, String persistentDeviceId) { if (Flags.deviceAwarePermissionApisEnabled()) { if (callback instanceof OnOpChangedInternalListener) { ((OnOpChangedInternalListener)callback).onOpChanged(op, packageName, persistentDeviceId); } if (sAppOpInfos[op].name != null) { callback.onOpChanged(sAppOpInfos[op].name, packageName, UserHandle.getUserId(uid), persistentDeviceId); } } else { if (callback instanceof OnOpChangedInternalListener) { ((OnOpChangedInternalListener) callback).onOpChanged(op, packageName); } if (sAppOpInfos[op].name != null) { callback.onOpChanged(sAppOpInfos[op].name, packageName, UserHandle.getUserId(uid)); } } } }; mModeWatchers.put(callback, cb); Loading Loading @@ -8940,6 +8950,8 @@ public class AppOpsManager { * * @hide */ @TestApi @SuppressLint("UnflaggedApi") public int noteOpNoThrow(int op, @NonNull AttributionSource attributionSource, @Nullable String message) { return noteOpNoThrow(op, attributionSource.getUid(), attributionSource.getPackageName(), Loading
core/java/android/permission/PermissionUsageHelper.java +1 −2 Original line number Diff line number Diff line Loading @@ -359,8 +359,7 @@ public class PermissionUsageHelper implements AppOpsManager.OnOpActiveChangedLis new PermissionGroupUsage(usage.packageName, usage.uid, usage.lastAccessTime, permGroup, usage.isRunning, isPhone, usage.attributionTag, attributionLabel, usagesWithLabels.valueAt(usageNum), VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT)); usagesWithLabels.valueAt(usageNum), deviceId)); } } Loading
services/core/java/com/android/server/appop/AppOpsService.java +10 −2 Original line number Diff line number Diff line Loading @@ -661,8 +661,12 @@ public class AppOpsService extends IAppOpsService.Stub { @NonNull OpEntry createEntryLocked(String persistentDeviceId) { // TODO(b/308201969): Update this method when we introduce disk persistence of events // for accesses on external devices. final ArrayMap<String, AttributedOp> attributedOps = mDeviceAttributedOps.get( ArrayMap<String, AttributedOp> attributedOps = mDeviceAttributedOps.get( persistentDeviceId); if (attributedOps == null) { attributedOps = new ArrayMap<>(); } final ArrayMap<String, AppOpsManager.AttributedOpEntry> attributionEntries = new ArrayMap<>(attributedOps.size()); for (int i = 0; i < attributedOps.size(); i++) { Loading @@ -680,8 +684,12 @@ public class AppOpsService extends IAppOpsService.Stub { @NonNull OpEntry createSingleAttributionEntryLocked(@Nullable String attributionTag) { // TODO(b/308201969): Update this method when we introduce disk persistence of events // for accesses on external devices. final ArrayMap<String, AttributedOp> attributedOps = mDeviceAttributedOps.get( ArrayMap<String, AttributedOp> attributedOps = mDeviceAttributedOps.get( PERSISTENT_DEVICE_ID_DEFAULT); if (attributedOps == null) { attributedOps = new ArrayMap<>(); } final ArrayMap<String, AttributedOpEntry> attributionEntries = new ArrayMap<>(1); if (attributedOps.get(attributionTag) != null) { attributionEntries.put(attributionTag, Loading
services/core/java/com/android/server/policy/PermissionPolicyService.java +1 −1 Original line number Diff line number Diff line Loading @@ -237,7 +237,7 @@ public final class PermissionPolicyService extends SystemService { mAppOpsCallback = new IAppOpsCallback.Stub() { public void opChanged(int op, int uid, @Nullable String packageName, String persistentDeviceId) { if (Objects.equals(persistentDeviceId, if (!Objects.equals(persistentDeviceId, VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT)) { return; } Loading