Don't check pkg<->uid when called from internal
The PermissionManagerService calls AppOpsService before the package
manager is up. Hence AppOpsService cannot verify package properties.
This is not needed in the calls from PermissionManagerService as this
component can be trusted to provide correct data.
Fixes: 127470436
Test: Upgraded from P->Q with a pre-M installed
Change-Id: Ide529f13ab2cc3b7551e99c94935c0cb537a817b
diff --git a/core/java/android/app/AppOpsManagerInternal.java b/core/java/android/app/AppOpsManagerInternal.java
index da45054..08cad04 100644
--- a/core/java/android/app/AppOpsManagerInternal.java
+++ b/core/java/android/app/AppOpsManagerInternal.java
@@ -16,6 +16,7 @@
package android.app;
+import android.annotation.NonNull;
import android.util.SparseIntArray;
import com.android.internal.util.function.QuadFunction;
@@ -96,4 +97,18 @@
* @param uid The uid
*/
public abstract void setAllPkgModesToDefault(int code, int uid);
+
+ /**
+ * Get the (raw) mode of an app-op.
+ *
+ * <p>Does <u>not</u> verify that package belongs to uid. The caller needs to do that.
+ *
+ * @param code The code of the op
+ * @param uid The uid of the package the op belongs to
+ * @param packageName The package the op belongs to
+ *
+ * @return The mode of the op
+ */
+ public abstract @AppOpsManager.Mode int checkOperationUnchecked(int code, int uid,
+ @NonNull String packageName);
}