Loading services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +17 −1 Original line number Diff line number Diff line Loading @@ -31,9 +31,11 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageManagerInternal.PackagesProvider; import android.content.pm.PackageManagerInternal.SyncAdapterPackagesProvider; import android.content.pm.PermissionInfo; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.media.RingtoneManager; Loading Loading @@ -1182,12 +1184,16 @@ public final class DefaultPermissionGrantPolicy { final int permissionGrantCount = permissionGrants.size(); for (int j = 0; j < permissionGrantCount; j++) { DefaultPermissionGrant permissionGrant = permissionGrants.get(j); if (!isPermissionDangerous(permissionGrant.name)) { Log.w(TAG, "Ignoring permission " + permissionGrant.name + " which isn't dangerous"); continue; } if (permissions == null) { permissions = new ArraySet<>(); } else { permissions.clear(); } permissions.add(permissionGrant.name); grantRuntimePermissions(pkg, permissions, permissionGrant.fixed, userId); } } Loading Loading @@ -1350,6 +1356,16 @@ public final class DefaultPermissionGrantPolicy { && pkg.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1; } private boolean isPermissionDangerous(String name) { try { final PermissionInfo pi = mContext.getPackageManager().getPermissionInfo(name, 0); return (pi.getProtectionFlags() & PermissionInfo.PROTECTION_DANGEROUS) != 0; } catch (NameNotFoundException e) { // When unknown assume it's dangerous to be on the safe side return true; } } private static final class DefaultPermissionGrant { final String name; final boolean fixed; Loading Loading
services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +17 −1 Original line number Diff line number Diff line Loading @@ -31,9 +31,11 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; import android.content.pm.PackageManagerInternal.PackagesProvider; import android.content.pm.PackageManagerInternal.SyncAdapterPackagesProvider; import android.content.pm.PermissionInfo; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.media.RingtoneManager; Loading Loading @@ -1182,12 +1184,16 @@ public final class DefaultPermissionGrantPolicy { final int permissionGrantCount = permissionGrants.size(); for (int j = 0; j < permissionGrantCount; j++) { DefaultPermissionGrant permissionGrant = permissionGrants.get(j); if (!isPermissionDangerous(permissionGrant.name)) { Log.w(TAG, "Ignoring permission " + permissionGrant.name + " which isn't dangerous"); continue; } if (permissions == null) { permissions = new ArraySet<>(); } else { permissions.clear(); } permissions.add(permissionGrant.name); grantRuntimePermissions(pkg, permissions, permissionGrant.fixed, userId); } } Loading Loading @@ -1350,6 +1356,16 @@ public final class DefaultPermissionGrantPolicy { && pkg.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1; } private boolean isPermissionDangerous(String name) { try { final PermissionInfo pi = mContext.getPackageManager().getPermissionInfo(name, 0); return (pi.getProtectionFlags() & PermissionInfo.PROTECTION_DANGEROUS) != 0; } catch (NameNotFoundException e) { // When unknown assume it's dangerous to be on the safe side return true; } } private static final class DefaultPermissionGrant { final String name; final boolean fixed; Loading