我们如何列出所有定义的权限?

How Do We List All Defined Permissions?

列出所有已定义权限的经典答案是使用 pm list permissions 命令。但是,在 Android 5.1 和 Android 6.0 的当前预览版中,该命令不会列出所有内容。

例如,在 Nexus 4 运行 Android 5.1 上,我得到这样的输出:

$ adb shell pm list permissions| fgrep WRITE_
permission:com.intsig.camscanner.WRITE_CAMSCANNER
permission:android.permission.WRITE_GSERVICES
permission:com.google.android.providers.gsf.permission.WRITE_GSERVICES
permission:com.android.voicemail.permission.READ_WRITE_ALL_VOICEMAIL
permission:com.android.launcher3.permission.WRITE_SETTINGS
permission:com.google.android.providers.settings.permission.WRITE_GSETTINGS
permission:com.android.chrome.permission.READ_WRITE_BOOKMARK_FOLDERS

WRITE_EXTERNAL_STORAGE 没有出现在那里。然而,该许可自 Android 1.6 左右以来一直存在。类似的命令显示 pm list permissions 缺少 READ_EXTERNAL_STORAGEREAD_CONTACTSWRITE_CONTACTSINTERNET,可能还有许多其他命令。

那么,如果 pm list permissions 没有为我们提供设备上已定义权限的完整列表,还有其他获取该数据的方法吗?

理论上,可能有一种方法可以从 PackageManager 获取它,但我没有看到 getAllPermissions() 方法,并且 getAllPermissionGroups() 将遗漏任何权限不成群结队。

我目前的查询原因是我想看看Android 6.0 定义了哪些权限及其保护级别,我们还没有Android 6.0 源代码AFAIK。有些权限,如 CHANGE_WIFI_STATEBLUETOOTHBLUETOOTH_ADMINNFC 等,在历史上是 dangerous。它们仍然在 Android SDK 中,但它们没有列在与新的 Android 6.0 运行时权限系统关联的权限中。因此,我试图确定它们是否已降级为 normal 或其他。虽然我可以通过 PackageManager 在逐个许可的基础上做到这一点,但我希望尝试收集所有权限的 protectionLevel 值。

要使用 adb 获取所有权限的列表,您需要添加 -g 标志。如果您查看 source code,这会将 null 添加到组列表中。正如您所指出的,PackageManager#getAllPermissionGroups(int) 不包括未分组的权限。添加 null 作为组名将获得这些未分组的权限。

通过添加null作为权限组名称,我们可以使用PackageManager获得所有权限。我 运行 Nexus 9 运行 Android 6.0.

当前预览版上的以下代码

代码:

public static void printPermissionInfo(Context context) throws Exception {
    PackageManager pm = context.getPackageManager();
    List<PermissionGroupInfo> groupList = pm.getAllPermissionGroups(0);
    groupList.add(null); // ungrouped permissions
    Method protectionToString = PermissionInfo.class.getDeclaredMethod("protectionToString",
            int.class);
    for (PermissionGroupInfo group : groupList) {
        try {
            String name = group == null ? null : group.name;
            List<PermissionInfo> permissionInfos = pm.queryPermissionsByGroup(name, 0);
            for (PermissionInfo permissionInfo : permissionInfos) {
                String protection = (String) protectionToString.invoke(permissionInfo,
                        permissionInfo.protectionLevel);
                System.out.println(permissionInfo.name + " " + protection);
            }
        } catch (PackageManager.NameNotFoundException ignored) {
        }
    }
}

输出:

