use of android.content.pm.PermissionInfo in project android_frameworks_base by DirtyUnicorns.
the class PackageManagerShellCommand method doListPermissions.
private void doListPermissions(ArrayList<String> groupList, boolean groups, boolean labels, boolean summary, int startProtectionLevel, int endProtectionLevel) throws RemoteException {
final PrintWriter pw = getOutPrintWriter();
final int groupCount = groupList.size();
for (int i = 0; i < groupCount; i++) {
String groupName = groupList.get(i);
String prefix = "";
if (groups) {
if (i > 0) {
pw.println("");
}
if (groupName != null) {
PermissionGroupInfo pgi = mInterface.getPermissionGroupInfo(groupName, 0);
if (summary) {
Resources res = getResources(pgi);
if (res != null) {
pw.print(loadText(pgi, pgi.labelRes, pgi.nonLocalizedLabel) + ": ");
} else {
pw.print(pgi.name + ": ");
}
} else {
pw.println((labels ? "+ " : "") + "group:" + pgi.name);
if (labels) {
pw.println(" package:" + pgi.packageName);
Resources res = getResources(pgi);
if (res != null) {
pw.println(" label:" + loadText(pgi, pgi.labelRes, pgi.nonLocalizedLabel));
pw.println(" description:" + loadText(pgi, pgi.descriptionRes, pgi.nonLocalizedDescription));
}
}
}
} else {
pw.println(((labels && !summary) ? "+ " : "") + "ungrouped:");
}
prefix = " ";
}
List<PermissionInfo> ps = mInterface.queryPermissionsByGroup(groupList.get(i), 0).getList();
final int count = ps.size();
boolean first = true;
for (int p = 0; p < count; p++) {
PermissionInfo pi = ps.get(p);
if (groups && groupName == null && pi.group != null) {
continue;
}
final int base = pi.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE;
if (base < startProtectionLevel || base > endProtectionLevel) {
continue;
}
if (summary) {
if (first) {
first = false;
} else {
pw.print(", ");
}
Resources res = getResources(pi);
if (res != null) {
pw.print(loadText(pi, pi.labelRes, pi.nonLocalizedLabel));
} else {
pw.print(pi.name);
}
} else {
pw.println(prefix + (labels ? "+ " : "") + "permission:" + pi.name);
if (labels) {
pw.println(prefix + " package:" + pi.packageName);
Resources res = getResources(pi);
if (res != null) {
pw.println(prefix + " label:" + loadText(pi, pi.labelRes, pi.nonLocalizedLabel));
pw.println(prefix + " description:" + loadText(pi, pi.descriptionRes, pi.nonLocalizedDescription));
}
pw.println(prefix + " protectionLevel:" + PermissionInfo.protectionToString(pi.protectionLevel));
}
}
}
if (summary) {
pw.println("");
}
}
}
use of android.content.pm.PermissionInfo in project android_frameworks_base by DirtyUnicorns.
the class MetaDataTest method testPermissionWithData.
@SmallTest
public void testPermissionWithData() throws Exception {
ComponentName cn = new ComponentName("foo", "com.android.frameworks.coretests.permission.TEST_GRANTED");
PermissionInfo pi = mContext.getPackageManager().getPermissionInfo(cn.getClassName(), PackageManager.GET_META_DATA);
checkMetaData(cn, pi);
pi = mContext.getPackageManager().getPermissionInfo(cn.getClassName(), 0);
assertNull("Meta data returned when not requested", pi.metaData);
}
use of android.content.pm.PermissionInfo in project android_frameworks_base by ResurrectionRemix.
the class MetaDataTest method testPermissionWithData.
@SmallTest
public void testPermissionWithData() throws Exception {
ComponentName cn = new ComponentName("foo", "com.android.frameworks.coretests.permission.TEST_GRANTED");
PermissionInfo pi = mContext.getPackageManager().getPermissionInfo(cn.getClassName(), PackageManager.GET_META_DATA);
checkMetaData(cn, pi);
pi = mContext.getPackageManager().getPermissionInfo(cn.getClassName(), 0);
assertNull("Meta data returned when not requested", pi.metaData);
}
use of android.content.pm.PermissionInfo in project android_frameworks_base by ResurrectionRemix.
the class PackageManagerShellCommand method doListPermissions.
private void doListPermissions(ArrayList<String> groupList, boolean groups, boolean labels, boolean summary, int startProtectionLevel, int endProtectionLevel) throws RemoteException {
final PrintWriter pw = getOutPrintWriter();
final int groupCount = groupList.size();
for (int i = 0; i < groupCount; i++) {
String groupName = groupList.get(i);
String prefix = "";
if (groups) {
if (i > 0) {
pw.println("");
}
if (groupName != null) {
PermissionGroupInfo pgi = mInterface.getPermissionGroupInfo(groupName, 0);
if (summary) {
Resources res = getResources(pgi);
if (res != null) {
pw.print(loadText(pgi, pgi.labelRes, pgi.nonLocalizedLabel) + ": ");
} else {
pw.print(pgi.name + ": ");
}
} else {
pw.println((labels ? "+ " : "") + "group:" + pgi.name);
if (labels) {
pw.println(" package:" + pgi.packageName);
Resources res = getResources(pgi);
if (res != null) {
pw.println(" label:" + loadText(pgi, pgi.labelRes, pgi.nonLocalizedLabel));
pw.println(" description:" + loadText(pgi, pgi.descriptionRes, pgi.nonLocalizedDescription));
}
}
}
} else {
pw.println(((labels && !summary) ? "+ " : "") + "ungrouped:");
}
prefix = " ";
}
List<PermissionInfo> ps = mInterface.queryPermissionsByGroup(groupList.get(i), 0).getList();
final int count = ps.size();
boolean first = true;
for (int p = 0; p < count; p++) {
PermissionInfo pi = ps.get(p);
if (groups && groupName == null && pi.group != null) {
continue;
}
final int base = pi.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE;
if (base < startProtectionLevel || base > endProtectionLevel) {
continue;
}
if (summary) {
if (first) {
first = false;
} else {
pw.print(", ");
}
Resources res = getResources(pi);
if (res != null) {
pw.print(loadText(pi, pi.labelRes, pi.nonLocalizedLabel));
} else {
pw.print(pi.name);
}
} else {
pw.println(prefix + (labels ? "+ " : "") + "permission:" + pi.name);
if (labels) {
pw.println(prefix + " package:" + pi.packageName);
Resources res = getResources(pi);
if (res != null) {
pw.println(prefix + " label:" + loadText(pi, pi.labelRes, pi.nonLocalizedLabel));
pw.println(prefix + " description:" + loadText(pi, pi.descriptionRes, pi.nonLocalizedDescription));
}
pw.println(prefix + " protectionLevel:" + PermissionInfo.protectionToString(pi.protectionLevel));
}
}
}
if (summary) {
pw.println("");
}
}
}
use of android.content.pm.PermissionInfo in project android_frameworks_base by crdroidandroid.
the class Settings method writePermissionLPr.
void writePermissionLPr(XmlSerializer serializer, BasePermission bp) throws XmlPullParserException, java.io.IOException {
if (bp.sourcePackage != null) {
serializer.startTag(null, TAG_ITEM);
serializer.attribute(null, ATTR_NAME, bp.name);
serializer.attribute(null, "package", bp.sourcePackage);
if (bp.protectionLevel != PermissionInfo.PROTECTION_NORMAL) {
serializer.attribute(null, "protection", Integer.toString(bp.protectionLevel));
}
if (PackageManagerService.DEBUG_SETTINGS)
Log.v(PackageManagerService.TAG, "Writing perm: name=" + bp.name + " type=" + bp.type);
if (bp.type == BasePermission.TYPE_DYNAMIC) {
final PermissionInfo pi = bp.perm != null ? bp.perm.info : bp.pendingInfo;
if (pi != null) {
serializer.attribute(null, "type", "dynamic");
if (pi.icon != 0) {
serializer.attribute(null, "icon", Integer.toString(pi.icon));
}
if (pi.nonLocalizedLabel != null) {
serializer.attribute(null, "label", pi.nonLocalizedLabel.toString());
}
}
}
if (bp.allowViaWhitelist) {
serializer.attribute(null, "allowViaWhitelist", Integer.toString(1));
}
serializer.endTag(null, TAG_ITEM);
}
}
Aggregations