Loading api/test-current.txt +4 −1 Original line number Diff line number Diff line Loading @@ -134,16 +134,19 @@ package android.app { method @RequiresPermission("android.permission.MANAGE_APPOPS") public void addHistoricalOps(@NonNull android.app.AppOpsManager.HistoricalOps); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void clearHistory(); method @RequiresPermission("android.permission.GET_APP_OPS_STATS") public void getHistoricalOps(@NonNull android.app.AppOpsManager.HistoricalOpsRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>); method @RequiresPermission("android.permission.GET_APP_OPS_STATS") public void getHistoricalOpsFromDiskRaw(@NonNull android.app.AppOpsManager.HistoricalOpsRequest, @Nullable java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>); 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 static String[] getOpStrs(); method public boolean isOperationActive(int, int, String); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void offsetHistory(long); method public static int opToDefaultMode(@NonNull String); method public static String opToPermission(int); method public static int permissionToOpCode(String); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void reloadNonHistoricalState(); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void resetHistoryParameters(); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void setHistoryParameters(int, long, int); method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setMode(int, int, String, int); method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setMode(String, int, String, int); method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setUidMode(String, int, int); method public void startWatchingActive(@NonNull int[], @NonNull android.app.AppOpsManager.OnOpActiveChangedListener); method public void stopWatchingActive(@NonNull android.app.AppOpsManager.OnOpActiveChangedListener); Loading core/java/android/app/AppOpsManager.java +18 −1 Original line number Diff line number Diff line Loading @@ -2153,6 +2153,7 @@ public class AppOpsManager { * * @hide */ @TestApi @SystemApi public static int opToDefaultMode(@NonNull String appOp) { return opToDefaultMode(strOpToOp(appOp)); Loading Loading @@ -4465,7 +4466,7 @@ public class AppOpsManager { * @hide */ @TestApi @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) @RequiresPermission(Manifest.permission.MANAGE_APPOPS) public void getHistoricalOpsFromDiskRaw(@NonNull HistoricalOpsRequest request, @Nullable Executor executor, @NonNull Consumer<HistoricalOps> callback) { Preconditions.checkNotNull(executor, "executor cannot be null"); Loading @@ -4487,6 +4488,21 @@ public class AppOpsManager { } } /** * Reloads the non historical state to allow testing the read/write path. * * @hide */ @TestApi @RequiresPermission(Manifest.permission.MANAGE_APPOPS) public void reloadNonHistoricalState() { try { mService.reloadNonHistoricalState(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Sets given app op in the specified mode for app ops in the UID. * This applies to all apps currently in the UID or installed in Loading Loading @@ -4570,6 +4586,7 @@ public class AppOpsManager { * be changed. * @hide */ @TestApi @SystemApi @RequiresPermission(android.Manifest.permission.MANAGE_APP_OPS_MODES) public void setMode(String op, int uid, String packageName, @Mode int mode) { Loading core/java/com/android/internal/app/IAppOpsService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -79,4 +79,6 @@ interface IAppOpsService { void stopWatchingNoted(IAppOpsNotedCallback callback); int checkOperationRaw(int code, int uid, String packageName); void reloadNonHistoricalState(); } services/core/java/com/android/server/appop/AppOpsService.java +10 −1 Original line number Diff line number Diff line Loading @@ -1132,7 +1132,7 @@ public class AppOpsService extends IAppOpsService.Stub { .build(); Preconditions.checkNotNull(callback, "callback cannot be null"); mContext.enforcePermission(android.Manifest.permission.GET_APP_OPS_STATS, mContext.enforcePermission(Manifest.permission.MANAGE_APPOPS, Binder.getCallingPid(), Binder.getCallingUid(), "getHistoricalOps"); final String[] opNamesArray = (opNames != null) Loading @@ -1143,6 +1143,14 @@ public class AppOpsService extends IAppOpsService.Stub { beginTimeMillis, endTimeMillis, flags, callback); } @Override public void reloadNonHistoricalState() { mContext.enforcePermission(Manifest.permission.MANAGE_APPOPS, Binder.getCallingPid(), Binder.getCallingUid(), "reloadNonHistoricalState"); writeState(); readState(); } @Override public List<AppOpsManager.PackageOps> getUidOps(int uid, int[] ops) { mContext.enforcePermission(android.Manifest.permission.GET_APP_OPS_STATS, Loading Loading @@ -2998,6 +3006,7 @@ public class AppOpsService extends IAppOpsService.Stub { final LongSparseArray keys = op.collectKeys(); if (keys == null || keys.size() <= 0) { out.endTag(null, "op"); continue; } Loading Loading
api/test-current.txt +4 −1 Original line number Diff line number Diff line Loading @@ -134,16 +134,19 @@ package android.app { method @RequiresPermission("android.permission.MANAGE_APPOPS") public void addHistoricalOps(@NonNull android.app.AppOpsManager.HistoricalOps); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void clearHistory(); method @RequiresPermission("android.permission.GET_APP_OPS_STATS") public void getHistoricalOps(@NonNull android.app.AppOpsManager.HistoricalOpsRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>); method @RequiresPermission("android.permission.GET_APP_OPS_STATS") public void getHistoricalOpsFromDiskRaw(@NonNull android.app.AppOpsManager.HistoricalOpsRequest, @Nullable java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>); 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 static String[] getOpStrs(); method public boolean isOperationActive(int, int, String); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void offsetHistory(long); method public static int opToDefaultMode(@NonNull String); method public static String opToPermission(int); method public static int permissionToOpCode(String); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void reloadNonHistoricalState(); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void resetHistoryParameters(); method @RequiresPermission("android.permission.MANAGE_APPOPS") public void setHistoryParameters(int, long, int); method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setMode(int, int, String, int); method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setMode(String, int, String, int); method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setUidMode(String, int, int); method public void startWatchingActive(@NonNull int[], @NonNull android.app.AppOpsManager.OnOpActiveChangedListener); method public void stopWatchingActive(@NonNull android.app.AppOpsManager.OnOpActiveChangedListener); Loading
core/java/android/app/AppOpsManager.java +18 −1 Original line number Diff line number Diff line Loading @@ -2153,6 +2153,7 @@ public class AppOpsManager { * * @hide */ @TestApi @SystemApi public static int opToDefaultMode(@NonNull String appOp) { return opToDefaultMode(strOpToOp(appOp)); Loading Loading @@ -4465,7 +4466,7 @@ public class AppOpsManager { * @hide */ @TestApi @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) @RequiresPermission(Manifest.permission.MANAGE_APPOPS) public void getHistoricalOpsFromDiskRaw(@NonNull HistoricalOpsRequest request, @Nullable Executor executor, @NonNull Consumer<HistoricalOps> callback) { Preconditions.checkNotNull(executor, "executor cannot be null"); Loading @@ -4487,6 +4488,21 @@ public class AppOpsManager { } } /** * Reloads the non historical state to allow testing the read/write path. * * @hide */ @TestApi @RequiresPermission(Manifest.permission.MANAGE_APPOPS) public void reloadNonHistoricalState() { try { mService.reloadNonHistoricalState(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Sets given app op in the specified mode for app ops in the UID. * This applies to all apps currently in the UID or installed in Loading Loading @@ -4570,6 +4586,7 @@ public class AppOpsManager { * be changed. * @hide */ @TestApi @SystemApi @RequiresPermission(android.Manifest.permission.MANAGE_APP_OPS_MODES) public void setMode(String op, int uid, String packageName, @Mode int mode) { Loading
core/java/com/android/internal/app/IAppOpsService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -79,4 +79,6 @@ interface IAppOpsService { void stopWatchingNoted(IAppOpsNotedCallback callback); int checkOperationRaw(int code, int uid, String packageName); void reloadNonHistoricalState(); }
services/core/java/com/android/server/appop/AppOpsService.java +10 −1 Original line number Diff line number Diff line Loading @@ -1132,7 +1132,7 @@ public class AppOpsService extends IAppOpsService.Stub { .build(); Preconditions.checkNotNull(callback, "callback cannot be null"); mContext.enforcePermission(android.Manifest.permission.GET_APP_OPS_STATS, mContext.enforcePermission(Manifest.permission.MANAGE_APPOPS, Binder.getCallingPid(), Binder.getCallingUid(), "getHistoricalOps"); final String[] opNamesArray = (opNames != null) Loading @@ -1143,6 +1143,14 @@ public class AppOpsService extends IAppOpsService.Stub { beginTimeMillis, endTimeMillis, flags, callback); } @Override public void reloadNonHistoricalState() { mContext.enforcePermission(Manifest.permission.MANAGE_APPOPS, Binder.getCallingPid(), Binder.getCallingUid(), "reloadNonHistoricalState"); writeState(); readState(); } @Override public List<AppOpsManager.PackageOps> getUidOps(int uid, int[] ops) { mContext.enforcePermission(android.Manifest.permission.GET_APP_OPS_STATS, Loading Loading @@ -2998,6 +3006,7 @@ public class AppOpsService extends IAppOpsService.Stub { final LongSparseArray keys = op.collectKeys(); if (keys == null || keys.size() <= 0) { out.endTag(null, "op"); continue; } Loading