Android权限:我如何知道哪些危险与正常相比?

时间:2011-09-07 19:51:37

标签: android security permissions

Android定义了第三方应用可以请求的一组权限。 Permissions are categorized by sensitivity; most permissions are either "normal" or "dangerous"。在不提示用户的情况下自动授予正常权限;安装应用程序并要求用户同意授予用户权限时,会向用户显示危险权限。

问题:对于我想到的任何特定Android权限,我如何判断它是正常权限还是危险权限?是否有危险权限列表和正常权限列表?

(我知道第三方应用可以声明他们自己的权限。我只询问标准权限。我知道可能无法获得100%完整列表。我只是寻找最好的 - 努力;有些东西总比没有好。)

对于相关但不同的问题,另请参阅Where can I get a list of Android permissions(但是,这是一个不同的问题;它不符合正常与危险的区别,我不一定需要完整的清单。)

6 个答案:

答案 0 :(得分:23)

为了更简单,以下是从official docs获取的正常权限列表:

从API级别23开始,以下权限被归类为PROTECTION_NORMAL:

ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS_NETWORK_STATE
ACCESS_NOTIFICATION_POLICY
ACCESS_WIFI_STATE
BLUETOOTH
BLUETOOTH_ADMIN
BROADCAST_STICKY
CHANGE_NETWORK_STATE
CHANGE_WIFI_MULTICAST_STATE
CHANGE_WIFI_STATE
DISABLE_KEYGUARD
EXPAND_STATUS_BAR
FLASHLIGHT
GET_PACKAGE_SIZE
INTERNET
KILL_BACKGROUND_PROCESSES
MODIFY_AUDIO_SETTINGS
NFC
READ_SYNC_SETTINGS
READ_SYNC_STATS
RECEIVE_BOOT_COMPLETED
REORDER_TASKS
REQUEST_INSTALL_PACKAGES
SET_TIME_ZONE
SET_WALLPAPER
SET_WALLPAPER_HINTS
TRANSMIT_IR
USE_FINGERPRINT
VIBRATE
WAKE_LOCK
WRITE_SYNC_SETTINGS
SET_ALARM
INSTALL_SHORTCUT
UNINSTALL_SHORTCUT

以下是Dangerous permissions and permission groups的列表:

CALENDAR : READ_CALENDAR, WRITE_CALENDAR
CAMERA : CAMERA
CONTACTS : READ_CONTACTS, WRITE_CONTACTS, GET_ACCOUNTS
LOCATION : ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION
MICROPHONE : RECORD_AUDIO
PHONE : READ_PHONE_STATE, CALL_PHONE, READ_CALL_LOG, WRITE_CALL_LOG, ADD_VOICEMAIL, USE_SIP, PROCESS_OUTGOING_CALLS
SENSORS : BODY_SENSORS    
SMS     : SEND_SMS, RECEIVE_SMS, READ_SMS, RECEIVE_WAP_PUSH, RECEIVE_MMS
STORAGE : READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE

答案 1 :(得分:14)

  

自动授予普通权限,而不提示用户

AFAIK,这里的文档是错误的。

  

安装应用程序并要求用户同意授予用户权限时,会向用户显示危险权限

AFAIK,所有权限都有此行为。

这可能导致的是,如果存在足够危险的权限,则始终会显示危险权限,而正常权限可能会“低于”。

  

对于我想到的任何特定Android权限,我如何判断它是正常权限还是危险权限?是否有危险权限列表和正常权限列表?

您可以查看the source code

答案 2 :(得分:6)

我发现this博文根据保护级别列出了“默认”权限。我想,这是你要找的那种清单。

虽然该帖子已有10个月之久,但同时该列表可能已发生变化。它提供了自己重新编译列表的示例代码。

答案 3 :(得分:3)

从Android M权限将在运行时授予。普通权限不需要用户同意,但对于危险权限,用户需要向应用程序授予权限。

正常权限:https://developer.android.com/guide/topics/security/normal-permissions.html

危险权限:危险权限涵盖应用需要涉及用户私人信息的数据或资源的区域https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous

答案 4 :(得分:3)

Here是一篇很好的文章,描述了有关运行时权限的所有内容,

正常权限

    compile 'com.google.android.gms:play-services:8.4.0'

危险权限 enter image description here

答案 5 :(得分:1)

在Android Studio中,您可以打开AndroidManifest.xml并在您使用的每个权限上按F1,然后您可以查看该文档可能显示的是否存在危险。