Loading services/core/java/com/android/server/appop/AppOpsService.java +23 −21 Original line number Diff line number Diff line Loading @@ -2188,7 +2188,16 @@ public class AppOpsService extends IAppOpsService.Stub { if (op == null) { return; } if (!client.mStartedOps.remove(op)) { if (client.mStartedOps.remove(op)) { finishOperationLocked(op, /*finishNested*/ false); if (op.startNesting <= 0) { scheduleOpActiveChangedIfNeededLocked(code, uid, packageName, false); } return; } } // We finish ops when packages get removed to guarantee no dangling // started ops. However, some part of the system may asynchronously // finish ops for an already gone package. Hence, finishing an op Loading @@ -2205,15 +2214,8 @@ public class AppOpsService extends IAppOpsService.Stub { } finally { Binder.restoreCallingIdentity(identity); } Slog.wtf(TAG, "Operation not started: uid=" + op.uidState.uid + " pkg=" + op.packageName + " op=" + AppOpsManager.opToName(op.op)); return; } finishOperationLocked(op, /*finishNested*/ false); if (op.startNesting <= 0) { scheduleOpActiveChangedIfNeededLocked(code, uid, packageName, false); } } Slog.wtf(TAG, "Operation not started: uid=" + uid + " pkg=" + packageName + " op=" + AppOpsManager.opToName(code)); } private void scheduleOpActiveChangedIfNeededLocked(int code, int uid, String packageName, Loading Loading
services/core/java/com/android/server/appop/AppOpsService.java +23 −21 Original line number Diff line number Diff line Loading @@ -2188,7 +2188,16 @@ public class AppOpsService extends IAppOpsService.Stub { if (op == null) { return; } if (!client.mStartedOps.remove(op)) { if (client.mStartedOps.remove(op)) { finishOperationLocked(op, /*finishNested*/ false); if (op.startNesting <= 0) { scheduleOpActiveChangedIfNeededLocked(code, uid, packageName, false); } return; } } // We finish ops when packages get removed to guarantee no dangling // started ops. However, some part of the system may asynchronously // finish ops for an already gone package. Hence, finishing an op Loading @@ -2205,15 +2214,8 @@ public class AppOpsService extends IAppOpsService.Stub { } finally { Binder.restoreCallingIdentity(identity); } Slog.wtf(TAG, "Operation not started: uid=" + op.uidState.uid + " pkg=" + op.packageName + " op=" + AppOpsManager.opToName(op.op)); return; } finishOperationLocked(op, /*finishNested*/ false); if (op.startNesting <= 0) { scheduleOpActiveChangedIfNeededLocked(code, uid, packageName, false); } } Slog.wtf(TAG, "Operation not started: uid=" + uid + " pkg=" + packageName + " op=" + AppOpsManager.opToName(code)); } private void scheduleOpActiveChangedIfNeededLocked(int code, int uid, String packageName, Loading