com.google.android.gms.permission.CAR_VENDOR_EXTENSION dangerous
com.google.android.gms.permission.CAR_MILEAGE dangerous
com.google.android.gms.permission.CAR_FUEL dangerous
android.permission.WRITE_CONTACTS dangerous
android.permission.GET_ACCOUNTS dangerous
android.permission.READ_CONTACTS dangerous
android.permission.READ_CALL_LOG dangerous
android.permission.READ_PHONE_STATE dangerous
android.permission.ACCESS_IMS_CALL_SERVICE signature|privileged
android.permission.CALL_PHONE dangerous
android.permission.WRITE_CALL_LOG dangerous
android.permission.USE_SIP dangerous
android.permission.PROCESS_OUTGOING_CALLS dangerous
com.android.voicemail.permission.ADD_VOICEMAIL dangerous
android.permission.READ_CALENDAR dangerous
android.permission.WRITE_CALENDAR dangerous
android.permission.CAMERA dangerous
android.permission.BODY_SENSORS dangerous
android.permission.USE_FINGERPRINT normal
android.permission.ACCESS_FINE_LOCATION dangerous
com.google.android.gms.permission.CAR_SPEED dangerous
android.permission.ACCESS_COARSE_LOCATION dangerous
android.permission.READ_EXTERNAL_STORAGE dangerous
android.permission.WRITE_EXTERNAL_STORAGE dangerous
android.permission.RECORD_AUDIO dangerous
android.permission.READ_SMS dangerous
android.permission.RECEIVE_WAP_PUSH dangerous
android.permission.RECEIVE_MMS dangerous
android.permission.RECEIVE_SMS dangerous
android.permission.SEND_SMS dangerous
android.permission.READ_CELL_BROADCASTS dangerous
android.permission.REAL_GET_TASKS signature|privileged
android.permission.ACCESS_CACHE_FILESYSTEM signature|privileged
android.permission.REMOTE_AUDIO_PLAYBACK signature
com.google.android.apps.photos.permission.C2D_MESSAGE signature
android.permission.INTENT_FILTER_VERIFICATION_AGENT signature|privileged
android.permission.BIND_INCALL_SERVICE signature|privileged
com.google.android.gms.trustagent.framework.model.DATA_CHANGE_NOTIFICATION signature
android.permission.WRITE_SETTINGS signature|appop|pre23|preinstalled
android.permission.CONTROL_KEYGUARD signature
com.google.android.apps.magazines.permission.C2D_MESSAGE signature
com.google.android.calendar.permission.C2D_MESSAGE signature
android.permission.CONFIGURE_WIFI_DISPLAY signature
android.permission.ACCESS_WIMAX_STATE normal
android.permission.SET_INPUT_CALIBRATION signature
android.permission.RECOVERY signature|privileged
android.permission.TEMPORARY_ENABLE_ACCESSIBILITY signature
com.google.android.talk.permission.C2D_MESSAGE signature
android.permission.SET_PROCESS_LIMIT signature|privileged|development
com.google.android.googlequicksearchbox.permission.C2D_MESSAGE signature
android.permission.FRAME_STATS signature
com.google.android.apps.genie.geniewidget.permission.C2D_MESSAGE signature
android.permission.BRICK signature
com.google.android.gallery3d.permission.GALLERY_PROVIDER signature
android.permission.RESTART_PACKAGES normal
android.permission.BIND_KEYGUARD_APPWIDGET signature|privileged
android.permission.BIND_DEVICE_ADMIN signature
android.permission.MODIFY_AUDIO_SETTINGS normal
android.permission.ACCESS_CHECKIN_PROPERTIES signature|privileged
android.permission.KILL_UID signature|installer
android.permission.SIGNAL_PERSISTENT_PROCESSES signature|privileged|development
android.permission.BIND_PRINT_SERVICE signature
android.permission.ACCESS_NOTIFICATION_POLICY normal
android.permission.MODIFY_AUDIO_ROUTING signature|privileged
android.permission.RECEIVE_BLUETOOTH_MAP signature|privileged
android.permission.ACCESS_MOCK_LOCATION signature
com.google.android.apps.enterprise.dmagent.permission.NotificationBroadcastReceiverPermission signature|privileged
android.permission.GET_APP_OPS_STATS signature|privileged|development
android.permission.RECEIVE_DATA_ACTIVITY_CHANGE signature|privileged
android.permission.GET_PACKAGE_IMPORTANCE signature|privileged
com.google.android.youtube.permission.C2D_MESSAGE signature
android.permission.READ_WIFI_CREDENTIAL signature|privileged
android.permission.BIND_DREAM_SERVICE signature
android.permission.WRITE_GSERVICES signature|privileged
com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS signature
android.permission.INSTALL_LOCATION_PROVIDER signature|privileged
com.google.android.voicesearch.AUDIO_FILE_ACCESS signature
android.permission.CONTROL_WIFI_DISPLAY signature
android.permission.SYSTEM_ALERT_WINDOW signature|appop|pre23|preinstalled
android.permission.BIND_CARRIER_SERVICES signature|privileged
com.google.android.gsf.subscribedfeeds.permission.C2D_MESSAGE signature
android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION signature|privileged
android.permission.START_TASKS_FROM_RECENTS signature|privileged
com.google.android.apps.enterprise.dmagent.permission.AutoRegisterPermission signature|privileged
android.permission.CONTROL_LOCATION_UPDATES signature|privileged
com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE signature
android.permission.GET_TOP_ACTIVITY_INFO signature
android.permission.CLEAR_APP_USER_DATA signature|installer
android.permission.PROVIDE_TRUST_AGENT signature|privileged
android.permission.BROADCAST_CALLLOG_INFO signature|privileged
com.google.android.gms.chromesync.permission.CONTENT_PROVIDER_ACCESS signature
android.permission.INSTALL_PACKAGES signature|privileged
android.permission.SEND_RESPOND_VIA_MESSAGE signature|privileged
com.android.permission.WHITELIST_BLUETOOTH_DEVICE signature
android.permission.ACCESS_FM_RADIO signature|privileged
android.permission.MANAGE_VOICE_KEYPHRASES signature|privileged
android.permission.SHUTDOWN signature|privileged
android.permission.CHANGE_COMPONENT_ENABLED_STATE signature|privileged
com.google.android.gms.permission.CHECKIN_NOW signature
android.permission.BIND_TV_INPUT signature|privileged
android.permission.NFC normal
android.permission.MODIFY_PARENTAL_CONTROLS signature|privileged
android.permission.INTERNAL_SYSTEM_WINDOW signature
android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION signature|privileged
android.permission.RETRIEVE_WINDOW_TOKEN signature
android.permission.BIND_WALLPAPER signature|privileged
android.permission.START_ANY_ACTIVITY signature
android.permission.CAMERA_SEND_SYSTEM_EVENTS signature|privileged
com.google.android.apps.now.OPT_IN_WIZARD signature|privileged
android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS signature
com.google.android.googlequicksearchbox.permission.FINISH_GEL_ACTIVITY signature
android.permission.BROADCAST_SMS signature
android.permission.CALL_PRIVILEGED signature|privileged
android.permission.BIND_INTENT_FILTER_VERIFIER signature
android.permission.MANAGE_APP_TOKENS signature
android.permission.CHANGE_NETWORK_STATE signature|appop|pre23|preinstalled
android.permission.CAPTURE_TV_INPUT signature|privileged
com.google.android.apps.fitness.permission.C2D_MESSAGE signature
android.permission.MASTER_CLEAR signature|privileged
android.permission.PERSISTENT_ACTIVITY normal
android.permission.BIND_TELECOM_CONNECTION_SERVICE signature|privileged
android.permission.WRITE_SYNC_SETTINGS normal
com.google.android.providers.gsf.permission.WRITE_GSERVICES signature|privileged
android.permission.SET_DEBUG_APP signature|privileged|development
com.google.android.apps.wallet.permission.WALLET_INTERNAL signature
android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY signature
com.google.android.apps.walletnfcrel.permission.C2D_MESSAGE signature
android.permission.RECEIVE_BOOT_COMPLETED normal
com.google.android.apps.cloudprint.permission.C2D_MESSAGE signature
android.permission.LOOP_RADIO signature|privileged
android.permission.GLOBAL_SEARCH_CONTROL signature
com.google.android.gms.auth.permission.POST_SIGN_IN_ACCOUNT signature
android.permission.PEERS_MAC_ADDRESS signature
android.permission.DEVICE_POWER signature
com.google.android.providers.settings.permission.READ_GSETTINGS signature
com.google.android.gms.cloudsave.BIND_EVENT_BROADCAST signature|privileged
com.android.vending.permission.C2D_MESSAGE signature
android.permission.SET_TIME_ZONE normal
android.permission.REMOVE_TASKS signature
com.google.android.googlequicksearchbox.permission.PAUSE_HOTWORD signature|privileged
android.permission.EXPAND_STATUS_BAR normal
com.android.launcher.permission.UNINSTALL_SHORTCUT normal
android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS signature
android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS normal
android.permission.READ_PROFILE normal
android.permission.BIND_VOICE_INTERACTION signature
com.google.android.marvin.feedback.permission.TALKBACK signature
android.permission.BLUETOOTH normal
android.permission.BROADCAST_WAP_PUSH signature
android.permission.CHANGE_WIFI_MULTICAST_STATE normal
com.google.android.onetimeinitializer.permission.ONE_TIME_INITIALIZED signature
android.permission.DVB_DEVICE signature|privileged
android.permission.PERFORM_SIM_ACTIVATION signature|privileged
com.android.alarm.permission.SET_ALARM normal
android.permission.CAPTURE_AUDIO_HOTWORD signature|privileged
android.permission.WRITE_MEDIA_STORAGE signature|privileged
com.android.voicemail.permission.READ_VOICEMAIL signature|privileged
android.permission.SET_ANIMATION_SCALE signature|privileged|development
com.google.android.gms.permission.AD_ID_NOTIFICATION normal
com.android.vending.setup.PLAY_SETUP_SERVICE signature|privileged
android.permission.GET_TASKS normal
android.permission.BROADCAST_NETWORK_PRIVILEGED signature|privileged
android.permission.ACCESS_SURFACE_FLINGER signature
com.google.android.googleapps.permission.ACCESS_GOOGLE_PASSWORD signature
android.permission.INTERNET normal
android.permission.TV_INPUT_HARDWARE signature|privileged
com.android.vending.INTENT_VENDING_ONLY signature
android.permission.TRANSMIT_IR normal
com.google.android.gms.permission.C2D_MESSAGE signature
android.permission.RETRIEVE_WINDOW_CONTENT signature|privileged
android.permission.REORDER_TASKS normal
com.android.chrome.permission.CHILD_SERVICE signature
com.google.android.videos.permission.C2D_MESSAGE signature
android.permission.BLUETOOTH_ADMIN normal
android.permission.CONTROL_VPN signature|privileged
android.permission.UPDATE_DEVICE_STATS signature|privileged
android.permission.BLUETOOTH_STACK signature
android.permission.BLUETOOTH_MAP signature
android.permission.READ_PRECISE_PHONE_STATE signature|privileged
android.permission.MANAGE_FINGERPRINT signature|privileged
com.google.android.partnersetup.permission.UPDATE_CLIENT_ID signature|privileged
android.permission.NET_ADMIN signature
com.google.android.gms.permission.GAMES_DEBUG_SETTINGS signature
android.permission.CARRIER_FILTER_SMS signature|privileged
android.permission.PERFORM_CDMA_PROVISIONING signature|privileged
com.google.android.gms.trustagent.permission.TRUSTAGENT_STATE signature
android.permission.BIND_CONNECTION_SERVICE signature|privileged
android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS signature|installer|verifier
android.permission.WRITE_SOCIAL_STREAM normal
android.permission.LAUNCH_TRUST_AGENT_SETTINGS signature|privileged
android.permission.REGISTER_CALL_PROVIDER signature|privileged
android.permission.GET_PACKAGE_SIZE normal
android.permission.BIND_VPN_SERVICE signature
android.permission.TRUST_LISTENER signature
android.permission.ACCOUNT_MANAGER signature
android.permission.MANAGE_USB signature|privileged
android.permission.ACCESS_ALL_DOWNLOADS signature
android.permission.INTERACT_ACROSS_USERS_FULL signature|installer
android.permission.BIND_APPWIDGET signature|privileged
android.permission.STOP_APP_SWITCHES signature|privileged
android.permission.BATTERY_STATS signature|privileged|development
com.google.android.gms.permission.INTERNAL_BROADCAST signature
android.permission.PACKAGE_USAGE_STATS signature|privileged|development|appop
android.permission.WRITE_PROFILE normal
android.permission.MOUNT_UNMOUNT_FILESYSTEMS signature|privileged
android.permission.GET_ACCOUNTS_PRIVILEGED signature|privileged
android.permission.WRITE_SECURE_SETTINGS signature|privileged|development
com.android.vending.TOS_ACKED signature|privileged
android.permission.SERIAL_PORT signature|privileged
android.permission.BIND_NOTIFICATION_LISTENER_SERVICE signature
android.permission.CAPTURE_AUDIO_OUTPUT signature|privileged
android.permission.BIND_MIDI_DEVICE_SERVICE signature
android.permission.MOVE_PACKAGE signature|privileged
android.permission.SET_ACTIVITY_WATCHER signature
android.permission.STATUS_BAR_SERVICE signature
android.permission.READ_SEARCH_INDEXABLES signature|privileged
android.permission.NFC_HANDOVER_STATUS signature|privileged
android.permission.SCORE_NETWORKS signature|privileged
android.permission.DIAGNOSTIC signature
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS normal
android.permission.RECEIVE_WIFI_CREDENTIAL_CHANGE signature|privileged
android.permission.READ_PRIVILEGED_PHONE_STATE signature|privileged
android.permission.ACCESS_DOWNLOAD_MANAGER signature|privileged
android.permission.BROADCAST_STICKY normal
android.permission.ASEC_ACCESS signature
android.permission.BIND_REMOTE_DISPLAY signature
android.permission.BLUETOOTH_PRIVILEGED signature|privileged
com.google.android.gms.permission.CAR signature
android.permission.SET_ALWAYS_FINISH signature|privileged|development
android.permission.HARDWARE_TEST signature
com.google.android.videos.permission.INVALIDATE_AUTH_TOKENS signature
android.permission.ASEC_CREATE signature
com.google.android.apps.enterprise.dmagent.permission.AutoSyncPermission signature|privileged
com.google.android.apps.enterprise.dmagent.permission.InvokeDMServicePermission signature
android.intent.category.MASTER_CLEAR.permission.C2D_MESSAGE signature
android.permission.ACCESS_KEYGUARD_SECURE_STORAGE signature
com.google.android.launcher.permission.CONTENT_REDIRECT signature
android.permission.BIND_JOB_SERVICE signature
android.permission.CONFIRM_FULL_BACKUP signature
android.permission.CAPTURE_SECURE_VIDEO_OUTPUT signature|privileged
android.permission.SET_TIME signature|privileged
android.permission.WRITE_APN_SETTINGS signature|privileged
com.google.android.providers.settings.permission.WRITE_GSETTINGS signature
android.permission.CHANGE_WIFI_STATE normal
com.google.android.apps.gcs.RECEIVE_GCS_STATE signature|privileged
android.permission.BIND_PACKAGE_VERIFIER signature
android.permission.READ_INSTALL_SESSIONS normal
android.permission.BIND_ROUTE_PROVIDER signature
android.permission.RECEIVE_STK_COMMANDS signature|privileged
android.permission.BIND_CARRIER_MESSAGING_SERVICE signature|privileged
android.permission.ACCESS_BLUETOOTH_SHARE signature
android.permission.PACKAGE_VERIFICATION_AGENT signature|privileged
com.google.android.apps.maps.permission.PREFETCH signature
android.permission.SET_ORIENTATION signature
android.permission.REVOKE_RUNTIME_PERMISSIONS signature|installer|verifier
android.permission.MANAGE_USERS signature|privileged
com.android.vending.billing.BILLING_ACCOUNT_SERVICE signature|privileged
com.google.android.gm.email.permission.ACCESS_PROVIDER signature
android.permission.SET_PREFERRED_APPLICATIONS signature
android.permission.FLASHLIGHT normal
android.permission.DELETE_CACHE_FILES signature|privileged
com.google.android.hangouts.START_HANGOUT signature
android.permission.SET_WALLPAPER_COMPONENT signature|privileged
android.permission.ACCESS_NETWORK_STATE normal
android.permission.BIND_CONDITION_PROVIDER_SERVICE signature
android.permission.ACCESS_MTP signature|privileged
android.permission.DISABLE_KEYGUARD normal
android.permission.BACKUP signature|privileged
android.permission.PROCESS_CALLLOG_INFO signature|privileged
android.permission.CHANGE_CONFIGURATION signature|privileged|development
android.permission.USER_ACTIVITY signature|privileged
android.permission.LOCAL_MAC_ADDRESS signature|privileged
android.permission.READ_LOGS signature|privileged|development
com.google.android.apps.maps.permission.C2D_MESSAGE signature
android.permission.COPY_PROTECTED_DATA signature
android.permission.ASEC_DESTROY signature
android.permission.INTERACT_ACROSS_USERS signature|privileged|development
android.permission.SET_WALLPAPER normal
android.permission.ASEC_RENAME signature
android.permission.SET_KEYBOARD_LAYOUT signature
android.permission.UPDATE_CONFIG signature|privileged
android.permission.ACCESS_NETWORK_CONDITIONS signature|privileged
android.permission.READ_DREAM_STATE signature|privileged
android.permission.QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT signature
com.google.googlenav.friend.permission.OPT_IN signature
com.google.android.launcher.permission.RECEIVE_FIRST_LOAD_BROADCAST signature|privileged
android.permission.UPDATE_LOCK signature|privileged
android.permission.READ_NETWORK_USAGE_HISTORY signature|privileged
android.permission.ACCESS_DRM_CERTIFICATES signature|privileged
com.google.android.gsf.permission.C2D_MESSAGE signature
com.google.android.googlequicksearchbox.permission.FLUSH_LOGS signature
android.permission.READ_INPUT_STATE signature
android.permission.KILL_BACKGROUND_PROCESSES normal
android.permission.ACCESS_VOICE_INTERACTION_SERVICE signature
android.permission.BIND_PRINT_SPOOLER_SERVICE signature
android.permission.BIND_DIRECTORY_SEARCH signature|privileged
android.permission.WRITE_USER_DICTIONARY normal
android.permission.REGISTER_SIM_SUBSCRIPTION signature|privileged
android.permission.READ_SYNC_STATS normal
android.permission.WRITE_DREAM_STATE signature|privileged
android.permission.FREEZE_SCREEN signature
android.permission.DOWNLOAD_CACHE_NON_PURGEABLE signature|privileged
android.permission.REBOOT signature|privileged
android.permission.DISPATCH_NFC_MESSAGE signature|privileged
com.google.android.gms.auth.permission.FACE_UNLOCK signature
android.permission.MOUNT_FORMAT_FILESYSTEMS signature|privileged
android.permission.OEM_UNLOCK_STATE signature
android.permission.REGISTER_CONNECTION_MANAGER signature|privileged
android.permission.MANAGE_DEVICE_ADMINS signature|privileged
android.permission.CLEAR_APP_CACHE signature|privileged
android.permission.CHANGE_APP_IDLE_STATE signature
com.google.android.gms.auth.permission.GOOGLE_ACCOUNT_CHANGE signature
com.google.android.gms.trustagent.framework.model.DATA_ACCESS signature
android.permission.BIND_TRUST_AGENT signature
android.permission.MANAGE_DOCUMENTS signature
android.permission.ACCESS_PDB_STATE signature
android.permission.MANAGE_NETWORK_POLICY signature
android.permission.BIND_REMOTEVIEWS signature|privileged
android.permission.ASEC_MOUNT_UNMOUNT signature
android.permission.GRANT_RUNTIME_PERMISSIONS signature|installer
android.permission.SET_POINTER_SPEED signature
android.permission.CHANGE_BACKGROUND_DATA_SETTING signature
com.android.systemui.permission.SELF signature
com.android.chrome.TOS_ACKED signature|privileged
android.permission.GLOBAL_SEARCH signature|privileged
android.permission.NET_TUNNELING signature
android.permission.CONNECTIVITY_INTERNAL signature|privileged
android.permission.FACTORY_TEST signature
android.permission.SET_WALLPAPER_HINTS normal
android.permission.MANAGE_MEDIA_PROJECTION signature
android.permission.READ_SYNC_SETTINGS normal
com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS signature
com.google.android.partnersetup.permission.ACCESS_PROVIDER signature
com.android.chrome.permission.C2D_MESSAGE signature
android.permission.BROADCAST_PACKAGE_REMOVED signature
com.google.android.music.store.permission.C2D_MESSAGE signature
android.permission.OVERRIDE_WIFI_CONFIG signature|privileged
com.android.gallery3d.filtershow.permission.READ signature
android.permission.FORCE_STOP_PACKAGES signature|privileged
android.permission.MANAGE_CA_CERTIFICATES signature|privileged
android.permission.CAPTURE_VIDEO_OUTPUT signature|privileged
android.permission.ACCESS_NOTIFICATIONS signature|privileged
android.permission.VIBRATE normal
com.android.certinstaller.INSTALL_AS_USER signature
com.google.android.gsf.permission.CONNECTION signature
com.google.android.apps.plus.permission.MAPS_RECEIVE signature
android.permission.BIND_ACCESSIBILITY_SERVICE signature
android.server.checkin.CHECKIN.permission.C2D_MESSAGE signature
android.permission.MANAGE_ACTIVITY_STACKS signature|privileged
android.permission.SEND_CALL_LOG_CHANGE signature|privileged
android.permission.HDMI_CEC signature|privileged
android.permission.BIND_INPUT_METHOD signature
android.permission.INVOKE_CARRIER_SETUP signature|privileged
android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST signature|privileged
android.permission.REMOVE_DRM_CERTIFICATES signature|privileged
com.google.android.googleapps.permission.GOOGLE_MAIL_SWITCH signature
android.permission.READ_USER_DICTIONARY normal
android.permission.FILTER_EVENTS signature
android.permission.RECEIVE_EMERGENCY_BROADCAST signature|privileged
com.google.android.finsky.permission.GEARHEAD_SERVICE signature|privileged
android.permission.MODIFY_NETWORK_ACCOUNTING signature|privileged
android.permission.CRYPT_KEEPER signature|privileged
android.permission.BIND_NFC_SERVICE signature
android.permission.START_PRINT_SERVICE_CONFIG_ACTIVITY signature
com.android.voicemail.permission.WRITE_VOICEMAIL signature|privileged
android.permission.GET_DETAILED_TASKS signature
android.permission.NOTIFY_PENDING_SYSTEM_UPDATE signature|privileged
android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK signature|privileged
android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS signature|privileged
android.permission.ACCESS_WIFI_STATE normal
com.google.android.apps.enterprise.dmagent.permission.C2D_MESSAGE signature
android.permission.FORCE_BACK signature
com.android.chrome.permission.READ_WRITE_BOOKMARK_FOLDERS signature|privileged
com.google.android.launcher.permission.RECEIVE_LAUNCH_BROADCASTS signature
android.permission.CHANGE_WIMAX_STATE normal
android.permission.CAMERA_DISABLE_TRANSMIT_LED signature|privileged
android.permission.REQUEST_INSTALL_PACKAGES normal
android.permission.CONTROL_INCALL_EXPERIENCE signature|privileged
android.permission.MODIFY_PHONE_STATE signature|privileged
com.google.android.gm.email.permission.UPDATE_AUTH_NOTIFICATION signature
com.google.android.googlequicksearchbox.LAUNCH_FROM_DSP_HOTWORD signature|privileged
com.android.launcher.permission.INSTALL_SHORTCUT normal
android.permission.BIND_TEXT_SERVICE signature
android.permission.STATUS_BAR signature|privileged
android.permission.READ_FRAME_BUFFER signature|privileged
com.google.android.gms.DRIVE signature
android.permission.DUMP signature|privileged|development
android.permission.LOCATION_HARDWARE signature|privileged
com.google.android.apps.plus.permission.C2D_MESSAGE signature
com.google.android.marvin.talkback.permission.LABELING signature
com.google.android.googlequicksearchbox.LAUNCH_WITH_RECORDED_AUDIO signature|privileged
android.permission.READ_SOCIAL_STREAM normal
android.permission.WAKE_LOCK normal
android.permission.INJECT_EVENTS signature
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED signature|privileged
android.permission.BIND_CHOOSER_TARGET_SERVICE signature
android.permission.UPDATE_APP_OPS_STATS signature|privileged|installer
com.android.gallery3d.filtershow.permission.WRITE signature
android.permission.ACCESS_INPUT_FLINGER signature
android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS signature|privileged
com.android.vending.billing.ADD_CREDIT_CARD signature|privileged
android.permission.SET_SCREEN_COMPATIBILITY signature
com.android.vending.billing.IN_APP_NOTIFY.permission.C2D_MESSAGE signature
android.permission.MEDIA_CONTENT_CONTROL signature|privileged
android.permission.DELETE_PACKAGES signature|privileged
com.google.android.calendar.permission.READ_OOBE signature

简要浏览一下结果后,某些保护级别似乎发生了变化。例如,android.permission.NFC 现在是 "normal"。