0

Is there any permission list like play.google.com, I'm looking for a classified list of permissions. enter image description here

Pejman
  • 2,442
  • 4
  • 34
  • 62
  • What's missing from the documentation? http://developer.android.com/reference/android/Manifest.permission.html – Simon Nov 03 '13 at 08:34
  • @Simon there is a group :`Network communication` and there is some permission on it like `view network connections` . I want a list of permission that Classified by group of type just like the picture – Pejman Nov 03 '13 at 08:51
  • 1
    possible duplicate of [XML Android Permissions List Full](http://stackoverflow.com/questions/7523075/xml-android-permissions-list-full) – Simon Nov 03 '13 at 09:01
  • Look @Simon I'm trying to be polite, but my english is so bad. I'm gonna make a list of permissions in my web page. I want to classified them but I cant figure it out some question like this: the `ACCESS_SURFACE_FLINGER` belong to which group ? or where `AUTHENTICATE_ACCOUNTS` should be? in account or in security – Pejman Nov 03 '13 at 09:07
  • This might be useful. http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/content/pm/PackageParser.java#PackageParser.PermissionGroup – Simon Nov 03 '13 at 09:45

3 Answers3

3

The classifications are referred to as "permission groups." You can find a list of the standard Android permission groups in the Manifest.permission documentation. Unfortunately, getting a complete list of groups and permission isn't very easy.

You can get a permission's permission group through a PermissionInfo object.

You can use something such as the following code to get a list of all permissions and their groups on your device:

public MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // ...

        List<PackageInfo> packages = getPackageManager().getInstalledPackages(PackageManager.GET_PERMISSIONS);
        for (PackageInfo packageInfo: packages) {
            for (PermissionInfo permission: packageInfo.permissions) {
                Log.d("Permission", "Permission: " + permission.name + "\t Group: " + permission.group);
            }
        }
    }
}
Bryan Herbst
  • 66,602
  • 10
  • 133
  • 120
2

you will get full permission list with description here http://developer.android.com/reference/android/Manifest.permission.html

<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.BIND_APPWIDGET" />
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
<uses-permission android:name="android.permission.BIND_INPUT_METHOD" />
<uses-permission android:name="android.permission.BIND_REMOTEVIEWS" />
<uses-permission android:name="android.permission.BIND_WALLPAPER" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BRICK" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" />
<uses-permission android:name="android.permission.BROADCAST_SMS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/>
<uses-permission android:name="android.permission.BIND_TEXT_SERVICE"/>
<uses-permission android:name="android.permission.BIND_VPN_SERVICE"/>
<uses-permission android:name="android.permission.PERSISTENT_ACTIVITY"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="android.permission.READ_PROFILE"/>
<uses-permission android:name="android.permission.READ_SOCIAL_STREAM"/>
<uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS"/>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
<uses-permission android:name="android.permission.WRITE_PROFILE"/>
<uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"/>
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY"/>

Hardik
  • 17,179
  • 2
  • 35
  • 40
  • I do exactly know this but I'm not looking for permission list, I'm looking for a **classified** permission list just like the picture in my question. – Pejman Nov 03 '13 at 08:53
0

Google doesn't provide the mappings between permissions and permission-groups or permissions and protection-levels. You can extract them from the Android source code. Here is a project that recovers those mappings.

https://github.com/benjholla/AndroidPermissionAttributeMapper

Example output is provided for a recovered mappings of:

Permission Group->Permission

Protection Level->Permission

Ben Holland
  • 2,309
  • 4
  • 34
  • 50