To find list of permissions used by an installed application in android

The below code not only retrieves the permission , but will also retrieve services , receivers . Be careful on PackageManager tags. This will only fetch you the corresponding information on specific packages .
PackageManager p = this.getPackageManager(); final List < PackageInfo>; appinstall=p.getInstalledPackages(PackageManager.GET_PERMISSIONS|PackageManager.GET_RECEIVERS| PackageManager.GET_SERVICES|PackageManager.GET_PROVIDERS); for(PackageInfo pInfo:appinstall){ //PermissionInfo[] permission=pInfo.permissions; String[] reqPermission=pInfo.requestedPermissions; ServiceInfo[] services=pInfo.services; ProviderInfo[] providers=pInfo.providers; int versionCode=pInfo.versionCode; Log.d("versionCode-package ",Integer.toString(versionCode)); Log.d("Installed Applications", pInfo.applicationInfo .loadLabel(pm).toString()); Log.d("packegename",pInfo.packageName. toString()); if(reqPermission!=null) for(int i=0;i < reqPermission.length;i++) Log.d("permission list",reqPermission[i]);