diff --git a/src/com/android/settings/applications/AppStateInstallAppsBridge.java b/src/com/android/settings/applications/AppStateInstallAppsBridge.java
index f852bca..8a3e5a2 100644
--- a/src/com/android/settings/applications/AppStateInstallAppsBridge.java
+++ b/src/com/android/settings/applications/AppStateInstallAppsBridge.java
@@ -93,8 +93,6 @@
         final InstallAppsState appState = new InstallAppsState();
         appState.permissionRequested = hasRequestedAppOpPermission(
                 Manifest.permission.REQUEST_INSTALL_PACKAGES, packageName);
-        appState.permissionGranted = hasPermission(Manifest.permission.REQUEST_INSTALL_PACKAGES,
-                uid);
         appState.appOpMode = getAppOpMode(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES, uid,
                 packageName);
         return appState;
@@ -105,7 +103,6 @@
      */
     public static class InstallAppsState {
         boolean permissionRequested;
-        boolean permissionGranted;
         int appOpMode;
 
         public InstallAppsState() {
@@ -113,11 +110,7 @@
         }
 
         public boolean canInstallApps() {
-            if (appOpMode == AppOpsManager.MODE_DEFAULT) {
-                return permissionGranted;
-            } else {
-                return appOpMode == AppOpsManager.MODE_ALLOWED;
-            }
+            return appOpMode == AppOpsManager.MODE_ALLOWED;
         }
 
         public boolean isPotentialAppSource() {
@@ -126,8 +119,8 @@
 
         @Override
         public String toString() {
-            StringBuilder sb = new StringBuilder("[permissionGranted: " + permissionGranted);
-            sb.append(", permissionRequested: " + permissionRequested);
+            StringBuilder sb = new StringBuilder();
+            sb.append("[permissionRequested: " + permissionRequested);
             sb.append(", appOpMode: " + appOpMode);
             sb.append("]");
             return sb.toString();
diff --git a/tests/robotests/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java b/tests/robotests/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java
index 304dfe9..277f63e 100644
--- a/tests/robotests/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java
@@ -33,8 +33,10 @@
             new AppStateInstallAppsBridge.InstallAppsState();
         assertThat(appState.canInstallApps()).isFalse();
 
-        appState.permissionGranted = true;
         appState.permissionRequested = true;
+        assertThat(appState.canInstallApps()).isFalse();
+
+        appState.appOpMode = AppOpsManager.MODE_ALLOWED;
         assertThat(appState.canInstallApps()).isTrue();
 
         appState.appOpMode = AppOpsManager.MODE_ERRORED;
