List of usage examples for android.content.pm PermissionInfo PROTECTION_FLAG_DEVELOPMENT
int PROTECTION_FLAG_DEVELOPMENT
To view the source code for android.content.pm PermissionInfo PROTECTION_FLAG_DEVELOPMENT.
Click Source Link
development
value of android.R.attr#protectionLevel . 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 a2 s. c om*/ 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.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; }/*ww w . ja v a 2s. com*/ // 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; }// w ww . j a va 2 s.c o m 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; }