Search in sources :

Example 36 with PermissionInfo

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("");
        }
    }
}
Also used : PermissionInfo(android.content.pm.PermissionInfo) PermissionGroupInfo(android.content.pm.PermissionGroupInfo) Resources(android.content.res.Resources) PrintWriter(java.io.PrintWriter)

Example 37 with PermissionInfo

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);
}
Also used : PermissionInfo(android.content.pm.PermissionInfo) ComponentName(android.content.ComponentName) SmallTest(android.test.suitebuilder.annotation.SmallTest)

Example 38 with PermissionInfo

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);
}
Also used : PermissionInfo(android.content.pm.PermissionInfo) ComponentName(android.content.ComponentName) SmallTest(android.test.suitebuilder.annotation.SmallTest)

Example 39 with PermissionInfo

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("");
        }
    }
}
Also used : PermissionInfo(android.content.pm.PermissionInfo) PermissionGroupInfo(android.content.pm.PermissionGroupInfo) Resources(android.content.res.Resources) PrintWriter(java.io.PrintWriter)

Example 40 with PermissionInfo

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);
    }
}
Also used : PermissionInfo(android.content.pm.PermissionInfo)

Aggregations

PermissionInfo (android.content.pm.PermissionInfo)43 PermissionGroupInfo (android.content.pm.PermissionGroupInfo)14 NameNotFoundException (android.content.pm.PackageManager.NameNotFoundException)12 ComponentName (android.content.ComponentName)6 Resources (android.content.res.Resources)6 SmallTest (android.test.suitebuilder.annotation.SmallTest)6 PrintWriter (java.io.PrintWriter)4 ArrayList (java.util.ArrayList)4 PackageInfo (android.content.pm.PackageInfo)3 PackageManager (android.content.pm.PackageManager)3 PackageParser (android.content.pm.PackageParser)3 AppOpsManager (android.app.AppOpsManager)1 RemoteException (android.os.RemoteException)1 View (android.view.View)1 AdapterView (android.widget.AdapterView)1 CompoundButton (android.widget.CompoundButton)1 ImageView (android.widget.ImageView)1 Spinner (android.widget.Spinner)1 Switch (android.widget.Switch)1 TextView (android.widget.TextView)1