Loading services/core/java/com/android/server/appop/AppOpsService.java +22 −10 Original line number Original line Diff line number Diff line Loading @@ -423,7 +423,7 @@ public class AppOpsService extends IAppOpsService.Stub { /** Hands the definition of foreground and uid states */ /** Hands the definition of foreground and uid states */ @GuardedBy("this") @GuardedBy("this") public AppOpsUidStateTracker getUidStateTracker() { private AppOpsUidStateTracker getUidStateTracker() { if (mUidStateTracker == null) { if (mUidStateTracker == null) { mUidStateTracker = new AppOpsUidStateTrackerImpl( mUidStateTracker = new AppOpsUidStateTrackerImpl( LocalServices.getService(ActivityManagerInternal.class), LocalServices.getService(ActivityManagerInternal.class), Loading Loading @@ -2895,21 +2895,28 @@ public class AppOpsService extends IAppOpsService.Stub { uidState.uid, getPersistentId(virtualDeviceId), code); uidState.uid, getPersistentId(virtualDeviceId), code); if (rawUidMode != AppOpsManager.opToDefaultMode(code)) { if (rawUidMode != AppOpsManager.opToDefaultMode(code)) { return raw ? rawUidMode : uidState.evalMode(code, rawUidMode); return raw ? rawUidMode : evaluateForegroundMode(/* uid= */ uid, /* op= */ code, /* rawUidMode= */ rawUidMode); } } } } Op op = getOpLocked(code, uid, packageName, null, false, pvr.bypass, /* edit */ false); Op op = getOpLocked(code, uid, packageName, null, false, pvr.bypass, /* edit */ false); if (op == null) { if (op == null) { return AppOpsManager.opToDefaultMode(code); return evaluateForegroundMode( /* uid= */ uid, /* op= */ code, /* rawUidMode= */ AppOpsManager.opToDefaultMode(code)); } } return raw var packageMode = mAppOpsCheckingService.getPackageMode( ? mAppOpsCheckingService.getPackageMode( op.packageName, op.packageName, op.op, UserHandle.getUserId(op.uid)) : op.uidState.evalMode( op.op, op.op, mAppOpsCheckingService.getPackageMode( UserHandle.getUserId(op.uid)); op.packageName, op.op, UserHandle.getUserId(op.uid))); return raw ? packageMode : evaluateForegroundMode( /* uid= */ uid, /* op= */op.op, /* rawUidMode= */ packageMode); } } } } Loading Loading @@ -7003,6 +7010,11 @@ public class AppOpsService extends IAppOpsService.Stub { "Requested persistentId for invalid virtualDeviceId: " + virtualDeviceId); "Requested persistentId for invalid virtualDeviceId: " + virtualDeviceId); } } @GuardedBy("this") private int evaluateForegroundMode(int uid, int op, int rawUidMode) { return getUidStateTracker().evalMode(uid, op, rawUidMode); } private final class ClientUserRestrictionState implements DeathRecipient { private final class ClientUserRestrictionState implements DeathRecipient { private final IBinder token; private final IBinder token; Loading Loading
services/core/java/com/android/server/appop/AppOpsService.java +22 −10 Original line number Original line Diff line number Diff line Loading @@ -423,7 +423,7 @@ public class AppOpsService extends IAppOpsService.Stub { /** Hands the definition of foreground and uid states */ /** Hands the definition of foreground and uid states */ @GuardedBy("this") @GuardedBy("this") public AppOpsUidStateTracker getUidStateTracker() { private AppOpsUidStateTracker getUidStateTracker() { if (mUidStateTracker == null) { if (mUidStateTracker == null) { mUidStateTracker = new AppOpsUidStateTrackerImpl( mUidStateTracker = new AppOpsUidStateTrackerImpl( LocalServices.getService(ActivityManagerInternal.class), LocalServices.getService(ActivityManagerInternal.class), Loading Loading @@ -2895,21 +2895,28 @@ public class AppOpsService extends IAppOpsService.Stub { uidState.uid, getPersistentId(virtualDeviceId), code); uidState.uid, getPersistentId(virtualDeviceId), code); if (rawUidMode != AppOpsManager.opToDefaultMode(code)) { if (rawUidMode != AppOpsManager.opToDefaultMode(code)) { return raw ? rawUidMode : uidState.evalMode(code, rawUidMode); return raw ? rawUidMode : evaluateForegroundMode(/* uid= */ uid, /* op= */ code, /* rawUidMode= */ rawUidMode); } } } } Op op = getOpLocked(code, uid, packageName, null, false, pvr.bypass, /* edit */ false); Op op = getOpLocked(code, uid, packageName, null, false, pvr.bypass, /* edit */ false); if (op == null) { if (op == null) { return AppOpsManager.opToDefaultMode(code); return evaluateForegroundMode( /* uid= */ uid, /* op= */ code, /* rawUidMode= */ AppOpsManager.opToDefaultMode(code)); } } return raw var packageMode = mAppOpsCheckingService.getPackageMode( ? mAppOpsCheckingService.getPackageMode( op.packageName, op.packageName, op.op, UserHandle.getUserId(op.uid)) : op.uidState.evalMode( op.op, op.op, mAppOpsCheckingService.getPackageMode( UserHandle.getUserId(op.uid)); op.packageName, op.op, UserHandle.getUserId(op.uid))); return raw ? packageMode : evaluateForegroundMode( /* uid= */ uid, /* op= */op.op, /* rawUidMode= */ packageMode); } } } } Loading Loading @@ -7003,6 +7010,11 @@ public class AppOpsService extends IAppOpsService.Stub { "Requested persistentId for invalid virtualDeviceId: " + virtualDeviceId); "Requested persistentId for invalid virtualDeviceId: " + virtualDeviceId); } } @GuardedBy("this") private int evaluateForegroundMode(int uid, int op, int rawUidMode) { return getUidStateTracker().evalMode(uid, op, rawUidMode); } private final class ClientUserRestrictionState implements DeathRecipient { private final class ClientUserRestrictionState implements DeathRecipient { private final IBinder token; private final IBinder token; Loading