From d92c5a9becf21409c8ff76d64d7f43999982de6c Mon Sep 17 00:00:00 2001 From: hanyuhang Date: Thu, 3 Sep 2020 20:37:03 +0800 Subject: [PATCH] Revert auto agree permission --- core/java/android/app/Activity.java | 77 ++----------------- .../server/am/ActivityManagerService.java | 42 +--------- 2 files changed, 9 insertions(+), 110 deletions(-) diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index db3f2aa7..c4ab9722 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -838,39 +838,6 @@ public class Activity extends ContextThemeWrapper private boolean mHasCurrentPermissionsRequest; private boolean mEatKeyUpEvent; - private HashMap defaultPermissions = new HashMap() { - { - // PHONE - put("android.permission.READ_PHONE_STATE", 0); - put("android.permission.CALL_PHONE", 0); - put("android.permission.READ_CALL_LOG", 0); - put("android.permission.WRITE_CALL_LOG", 0); - put("android.permission.ADD_VOICEMAIL", 0); - put("android.permission.USE_SIP", 0); - put("android.permission.PROCESS_OUTGOING_CALLS", 0); - - // STORAGE - put("android.permission.READ_EXTERNAL_STORAGE", 0); - put("android.permission.WRITE_EXTERNAL_STORAGE", 0); - - // LOCATION - put("android.permission.ACCESS_FINE_LOCATION", 0); - put("android.permission.ACCESS_COARSE_LOCATION", 0); - - // CONTACTS - put("android.permission.READ_CONTACTS", 0); - put("android.permission.WRITE_CONTACTS", 0); - put("android.permission.GET_ACCOUNTS", 0); - - // CALENDAR - put("android.permission.READ_CALENDAR", 0); - put("android.permission.WRITE_CALENDAR", 0); - - // CAMERA - put("android.permission.CAMERA", -1); - } - }; - private static native String getDlWarning(); /** Return the intent that started this activity. */ @@ -4145,43 +4112,15 @@ public class Activity extends ContextThemeWrapper * @see #shouldShowRequestPermissionRationale(String) */ public final void requestPermissions(@NonNull String[] permissions, int requestCode) { - List defaultStr = new ArrayList<>(); - List usrStr = new ArrayList<>(); - - for (int i = 0; i < permissions.length; i++) { - if (defaultPermissions.containsKey(permissions[i])) { - // Log.d(TAG,"defaultStr: " + permissions[i]); - defaultStr.add(permissions[i]); - } else { - // Log.d(TAG,"usrStr: " + permissions[i]); - usrStr.add(permissions[i]); - } - } - - if (defaultStr.size() > 0) { - // auto reject or grant - String[] permi = defaultStr.toArray(new String[]{}); - int[] grant = new int[defaultStr.size()]; - for (int i = 0; i < defaultStr.size(); i++) { - String key = defaultStr.get(i); - Integer value = defaultPermissions.get(key); - grant[i] = value; - } - onRequestPermissionsResult(requestCode, permi, grant); - } - - if (usrStr.size() > 0) { - String[] permi = usrStr.toArray(new String[]{}); - if (mHasCurrentPermissionsRequest) { - Log.w(TAG, "Can reqeust only one set of permissions at a time"); - // Dispatch the callback with empty arrays which means a cancellation. - onRequestPermissionsResult(requestCode, new String[0], new int[0]); - return; - } - Intent intent = getPackageManager().buildRequestPermissionsIntent(permi); - startActivityForResult(REQUEST_PERMISSIONS_WHO_PREFIX, intent, requestCode, null); - mHasCurrentPermissionsRequest = true; + if (mHasCurrentPermissionsRequest) { + Log.w(TAG, "Can reqeust only one set of permissions at a time"); + // Dispatch the callback with empty arrays which means a cancellation. + onRequestPermissionsResult(requestCode, new String[0], new int[0]); + return; } + Intent intent = getPackageManager().buildRequestPermissionsIntent(permi); + startActivityForResult(REQUEST_PERMISSIONS_WHO_PREFIX, intent, requestCode, null); + mHasCurrentPermissionsRequest = true; } /** diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index dc8bed11..cb112726 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -643,37 +643,6 @@ public final class ActivityManagerService extends ActivityManagerNative boolean mDoingSetFocusedActivity; - HashSet defaultPermissions = new HashSet() { - { - // PHONE - add("android.permission.READ_PHONE_STATE"); - add("android.permission.CALL_PHONE"); - add("android.permission.READ_CALL_LOG"); - add("android.permission.WRITE_CALL_LOG"); - add("android.permission.ADD_VOICEMAIL"); - add("android.permission.USE_SIP"); - add("android.permission.PROCESS_OUTGOING_CALLS"); - - // STORAGE - add("android.permission.READ_EXTERNAL_STORAGE"); - add("android.permission.WRITE_EXTERNAL_STORAGE"); - - // LOCATION - add("android.permission.ACCESS_FINE_LOCATION"); - add("android.permission.ACCESS_COARSE_LOCATION"); - - // CONTACTS - add("android.permission.READ_CONTACTS"); - add("android.permission.WRITE_CONTACTS"); - add("android.permission.GET_ACCOUNTS"); - - // CALENDAR - add("android.permission.READ_CALENDAR"); - add("android.permission.WRITE_CALENDAR"); - } - }; - - public boolean canShowErrorDialogs() { return mShowDialogs && !mSleeping && !mShuttingDown && mLockScreenShown != LOCK_SCREEN_SHOWN; @@ -7781,16 +7750,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (permission == null) { return PackageManager.PERMISSION_DENIED; } - - int ret = -1; - if (defaultPermissions.contains(permission)) { - ret = 0; - // Slog.d(TAG,"defaultPermissions!!! permission:" + permission); - } else { - ret = checkComponentPermission(permission, pid, uid, -1, true); - } - - return ret; + return checkComponentPermission(permission, pid, uid, -1, true); } @Override -- Gitee