summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Pedowitz <ijpedowitz@google.com>2015-08-21 17:33:14 +0000
committerThe Android Automerger <android-build@google.com>2015-08-21 10:53:20 -0700
commit851c5c47279a043330f9acce5db8cb8d2046cc34 (patch)
tree754ecd6ad881bdf5a43c5b4830280f4c21a322c2
parentcc257aa7960422795202de35ddc691fe2bce4e6c (diff)
downloadandroid_packages_apps_PackageInstaller-851c5c47279a043330f9acce5db8cb8d2046cc34.tar.gz
android_packages_apps_PackageInstaller-851c5c47279a043330f9acce5db8cb8d2046cc34.tar.bz2
android_packages_apps_PackageInstaller-851c5c47279a043330f9acce5db8cb8d2046cc34.zip
Revert "Grant only requested permissions not the whole group."
This reverts commit e899d8d48558a6d4a8f0498c38a623115aad2205. Bug: 23314383 Bug: 23397858 Change-Id: Ia928a4b24c60eae6b4fb16ebdbfa6b6787f6c3ae
-rw-r--r--src/com/android/packageinstaller/permission/model/AppPermissionGroup.java25
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionApps.java6
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java2
-rw-r--r--src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java10
-rw-r--r--src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java23
-rw-r--r--src/com/android/packageinstaller/permission/utils/SafetyNetLogger.java2
6 files changed, 20 insertions, 48 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
index b3ac9721..633336c3 100644
--- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
+++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
@@ -28,7 +28,6 @@ import android.os.Build;
import android.os.UserHandle;
import android.util.ArrayMap;
-import com.android.internal.util.ArrayUtils;
import com.android.packageinstaller.R;
import com.android.packageinstaller.permission.utils.LocationUtils;
@@ -265,19 +264,13 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
return mPermissions.get(permission) != null;
}
- public boolean areRuntimePermissionsGranted(String[] filterPermissions) {
+ public boolean areRuntimePermissionsGranted() {
if (LocationUtils.isLocked(mName, mPackageInfo.packageName)) {
return LocationUtils.isLocationEnabled(mContext);
}
final int permissionCount = mPermissions.size();
for (int i = 0; i < permissionCount; i++) {
Permission permission = mPermissions.valueAt(i);
-
- if (filterPermissions != null && !ArrayUtils.contains(
- filterPermissions, permission.getName())) {
- continue;
- }
-
if (mAppSupportsRuntimePermissions) {
if (permission.isGranted()) {
return true;
@@ -290,7 +283,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
return false;
}
- public boolean grantRuntimePermissions(boolean fixedByTheUser, String[] filterPermissions) {
+ public boolean grantRuntimePermissions(boolean fixedByTheUser) {
final boolean isSharedUser = mPackageInfo.sharedUserId != null;
final int uid = mPackageInfo.applicationInfo.uid;
@@ -298,12 +291,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
// permissions, otherwise we toggle the app op corresponding
// to the permission if the permission is granted to the app.
for (Permission permission : mPermissions.values()) {
-
- if (filterPermissions != null && !ArrayUtils.contains(
- filterPermissions, permission.getName())) {
- continue;
- }
-
if (mAppSupportsRuntimePermissions) {
// Do not touch permissions fixed by the system.
if (permission.isSystemFixed()) {
@@ -384,7 +371,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
return true;
}
- public boolean revokeRuntimePermissions(boolean fixedByTheUser, String[] filterPermissions) {
+ public boolean revokeRuntimePermissions(boolean fixedByTheUser) {
final boolean isSharedUser = mPackageInfo.sharedUserId != null;
final int uid = mPackageInfo.applicationInfo.uid;
@@ -392,12 +379,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
// permissions, otherwise we toggle the app op corresponding
// to the permission if the permission is granted to the app.
for (Permission permission : mPermissions.values()) {
-
- if (filterPermissions != null && !ArrayUtils.contains(
- filterPermissions, permission.getName())) {
- continue;
- }
-
if (mAppSupportsRuntimePermissions) {
// Do not touch permissions fixed by the system.
if (permission.isSystemFixed()) {
diff --git a/src/com/android/packageinstaller/permission/model/PermissionApps.java b/src/com/android/packageinstaller/permission/model/PermissionApps.java
index 09d469bc..73fc7089 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionApps.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionApps.java
@@ -313,15 +313,15 @@ public class PermissionApps {
}
public boolean areRuntimePermissionsGranted() {
- return mAppPermissionGroup.areRuntimePermissionsGranted(null);
+ return mAppPermissionGroup.areRuntimePermissionsGranted();
}
public void grantRuntimePermissions() {
- mAppPermissionGroup.grantRuntimePermissions(false, null);
+ mAppPermissionGroup.grantRuntimePermissions(false);
}
public void revokeRuntimePermissions() {
- mAppPermissionGroup.revokeRuntimePermissions(false, null);
+ mAppPermissionGroup.revokeRuntimePermissions(false);
}
public boolean isPolicyFixed() {
diff --git a/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java b/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
index 84a977d7..52fb874e 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionStatusReceiver.java
@@ -77,7 +77,7 @@ public class PermissionStatusReceiver extends BroadcastReceiver {
for (AppPermissionGroup group : appPermissions.getPermissionGroups()) {
if (Utils.shouldShowPermission(group)) {
totalCount++;
- if (group.areRuntimePermissionsGranted(null)) {
+ if (group.areRuntimePermissionsGranted()) {
grantedCount++;
if (Utils.OS_PKG.equals(group.getDeclaringPackage())) {
diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
index 3277289c..e4e904c8 100644
--- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
@@ -224,7 +224,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
}
preference.setPersistent(false);
preference.setEnabled(!group.isPolicyFixed());
- preference.setChecked(group.areRuntimePermissionsGranted(null));
+ preference.setChecked(group.areRuntimePermissionsGranted());
if (isPlatform) {
screen.addPreference(preference);
@@ -281,7 +281,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
return false;
}
if (newValue == Boolean.TRUE) {
- group.grantRuntimePermissions(false, null);
+ group.grantRuntimePermissions(false);
} else {
final boolean grantedByDefault = group.hasGrantedByDefaultPermission();
if (grantedByDefault || (!group.hasRuntimePermission() && !mHasConfirmedRevoke)) {
@@ -294,7 +294,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
@Override
public void onClick(DialogInterface dialog, int which) {
((SwitchPreference) preference).setChecked(false);
- group.revokeRuntimePermissions(false, null);
+ group.revokeRuntimePermissions(false);
if (!grantedByDefault) {
mHasConfirmedRevoke = true;
}
@@ -303,7 +303,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
.show();
return false;
} else {
- group.revokeRuntimePermissions(false, null);
+ group.revokeRuntimePermissions(false);
}
}
@@ -351,7 +351,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
SwitchPreference switchPref = (SwitchPreference) preference;
AppPermissionGroup group = mAppPermissions.getPermissionGroup(switchPref.getKey());
if (group != null) {
- switchPref.setChecked(group.areRuntimePermissionsGranted(null));
+ switchPref.setChecked(group.areRuntimePermissionsGranted());
}
}
}
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
index a61432e3..c451dd50 100644
--- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
@@ -118,30 +118,21 @@ public class GrantPermissionsActivity extends OverlayTouchActivity
if (!group.isUserFixed() && !group.isPolicyFixed()) {
switch (permissionPolicy) {
case DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT: {
- if (!group.areRuntimePermissionsGranted(mRequestedPermissions)) {
- group.grantRuntimePermissions(false, mRequestedPermissions);
+ if (!group.areRuntimePermissionsGranted()) {
+ group.grantRuntimePermissions(false);
group.setPolicyFixed();
}
} break;
case DevicePolicyManager.PERMISSION_POLICY_AUTO_DENY: {
- if (group.areRuntimePermissionsGranted(mRequestedPermissions)) {
- group.revokeRuntimePermissions(false, mRequestedPermissions);
+ if (!group.areRuntimePermissionsGranted()) {
+ group.revokeRuntimePermissions(false);
group.setPolicyFixed();
}
} break;
default: {
- if (group.areRuntimePermissionsGranted(null)
- && !group.areRuntimePermissionsGranted(mRequestedPermissions)) {
- // If the group is granted but requested permissions
- // in it not we auto grant the these permissions.
- group.grantRuntimePermissions(group.isUserFixed(),
- mRequestedPermissions);
- } else {
- mRequestGrantPermissionGroups.put(group.getName(),
- new GroupState(group));
- }
+ mRequestGrantPermissionGroups.put(group.getName(), new GroupState(group));
} break;
}
} else {
@@ -235,10 +226,10 @@ public class GrantPermissionsActivity extends OverlayTouchActivity
GroupState groupState = mRequestGrantPermissionGroups.get(name);
if (groupState.mGroup != null) {
if (granted) {
- groupState.mGroup.grantRuntimePermissions(doNotAskAgain, mRequestedPermissions);
+ groupState.mGroup.grantRuntimePermissions(doNotAskAgain);
groupState.mState = GroupState.STATE_ALLOWED;
} else {
- groupState.mGroup.revokeRuntimePermissions(doNotAskAgain, mRequestedPermissions);
+ groupState.mGroup.revokeRuntimePermissions(doNotAskAgain);
groupState.mState = GroupState.STATE_DENIED;
}
updateGrantResults(groupState.mGroup);
diff --git a/src/com/android/packageinstaller/permission/utils/SafetyNetLogger.java b/src/com/android/packageinstaller/permission/utils/SafetyNetLogger.java
index 851d41d2..8280ba36 100644
--- a/src/com/android/packageinstaller/permission/utils/SafetyNetLogger.java
+++ b/src/com/android/packageinstaller/permission/utils/SafetyNetLogger.java
@@ -63,7 +63,7 @@ public final class SafetyNetLogger {
builder.append(';');
}
builder.append(group.getName()).append('|');
- builder.append(group.areRuntimePermissionsGranted(null)).append('|');
+ builder.append(group.areRuntimePermissionsGranted()).append('|');
builder.append(group.getFlags());
}