Merge "Fix reading app ops data - framework"
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -2153,6 +2153,7 @@ public class AppOpsManager {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@TestApi
|
||||
@SystemApi
|
||||
public static int opToDefaultMode(@NonNull String appOp) {
|
||||
return opToDefaultMode(strOpToOp(appOp));
|
||||
@@ -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");
|
||||
@@ -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
|
||||
@@ -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) {
|
||||
|
||||
@@ -79,4 +79,6 @@ interface IAppOpsService {
|
||||
void stopWatchingNoted(IAppOpsNotedCallback callback);
|
||||
|
||||
int checkOperationRaw(int code, int uid, String packageName);
|
||||
|
||||
void reloadNonHistoricalState();
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
@@ -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,
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user