Skip to content

Instantly share code, notes, and snippets.

@silentsudo
Created April 25, 2017 11:07
Show Gist options
  • Save silentsudo/93ed5f13f916048492e9aae4d8121ef0 to your computer and use it in GitHub Desktop.
Save silentsudo/93ed5f13f916048492e9aae4d8121ef0 to your computer and use it in GitHub Desktop.
permissions.txt
List<InstalledPackageInfo> installedPackageInfos = new ArrayList<>();
for (ApplicationInfo applicationInfo : packages) {
InstalledPackageInfo packageItem = new InstalledPackageInfo();
List<AppPermissionInfo> permissionsInfoList = new ArrayList<>();
String pkg = applicationInfo.packageName;
packageItem.setPackageName(pkg);
packageItem.setSystemApp((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
try {
PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
//All requested permissions
String[] requestedPermissions = packageInfo.requestedPermissions;
//All Current permissions
if (requestedPermissions != null) {
permissionsInfoList = new ArrayList<>();
for (int i = 0; requestedPermissions != null &&
i < requestedPermissions.length; i++) {
int permissionStatus = pm.checkPermission(requestedPermissions[i], pkg);
PermissionInfo permissionInfo = pm.getPermissionInfo(requestedPermissions[i], GET_META_DATA);
// Logger.debug(LOG_TAG + "Label", "" + permissionInfo.toString());
AppPermissionInfo appPermissionInfo = new AppPermissionInfo(
permissionInfo.name,
requestedPermissions[i],
permissionInfo.loadDescription(pm),
permissionStatus == PackageManager.PERMISSION_GRANTED,
permissionInfo.protectionLevel
);
permissionsInfoList.add(appPermissionInfo);
}
}
} catch (PackageManager.NameNotFoundException e) {
// Logger.error(LOG_TAG, "Unable to read permission", e);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment