Ripping developer.android.com – Data Mining From Manifest / Permission Page

Quick && Dirty :)
The following code will collect and aggregate the data from the page, into a JSON object which can be beautified and stored..
I’m just grabbing it all for my PHP project Hack’aton to provide a dictionary of references for all permissions available, each one with its own description (flatten.. not \n etc..)

var permissions = {};

permissions['name'] = Array.prototype.map.call(document.querySelectorAll('div[class="jd-tagdata"]'), function(item){
  return item.textContent
  .replace(/Constant Value\:/g,"")
  .replace(/\"/g,"")
  .replace(/\n/g,"")
  .replace(/\r/g,"")
  .replace(/\ +/g," ")
  .trim();
});

permissions['descriptions'] = Array.prototype.map.call(document.querySelectorAll('div[class="jd-tagdata jd-tagdescr"]'), function(item){
  return item.textContent
  .replace(/\"/g,"")
  .replace(/\n/g,"")
  .replace(/\r/g,"")
  .replace(/\ +/g," ")
  .trim();

});


permissions['when_added'] = Array.prototype.map.call(document.querySelectorAll('div.api-level a'), function(item){
  return item.textContent.replace(/\n/g,"").replace(/\r/g,"").replace(/\ +/," ");
});

//------

var result = {}, 
    i, 
    len = permissions['name'].length;

for(i=0; i<len; i+=1){
  result[ permissions['name'][i] ] = {
    'description': permissions['descriptions'][i],
    'when_added':  permissions['when_added'][i]
  }
}

console.log(result);

take it all using console.log( JSON.stringify(result) );
It will output the following (correct to today, since the Android-SDK will naturally keep updating..)

{"android.permission.ACCESS_CHECKIN_PROPERTIES":{"description":"Allows read/write access to the properties table in the checkin database, to change values that get uploaded. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.ACCESS_COARSE_LOCATION":{"description":"Allows an app to access approximate location derived from network location sources such as cell towers and Wi-Fi.","when_added":"API level 1"},"android.permission.ACCESS_FINE_LOCATION":{"description":"Allows an app to access precise location from location sources such as GPS, cell towers, and Wi-Fi.","when_added":"API level 1"},"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS":{"description":"Allows an application to access extra location provider commands","when_added":"API level 1"},"android.permission.ACCESS_MOCK_LOCATION":{"description":"Allows an application to create mock location providers for testing","when_added":"API level 1"},"android.permission.ACCESS_NETWORK_STATE":{"description":"Allows applications to access information about networks","when_added":"API level 1"},"android.permission.ACCESS_SURFACE_FLINGER":{"description":"Allows an application to use SurfaceFlinger's low level features. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.ACCESS_WIFI_STATE":{"description":"Allows applications to access information about Wi-Fi networks","when_added":"API level 1"},"android.permission.ACCOUNT_MANAGER":{"description":"Allows applications to call into AccountAuthenticators. Not for use by third-party applications.","when_added":"API level 1"},"com.android.voicemail.permission.ADD_VOICEMAIL":{"description":"Allows an application to add voicemails into the system.","when_added":"API level 5"},"android.permission.AUTHENTICATE_ACCOUNTS":{"description":"Allows an application to act as an AccountAuthenticator for the AccountManager","when_added":"API level 14"},"android.permission.BATTERY_STATS":{"description":"Allows an application to collect battery statistics","when_added":"API level 5"},"android.permission.BIND_ACCESSIBILITY_SERVICE":{"description":"Must be required by an AccessibilityService, to ensure that only the system can bind to it.","when_added":"API level 1"},"android.permission.BIND_APPWIDGET":{"description":"Allows an application to tell the AppWidget service which application can access AppWidget's data. The normal user flow is that a user picks an AppWidget to go into a particular host, thereby giving that host application access to the private data from the AppWidget app. An application that has this permission should honor that contract. Not for use by third-party applications.","when_added":"API level 16"},"android.permission.BIND_DEVICE_ADMIN":{"description":"Must be required by device administration receiver, to ensure that only the system can interact with it.","when_added":"API level 3"},"android.permission.BIND_DREAM_SERVICE":{"description":"Must be required by an DreamService, to ensure that only the system can bind to it.","when_added":"API level 8"},"android.permission.BIND_INPUT_METHOD":{"description":"Must be required by an InputMethodService, to ensure that only the system can bind to it.","when_added":"API level 21"},"android.permission.BIND_NFC_SERVICE":{"description":"Must be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it.","when_added":"API level 3"},"android.permission.BIND_NOTIFICATION_LISTENER_SERVICE":{"description":"Must be required by an NotificationListenerService, to ensure that only the system can bind to it.","when_added":"API level 19"},"android.permission.BIND_PRINT_SERVICE":{"description":"Must be required by a PrintService, to ensure that only the system can bind to it.","when_added":"API level 18"},"android.permission.BIND_REMOTEVIEWS":{"description":"Must be required by a RemoteViewsService, to ensure that only the system can bind to it.","when_added":"API level 19"},"android.permission.BIND_TEXT_SERVICE":{"description":"Must be required by a TextService (e.g. SpellCheckerService) to ensure that only the system can bind to it.","when_added":"API level 11"},"android.permission.BIND_TV_INPUT":{"description":"Must be required by a TvInputService to ensure that only the system can bind to it.","when_added":"API level 14"},"android.permission.BIND_VOICE_INTERACTION":{"description":"Must be required by a VoiceInteractionService, to ensure that only the system can bind to it.","when_added":"API level 21"},"android.permission.BIND_VPN_SERVICE":{"description":"Must be required by a VpnService, to ensure that only the system can bind to it.","when_added":"API level 21"},"android.permission.BIND_WALLPAPER":{"description":"Must be required by a WallpaperService, to ensure that only the system can bind to it.","when_added":"API level 14"},"android.permission.BLUETOOTH":{"description":"Allows applications to connect to paired bluetooth devices","when_added":"API level 8"},"android.permission.BLUETOOTH_ADMIN":{"description":"Allows applications to discover and pair bluetooth devices","when_added":"API level 1"},"android.permission.BLUETOOTH_PRIVILEGED":{"description":"Allows applications to pair bluetooth devices without user interaction, and to allow or disallow phonebook access or message access. This is not available to third party applications.","when_added":"API level 1"},"android.permission.BODY_SENSORS":{"description":"Allows an application to access data from sensors that the user uses to measure what is happening inside his/her body, such as heart rate.","when_added":"API level 19"},"android.permission.BRICK":{"description":"Required to be able to disable the device (very dangerous!). Not for use by third-party applications..","when_added":"API level 20"},"android.permission.BROADCAST_PACKAGE_REMOVED":{"description":"Allows an application to broadcast a notification that an application package has been removed. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.BROADCAST_SMS":{"description":"Allows an application to broadcast an SMS receipt notification. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.BROADCAST_STICKY":{"description":"Allows an application to broadcast sticky intents. These are broadcasts whose data is held by the system after being finished, so that clients can quickly retrieve that data without having to wait for the next broadcast.","when_added":"API level 2"},"android.permission.BROADCAST_WAP_PUSH":{"description":"Allows an application to broadcast a WAP PUSH receipt notification. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.CALL_PHONE":{"description":"Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call being placed.","when_added":"API level 2"},"android.permission.CALL_PRIVILEGED":{"description":"Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.CAMERA":{"description":"Required to be able to access the camera device. This will automatically enforce the  manifest element for all camera features. If you do not require all camera features or can properly operate if a camera is not available, then you must modify your manifest as appropriate in order to install on devices that don't support all camera features.","when_added":"API level 1"},"android.permission.CAPTURE_AUDIO_OUTPUT":{"description":"Allows an application to capture audio output. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.CAPTURE_SECURE_VIDEO_OUTPUT":{"description":"Allows an application to capture secure video output. Not for use by third-party applications.","when_added":"API level 19"},"android.permission.CAPTURE_VIDEO_OUTPUT":{"description":"Allows an application to capture video output. Not for use by third-party applications.","when_added":"API level 19"},"android.permission.CHANGE_COMPONENT_ENABLED_STATE":{"description":"Allows an application to change whether an application component (other than its own) is enabled or not. Not for use by third-party applications.","when_added":"API level 19"},"android.permission.CHANGE_CONFIGURATION":{"description":"Allows an application to modify the current configuration, such as locale.","when_added":"API level 1"},"android.permission.CHANGE_NETWORK_STATE":{"description":"Allows applications to change network connectivity state","when_added":"API level 1"},"android.permission.CHANGE_WIFI_MULTICAST_STATE":{"description":"Allows applications to enter Wi-Fi Multicast mode","when_added":"API level 1"},"android.permission.CHANGE_WIFI_STATE":{"description":"Allows applications to change Wi-Fi connectivity state","when_added":"API level 4"},"android.permission.CLEAR_APP_CACHE":{"description":"Allows an application to clear the caches of all installed applications on the device.","when_added":"API level 1"},"android.permission.CLEAR_APP_USER_DATA":{"description":"Allows an application to clear user data. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.CONTROL_LOCATION_UPDATES":{"description":"Allows enabling/disabling location update notifications from the radio. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.DELETE_CACHE_FILES":{"description":"Allows an application to delete cache files. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.DELETE_PACKAGES":{"description":"Allows an application to delete packages. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.DEVICE_POWER":{"description":"Allows low-level access to power management. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.DIAGNOSTIC":{"description":"Allows applications to RW to diagnostic resources. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.DISABLE_KEYGUARD":{"description":"Allows applications to disable the keyguard","when_added":"API level 1"},"android.permission.DUMP":{"description":"Allows an application to retrieve state dump information from system services. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.EXPAND_STATUS_BAR":{"description":"Allows an application to expand or collapse the status bar.","when_added":"API level 1"},"android.permission.FACTORY_TEST":{"description":"Run as a manufacturer test application, running as the root user. Only available when the device is running in manufacturer test mode. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.FLASHLIGHT":{"description":"Allows access to the flashlight","when_added":"API level 1"},"android.permission.FORCE_BACK":{"description":"Allows an application to force a BACK operation on whatever is the top activity. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.GET_ACCOUNTS":{"description":"Allows access to the list of accounts in the Accounts Service","when_added":"API level 1"},"android.permission.GET_PACKAGE_SIZE":{"description":"Allows an application to find out the space used by any package.","when_added":"API level 1"},"android.permission.GET_TASKS":{"description":"","when_added":"API level 1"},"android.permission.GET_TOP_ACTIVITY_INFO":{"description":"Allows an application to retrieve private information about the current top activity, such as any assist context it can provide. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.GLOBAL_SEARCH":{"description":"This permission can be used on content providers to allow the global search system to access their data. Typically it used when the provider has some permissions protecting it (which global search would not be expected to hold), and added as a read-only permission to the path in the provider where global search queries are performed. This permission can not be held by regular applications; it is used by applications to protect themselves from everyone else besides global search.","when_added":"API level 18"},"android.permission.HARDWARE_TEST":{"description":"Allows access to hardware peripherals. Intended only for hardware testing. Not for use by third-party applications.","when_added":"API level 4"},"android.permission.INJECT_EVENTS":{"description":"Allows an application to inject user events (keys, touch, trackball) into the event stream and deliver them to ANY window. Without this permission, you can only deliver events to windows in your own process. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.INSTALL_LOCATION_PROVIDER":{"description":"Allows an application to install a location provider into the Location Manager. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.INSTALL_PACKAGES":{"description":"Allows an application to install packages. Not for use by third-party applications.","when_added":"API level 4"},"com.android.launcher.permission.INSTALL_SHORTCUT":{"description":"Allows an application to install a shortcut in Launcher","when_added":"API level 1"},"android.permission.INTERNAL_SYSTEM_WINDOW":{"description":"Allows an application to open windows that are for use by parts of the system user interface. Not for use by third-party applications.","when_added":"API level 19"},"android.permission.INTERNET":{"description":"Allows applications to open network sockets.","when_added":"API level 1"},"android.permission.KILL_BACKGROUND_PROCESSES":{"description":"Allows an application to call killBackgroundProcesses(String).","when_added":"API level 1"},"android.permission.LOCATION_HARDWARE":{"description":"Allows an application to use location features in hardware, such as the geofencing api. Not for use by third-party applications.","when_added":"API level 8"},"android.permission.MANAGE_ACCOUNTS":{"description":"Allows an application to manage the list of accounts in the AccountManager","when_added":"API level 18"},"android.permission.MANAGE_APP_TOKENS":{"description":"Allows an application to manage (create, destroy, Z-order) application tokens in the window manager. Not for use by third-party applications.","when_added":"API level 5"},"android.permission.MANAGE_DOCUMENTS":{"description":"Allows an application to manage access to documents, usually as part of a document picker.","when_added":"API level 1"},"android.permission.MASTER_CLEAR":{"description":"Not for use by third-party applications.","when_added":"API level 19"},"android.permission.MEDIA_CONTENT_CONTROL":{"description":"Allows an application to know what content is playing and control its playback. Not for use by third-party applications due to privacy of media consumption","when_added":"API level 1"},"android.permission.MODIFY_AUDIO_SETTINGS":{"description":"Allows an application to modify global audio settings","when_added":"API level 19"},"android.permission.MODIFY_PHONE_STATE":{"description":"Allows modification of the telephony state - power on, mmi, etc. Does not include placing calls. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.MOUNT_FORMAT_FILESYSTEMS":{"description":"Allows formatting file systems for removable storage. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.MOUNT_UNMOUNT_FILESYSTEMS":{"description":"Allows mounting and unmounting file systems for removable storage. Not for use by third-party applications.","when_added":"API level 3"},"android.permission.NFC":{"description":"Allows applications to perform I/O operations over NFC","when_added":"API level 1"},"android.permission.PERSISTENT_ACTIVITY":{"description":"","when_added":"API level 9"},"android.permission.PROCESS_OUTGOING_CALLS":{"description":"Allows an application to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether.","when_added":"API level 1"},"android.permission.READ_CALENDAR":{"description":"Allows an application to read the user's calendar data.","when_added":"API level 1"},"android.permission.READ_CALL_LOG":{"description":"Allows an application to read the user's call log. Note: If your app uses the READ_CONTACTS permission and both your minSdkVersion and targetSdkVersion values are set to 15 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 16 or higher.","when_added":"API level 1"},"android.permission.READ_CONTACTS":{"description":"Allows an application to read the user's contacts data.","when_added":"API level 16"},"android.permission.READ_EXTERNAL_STORAGE":{"description":"Allows an application to read from external storage. Any app that declares the WRITE_EXTERNAL_STORAGE permission is implicitly granted this permission. This permission is enforced starting in API level 19. Before API level 19, this permission is not enforced and all apps still have access to read from external storage. You can test your app with the permission enforced by enabling Protect USB storage under Developer options in the Settings app on a device running Android 4.1 or higher. Also starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by getExternalFilesDir(String) and getExternalCacheDir(). Note: If both your minSdkVersion and targetSdkVersion values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 4 or higher.","when_added":"API level 1"},"android.permission.READ_FRAME_BUFFER":{"description":"Allows an application to take screen shots and more generally get access to the frame buffer data. Not for use by third-party applications.","when_added":"API level 16"},"com.android.browser.permission.READ_HISTORY_BOOKMARKS":{"description":"Allows an application to read (but not write) the user's browsing history and bookmarks.","when_added":"API level 1"},"android.permission.READ_INPUT_STATE":{"description":"Allows an application to retrieve the current state of keys and switches. Not for use by third-party applications.","when_added":"API level 4"},"android.permission.READ_LOGS":{"description":"Allows an application to read the low-level system log files. Not for use by third-party applications, because Log entries can contain the user's private information.","when_added":"API level 1"},"android.permission.READ_PHONE_STATE":{"description":"Allows read only access to phone state. Note: If both your minSdkVersion and targetSdkVersion values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 4 or higher.","when_added":"API level 1"},"android.permission.READ_PROFILE":{"description":"Allows an application to read the user's personal profile data.","when_added":"API level 1"},"android.permission.READ_SMS":{"description":"Allows an application to read SMS messages.","when_added":"API level 14"},"android.permission.READ_SOCIAL_STREAM":{"description":"Allows an application to read from the user's social stream.","when_added":"API level 1"},"android.permission.READ_SYNC_SETTINGS":{"description":"Allows applications to read the sync settings","when_added":"API level 15"},"android.permission.READ_SYNC_STATS":{"description":"Allows applications to read the sync stats","when_added":"API level 1"},"android.permission.READ_USER_DICTIONARY":{"description":"Allows an application to read the user dictionary. This should really only be required by an IME, or a dictionary editor like the Settings app.","when_added":"API level 1"},"com.android.voicemail.permission.READ_VOICEMAIL":{"description":"Allows an application to read voicemails in the system.","when_added":"API level 16"},"android.permission.REBOOT":{"description":"Required to be able to reboot the device. Not for use by third-party applications.","when_added":"API level 21"},"android.permission.RECEIVE_BOOT_COMPLETED":{"description":"Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting. If you don't request this permission, you will not receive the broadcast at that time. Though holding this permission does not have any security implications, it can have a negative impact on the user experience by increasing the amount of time it takes the system to start and allowing applications to have themselves running without the user being aware of them. As such, you must explicitly declare your use of this facility to make that visible to the user.","when_added":"API level 1"},"android.permission.RECEIVE_MMS":{"description":"Allows an application to monitor incoming MMS messages, to record or perform processing on them.","when_added":"API level 1"},"android.permission.RECEIVE_SMS":{"description":"Allows an application to monitor incoming SMS messages, to record or perform processing on them.","when_added":"API level 1"},"android.permission.RECEIVE_WAP_PUSH":{"description":"Allows an application to monitor incoming WAP push messages.","when_added":"API level 1"},"android.permission.RECORD_AUDIO":{"description":"Allows an application to record audio","when_added":"API level 1"},"android.permission.REORDER_TASKS":{"description":"Allows an application to change the Z-order of tasks","when_added":"API level 1"},"android.permission.RESTART_PACKAGES":{"description":"","when_added":"API level 1"},"android.permission.SEND_RESPOND_VIA_MESSAGE":{"description":"Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.SEND_SMS":{"description":"Allows an application to send SMS messages.","when_added":"API level 18"},"android.permission.SET_ACTIVITY_WATCHER":{"description":"Allows an application to watch and control how activities are started globally in the system. Only for is in debugging (usually the monkey command). Not for use by third-party applications.","when_added":"API level 1"},"com.android.alarm.permission.SET_ALARM":{"description":"Allows an application to broadcast an Intent to set an alarm for the user.","when_added":"API level 1"},"android.permission.SET_ALWAYS_FINISH":{"description":"Allows an application to control whether activities are immediately finished when put in the background. Not for use by third-party applications.","when_added":"API level 9"},"android.permission.SET_ANIMATION_SCALE":{"description":"Modify the global animation scaling factor. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.SET_DEBUG_APP":{"description":"Configure an application for debugging. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.SET_ORIENTATION":{"description":"Allows low-level access to setting the orientation (actually rotation) of the screen. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.SET_POINTER_SPEED":{"description":"Allows low-level access to setting the pointer speed. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.SET_PREFERRED_APPLICATIONS":{"description":"","when_added":"API level 13"},"android.permission.SET_PROCESS_LIMIT":{"description":"Allows an application to set the maximum number of (not needed) application processes that can be running. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.SET_TIME":{"description":"Allows applications to set the system time. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.SET_TIME_ZONE":{"description":"Allows applications to set the system time zone","when_added":"API level 8"},"android.permission.SET_WALLPAPER":{"description":"Allows applications to set the wallpaper","when_added":"API level 1"},"android.permission.SET_WALLPAPER_HINTS":{"description":"Allows applications to set the wallpaper hints","when_added":"API level 1"},"android.permission.SIGNAL_PERSISTENT_PROCESSES":{"description":"Allow an application to request that a signal be sent to all persistent processes. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.STATUS_BAR":{"description":"Allows an application to open, close, or disable the status bar and its icons. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.SUBSCRIBED_FEEDS_READ":{"description":"Allows an application to allow access the subscribed feeds ContentProvider.","when_added":"API level 1"},"android.permission.SUBSCRIBED_FEEDS_WRITE":{"description":"","when_added":"API level 1"},"android.permission.SYSTEM_ALERT_WINDOW":{"description":"Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. Very few applications should use this permission; these windows are intended for system-level interaction with the user.","when_added":"API level 1"},"android.permission.TRANSMIT_IR":{"description":"Allows using the device's IR transmitter, if available","when_added":"API level 1"},"com.android.launcher.permission.UNINSTALL_SHORTCUT":{"description":"Allows an application to uninstall a shortcut in Launcher","when_added":"API level 19"},"android.permission.UPDATE_DEVICE_STATS":{"description":"Allows an application to update device statistics. Not for use by third-party applications.","when_added":"API level 19"},"android.permission.USE_CREDENTIALS":{"description":"Allows an application to request authtokens from the AccountManager","when_added":"API level 3"},"android.permission.USE_SIP":{"description":"Allows an application to use SIP service","when_added":"API level 5"},"android.permission.VIBRATE":{"description":"Allows access to the vibrator","when_added":"API level 9"},"android.permission.WAKE_LOCK":{"description":"Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming","when_added":"API level 1"},"android.permission.WRITE_APN_SETTINGS":{"description":"Allows applications to write the apn settings. Not for use by third-party applications.","when_added":"API level 1"},"android.permission.WRITE_CALENDAR":{"description":"Allows an application to write (but not read) the user's calendar data.","when_added":"API level 1"},"android.permission.WRITE_CALL_LOG":{"description":"Allows an application to write (but not read) the user's contacts data. Note: If your app uses the WRITE_CONTACTS permission and both your minSdkVersion and targetSdkVersion values are set to 15 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 16 or higher.","when_added":"API level 1"},"android.permission.WRITE_CONTACTS":{"description":"Allows an application to write (but not read) the user's contacts data.","when_added":"API level 16"},"android.permission.WRITE_EXTERNAL_STORAGE":{"description":"Allows an application to write to external storage. Note: If both your minSdkVersion and targetSdkVersion values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 4 or higher. Starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by getExternalFilesDir(String) and getExternalCacheDir().","when_added":"API level 1"},"android.permission.WRITE_GSERVICES":{"description":"Allows an application to modify the Google service map. Not for use by third-party applications.","when_added":"API level 4"},"com.android.browser.permission.WRITE_HISTORY_BOOKMARKS":{"description":"Allows an application to write (but not read) the user's browsing history and bookmarks.","when_added":"API level 1"},"android.permission.WRITE_PROFILE":{"description":"Allows an application to write (but not read) the user's personal profile data.","when_added":"API level 4"},"android.permission.WRITE_SECURE_SETTINGS":{"description":"Allows an application to read or write the secure system settings. Not for use by third-party applications.","when_added":"API level 14"},"android.permission.WRITE_SETTINGS":{"description":"Allows an application to read or write the system settings.","when_added":"API level 3"},"android.permission.WRITE_SMS":{"description":"Allows an application to write SMS messages.","when_added":"API level 1"},"android.permission.WRITE_SOCIAL_STREAM":{"description":"Allows an application to write (but not read) the user's social stream data.","when_added":"API level 1"},"android.permission.WRITE_SYNC_SETTINGS":{"description":"Allows applications to write the sync settings","when_added":"API level 15"},"android.permission.WRITE_USER_DICTIONARY":{"description":"Allows an application to write to the user dictionary.","when_added":"API level 1"},"com.android.voicemail.permission.WRITE_VOICEMAIL":{"description":"Allows an application to modify and remove existing voicemails in the system","when_added":"API level 16"}}

grab it and paste it trough jsbeautifier.org and you’ll get something that is also.. readable..

{
  "android.permission.ACCESS_CHECKIN_PROPERTIES": {
    "description": "Allows read/write access to the properties table in the checkin database, to change values that get uploaded. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.ACCESS_COARSE_LOCATION": {
    "description": "Allows an app to access approximate location derived from network location sources such as cell towers and Wi-Fi.",
    "when_added": "API level 1"
  },
  "android.permission.ACCESS_FINE_LOCATION": {
    "description": "Allows an app to access precise location from location sources such as GPS, cell towers, and Wi-Fi.",
    "when_added": "API level 1"
  },
  "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS": {
    "description": "Allows an application to access extra location provider commands",
    "when_added": "API level 1"
  },
  "android.permission.ACCESS_MOCK_LOCATION": {
    "description": "Allows an application to create mock location providers for testing",
    "when_added": "API level 1"
  },
  "android.permission.ACCESS_NETWORK_STATE": {
    "description": "Allows applications to access information about networks",
    "when_added": "API level 1"
  },
  "android.permission.ACCESS_SURFACE_FLINGER": {
    "description": "Allows an application to use SurfaceFlinger's low level features. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.ACCESS_WIFI_STATE": {
    "description": "Allows applications to access information about Wi-Fi networks",
    "when_added": "API level 1"
  },
  "android.permission.ACCOUNT_MANAGER": {
    "description": "Allows applications to call into AccountAuthenticators. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "com.android.voicemail.permission.ADD_VOICEMAIL": {
    "description": "Allows an application to add voicemails into the system.",
    "when_added": "API level 5"
  },
  "android.permission.AUTHENTICATE_ACCOUNTS": {
    "description": "Allows an application to act as an AccountAuthenticator for the AccountManager",
    "when_added": "API level 14"
  },
  "android.permission.BATTERY_STATS": {
    "description": "Allows an application to collect battery statistics",
    "when_added": "API level 5"
  },
  "android.permission.BIND_ACCESSIBILITY_SERVICE": {
    "description": "Must be required by an AccessibilityService, to ensure that only the system can bind to it.",
    "when_added": "API level 1"
  },
  "android.permission.BIND_APPWIDGET": {
    "description": "Allows an application to tell the AppWidget service which application can access AppWidget's data. The normal user flow is that a user picks an AppWidget to go into a particular host, thereby giving that host application access to the private data from the AppWidget app. An application that has this permission should honor that contract. Not for use by third-party applications.",
    "when_added": "API level 16"
  },
  "android.permission.BIND_DEVICE_ADMIN": {
    "description": "Must be required by device administration receiver, to ensure that only the system can interact with it.",
    "when_added": "API level 3"
  },
  "android.permission.BIND_DREAM_SERVICE": {
    "description": "Must be required by an DreamService, to ensure that only the system can bind to it.",
    "when_added": "API level 8"
  },
  "android.permission.BIND_INPUT_METHOD": {
    "description": "Must be required by an InputMethodService, to ensure that only the system can bind to it.",
    "when_added": "API level 21"
  },
  "android.permission.BIND_NFC_SERVICE": {
    "description": "Must be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it.",
    "when_added": "API level 3"
  },
  "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE": {
    "description": "Must be required by an NotificationListenerService, to ensure that only the system can bind to it.",
    "when_added": "API level 19"
  },
  "android.permission.BIND_PRINT_SERVICE": {
    "description": "Must be required by a PrintService, to ensure that only the system can bind to it.",
    "when_added": "API level 18"
  },
  "android.permission.BIND_REMOTEVIEWS": {
    "description": "Must be required by a RemoteViewsService, to ensure that only the system can bind to it.",
    "when_added": "API level 19"
  },
  "android.permission.BIND_TEXT_SERVICE": {
    "description": "Must be required by a TextService (e.g. SpellCheckerService) to ensure that only the system can bind to it.",
    "when_added": "API level 11"
  },
  "android.permission.BIND_TV_INPUT": {
    "description": "Must be required by a TvInputService to ensure that only the system can bind to it.",
    "when_added": "API level 14"
  },
  "android.permission.BIND_VOICE_INTERACTION": {
    "description": "Must be required by a VoiceInteractionService, to ensure that only the system can bind to it.",
    "when_added": "API level 21"
  },
  "android.permission.BIND_VPN_SERVICE": {
    "description": "Must be required by a VpnService, to ensure that only the system can bind to it.",
    "when_added": "API level 21"
  },
  "android.permission.BIND_WALLPAPER": {
    "description": "Must be required by a WallpaperService, to ensure that only the system can bind to it.",
    "when_added": "API level 14"
  },
  "android.permission.BLUETOOTH": {
    "description": "Allows applications to connect to paired bluetooth devices",
    "when_added": "API level 8"
  },
  "android.permission.BLUETOOTH_ADMIN": {
    "description": "Allows applications to discover and pair bluetooth devices",
    "when_added": "API level 1"
  },
  "android.permission.BLUETOOTH_PRIVILEGED": {
    "description": "Allows applications to pair bluetooth devices without user interaction, and to allow or disallow phonebook access or message access. This is not available to third party applications.",
    "when_added": "API level 1"
  },
  "android.permission.BODY_SENSORS": {
    "description": "Allows an application to access data from sensors that the user uses to measure what is happening inside his/her body, such as heart rate.",
    "when_added": "API level 19"
  },
  "android.permission.BRICK": {
    "description": "Required to be able to disable the device (very dangerous!). Not for use by third-party applications..",
    "when_added": "API level 20"
  },
  "android.permission.BROADCAST_PACKAGE_REMOVED": {
    "description": "Allows an application to broadcast a notification that an application package has been removed. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.BROADCAST_SMS": {
    "description": "Allows an application to broadcast an SMS receipt notification. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.BROADCAST_STICKY": {
    "description": "Allows an application to broadcast sticky intents. These are broadcasts whose data is held by the system after being finished, so that clients can quickly retrieve that data without having to wait for the next broadcast.",
    "when_added": "API level 2"
  },
  "android.permission.BROADCAST_WAP_PUSH": {
    "description": "Allows an application to broadcast a WAP PUSH receipt notification. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.CALL_PHONE": {
    "description": "Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call being placed.",
    "when_added": "API level 2"
  },
  "android.permission.CALL_PRIVILEGED": {
    "description": "Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.CAMERA": {
    "description": "Required to be able to access the camera device. This will automatically enforce the <uses-feature> manifest element for all camera features. If you do not require all camera features or can properly operate if a camera is not available, then you must modify your manifest as appropriate in order to install on devices that don't support all camera features.",
    "when_added": "API level 1"
  },
  "android.permission.CAPTURE_AUDIO_OUTPUT": {
    "description": "Allows an application to capture audio output. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.CAPTURE_SECURE_VIDEO_OUTPUT": {
    "description": "Allows an application to capture secure video output. Not for use by third-party applications.",
    "when_added": "API level 19"
  },
  "android.permission.CAPTURE_VIDEO_OUTPUT": {
    "description": "Allows an application to capture video output. Not for use by third-party applications.",
    "when_added": "API level 19"
  },
  "android.permission.CHANGE_COMPONENT_ENABLED_STATE": {
    "description": "Allows an application to change whether an application component (other than its own) is enabled or not. Not for use by third-party applications.",
    "when_added": "API level 19"
  },
  "android.permission.CHANGE_CONFIGURATION": {
    "description": "Allows an application to modify the current configuration, such as locale.",
    "when_added": "API level 1"
  },
  "android.permission.CHANGE_NETWORK_STATE": {
    "description": "Allows applications to change network connectivity state",
    "when_added": "API level 1"
  },
  "android.permission.CHANGE_WIFI_MULTICAST_STATE": {
    "description": "Allows applications to enter Wi-Fi Multicast mode",
    "when_added": "API level 1"
  },
  "android.permission.CHANGE_WIFI_STATE": {
    "description": "Allows applications to change Wi-Fi connectivity state",
    "when_added": "API level 4"
  },
  "android.permission.CLEAR_APP_CACHE": {
    "description": "Allows an application to clear the caches of all installed applications on the device.",
    "when_added": "API level 1"
  },
  "android.permission.CLEAR_APP_USER_DATA": {
    "description": "Allows an application to clear user data. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.CONTROL_LOCATION_UPDATES": {
    "description": "Allows enabling/disabling location update notifications from the radio. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.DELETE_CACHE_FILES": {
    "description": "Allows an application to delete cache files. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.DELETE_PACKAGES": {
    "description": "Allows an application to delete packages. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.DEVICE_POWER": {
    "description": "Allows low-level access to power management. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.DIAGNOSTIC": {
    "description": "Allows applications to RW to diagnostic resources. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.DISABLE_KEYGUARD": {
    "description": "Allows applications to disable the keyguard",
    "when_added": "API level 1"
  },
  "android.permission.DUMP": {
    "description": "Allows an application to retrieve state dump information from system services. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.EXPAND_STATUS_BAR": {
    "description": "Allows an application to expand or collapse the status bar.",
    "when_added": "API level 1"
  },
  "android.permission.FACTORY_TEST": {
    "description": "Run as a manufacturer test application, running as the root user. Only available when the device is running in manufacturer test mode. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.FLASHLIGHT": {
    "description": "Allows access to the flashlight",
    "when_added": "API level 1"
  },
  "android.permission.FORCE_BACK": {
    "description": "Allows an application to force a BACK operation on whatever is the top activity. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.GET_ACCOUNTS": {
    "description": "Allows access to the list of accounts in the Accounts Service",
    "when_added": "API level 1"
  },
  "android.permission.GET_PACKAGE_SIZE": {
    "description": "Allows an application to find out the space used by any package.",
    "when_added": "API level 1"
  },
  "android.permission.GET_TASKS": {
    "description": "",
    "when_added": "API level 1"
  },
  "android.permission.GET_TOP_ACTIVITY_INFO": {
    "description": "Allows an application to retrieve private information about the current top activity, such as any assist context it can provide. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.GLOBAL_SEARCH": {
    "description": "This permission can be used on content providers to allow the global search system to access their data. Typically it used when the provider has some permissions protecting it (which global search would not be expected to hold), and added as a read-only permission to the path in the provider where global search queries are performed. This permission can not be held by regular applications; it is used by applications to protect themselves from everyone else besides global search.",
    "when_added": "API level 18"
  },
  "android.permission.HARDWARE_TEST": {
    "description": "Allows access to hardware peripherals. Intended only for hardware testing. Not for use by third-party applications.",
    "when_added": "API level 4"
  },
  "android.permission.INJECT_EVENTS": {
    "description": "Allows an application to inject user events (keys, touch, trackball) into the event stream and deliver them to ANY window. Without this permission, you can only deliver events to windows in your own process. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.INSTALL_LOCATION_PROVIDER": {
    "description": "Allows an application to install a location provider into the Location Manager. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.INSTALL_PACKAGES": {
    "description": "Allows an application to install packages. Not for use by third-party applications.",
    "when_added": "API level 4"
  },
  "com.android.launcher.permission.INSTALL_SHORTCUT": {
    "description": "Allows an application to install a shortcut in Launcher",
    "when_added": "API level 1"
  },
  "android.permission.INTERNAL_SYSTEM_WINDOW": {
    "description": "Allows an application to open windows that are for use by parts of the system user interface. Not for use by third-party applications.",
    "when_added": "API level 19"
  },
  "android.permission.INTERNET": {
    "description": "Allows applications to open network sockets.",
    "when_added": "API level 1"
  },
  "android.permission.KILL_BACKGROUND_PROCESSES": {
    "description": "Allows an application to call killBackgroundProcesses(String).",
    "when_added": "API level 1"
  },
  "android.permission.LOCATION_HARDWARE": {
    "description": "Allows an application to use location features in hardware, such as the geofencing api. Not for use by third-party applications.",
    "when_added": "API level 8"
  },
  "android.permission.MANAGE_ACCOUNTS": {
    "description": "Allows an application to manage the list of accounts in the AccountManager",
    "when_added": "API level 18"
  },
  "android.permission.MANAGE_APP_TOKENS": {
    "description": "Allows an application to manage (create, destroy, Z-order) application tokens in the window manager. Not for use by third-party applications.",
    "when_added": "API level 5"
  },
  "android.permission.MANAGE_DOCUMENTS": {
    "description": "Allows an application to manage access to documents, usually as part of a document picker.",
    "when_added": "API level 1"
  },
  "android.permission.MASTER_CLEAR": {
    "description": "Not for use by third-party applications.",
    "when_added": "API level 19"
  },
  "android.permission.MEDIA_CONTENT_CONTROL": {
    "description": "Allows an application to know what content is playing and control its playback. Not for use by third-party applications due to privacy of media consumption",
    "when_added": "API level 1"
  },
  "android.permission.MODIFY_AUDIO_SETTINGS": {
    "description": "Allows an application to modify global audio settings",
    "when_added": "API level 19"
  },
  "android.permission.MODIFY_PHONE_STATE": {
    "description": "Allows modification of the telephony state - power on, mmi, etc. Does not include placing calls. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.MOUNT_FORMAT_FILESYSTEMS": {
    "description": "Allows formatting file systems for removable storage. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.MOUNT_UNMOUNT_FILESYSTEMS": {
    "description": "Allows mounting and unmounting file systems for removable storage. Not for use by third-party applications.",
    "when_added": "API level 3"
  },
  "android.permission.NFC": {
    "description": "Allows applications to perform I/O operations over NFC",
    "when_added": "API level 1"
  },
  "android.permission.PERSISTENT_ACTIVITY": {
    "description": "",
    "when_added": "API level 9"
  },
  "android.permission.PROCESS_OUTGOING_CALLS": {
    "description": "Allows an application to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether.",
    "when_added": "API level 1"
  },
  "android.permission.READ_CALENDAR": {
    "description": "Allows an application to read the user's calendar data.",
    "when_added": "API level 1"
  },
  "android.permission.READ_CALL_LOG": {
    "description": "Allows an application to read the user's call log. Note: If your app uses the READ_CONTACTS permission and both your minSdkVersion and targetSdkVersion values are set to 15 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 16 or higher.",
    "when_added": "API level 1"
  },
  "android.permission.READ_CONTACTS": {
    "description": "Allows an application to read the user's contacts data.",
    "when_added": "API level 16"
  },
  "android.permission.READ_EXTERNAL_STORAGE": {
    "description": "Allows an application to read from external storage. Any app that declares the WRITE_EXTERNAL_STORAGE permission is implicitly granted this permission. This permission is enforced starting in API level 19. Before API level 19, this permission is not enforced and all apps still have access to read from external storage. You can test your app with the permission enforced by enabling Protect USB storage under Developer options in the Settings app on a device running Android 4.1 or higher. Also starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by getExternalFilesDir(String) and getExternalCacheDir(). Note: If both your minSdkVersion and targetSdkVersion values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 4 or higher.",
    "when_added": "API level 1"
  },
  "android.permission.READ_FRAME_BUFFER": {
    "description": "Allows an application to take screen shots and more generally get access to the frame buffer data. Not for use by third-party applications.",
    "when_added": "API level 16"
  },
  "com.android.browser.permission.READ_HISTORY_BOOKMARKS": {
    "description": "Allows an application to read (but not write) the user's browsing history and bookmarks.",
    "when_added": "API level 1"
  },
  "android.permission.READ_INPUT_STATE": {
    "description": "Allows an application to retrieve the current state of keys and switches. Not for use by third-party applications.",
    "when_added": "API level 4"
  },
  "android.permission.READ_LOGS": {
    "description": "Allows an application to read the low-level system log files. Not for use by third-party applications, because Log entries can contain the user's private information.",
    "when_added": "API level 1"
  },
  "android.permission.READ_PHONE_STATE": {
    "description": "Allows read only access to phone state. Note: If both your minSdkVersion and targetSdkVersion values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 4 or higher.",
    "when_added": "API level 1"
  },
  "android.permission.READ_PROFILE": {
    "description": "Allows an application to read the user's personal profile data.",
    "when_added": "API level 1"
  },
  "android.permission.READ_SMS": {
    "description": "Allows an application to read SMS messages.",
    "when_added": "API level 14"
  },
  "android.permission.READ_SOCIAL_STREAM": {
    "description": "Allows an application to read from the user's social stream.",
    "when_added": "API level 1"
  },
  "android.permission.READ_SYNC_SETTINGS": {
    "description": "Allows applications to read the sync settings",
    "when_added": "API level 15"
  },
  "android.permission.READ_SYNC_STATS": {
    "description": "Allows applications to read the sync stats",
    "when_added": "API level 1"
  },
  "android.permission.READ_USER_DICTIONARY": {
    "description": "Allows an application to read the user dictionary. This should really only be required by an IME, or a dictionary editor like the Settings app.",
    "when_added": "API level 1"
  },
  "com.android.voicemail.permission.READ_VOICEMAIL": {
    "description": "Allows an application to read voicemails in the system.",
    "when_added": "API level 16"
  },
  "android.permission.REBOOT": {
    "description": "Required to be able to reboot the device. Not for use by third-party applications.",
    "when_added": "API level 21"
  },
  "android.permission.RECEIVE_BOOT_COMPLETED": {
    "description": "Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting. If you don't request this permission, you will not receive the broadcast at that time. Though holding this permission does not have any security implications, it can have a negative impact on the user experience by increasing the amount of time it takes the system to start and allowing applications to have themselves running without the user being aware of them. As such, you must explicitly declare your use of this facility to make that visible to the user.",
    "when_added": "API level 1"
  },
  "android.permission.RECEIVE_MMS": {
    "description": "Allows an application to monitor incoming MMS messages, to record or perform processing on them.",
    "when_added": "API level 1"
  },
  "android.permission.RECEIVE_SMS": {
    "description": "Allows an application to monitor incoming SMS messages, to record or perform processing on them.",
    "when_added": "API level 1"
  },
  "android.permission.RECEIVE_WAP_PUSH": {
    "description": "Allows an application to monitor incoming WAP push messages.",
    "when_added": "API level 1"
  },
  "android.permission.RECORD_AUDIO": {
    "description": "Allows an application to record audio",
    "when_added": "API level 1"
  },
  "android.permission.REORDER_TASKS": {
    "description": "Allows an application to change the Z-order of tasks",
    "when_added": "API level 1"
  },
  "android.permission.RESTART_PACKAGES": {
    "description": "",
    "when_added": "API level 1"
  },
  "android.permission.SEND_RESPOND_VIA_MESSAGE": {
    "description": "Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.SEND_SMS": {
    "description": "Allows an application to send SMS messages.",
    "when_added": "API level 18"
  },
  "android.permission.SET_ACTIVITY_WATCHER": {
    "description": "Allows an application to watch and control how activities are started globally in the system. Only for is in debugging (usually the monkey command). Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "com.android.alarm.permission.SET_ALARM": {
    "description": "Allows an application to broadcast an Intent to set an alarm for the user.",
    "when_added": "API level 1"
  },
  "android.permission.SET_ALWAYS_FINISH": {
    "description": "Allows an application to control whether activities are immediately finished when put in the background. Not for use by third-party applications.",
    "when_added": "API level 9"
  },
  "android.permission.SET_ANIMATION_SCALE": {
    "description": "Modify the global animation scaling factor. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.SET_DEBUG_APP": {
    "description": "Configure an application for debugging. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.SET_ORIENTATION": {
    "description": "Allows low-level access to setting the orientation (actually rotation) of the screen. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.SET_POINTER_SPEED": {
    "description": "Allows low-level access to setting the pointer speed. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.SET_PREFERRED_APPLICATIONS": {
    "description": "",
    "when_added": "API level 13"
  },
  "android.permission.SET_PROCESS_LIMIT": {
    "description": "Allows an application to set the maximum number of (not needed) application processes that can be running. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.SET_TIME": {
    "description": "Allows applications to set the system time. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.SET_TIME_ZONE": {
    "description": "Allows applications to set the system time zone",
    "when_added": "API level 8"
  },
  "android.permission.SET_WALLPAPER": {
    "description": "Allows applications to set the wallpaper",
    "when_added": "API level 1"
  },
  "android.permission.SET_WALLPAPER_HINTS": {
    "description": "Allows applications to set the wallpaper hints",
    "when_added": "API level 1"
  },
  "android.permission.SIGNAL_PERSISTENT_PROCESSES": {
    "description": "Allow an application to request that a signal be sent to all persistent processes. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.STATUS_BAR": {
    "description": "Allows an application to open, close, or disable the status bar and its icons. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.SUBSCRIBED_FEEDS_READ": {
    "description": "Allows an application to allow access the subscribed feeds ContentProvider.",
    "when_added": "API level 1"
  },
  "android.permission.SUBSCRIBED_FEEDS_WRITE": {
    "description": "",
    "when_added": "API level 1"
  },
  "android.permission.SYSTEM_ALERT_WINDOW": {
    "description": "Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. Very few applications should use this permission; these windows are intended for system-level interaction with the user.",
    "when_added": "API level 1"
  },
  "android.permission.TRANSMIT_IR": {
    "description": "Allows using the device's IR transmitter, if available",
    "when_added": "API level 1"
  },
  "com.android.launcher.permission.UNINSTALL_SHORTCUT": {
    "description": "Allows an application to uninstall a shortcut in Launcher",
    "when_added": "API level 19"
  },
  "android.permission.UPDATE_DEVICE_STATS": {
    "description": "Allows an application to update device statistics. Not for use by third-party applications.",
    "when_added": "API level 19"
  },
  "android.permission.USE_CREDENTIALS": {
    "description": "Allows an application to request authtokens from the AccountManager",
    "when_added": "API level 3"
  },
  "android.permission.USE_SIP": {
    "description": "Allows an application to use SIP service",
    "when_added": "API level 5"
  },
  "android.permission.VIBRATE": {
    "description": "Allows access to the vibrator",
    "when_added": "API level 9"
  },
  "android.permission.WAKE_LOCK": {
    "description": "Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming",
    "when_added": "API level 1"
  },
  "android.permission.WRITE_APN_SETTINGS": {
    "description": "Allows applications to write the apn settings. Not for use by third-party applications.",
    "when_added": "API level 1"
  },
  "android.permission.WRITE_CALENDAR": {
    "description": "Allows an application to write (but not read) the user's calendar data.",
    "when_added": "API level 1"
  },
  "android.permission.WRITE_CALL_LOG": {
    "description": "Allows an application to write (but not read) the user's contacts data. Note: If your app uses the WRITE_CONTACTS permission and both your minSdkVersion and targetSdkVersion values are set to 15 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 16 or higher.",
    "when_added": "API level 1"
  },
  "android.permission.WRITE_CONTACTS": {
    "description": "Allows an application to write (but not read) the user's contacts data.",
    "when_added": "API level 16"
  },
  "android.permission.WRITE_EXTERNAL_STORAGE": {
    "description": "Allows an application to write to external storage. Note: If both your minSdkVersion and targetSdkVersion values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your targetSdkVersion is 4 or higher. Starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by getExternalFilesDir(String) and getExternalCacheDir().",
    "when_added": "API level 1"
  },
  "android.permission.WRITE_GSERVICES": {
    "description": "Allows an application to modify the Google service map. Not for use by third-party applications.",
    "when_added": "API level 4"
  },
  "com.android.browser.permission.WRITE_HISTORY_BOOKMARKS": {
    "description": "Allows an application to write (but not read) the user's browsing history and bookmarks.",
    "when_added": "API level 1"
  },
  "android.permission.WRITE_PROFILE": {
    "description": "Allows an application to write (but not read) the user's personal profile data.",
    "when_added": "API level 4"
  },
  "android.permission.WRITE_SECURE_SETTINGS": {
    "description": "Allows an application to read or write the secure system settings. Not for use by third-party applications.",
    "when_added": "API level 14"
  },
  "android.permission.WRITE_SETTINGS": {
    "description": "Allows an application to read or write the system settings.",
    "when_added": "API level 3"
  },
  "android.permission.WRITE_SMS": {
    "description": "Allows an application to write SMS messages.",
    "when_added": "API level 1"
  },
  "android.permission.WRITE_SOCIAL_STREAM": {
    "description": "Allows an application to write (but not read) the user's social stream data.",
    "when_added": "API level 1"
  },
  "android.permission.WRITE_SYNC_SETTINGS": {
    "description": "Allows applications to write the sync settings",
    "when_added": "API level 15"
  },
  "android.permission.WRITE_USER_DICTIONARY": {
    "description": "Allows an application to write to the user dictionary.",
    "when_added": "API level 1"
  },
  "com.android.voicemail.permission.WRITE_VOICEMAIL": {
    "description": "Allows an application to modify and remove existing voicemails in the system",
    "when_added": "API level 16"
  }
}

Leave a Reply