diff options
author | Ian Pedowitz <ijpedowitz@google.com> | 2015-08-21 17:33:14 +0000 |
---|---|---|
committer | Ian Pedowitz <ijpedowitz@google.com> | 2015-08-21 17:33:14 +0000 |
commit | 95560c737ad280d1582c4e0bd66dc76a89b6cdc0 (patch) | |
tree | 1d0e740714aa8b0612f438c2dcdb2dbb2baa96f1 /src/com | |
parent | e899d8d48558a6d4a8f0498c38a623115aad2205 (diff) | |
download | android_packages_apps_PackageInstaller-95560c737ad280d1582c4e0bd66dc76a89b6cdc0.tar.gz android_packages_apps_PackageInstaller-95560c737ad280d1582c4e0bd66dc76a89b6cdc0.tar.bz2 android_packages_apps_PackageInstaller-95560c737ad280d1582c4e0bd66dc76a89b6cdc0.zip |
Revert "Grant only requested permissions not the whole group."
This reverts commit e899d8d48558a6d4a8f0498c38a623115aad2205.
Bug: 23314383
Bug: 23397858
Change-Id: Ia928a4b24c60eae6b4fb16ebdbfa6b6787f6c3ae
Diffstat (limited to 'src/com')
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()); } |