Allow perm controller to read historical app-op data am: dbac29e44f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12061588 Change-Id: Ia84c43f954e3e804f368d36ae6d996b881bd44bd
This commit is contained in:
committed by
Automerger Merge Worker
commit
4aa07e9e59
@@ -2052,6 +2052,8 @@ public class AppOpsService extends IAppOpsService.Stub {
|
||||
public void getHistoricalOps(int uid, String packageName, String attributionTag,
|
||||
List<String> opNames, int filter, long beginTimeMillis, long endTimeMillis,
|
||||
int flags, RemoteCallback callback) {
|
||||
PackageManager pm = mContext.getPackageManager();
|
||||
|
||||
ensureHistoricalOpRequestIsValid(uid, packageName, attributionTag, opNames, filter,
|
||||
beginTimeMillis, endTimeMillis, flags);
|
||||
Objects.requireNonNull(callback, "callback cannot be null");
|
||||
@@ -2059,8 +2061,16 @@ public class AppOpsService extends IAppOpsService.Stub {
|
||||
ActivityManagerInternal ami = LocalServices.getService(ActivityManagerInternal.class);
|
||||
boolean isCallerInstrumented = ami.isUidCurrentlyInstrumented(Binder.getCallingUid());
|
||||
boolean isCallerSystem = Binder.getCallingPid() == Process.myPid();
|
||||
boolean isCallerPermissionController;
|
||||
try {
|
||||
isCallerPermissionController = pm.getPackageUid(
|
||||
mContext.getPackageManager().getPermissionControllerPackageName(), 0)
|
||||
== Binder.getCallingUid();
|
||||
} catch (PackageManager.NameNotFoundException doesNotHappen) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isCallerSystem && !isCallerInstrumented) {
|
||||
if (!isCallerSystem && !isCallerInstrumented && !isCallerPermissionController) {
|
||||
mHandler.post(() -> callback.sendResult(new Bundle()));
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user