summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuprabh Shukla <suprabh@google.com>2017-09-20 16:51:06 -0700
committerSuprabh Shukla <suprabh@google.com>2017-09-21 20:52:43 +0000
commit691692d48669ef6d13193d449ea59e2e244c847f (patch)
tree9766e25f6b485ffc2345fac0915e2bc6d0cb7fb6
parent51712e3bfc2a6e2df744791bf0d7803e0473c7dc (diff)
downloadandroid_packages_apps_PackageInstaller-691692d48669ef6d13193d449ea59e2e244c847f.tar.gz
android_packages_apps_PackageInstaller-691692d48669ef6d13193d449ea59e2e244c847f.tar.bz2
android_packages_apps_PackageInstaller-691692d48669ef6d13193d449ea59e2e244c847f.zip
Not using app op code constant directly from PackageInstaller
Since AppOpsManager op codes are hidden apis, they can be modified by OEMs. Referencing the codes directly prohibits partners from freely using the integer ids to assign to their own op codes. Using a string identifier to indirectly infer the integer code is more flexible. Test: Builds, boots, existing tests pass Bug: 65534401 Change-Id: I5a69690871b5b55f2f8d45d0cf53b5f25ff5abff
-rw-r--r--src/com/android/packageinstaller/PackageInstallerActivity.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java
index 61154716..06444179 100644
--- a/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -519,7 +519,10 @@ public class PackageInstallerActivity extends OverlayTouchActivity implements On
showDialogInner(DLG_ANONYMOUS_SOURCE);
return;
}
- int appOpMode = mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES,
+ // Shouldn't use static constant directly, see b/65534401.
+ final int appOpCode =
+ AppOpsManager.permissionToOpCode(Manifest.permission.REQUEST_INSTALL_PACKAGES);
+ final int appOpMode = mAppOpsManager.checkOpNoThrow(appOpCode,
mOriginatingUid, mOriginatingPackage);
switch (appOpMode) {
case AppOpsManager.MODE_DEFAULT:
@@ -533,7 +536,7 @@ public class PackageInstallerActivity extends OverlayTouchActivity implements On
} catch (RemoteException exc) {
Log.e(TAG, "Unable to talk to package manager");
}
- mAppOpsManager.setMode(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES, mOriginatingUid,
+ mAppOpsManager.setMode(appOpCode, mOriginatingUid,
mOriginatingPackage, AppOpsManager.MODE_ERRORED);
// fall through
case AppOpsManager.MODE_ERRORED: