From ad7fcc400fe1609929dc4605edaf1e0caeeeec1b Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Fri, 15 Apr 2016 10:25:47 -0700 Subject: DeletePackageAsUser in PackageManager uses different ordering of flags than IPackageManager. Bug: 28207146 Change-Id: Idc75427005c7998de4edd30245fa00a68ba816ba --- src/com/android/packageinstaller/UninstallAppProgress.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/packageinstaller/UninstallAppProgress.java b/src/com/android/packageinstaller/UninstallAppProgress.java index e9c058f6..3a178273 100755 --- a/src/com/android/packageinstaller/UninstallAppProgress.java +++ b/src/com/android/packageinstaller/UninstallAppProgress.java @@ -262,7 +262,7 @@ public class UninstallAppProgress extends Activity implements OnClickListener { getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); getPackageManager().deletePackageAsUser(mAppInfo.packageName, observer, - mUser.getIdentifier(), mAllUsers ? PackageManager.DELETE_ALL_USERS : 0); + mAllUsers ? PackageManager.DELETE_ALL_USERS : 0, mUser.getIdentifier()); mHandler.sendMessageDelayed(mHandler.obtainMessage(UNINSTALL_IS_SLOW), QUICK_INSTALL_DELAY_MILLIS); -- cgit v1.2.3 From 3942ad1e78f775f33509fc56775376d1c9a77dc2 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Tue, 3 May 2016 17:46:42 +0000 Subject: Revert "Grant only the requested permissions" This reverts commit 294b6406798c59e9db5ffa99d042f9b8c6ca6f90. Change-Id: Ifb48eb1fbdb0499743f4ca88adbd5ed77cfa4cf8 --- .../permission/ui/GrantPermissionsActivity.java | 50 ++++------------------ .../permission/utils/ArrayUtils.java | 18 -------- 2 files changed, 9 insertions(+), 59 deletions(-) diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index 807d3a3b..78d33d23 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -29,6 +29,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Typeface; import android.graphics.drawable.Icon; +import android.hardware.camera2.utils.ArrayUtils; import android.os.Build; import android.os.Bundle; import android.text.SpannableString; @@ -46,7 +47,6 @@ import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.model.AppPermissions; import com.android.packageinstaller.permission.model.Permission; import com.android.packageinstaller.permission.ui.handheld.GrantPermissionsViewHandlerImpl; -import com.android.packageinstaller.permission.utils.ArrayUtils; import com.android.packageinstaller.permission.utils.SafetyNetLogger; import java.util.ArrayList; @@ -147,36 +147,24 @@ public class GrantPermissionsActivity extends OverlayTouchActivity switch (permissionPolicy) { case DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT: { if (!group.areRuntimePermissionsGranted()) { - group.grantRuntimePermissions(false, computeAffectedPermissions( - callingPackageInfo, requestedPermission)); + group.grantRuntimePermissions(false); } group.setPolicyFixed(); } break; case DevicePolicyManager.PERMISSION_POLICY_AUTO_DENY: { if (group.areRuntimePermissionsGranted()) { - group.revokeRuntimePermissions(false, computeAffectedPermissions( - callingPackageInfo, requestedPermission)); + group.revokeRuntimePermissions(false); } group.setPolicyFixed(); } break; default: { if (!group.areRuntimePermissionsGranted()) { - GroupState state = mRequestGrantPermissionGroups.get(group.getName()); - if (state == null) { - state = new GroupState(group); - mRequestGrantPermissionGroups.put(group.getName(), state); - } - String affectedPermission = computeAffectedPermission( - callingPackageInfo, requestedPermission); - if (affectedPermission != null) { - state.affectedPermissions = ArrayUtils.appendString( - state.affectedPermissions, affectedPermission); - } + mRequestGrantPermissionGroups.put(group.getName(), + new GroupState(group)); } else { - group.grantRuntimePermissions(false, computeAffectedPermissions( - callingPackageInfo, requestedPermission)); + group.grantRuntimePermissions(false); updateGrantResults(group); } } break; @@ -283,12 +271,10 @@ public class GrantPermissionsActivity extends OverlayTouchActivity GroupState groupState = mRequestGrantPermissionGroups.get(name); if (groupState.mGroup != null) { if (granted) { - groupState.mGroup.grantRuntimePermissions(doNotAskAgain, - groupState.affectedPermissions); + groupState.mGroup.grantRuntimePermissions(doNotAskAgain); groupState.mState = GroupState.STATE_ALLOWED; } else { - groupState.mGroup.revokeRuntimePermissions(doNotAskAgain, - groupState.affectedPermissions); + groupState.mGroup.revokeRuntimePermissions(doNotAskAgain); groupState.mState = GroupState.STATE_DENIED; } updateGrantResults(groupState.mGroup); @@ -300,7 +286,7 @@ public class GrantPermissionsActivity extends OverlayTouchActivity private void updateGrantResults(AppPermissionGroup group) { for (Permission permission : group.getPermissions()) { - final int index = ArrayUtils.indexOf( + final int index = ArrayUtils.getArrayIndex( mRequestedPermissions, permission.getName()); if (index >= 0) { mGrantResults[index] = permission.isGranted() ? PackageManager.PERMISSION_GRANTED @@ -416,23 +402,6 @@ public class GrantPermissionsActivity extends OverlayTouchActivity SafetyNetLogger.logPermissionsRequested(mAppPermissions.getPackageInfo(), groups); } - private static String[] computeAffectedPermissions(PackageInfo callingPackageInfo, - String permission) { - String affectedPermission = computeAffectedPermission(callingPackageInfo, permission); - if (affectedPermission != null) { - return new String[] {permission}; - } - return null; - } - - private static String computeAffectedPermission(PackageInfo callingPackageInfo, - String permission) { - if (callingPackageInfo.applicationInfo.targetSdkVersion > Build.VERSION_CODES.M) { - return permission; - } - return null; - } - private static final class GroupState { static final int STATE_UNKNOWN = 0; static final int STATE_ALLOWED = 1; @@ -440,7 +409,6 @@ public class GrantPermissionsActivity extends OverlayTouchActivity final AppPermissionGroup mGroup; int mState = STATE_UNKNOWN; - String[] affectedPermissions; GroupState(AppPermissionGroup group) { mGroup = group; diff --git a/src/com/android/packageinstaller/permission/utils/ArrayUtils.java b/src/com/android/packageinstaller/permission/utils/ArrayUtils.java index 2af641bc..4b7a3947 100644 --- a/src/com/android/packageinstaller/permission/utils/ArrayUtils.java +++ b/src/com/android/packageinstaller/permission/utils/ArrayUtils.java @@ -16,8 +16,6 @@ package com.android.packageinstaller.permission.utils; -import android.text.TextUtils; - import java.util.Objects; public final class ArrayUtils { @@ -44,20 +42,4 @@ public final class ArrayUtils { } return -1; } - - public static String[] appendString(String[] cur, String val) { - if (cur == null) { - return new String[] { val }; - } - final int N = cur.length; - for (int i = 0; i < N; i++) { - if (TextUtils.equals(cur[i], val)) { - return cur; - } - } - String[] ret = new String[N + 1]; - System.arraycopy(cur, 0, ret, 0, N); - ret[N] = val; - return ret; - } } -- cgit v1.2.3