Android权限:我怎样才能了解哪些危险与正常相比?

Android定义了第三方应用可以请求的一组权限。 权限按敏感度分类; 大多数权限都是“正常”或“危险” 。 在不提示用户的情况下自动授予正常权限; 安装应用程序并要求用户同意授予用户时,会向用户显示危险权限。

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

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

对于相关但不同的问题,请参阅我在哪里可以获得Android权限列表 (但是,这是一个不同的问题;它不是正常与危险的区别,我不一定需要完整的列表)。

在不提示用户的情况下自动授予正常权限

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

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

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

这可能变成的是,如果存在足够危险的权限,则始终显示危险权限,并且正常权限可能“低于”。

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

您可以查看源代码 。

为简单起见,以下是从官方文档中获取的正常权限列表:

从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 

这是危险权限和权限组列表:

 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 

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

尽管如此,该列表可能已经发生变化,因为该post已有10个月的历史。 它提供了自己重新编译列表的示例代码。

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

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

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

这是一篇很好的文章,描述了有关运行时权限的所有事情,

正常权限

 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS android.permission.ACCESS_NETWORK_STATE android.permission.ACCESS_NOTIFICATION_POLICY android.permission.ACCESS_WIFI_STATE android.permission.ACCESS_WIMAX_STATE android.permission.BLUETOOTH android.permission.BLUETOOTH_ADMIN android.permission.BROADCAST_STICKY android.permission.CHANGE_NETWORK_STATE android.permission.CHANGE_WIFI_MULTICAST_STATE android.permission.CHANGE_WIFI_STATE android.permission.CHANGE_WIMAX_STATE android.permission.DISABLE_KEYGUARD android.permission.EXPAND_STATUS_BAR android.permission.FLASHLIGHT android.permission.GET_ACCOUNTS android.permission.GET_PACKAGE_SIZE android.permission.INTERNET android.permission.KILL_BACKGROUND_PROCESSES android.permission.MODIFY_AUDIO_SETTINGS android.permission.NFC android.permission.READ_SYNC_SETTINGS android.permission.READ_SYNC_STATS android.permission.RECEIVE_BOOT_COMPLETED android.permission.REORDER_TASKS android.permission.REQUEST_INSTALL_PACKAGES android.permission.SET_TIME_ZONE android.permission.SET_WALLPAPER android.permission.SET_WALLPAPER_HINTS android.permission.SUBSCRIBED_FEEDS_READ android.permission.TRANSMIT_IR android.permission.USE_FINGERPRINT android.permission.VIBRATE android.permission.WAKE_LOCK android.permission.WRITE_SYNC_SETTINGS com.android.alarm.permission.SET_ALARM com.android.launcher.permission.INSTALL_SHORTCUT com.android.launcher.permission.UNINSTALL_SHORTCUT 

危险的权限 在此处输入图像描述

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