List of usage examples for android.content.pm PermissionInfo PROTECTION_DANGEROUS
int PROTECTION_DANGEROUS
To view the source code for android.content.pm PermissionInfo PROTECTION_DANGEROUS.
Click Source Link
dangerous
value of android.R.attr#protectionLevel . From source file:com.android.packageinstaller.GrantActivity.java
/** * Filter the permissions in {@code permissions}, keeping only the NORMAL or DANGEROUS * permissions.// w ww .java 2 s . c o m * * @param permissions the permissions to filter * @return A subset of {@code permissions} with only the * NORMAL or DANGEROUS permissions kept */ private String[] keepNormalDangerousPermissions(String[] permissions) { List<String> result = new ArrayList<String>(); for (String permission : permissions) { try { PermissionInfo pInfo = mPm.getPermissionInfo(permission, 0); final int base = pInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE; if ((base != PermissionInfo.PROTECTION_NORMAL) && (base != PermissionInfo.PROTECTION_DANGEROUS)) { continue; } result.add(permission); } catch (NameNotFoundException e) { // ignore } } return result.toArray(new String[result.size()]); }
From source file:com.github.michalbednarski.intentslab.PermissionInfoFragment.java
@SuppressLint("InlinedApi") private static String protectionLevelToString(int protectionLevel) { int base = protectionLevel & PermissionInfo.PROTECTION_MASK_BASE; int flags = protectionLevel & PermissionInfo.PROTECTION_MASK_FLAGS; // Base/*from w w w .j a v a 2 s . c o m*/ StringBuilder builder = new StringBuilder(base == PermissionInfo.PROTECTION_NORMAL ? "normal" : base == PermissionInfo.PROTECTION_DANGEROUS ? "dangerous" : base == PermissionInfo.PROTECTION_SIGNATURE ? "signature" : base == PermissionInfo.PROTECTION_SIGNATURE_OR_SYSTEM ? "signatureOrSystem" : String.valueOf(base) // If none matched ); // Flags if ((flags & PermissionInfo.PROTECTION_FLAG_SYSTEM) != 0) { builder.append("|system"); } if ((flags & PermissionInfo.PROTECTION_FLAG_DEVELOPMENT) != 0) { builder.append("|development"); } // Unrecognized flags int unknownFlags = flags & ~(PermissionInfo.PROTECTION_FLAG_SYSTEM | PermissionInfo.PROTECTION_FLAG_DEVELOPMENT); if (unknownFlags != 0) { builder.append("|"); builder.append(unknownFlags); } return builder.toString(); }
From source file:com.afwsamples.testdpc.provision.PostProvisioningTask.java
private boolean isRuntimePermission(PackageManager packageManager, String permission) { try {/*from w ww . ja va2 s .com*/ PermissionInfo pInfo = packageManager.getPermissionInfo(permission, 0); if (pInfo != null) { if ((pInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE) == PermissionInfo.PROTECTION_DANGEROUS) { return true; } } } catch (PackageManager.NameNotFoundException e) { Log.i(TAG, "Could not retrieve info about the permission: " + permission); } return false; }
From source file:com.github.michalbednarski.intentslab.browser.ComponentFetcher.java
@SuppressLint("InlinedApi") static boolean checkProtectionLevel(PermissionInfo permissionInfo, int protectionFilter) { // Skip test if all options are checked if ((protectionFilter & PROTECTION_ANY_LEVEL) == PROTECTION_ANY_LEVEL) { return true; }//from w ww . j a v a 2 s . c o m // Test protectionLevel int protectionLevel = permissionInfo.protectionLevel; if (protectionLevel == PermissionInfo.PROTECTION_SIGNATURE_OR_SYSTEM) { protectionLevel = PermissionInfo.PROTECTION_SIGNATURE | PermissionInfo.PROTECTION_FLAG_SYSTEM; } int protectionLevelBase = protectionLevel & PermissionInfo.PROTECTION_MASK_BASE; int protectionLevelFlags = protectionLevel & PermissionInfo.PROTECTION_MASK_FLAGS; // Match against our flags return ((protectionLevel == PermissionInfo.PROTECTION_NORMAL ? PROTECTION_NORMAL : protectionLevel == PermissionInfo.PROTECTION_DANGEROUS ? PROTECTION_DANGEROUS : (((protectionLevelBase == PermissionInfo.PROTECTION_SIGNATURE) ? PROTECTION_SIGNATURE : 0) | (((protectionLevelFlags & PermissionInfo.PROTECTION_FLAG_SYSTEM) != 0) ? PROTECTION_SYSTEM : 0) | (((protectionLevelFlags & PermissionInfo.PROTECTION_FLAG_DEVELOPMENT) != 0) ? PROTECTION_DEVELOPMENT : 0))) & protectionFilter) != 0; }
From source file:org.fdroid.fdroid.privileged.views.AppSecurityPermissions.java
private boolean isDisplayablePermission(PermissionInfo pInfo, int existingReqFlags) { final int base = pInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE; final boolean isNormal = base == PermissionInfo.PROTECTION_NORMAL; final boolean isDangerous = base == PermissionInfo.PROTECTION_DANGEROUS || ((pInfo.protectionLevel & PermissionInfo.PROTECTION_FLAG_PRE23) != 0); // Dangerous and normal permissions are always shown to the user // this is matches the permission list in AppDetails if (isNormal || isDangerous) { return true; }//from w w w . j a va 2 s.c om final boolean isDevelopment = (pInfo.protectionLevel & PermissionInfo.PROTECTION_FLAG_DEVELOPMENT) != 0; final boolean wasGranted = (existingReqFlags & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0; // Development permissions are only shown to the user if they are already // granted to the app -- if we are installing an app and they are not // already granted, they will not be granted as part of the install. return isDevelopment && wasGranted; }