1. 前言
Android 中应用权限有助于保护对以下数据和操作的访问/执行权限,从而为保护用户隐私提供支持:
1. 受限数据
,例如系统状态和用户的联系信息
2. 受限操作
,例如连接到已配对的设备并录制音频
本篇文章主要介绍Android中所有的权限定义和说明,从基本概念入手一步一步解析权限用法
2. 权限类型
Android 将权限分为不同的类型,包括
安装时权限
、
运行时权限
和
特殊权限
。每种权限类型都指明了当系统授予应用该权限后,应用可以访问的受限数据范围以及应用可以执行的受限操作范围。
2.1 安装时权限
安装时权限授予应用对受限数据的受限访问权限,或允许应用执行对系统或其他应用只有最低影响的受限操作。如果您在应用中声明了安装时权限,应用商店会在用户查看应用详情页面时向其显示安装时权限通知,如图 2 所示。系统会在用户安装您的应用时自动向您的应用授予权限。
Android 提供多个安装时权限子类型,包括一般权限(normal) + 签名权限 (signature)。
那什么是一般权限,签名权限呢? 我们先来看定义
<permission>的权限级别 android:protectionLevel
来自官网的文档
Android 开发者 | Android Developers
值 | 含义 |
---|---|
“
” |
默认值。具有较低风险的权限,此类权限允许请求授权的应用访问隔离的应用级功能,对其他应用、系统或用户的风险非常小。 系统会自动向在安装时请求授权的应用授予此类权限,无需征得用户的明确许可(但用户始终可以选择在安装之前查看这些权限)。 |
“
” |
具有较高风险的权限,此类权限允许请求授权的应用访问用户私人数据或获取可对用户造成不利影响的设备控制权。由于此类权限会带来潜在风险,因此系统可能不会自动向请求授权的应用授予此类权限。例如,应用请求的任何危险权限都可能会向用户显示并且获得确认才会继续执行操作,或者系统会采取一些其他方法来避免用户自动允许使用此类功能。 |
“
” |
只有在请求授权的应用使用与声明权限的应用相同的证书进行签名时系统才会授予的权限。如果证书匹配,则系统会在不通知用户或征得用户明确许可的情况下自动授予权限。 |
“
” |
系统仅向位于 Android 系统映像的专用文件夹中的应用 |
install
权限
:安装时权限,是指在安装app的时候,赋予app的权限。
normal
和
signature
级别的权限都是
安装时权限
。
不会给用户提示界面,系统自动决定权限的赋予或拒绝。
Android源码中所有权限定义的文件为:
frameworks/base/core/res/AndroidManifest.xml
2.2.1 normal
普通权限
2.2.1 normal
举个例子:
<!-- Allows applications to disable the keyguard if it is not secure.
<p>Protection level: normal
-->
<permission android:name="android.permission.DISABLE_KEYGUARD"
android:description="@string/permdesc_disableKeyguard"
android:label="@string/permlab_disableKeyguard"
android:protectionLevel="normal" />
此权限只要在应用自己的AndroidManifest.xml 声明,那么系统就默认赋予了该权限,无需征得用户的明确许可。
2.2.2 signature 签名权限
2.2.2 signature 签名权限
举个例子:
<!-- Allows an application to get full detailed information about
recently running tasks, with full fidelity to the real state.
@hide -->
<permission android:name="android.permission.GET_DETAILED_TASKS"
android:protectionLevel="signature" />
签名权限描述:
只有当
应用A
与
定义权限的应用B
或
OS
使用相同的
证书签名
时,系统才会向应用授予签名权限。 怎么理解这句话呢?
OS 我理解的就是 Android 系统;
我们来回顾一下应用的
证书签名
这个概念,在应用的Andorid.mk 或 Android.bp 文件中有个属性
LOCAL_CERTIFICATE 用于设置不同的签名方式
LOCAL_CERTIFICATE := PRESIGNED,打包apk时,沿用apk中原来的签名
用于设置不同的签名方式build/target/product/security目录中有四组默认签名供Android.mk在编译APK使用:
1、testkey:普通APK,默认情况下使用。
2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。
3、shared:该APK需要和home/contacts进程共享数据。
4、media:该APK是media/download系统中的一环。
应用程序的Android.mk中有一个LOCAL_CERTIFICATE字段,由它指定用哪个key签名,未指定的默认用testkey.
如下几种方式:
LOCAL_CERTIFICATE : #使用平台文件签名
(1)platform签名:
AndroidManifest.xml的manifest节点中添加 android:sharedUserId=”android.uid.system”,
Android.mk中增加 LOCAL_CERTIFICATE := platform
(2)shared签名:
AndroidManifest.xml的manifest节点中增加android:sharedUserId=”android.uid.shared”,
Android.mk中增加LOCAL_CERTIFICATE := shared
(3)media签名:
AndroidManifest.xml的manifest节点中增加 android:sharedUserId=”android.media”,
Android.mk中增加 LOCAL_CERTIFICATE := media
我们来看第一种情况: 应用A 和 应用B 具有相同的证书签名
或者这样子理解:等同于
两个
LOCAL_CERTIFICATE := PRESIGNED 具有相同证书签名应用。
如果应用B先安装的,而且已经申请过权限,(A和B有相同的证书签名)则系统会在不通知用户或征得用户明确许可的情况下,给A应用自动授予这些signature权限。
我们来看第二种情况: 应用A 和 系统签名应用
上述3中系统签名的应用,
1. android:sharedUserId=”android.uid.system” LOCAL_CERTIFICATE := platform
这种就比较常见,比如安卓系统中比较重要的系统应用,如设置,SystemUI Launcher等
2. android:sharedUserId=”android.uid.shared” LOCAL_CERTIFICATE := shared
拥有这类签名的应用,比如 ContactsProvider 应用
3. android:sharedUserId=”android.media” LOCAL_CERTIFICATE := media
多媒体相关的应用 比如 图库, MediaProivder DownloadProvider 等应用
假如应用A 与上面的这些应用具有相同的证书签名的话,则系统会在不通知用户或征得用户明确许可的情况下,给A应用自动授予这些signature权限。
2.2
运行时权限
运行时权限也称为危险(
dangerous
)权限,此类权限授予应用对受限数据的额外访问权限,或允许应用执行对系统和其他应用具有更严重影响的受限操作。因此,您需要先在应用中请求运行时权限然后才能访问受限数据或执行受限操作。
这种也比较好理解:就是当出现这种对话框的时候,这些权限就是运行时权限,定义权限的的保护级别带有 android:protectionLevel=”dangerous”
<permission android:name="android.permission.ACCESS_FINE_LOCATION"
android:permissionGroup="android.permission-group.UNDEFINED"
android:label="@string/permlab_accessFineLocation"
android:description="@string/permdesc_accessFineLocation"
android:backgroundPermission="android.permission.ACCESS_BACKGROUND_LOCATION"
android:protectionLevel="dangerous|instant" />
<permission android:name="android.permission.CAMERA"
android:permissionGroup="android.permission-group.UNDEFINED"
android:label="@string/permlab_camera"
android:description="@string/permdesc_camera"
android:protectionLevel="dangerous|instant" />
众所周知,Android6.0引入了动态权限,前面说到的自定义的权限的安全级别android:protectionLevel会影响权限在Android6.0+系统的使用
android:protectionLevel=“normal”,不需要动态申请
android:protectionLevel=“dangerous”,需要动态申请
这样子就更好理解一点了。
2.3
特殊权限
特殊权限与特定的应用操作相对应。只有平台和原始设备制造商 (OEM) 可以定义特殊权限。此外,如果平台和 OEM 想要防止有人执行功能特别强大的操作(例如通过其他应用绘图),通常会定义特殊权限。
系统设置中的
特殊应用访问权限
页面包含一组用户可切换的操作。其中的许多操作都是以特殊权限的形式实现的。
特殊权限旨在限制访问尤其敏感或与用户隐私没有直接关系的系统资源。这些权限不同于安装时权限和运行时权限。
一些特殊权限示例:
- 设定精确的闹钟。
- 在其他应用前方显示和绘图。
- 访问所有存储数据。
声明特殊权限的应用会显示在系统设置中的
特殊应用权限
页面内(图 1)。如需向应用授予特殊权限,用户必须转到此页面:
设置 > 应用 > 特殊应用权限
。
Android上声明和请求特殊权限的工作流程
【备注】: 与运行时权限不同
,用户必须从系统设置中的
特殊应用权限
页面授予特殊权限。应用可以使用 intent 将用户转到该页面,这会暂停应用,并启动相应的设置页面,以便用户授予指定的特殊权限。用户返回到应用后,应用可以在
onResume()
函数中检查是否已获得相应权限。
以下示例代码展示了如何请求用户授予 SCHEDULE_EXACT_ALARMS 特殊权限:
val alarmManager = getSystemService<AlarmManager>(Context.ALARM_SERVICE)
when {
// if permission is granted, proceed with scheduling exact alarms…
alarmManager.canScheduleExactAlarms() -> {
alarmManager.setExact(...)
}
else -> {
// ask users to grant the permission in the corresponding settings page
startActivity(Intent(ACTION_REQUEST_SCHEDULE_EXACT_ALARM))
}
}
在
onResume()
中检查权限和处理用户决定的示例代码:
override fun onResume() {
// ...
if (alarmManager.canScheduleExactAlarms()) {
// proceed with the action (setting exact alarms)
alarmManager.setExact(...)
}
else {
// permission not yet approved. Display user notice and gracefully degrade
your app experience.
alarmManager.setWindow(...)
}
}
3. 权限大全
3.1 运行时(危险)权限
运行时(危险)权限以及对应分组如下,也就是说这些权限都需要动态申请的
再详细说明一下:
权限组:
CONTACTS
API级别:23
描述:
联系人和配置文件相关的运行时权限。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
READ_CONTACTS | 危险 | 1 | 允许应用读取用户联系人数据。 |
WRITE_CONTACTS | 危险 | 1 | 允许应用写入用户联系人数据。 |
GET_ACCOUNTS | 危险 | 1 | 允许访问帐户服务中的帐户列表。 |
权限组:
CALENDAR
API级别:17
描述:用户日历相关的运行时权限。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
READ_CALENDAR | 危险 | 1 | 允许应用读取用户日历数据。 |
WRITE_CALENDAR | 危险 | 1 | 允许应用写入用户日历数据。 |
权限组:
SMS
API级别:23
描述:短信相关的运行时权限。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
SEND_SMS | 危险 | 1 | 允许应用发送短信。 |
RECEIVE_SMS | 危险 | 1 | 允许应用接收短信。 |
READ_SMS | 危险 | 1 | 允许应用访问SMS信息。 |
RECEIVE_WAP_PUSH | 危险 | 1 | 允许应用接收WAP推送信息。 |
RECEIVE_MMS | 危险 | 1 | 允许应用监视传入的彩信。 |
READ_CELL_BROADCASTS |
危险 |
– |
|
权限组:
STORAGE
API级别:4
描述:外部存储相关的运行时权限。API级别Q以后不再建议使用。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
READ_EXTERNAL_STORAGE | 危险 | 16 |
允许应用读取扩展存储。 API级别Q以后不再建议使用。 |
WRITE_EXTERNAL_STORAGE | 危险 | 4 |
允许应用写入扩展存储。 API级别Q以后不再建议使用。 |
权限组:
LOCATION
API级别:1
描述:允许访问设备位置信息的权限。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
ACCESS_FINE_LOCATION | 危险 | 1 | 允许应用访问精确的位置。 |
ACCESS_COARSE_LOCATION | 危险 | 1 | 允许应用访问大概的位置。 |
权限组:
CALL_LOG
API级别:28
描述:电话功能的权限。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
PROCESS_OUTGOING_CALLS | 危险 | 1 | 允许应用查看拨出呼叫期间拨出的号码。 |
READ_CALL_LOG | 危险 | 16 | 允许应用读取用户通话日志。 |
WRITE_CALL_LOG | 危险 | 16 | 允许应用写入用户通话日志。 |
权限组:
PHONE
API级别:23
描述: 电话功能相关的权限。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
CALL_PHONE | 危险 | 1 | 允许应用在不经过拨号界面的情况下启动电话呼叫,以便用户确认呼叫。 |
READ_PHONE_STATE | 危险 | 1 | 允许应用访问电话状态。 |
USE_SIP | 危险 | 9 | 允许应用使用SIP服务。 |
ADD_VOICEMAIL | 危险 | 14 | 允许应用向系统中添加语音邮件。 |
ANSWER_PHONE_CALLS | 危险 | 26 | 允许应用接听来电。 |
MANAGE_OWN_CALLS | 正常 | 26 | 允许调用应用通过自我管理的ConnectionService API管理自己的调用。 |
READ_PHONE_NUMBERS | 危险 | 26 | 允许应用读取设备的电话号码。 |
ACCEPT_HANDOVER | 危险 | 28 |
允许呼叫应用继续在其他应用中启动的呼叫。 例如,视频通话应用希望在用户的移动网络上继续语音通话。 |
ACCESS_UCE_PRESENCE_SERVICE |
签名|专用 |
– |
允许应用访问UCE-Presence。 |
ACCESS_UCE_OPTIONS_SERVICE |
签名|专用 |
– |
允许应用访问UCE-OPTIONS。 |
权限组:
MICROPHONE
API级别:17
描述:访问麦克风相关的权限。请注意,电话呼叫也会捕获音频,但属于单独的权限组。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
RECORD_AUDIO | 危险 | 1 |
允许应用录音。 |
权限组:
CAMERA
API级别:17
描述:访问相机或从设备捕获图像/视频相关的权限。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
CAMERA | 危险|立即 | 1 | 允许访问摄像头。 |
权限组:SENSORS API级别:23
描述:身体或环境传感器相关的权限。
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
BODY_SENSORS | 危险 | 20 | 允许应用访问身体传感器的数据。 |
3.2 normal权限
非完整归纳,涵盖大部分
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
ACCESS_LOCATION_EXTRA_COMMANDS | 正常 | 1 | 允许程序获取额外的位置信息提供程序命令。 |
ACCESS_NETWORK_STATE | 正常|立即 | 1 | 允许应用获取网络信息状态。 |
ACCESS_WIFI_STATE | 正常 | 1 | 允许应用获取当前WiFi接入的状态以及WLAN热点的信息。 |
BLUETOOTH | 正常 | 1 | 允许程序连接配对过的蓝牙设备。 |
BLUETOOTH_ADMIN | 正常 | 1 | 允许程序发现和配对新的蓝牙设备。 |
BROADCAST_STICKY | 正常 | 1 | 允许应用发送持久广播。 |
CHANGE_NETWORK_STATE | 正常 | 1 | 允许应用更改网络连接状态。 |
CHANGE_WIFI_STATE | 正常 | 1 | 允许应用更改Wi-Fi连接状态。 |
DELETE_PACKAGES | 正常 | 1 |
允许程序删除应用。 对第三方应用不可用。 |
DISABLE_KEYGUARD | 正常 | 1 | 允许应用停用键锁以及任何关联的密码安全措施。 |
EXPAND_STATUS_BAR | 正常 | 1 | 允许程序展开/收拢状态栏。 |
GET_PACKAGE_SIZE | 正常 | 1 | 允许应用计算应用存储空间。 |
GET_TASKS | 正常 | 1 |
允许程序获取当前或最近运行的应用。 API级别21以后不再建议使用。 |
INTERNET | 正常|立即 | 1 | 允许应用访问网络连接。 |
MODIFY_AUDIO_SETTINGS | 正常 | 1 | 允许应用修改全局声音设置。 |
PERSISTENT_ACTIVITY | 正常 | 1 |
让应用始终运行。 API级别15以后不再建议使用。 |
READ_SYNC_SETTINGS | 正常 | 1 | 允许应用读取同步设置。 |
READ_SYNC_STATS | 正常 | 1 | 允许应用读取同步状态。 |
RECEIVE_BOOT_COMPLETED | 正常 | 1 | 允许应用开机启动。 |
REORDER_TASKS | 正常 | 1 | 允许应用对正在运行的应用重新排序。 |
RESTART_PACKAGES | 正常 | 1 |
允许应用关闭其他应用。 API级别15以后不再建议使用。 |
SET_WALLPAPER | 正常 | 1 | 允许应用设置壁纸。 |
SET_WALLPAPER_HINTS | 正常 | 1 | 允许应用设置壁纸提示。 |
VIBRATE | 正常|立即 | 1 | 允许应用使用震动。 |
WAKE_LOCK | 正常 | 1 | 允许应用防止手机休眠。 |
CHANGE_WIFI_MULTICAST_STATE | 正常 | 4 | 允许应用进入Wi-Fi多播模式。 |
KILL_BACKGROUND_PROCESSES | 正常 | 8 | 允许应用关闭其他应用。 |
NFC | 正常 | 9 | 允许应用通过NFC执行I/O操作。 |
WRITE_SYNC_SETTINGS | 正常 | 1 | 允许应用写入同步设置。 |
SET_ALARM | 正常 | 9 | 允许应用使用Intent通过广播设置闹钟。 |
INSTALL_SHORTCUT | 正常 | 19 |
允许应用安装快捷方式。 API级别26以后通过ShortcutManager.requestPinShortcut()实现。 |
TRANSMIT_IR | 正常 | 19 | 允许应用使用设备的红外发射器。 |
UNINSTALL_SHORTCUT | 正常 | 19 | 允许应用卸载快捷方式。 |
ACCESS_NOTIFICATION_POLICY | 正常 | 23 | 允许应用读取和写入“勿扰”模式配置。 |
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | 正常 | 23 | 允许应用请求忽略电池优化。 |
REQUEST_COMPANION_RUN_IN_BACKGROUND | 正常 | 26 | 允许应用在后台运行。 |
REQUEST_COMPANION_USE_DATA_IN_BACKGROUND | 正常 | 26 | 允许应用在后台使用数据。 |
REQUEST_DELETE_PACKAGES | 正常 | 26 | 允许应用程序请求删除软件包。 |
FOREGROUND_SERVICE | 正常 | 28 | 允许应用使用前台服务。 |
NFC_TRANSACTION_EVENT | 正常 | 28 | 允许应用接收NFC事务事件。 |
CALL_COMPANION_APP | 正常 | Q | 允许实现InCallService API的应用有资格作为调用伴随应用启用。 |
ACCESS_BACKGROUND_LOCATION | 危险 | Q |
允许应用在后台访问位置。 如果请求这个权限,您还应该请求ACCESS_FINE_LOCATION。 |
ACCESS_MEDIA_LOCATION | – | Q | 允许应用访问用户共享集合中保留的任何地理位置。 |
ACTIVITY_RECOGNITION | 危险 | Q |
允许应用识别当前用户的物理活动。 比如:行走,驾驶或者静止站立。 |
BIND_SMS_APP_SERVICE | – | Q | SmsAppService的子类必要。 |
GET_AND_REQUEST_SCREEN_LOCK_COMPLEXITY | 正常 | Q |
允许应用获得屏幕锁定复杂度并提示用户, 将屏幕锁定更新到特定的复杂性级别。 |
READ_MEDIA_AUDIO | – | Q | 允许应用读取用户共享音频集合。 |
READ_MEDIA_IMAGES | – | Q | 允许应用读取用户共享图像集合。 |
READ_MEDIA_VIDEO | – | Q | 允许应用读取用户共享视频集合。 |
SMS_FINANCIAL_TRANSACTIONS | – | Q | 允许财务应用读取过滤信息。 |
USE_FULL_SCREEN_INTENT | – | Q | 对于命中Build.VERSION_CODES.Q的想要使用通知全屏Intents的应用是必需的。 |
3.3 signature签名权限
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
ACCESS_CHECKIN_PROPERTIES | 签名|专用 | 1 |
允许应用读取/写入登记check-in数据库属性表。 对第三方应用不可用。 |
ACCOUNT_MANAGER | 签名 | 5 |
允许应用获取账户验证信息。 对第三方应用不可用。 |
BATTERY_STATS | 签名|专用|开发 | 1 | 允许应用收集电池统计信息。 |
BIND_ACCESSIBILITY_SERVICE | 签名 | 16 |
AccessibilityService必要。 确保只有系统可以绑定到它。 |
BIND_APPWIDGET | 签名|专用 | 3 |
允许应用告诉AppWidget服务哪个应用可以访问AppWidget的数据。 对第三方应用不可用。 |
BIND_AUTOFILL_SERVICE | 签名 | 26 |
AutofillService必要。 确保只有系统可以绑定到它。 |
BIND_CALL_REDIRECTION_SERVICE | 签名|专用 | Q |
CallRedirectionService必要。 确保只有系统可以绑定到它。 |
BIND_CARRIER_MESSAGING_SERVICE | 签名|专用 | 22 | API级别23以后不再建议使用,使用BIND_CARRIER_SERVICES |
BIND_CARRIER_SERVICES | 签名|专用 | 23 | 允许应用绑定到运营商服务。 |
BIND_CHOOSER_TARGET_SERVICE | 签名 | 23 |
ChooserTargetService必要。 确保只有系统可以绑定到它。 |
BIND_CONDITION_PROVIDER_SERVICE | 签名 | 24 |
ConditionProviderService必要。 确保只有系统可以绑定到它。 |
BIND_DEVICE_ADMIN | 签名 | 8 |
系统管理员接收者必要。 确保只有系统可以绑定到它。 |
BIND_DREAM_SERVICE | 签名 | 21 |
DreamService必要。 确保只有系统可以绑定到它。 |
BIND_INCALL_SERVICE | 签名|专用 | 23 |
InCallService必要。 确保只有系统可以绑定到它。 |
BIND_INPUT_METHOD | 签名 | 3 |
InputMethodService必要。 确保只有系统可以绑定到它。 |
BIND_MIDI_DEVICE_SERVICE | 签名 | 23 |
MidiDeviceService必要。 确保只有系统可以绑定到它。 |
BIND_NFC_SERVICE | 签名 | 19 |
HostApduService或OffHostApduService必要。 确保只有系统可以绑定到它。 |
BIND_NOTIFICATION_LISTENER_SERVICE | 签名 | 18 |
NotificationListenerService必要。 确保只有系统可以绑定到它。 |
BIND_PRINT_SERVICE | 签名 | 19 |
PrintService必要。 确保只有系统可以绑定到它。 |
BIND_QUICK_SETTINGS_TILE | 签名 | 24 |
允许应用绑定到第3方快速设置。 TileService必要。确保只有系统可以绑定到它。 |
BIND_REMOTEVIEWS | 签名|专用 | 11 |
RemoteViewsService必要。 确保只有系统可以绑定到它。 |
BIND_SCREENING_SERVICE | 签名|专用 | 24 |
CallScreeningService必要。 确保只有系统可以绑定到它。 |
BIND_TELECOM_CONNECTION_SERVICE | 签名|专用 | 23 |
ConnectionService必要。 确保只有系统可以绑定到它。 |
BIND_TEXT_SERVICE | 签名 | 14 |
TextService(比如SpellCheckerService)必要。 确保只有系统可以绑定到它。 |
BIND_TV_INPUT | 签名|专用 | 21 |
TvInputService必要。 确保只有系统可以绑定到它。 |
BIND_VISUAL_VOICEMAIL_SERVICE | 签名|专用 | 26 |
链接VisualVoicemailService必要。 确保只有系统可以绑定到它。 |
BIND_VOICE_INTERACTION | 签名 | 21 |
VoiceInteractionService必要。 确保只有系统可以绑定到它。 |
BIND_VPN_SERVICE | 签名 | 14 |
VpnService必要。 确保只有系统可以绑定到它。 |
BIND_VR_LISTENER_SERVICE | 签名 | 24 |
VrListenerService必要。 确保只有系统可以绑定到它。 |
BIND_WALLPAPER | 签名|专用 | 8 |
WallpaperService必要。 确保只有系统可以绑定到它。 |
BLUETOOTH_PRIVILEGED | 签名|专用 | 19 |
允许应用配对蓝牙设备而无需用户交互, 并允许或禁止电话簿访问或消息访问。 对第三方应用不可用。 |
BROADCAST_PACKAGE_REMOVED | 签名 | 1 |
允许应用广播已删除应用包的通知。 对第三方应用不可用。 |
BROADCAST_SMS | 签名 | 2 |
允许应用广播短信息接收通知。 对第三方应用不可用。 |
BROADCAST_WAP_PUSH | 签名 | 2 |
允许应用广播WAP推送回执通知。 对第三方应用不可用。 |
CALL_PRIVILEGED | 签名|专用 | 1 |
允许应用调用任何电话号码,包括紧急号码, 而无需通过拨号界面让用户确认正在呼叫。 对第三方应用不可用。 |
CAPTURE_AUDIO_OUTPUT | 签名|专用 | 19 |
允许应用捕获音频输出。 对第三方应用不可用。 |
CHANGE_COMPONENT_ENABLED_STATE | 签名|专用 | 1 |
允许应用改变组件启用状态(而不是其自己的组件)。 对第三方应用不可用。 |
CHANGE_CONFIGURATION | 签名|专用|开发 | 1 | 允许应用修改当前配置,如区域设置。 |
CLEAR_APP_CACHE | 签名|专用 | 1 | 允许应用清除设备上所有已安装应用的缓存。 |
CONTROL_LOCATION_UPDATES | 签名|专用 | 1 |
允许启用/禁止无线模块位置更新提示。 对第三方应用不可用。 |
DELETE_CACHE_FILES | 签名|专用 | 1 | 允许应用删除缓存文件。 |
DIAGNOSTIC | 签名 | 1 |
允许应用将RW转换为诊断资源。 对第三方应用不可用。 |
DUMP | 签名|专用|开发 | 1 |
允许程序从系统服务获取系统dump信息。 对第三方应用不可用。 |
FACTORY_TEST | 签名 | 1 |
允许程序运行工厂测试模式。 对第三方应用不可用。 |
GET_ACCOUNTS_PRIVILEGED | 签名|专用 | 23 | 允许访问帐户服务中的帐户列表。 |
GLOBAL_SEARCH | 签名|专用 | 4 | 此权限用于内容提供程序,以允许全局搜索系统访问其数据。 |
INSTALL_LOCATION_PROVIDER | 签名|专用 | 4 |
允许应用将位置提供程序安装到位置管理器中。 对第三方应用不可用。 |
INSTALL_PACKAGES | 签名|专用 | 1 |
允许应用安装APK。 对第三方应用不可用。 |
INSTANT_APP_FOREGROUND_SERVICE | 签名|开发|立即|应用 | 26 | 允许应用创建前台服务。 |
MANAGE_DOCUMENTS | 签名 | 19 |
允许应用管理访问文档,通常作为文档选取器的一部分。 对第三方应用不可用。 |
MASTER_CLEAR | 签名|专用 | 1 |
允许应用执行软格式化。 对第三方应用不可用。 |
MEDIA_CONTENT_CONTROL | 签名|专用 | 19 |
允许应用知道正在播放的内容并控制其播放。 对第三方应用不可用。 |
MODIFY_PHONE_STATE | 签名|专用 | 1 |
允许修改手机状态。 对第三方应用不可用。 |
MOUNT_FORMAT_FILESYSTEMS | 签名|专用 | 3 |
允许格式可移动存储。 对第三方应用不可用。 |
MOUNT_UNMOUNT_FILESYSTEMS | 签名|专用 | 1 |
允许挂载/卸载可移动存储。 对第三方应用不可用。 |
PACKAGE_USAGE_STATS | 签名|开发|立即|应用 | 23 | 允许应用收集组件使用统计信息。 |
READ_FRAME_BUFFER | 签名|专用 | – |
允许应用读取帧缓存用于屏幕截图。 对第三方应用不可用。 |
READ_INPUT_STATE | 签名 | 1 |
允许应用检索按键和开关的当前状态。 API级别16以后不再建议使用。 对第三方应用不可用。 |
READ_LOGS | 签名|专用|开发 | 1 |
允许应用读取系统底层日志。 对第三方应用不可用。 |
READ_VOICEMAIL | 签名|专用 | 21 | 允许应用读取系统语音邮件。 |
REBOOT | 签名|专用 | 1 |
允许应用重启设备。 对第三方应用不可用。 |
REQUEST_INSTALL_PACKAGES | 签名|应用 | 23 |
允许应用请求安装软件包。 API级别25以后的应用必须拥有此权限才能使用ACTION_INSTALL_PACKAGE。 |
SEND_RESPOND_VIA_MESSAGE | 签名|专用 | 18 |
在通话期间,允许应用(电话)向其他应用发送请求,处理respond-via-message动作。 对第三方应用不可用。 |
SET_ALWAYS_FINISH | 签名|专用|开发 | 1 |
允许应用控制在后台运行时是否立即结束活动。 对第三方应用不可用。 |
SET_ANIMATION_SCALE | 签名|专用|开发 | 1 |
修改全局动画比例因子。 对第三方应用不可用。 |
SET_DEBUG_APP | 签名|专用|开发 | 1 |
设置为Debug应用。 对第三方应用不可用。 |
SET_PREFERRED_APPLICATIONS | 签名|验证 | 1 |
允许应用设置首选应用。 API级别15以后不再建议使用。 |
SET_PROCESS_LIMIT | 签名|专用|开发 | 1 |
允许应用设置可以运行的最大(不需要的)进程数。 对第三方应用不可用。 |
SET_TIME | 签名|专用 | 8 |
允许应用设置系统时间。 对第三方应用不可用。 |
SET_TIME_ZONE | 签名|专用 | 1 |
允许应用设置系统时区。 对第三方应用不可用。 |
SIGNAL_PERSISTENT_PROCESSES | 签名|专用|开发 | 1 |
允许应用请求向所有持久进程发送信号。 对第三方应用不可用。 |
STATUS_BAR | 签名|专用 | 1 |
允许应用打开、关闭、禁用状态栏和图标。 对第三方应用不可用。 |
SYSTEM_ALERT_WINDOW | 签名|应用|开发|预安装 | 1 |
允许应用显示在其他应用上方。 API级别23后不再建议使用。 |
UPDATE_DEVICE_STATS | 签名|专用 | 3 |
允许应用更新设备状态。 对第三方应用不可用。 |
WRITE_APN_SETTINGS | 签名|专用 | 1 |
允许应用写入APN设置并读取现有APN设置的敏感字段。 对第三方应用不可用。 |
WRITE_GSERVICES | 签名|专用 | 1 |
允许应用修改Google服务地图。 对第三方应用不可用。 |
WRITE_SECURE_SETTINGS | 签名|专用|开发 | 3 |
允许应用读写安全系统设置。 对第三方应用不可用。 |
WRITE_SETTINGS | 签名|预安装|应用 | 1 |
允许应用读写系统设置。 API级别23后不再建议使用。 |
WRITE_VOICEMAIL | 签名|专用 | 21 | 允许应用修改删除系统语音邮件。 |
3.4 @hide属性权限
与(Android 将权限分为不同的类型,包括
安装时权限
、
运行时权限
和
特殊权限)
分类概念没有关系。
比如在AndoridManifest.xml 这样申明的, 有明确 @hide标识的, 这里只是分类单独归纳出来,
<!-- @SystemApi @hide Allows an application to mark other applications as harmful -->
<permission android:name="android.permission.SET_HARMFUL_APP_WARNINGS"
android:protectionLevel="XXXXX" />
名称 | 保护等级 | API级别 | 叙述 |
---|---|---|---|
ACCESS_AMBIENT_LIGHT_STATS |
签名|专用|开发 |
– |
允许应用收集环境光状态。 对第三方应用不可用。 |
ACCESS_BROADCAST_RADIO |
签名|专用 |
– |
允许访问广播电台。 对第三方应用不可用。 |
ACCESS_CACHE_FILESYSTEM |
签名|专用 |
– |
允许应用读写缓存分区。 |
ACCESS_CONTENT_PROVIDERS_EXTERNALLY |
签名 |
– |
允许通过ApplicationThread外部访问内容提供程序。 |
ACCESS_DRM_CERTIFICATES |
签名|专用 |
– |
允许应用提供和访问DRM凭证。 对第三方应用不可用。 |
ACCESS_FM_RADIO |
签名|专用 |
– |
允许访问FM。 对第三方应用不可用。 |
ACCESS_IMS_CALL_SERVICE |
签名|专用 |
– |
允许程序使用即时通讯通话服务。 |
ACCESS_INPUT_FLINGER |
签名 |
– |
允许应用访问InputFlinger。 |
ACCESS_INSTANT_APPS |
签名|安装|验证 |
– |
允许访问和管理即时应用。 |
ACCESS_KEYGUARD_SECURE_STORAGE |
签名 |
– |
允许应用访问键盘安全存储。 |
ACCESS_LOWPAN_STATE |
签名|专用 |
– |
允许应用访问LoWPAN。 对第三方应用不可用。 |
ACCESS_MOCK_LOCATION |
签名 |
1 |
允许应用获取模拟定位信息。 |
ACCESS_MTP |
签名|专用 |
– |
允许应用访问MTP-USB内核驱动程序。 仅用于设备端MTP实现。 |
ACCESS_NETWORK_CONDITIONS |
签名|专用 |
– |
允许应用监听网络状态。 对第三方应用不可用。 |
ACCESS_NOTIFICATIONS |
签名|专用|应用 |
– |
允许应用程序读取当前通知集。 |
ACCESS_PDB_STATE |
签名 |
– |
允许查询PersistentDataBlock的状态。 对第三方应用不可用。 |
ACCESS_SHORTCUTS |
签名|文本分类器 |
– |
允许访问所有应用快捷方式。 |
ACCESS_SURFACE_FLINGER |
签名 |
1 |
允许应用访问Android平台上底层的图形显示支持。 对第三方应用不可用。 |
ACCESS_VOICE_INTERACTION_SERVICE |
签名 |
– |
允许应用与当前语音交互服务交互。 |
ACCESS_VR_MANAGER |
签名 |
– |
允许应用访问IVrManager。 |
ACCESS_VR_STATE |
签名|预安装 |
– |
需要通过访问VR-Mode状态和状态更改事件。 |
ACCESS_WIMAX_STATE |
正常 |
– |
允许应用建立或中断WiMAX网络连接。 |
ACTIVITY_EMBEDDING |
签名|专用|开发 |
– |
允许应用嵌入其他Activity。 |
ALLOCATE_AGGRESSIVE |
签名|专用 |
– |
允许应用分配磁盘空间。 对第三方应用不可用。 |
ALLOW_ANY_CODEC_FOR_PLAYBACK |
签名|专用 |
– |
允许应用在解码播放时使用任何媒体解码器。 |
ASEC_ACCESS |
签名 |
– |
允许应用访问ASEC无损API。 |
ASEC_CREATE |
签名 |
– |
允许创建ASEC卷。 |
ASEC_DESTROY |
签名 |
– |
允许销毁ASEC卷。 |
ASEC_MOUNT_UNMOUNT |
签名 |
– |
允许装载/卸载ASEC卷。 |
ASEC_RENAME |
签名 |
– |
允许为ASEC卷改名。 |
BACKUP |
签名|专用 |
– |
允许应用控制备份和还原过程。 对第三方应用不可用。 |
BIND_AUTOFILL_FIELD_CLASSIFICATION_SERVICE |
签名 |
– |
允许应用访问AutofillFieldClassificationService。 确保只有系统可以绑定到它。 对第三方应用不可用。 |
BIND_AUTOFILL |
签名 |
– |
允许应用绑定自动填充。 |
BIND_CACHE_QUOTA_SERVICE |
签名 |
– |
允许应用访问CacheQuotaService。 对第三方应用不可用。 |
BIND_COMPANION_DEVICE_MANAGER_SERVICE |
签名 |
– |
允许应用访问CompanionDeviceManager。 确保只有系统可以绑定到它。 |
BIND_CONNECTION_SERVICE |
签名|专用 |
– |
允许应用绑定ConnectionService。 |
BIND_DIRECTORY_SEARCH |
签名|专用 |
– |
允许应用搜索联系人目录。这只能由ContactsProvider使用。 对第三方应用不可用。 |
BIND_EUICC_SERVICE |
签名 |
– |
允许应用调用EuiccService。 确保只有系统可以绑定到它。 |
BIND_IMS_SERVICE |
签名|专用 |
– |
允许应用调用ImsService。 确保只有系统可以绑定到它。 |
BIND_INTENT_FILTER_VERIFIER |
签名 |
– |
允许过滤接收器。 确保只有系统可以绑定到它。 |
BIND_JOB_SERVICE |
签名 |
– |
允许应用绑定任务服务。 |
BIND_KEYGUARD_APPWIDGET |
签名|专用 |
– |
允许在键盘添加小部件。 |
BIND_NETWORK_RECOMMENDATION_SERVICE |
签名 |
– |
允许系统绑定到发现的网络推荐服务。 |
BIND_NOTIFICATION_ASSISTANT_SERVICE |
签名 |
– |
允许应用访问NotificationAssistantService。 确保只有系统可以绑定到它。 |
BIND_PACKAGE_VERIFIER |
签名 |
– |
包验证接收器必要。 确保只有系统可以绑定到它。 |
BIND_PRINT_RECOMMENDATION_SERVICE |
签名 |
– |
允许应用访问RecommendationService。 确保只有系统可以绑定到它。 |
BIND_PRINT_SPOOLER_SERVICE |
签名 |
– |
允许应用访问PrintSpooler。 确保只有系统可以绑定到它。 |
BIND_REMOTE_DISPLAY |
签名 |
– |
允许应用访问RemoteDisplayProvider。 确保只有系统可以绑定到它。 |
BIND_RESOLVER_RANKER_SERVICE |
签名 |
– |
允许应用扩展ResolverRankerService。 确保只有系统可以绑定到它。 |
BIND_ROUTE_PROVIDER |
签名 |
– |
允许应用访问MediaRouteService。 确保只有系统可以绑定到它。 |
BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE |
签名 |
– |
允许应用访问RuntimePermissionPresenterService。 确保只有系统可以绑定到它。 |
BIND_SETTINGS_SUGGESTIONS_SERVICE |
签名 |
– |
允许应用绑定到建议服务。 |
BIND_SOUND_TRIGGER_DETECTION_SERVICE |
签名 |
– |
允许服务检测声音。 |
BIND_TELEPHONY_DATA_SERVICE |
签名 |
– |
允许应用使用电话数据服务。 确保只有系统可以绑定到它。 |
BIND_TELEPHONY_NETWORK_SERVICE |
签名 |
– |
允许应用调用NetworkService。 确保只有系统可以绑定到它。 |
BIND_TEXTCLASSIFIER_SERVICE |
签名 |
– |
允许应用访问TextClassifierService。 确保只有系统可以绑定到它。 对第三方应用不可用。 |
BIND_TRUST_AGENT |
签名 |
– |
允许应用访问TrustAgentService。 确保只有系统可以绑定到它。 |
BIND_TV_REMOTE_SERVICE |
签名|专用 |
– |
允许应用访问TvRemoteProvider。 确保只有系统可以绑定到它。 对第三方应用不可用。 |
BLUETOOTH_MAP |
签名 |
– |
控制对仅用于蓝牙的电子邮件提供商的访问。 |
BLUETOOTH_STACK |
签名 |
– |
允许蓝牙堆栈访问文件。 只能由蓝牙APK使用。 |
BRICK |
签名 |
– |
允许应用禁用手机。 对第三方应用不可用。 |
BRIGHTNESS_SLIDER_USAGE |
签名|专用|开发 |
– |
允许应用收集亮度滑块更改信息。 对第三方应用不可用。 |
BROADCAST_NETWORK_专用 |
签名|专用 |
– |
允许应用广播专用网络请求。 对第三方应用不可用。 |
C2D_MESSAGE |
签名 |
– |
C2DM权限。 |
CACHE_CONTENT |
签名 |
– |
允许应用缓存内容。 对第三方应用不可用。 |
CAMERA_DISABLE_TRANSMIT_LED |
签名|专用 |
– |
允许禁用应用使用相机时正常打开的传输指示灯LED。 |
CAMERA_SEND_SYSTEM_EVENTS |
签名|专用 |
– |
允许发送有关系统范围内事件的照相机服务通知。 |
CAPTURE_AUDIO_HOTWORD |
签名|专用 |
– |
允许应用捕获音频进行Hotword检测。 对第三方应用不可用。 |
CAPTURE_SECURE_VIDEO_OUTPUT |
签名|专用 |
– |
允许应用捕获安全视频输出。 对第三方应用不可用。 |
CAPTURE_TV_INPUT |
签名|专用 |
– |
允许捕获一帧电视输入硬件。 对第三方应用不可用。 |
CAPTURE_VIDEO_OUTPUT |
签名|专用 |
– |
允许应用捕获视频输出。 对第三方应用不可用。 |
CARRIER_FILTER_SMS |
签名|专用 |
– |
允许应用筛选特定运营商的短信。 |
CHANGE_ACCESSIBILITY_VOLUME |
签名 |
– |
允许应用更改辅助功能卷。 |
CHANGE_APP_IDLE_STATE |
签名|专用 |
– |
允许应用更改空闲状态。 对第三方应用不可用。 |
CHANGE_BACKGROUND_DATA_SETTING |
签名 |
– |
允许应用更改后台数据设置。 对第三方应用不可用。 |
CHANGE_DEVICE_IDLE_TEMP_WHITELIST |
签名|专用 |
– |
允许应用访问网络和获取唤醒锁。 对第三方应用不可用。 |
CHANGE_HDMI_CEC_ACTIVE_SOURCE |
签名|专用 |
– |
允许应用更改HDMI-CEC活动源。 对第三方应用不可用。 |
CHANGE_LOWPAN_STATE |
签名|专用 |
– |
允许应用更改LoWPAN状态。 对第三方应用不可用。 |
CHANGE_OVERLAY_PACKAGES |
签名|专用 |
– |
允许应用更改资源覆盖的优先级。 |
CHANGE_WIMAX_STATE |
正常 |
– |
允许应用更改WiMAX状态。 |
CLEAR_APP_GRANTED_URI_PERMISSIONS |
签名 |
– |
允许应用清除其他应用的URI权限。 对第三方应用不可用。 |
CLEAR_APP_USER_DATA |
签名|专用 |
1 |
允许应用清除设备上所有已安装应用的用户数据。 |
CONFIGURE_DISPLAY_BRIGHTNESS |
签名|专用|开发 |
– |
允许应用修改亮度。 |
CONFIGURE_DISPLAY_COLOR_MODE |
签名 |
– |
允许应用控制颜色模式。 对第三方应用不可用。 |
CONFIGURE_WIFI_DISPLAY |
签名 |
– |
允许应用配置并连接到WiFi显示器。 |
CONFIRM_FULL_BACKUP |
签名 |
– |
允许包启动安全完整备份确认UI。 确保只有系统可以绑定到它。 |
CONNECTIVITY_INTERNAL |
签名|专用 |
– |
允许应用使用ConnectivityManager专用API。 |
CONNECTIVITY_USE_RESTRICTED_NETWORKS |
签名|专用 |
– |
允许内部用户使用受限网络。 |
CONTROL_DISPLAY_BRIGHTNESS |
签名 |
– |
允许应用控制系统亮度。 |
CONTROL_DISPLAY_SATURATION |
签名|专用 |
– |
允许应用控制颜色饱和度。 |
CONTROL_INCALL_EXPERIENCE |
签名|专用 |
– |
允许应用控制通话体验。 |
CONTROL_KEYGUARD |
签名 |
– |
允许应用控制键盘。 |
CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS |
签名|专用 |
– |
允许应用控制远程动画。 对第三方应用不可用。 |
CONTROL_VPN |
签名|专用 |
– |
允许应用控制VPN。 对第三方应用不可用。 |
CONTROL_WIFI_DISPLAY |
签名 |
– |
允许应用控制WiFi显示器。 |
COPY_PROTECTED_DATA |
签名 |
– |
默认容器服务必要。 |
CREATE_USERS |
签名 |
– |
允许应用创建用户。 对第三方应用不可用。 |
CRYPT_KEEPER |
签名|专用 |
– |
保护访问加密方法。 |
DELETE_PACKAGES |
签名|专用 |
– |
允许应用删除包。 |
DEVICE_POWER |
签名 |
– |
允许访问底层电源管理。 对第三方应用不可用。 |
DISABLE_HIDDEN_API_CHECKS |
签名 |
– |
允许在启动进程时禁用隐藏的API检查。 对第三方应用不可用。 |
DISABLE_INPUT_DEVICE |
签名 |
– |
允许应用禁用/启用输入设备。 |
DISPATCH_NFC_MESSAGE |
签名|专用 |
– |
允许NFC堆栈向应用发送NFC消息。 |
DISPATCH_PROVISIONING_MESSAGE |
签名|专用 |
– |
允许受信应用管理其他应用设置。 |
DVB_DEVICE |
签名|专用 |
– |
允许TvInputService访问DVB设备。 对第三方应用不可用。 |
FILTER_EVENTS |
签名 |
– |
允许应用注册输入过滤器。 |
FORCE_BACK |
签名 |
– |
允许应用强制使用back后退按键,无论Activity是否在顶层。 对第三方应用不可用。 |
FORCE_PERSISTABLE_URI_PERMISSIONS |
签名 |
– |
允许应用更改授予其他应用的持久URI权限的状态。 对第三方应用不可用。 |
FORCE_STOP_PACKAGES |
签名|专用 |
– |
允许应用调用forceStopPackage。 |
FRAME_STATS |
签名 |
– |
允许应用收集帧统计信息。 |
FREEZE_SCREEN |
签名 |
– |
允许应用暂时冻结屏幕以进行全屏切换。 |
GET_APP_GRANTED_URI_PERMISSIONS |
签名 |
– |
允许应用获取其他应用的URI权限。 对第三方应用不可用。 |
GET_APP_OPS_STATS |
签名|专用|开发 |
– |
允许应用收集应用操作统计信息。 对第三方应用不可用。 |
GET_DETAILED_TASKS |
签名 |
– |
允许应用读取任务详细。 |
GET_INTENT_SENDER_INTENT |
签名 |
– |
允许应用调用PendingIntent.getIntent()。 |
GET_PASSWORD |
签名 |
– |
允许取得用户的密码。 |
GET_PROCESS_STATE_AND_OOM_SCORE |
签名|专用|开发 |
– |
允许应用查询进程状态和当前OOM调整分数。 对第三方应用不可用。 |
GET_TOP_ACTIVITY_INFO |
签名 |
– |
允许应用取得顶层Acitivty信息。 对第三方应用不可用。 |
GLOBAL_SEARCH_CONTROL |
签名 |
– |
允许访问全局搜索。 |
GRANT_RUNTIME_PERMISSIONS |
签名|安装|验证 |
– |
允许应用授予特定权限。 |
HARDWARE_TEST |
签名 |
– |
访问硬件辅助设备,用于硬件测试。 对第三方应用不可用。 |
HDMI_CEC |
签名|专用 |
– |
允许HDMI-CEC服务访问设备和配置文件。这只能由HDMI-CEC服务使用。 对第三方应用不可用。 |
HIDE_NON_SYSTEM_OVERLAY_WINDOWS |
签名|安装 |
– |
允许应用隐藏非系统覆盖窗口。 对第三方应用不可用。 |
INJECT_EVENTS |
签名 |
– |
允许访问本程序的底层事件,获取按键、轨迹球的事件流。 对第三方应用不可用。 |
INSTALL_GRANT_RUNTIME_PERMISSIONS |
签名|安装|验证 |
– |
允许应用请求在安装时授予某些运行时权限。 |
INSTALL_PACKAGE_UPDATES |
签名|专用 |
– |
允许应用安装更新。 对第三方应用不可用。 |
INSTALL_SELF_UPDATES |
签名|专用 |
– |
允许应用安装自我更新。 对第三方应用不可用。 |
INTENT_FILTER_VERIFICATION_AGENT |
签名|专用 |
– |
允许过滤Intent。 |
INTERACT_ACROSS_USERS_FULL |
签名|安装 |
– |
允许应用与用户互动。 |
INTERACT_ACROSS_USERS |
签名|专用|开发 |
– |
允许应用与用户互动。 对第三方应用不可用。 |
INTERNAL_DELETE_CACHE_FILES |
签名 |
– |
允许应用删除缓存文件。 |
INTERNAL_SYSTEM_WINDOW |
签名 |
– |
允许应用打开系统用户界面。 对第三方应用不可用。 |
INVOKE_CARRIER_SETUP |
签名|专用 |
– |
允许应用调用载波设置流。 对第三方应用不可用。 |
KILL_UID |
签名|installer |
– |
允许应用杀死UID。 对第三方应用不可用。 |
LAUNCH_TRUST_AGENT_SETTINGS |
签名|专用 |
– |
允许应用启动信任代理设置活动。 |
LOCAL_MAC_ADDRESS |
签名|专用 |
– |
允许读取Wifi和蓝牙的MAC地址。 |
LOCATION_HARDWARE |
签名|专用 |
18 |
允许应用使用硬件位置功能,如地理围栏API。 对第三方应用不可用。 |
LOOP_RADIO |
签名|专用 |
– |
允许应用访问循环无线电设备。 |
MANAGE_ACTIVITY_STACKS |
签名|专用|开发 |
– |
允许应用管理Activity堆栈。 |
MANAGE_APP_OPS_MODES |
签名|安装|验证 |
– |
允许更新用户应用操作模式。 对第三方应用不可用。 |
MANAGE_APP_OPS_RESTRICTIONS |
签名|安装 |
– |
允许更新用户应用操作限制。 对第三方应用不可用。 |
MANAGE_APP_TOKENS |
签名 | – |
允许应用在窗口管理器中管理应用Tokens。 |
MANAGE_AUDIO_POLICY |
签名 |
– |
允许音频策略管理。 |
MANAGE_AUTO_FILL |
签名 |
– |
允许应用管理自动填充会话。 对第三方应用不可用。 |
MANAGE_BIND_INSTANT_SERVICE |
签名 |
– |
允许管理系统是否可以绑定到即时应用提供的服务。 |
MANAGE_BLUETOOTH_WHEN_PERMISSION_REVIEW_REQUIRED |
签名 |
– |
允许在权限检查模式下对蓝牙状态进行内部管理。 对第三方应用不可用。 |
MANAGE_CA_CERTIFICATES |
签名|专用 |
– |
允许应用安装/卸载CA凭证。 |
MANAGE_CAMERA |
签名 |
– |
允许对摄像头框架进行内部管理。 |
MANAGE_CARRIER_OEM_UNLOCK_STATE |
签名|专用 |
– |
允许读取和启用/禁用运营商状态允许的OEM解锁。 对第三方应用不可用。 |
MANAGE_DEVICE_ADMINS |
签名|专用 |
– |
允许以管理员身份添加/删除其他应用。 对第三方应用不可用。 |
MANAGE_FINGERPRINT |
签名|专用 |
– |
允许应用管理指纹模板。 |
MANAGE_IPSEC_TUNNELS |
签名|应用 |
– |
允许应用创建管理IPsec通道。 仅对授权应用可用。 |
MANAGE_LOWPAN_INTERFACES |
签名|专用 |
– |
允许应用注册/卸载LoWPAN。 对第三方应用不可用。 |
MANAGE_MEDIA_PROJECTION |
签名 |
– |
允许应用程序投影会话。 对第三方应用不可用。 |
MANAGE_NETWORK_POLICY |
签名 |
– |
允许应用管理网络策略。 |
MANAGE_NOTIFICATIONS |
签名 |
– |
允许修改“勿扰”规则和策略。 |
MANAGE_PROFILE_AND_DEVICE_OWNERS |
签名 |
– |
允许应用管理个人资料和设备所有者。 |
MANAGE_SCOPED_ACCESS_DIRECTORY_PERMISSIONS |
签名 |
– |
允许应用更改用户授予或拒绝的作用域访问目录请求的状态。 对第三方应用不可用。 |
MANAGE_SENSORS |
签名 |
– |
允许对传感器框架进行内部管理。 |
MANAGE_SLICE_PERMISSIONS |
签名 |
– |
允许SysUI管理用户授权。 |
MANAGE_SOUND_TRIGGER |
签名|专用 |
– |
允许访问声音触发API。 |
MANAGE_SUBSCRIPTION_PLANS |
签名|专用 |
– |
允许应用管理运营商订阅计划。 |
MANAGE_USB |
签名|专用 |
– |
允许应用管理USB设备的首选项和权限。 |
MANAGE_USER_OEM_UNLOCK_STATE |
签名|专用 |
– |
允许读取和启用/禁用用户状态允许的OEM解锁。 对第三方应用不可用。 |
MANAGE_USERS |
签名|专用 |
– |
允许应用管理用户。 对第三方应用不可用。 |
MANAGE_VOICE_KEYPHRASES |
签名|专用 |
– |
允许应用注册Hotword. 对第三方应用不可用。 |
MANAGE_WIFI_WHEN_PERMISSION_REVIEW_REQUIRED |
签名 |
– |
允许在权限检查模式下对Wi-Fi连接状态进行管理。 对第三方应用不可用。 |
MODIFY_ACCESSIBILITY_DATA |
签名 |
– |
允许应用修改其他应用的辅助功能。 |
MODIFY_APPWIDGET_BIND_PERMISSIONS |
签名|专用 |
– |
允许应用访问AppWidgets。 |
MODIFY_AUDIO_ROUTING |
签名|专用 |
– |
允许应用修改音频路由和覆盖策略。 对第三方应用不可用。 |
MODIFY_CELL_BROADCASTS |
签名|专用 |
– |
允许应用通过内容提供程序修改单元广播。 对第三方应用不可用。 |
MODIFY_DAY_NIGHT_MODE |
签名|专用 |
– |
允许修改夜晚模式。 |
MODIFY_PARENTAL_CONTROLS |
签名|专用 |
– |
允许应用修改家长控制。 对第三方应用不可用。 |
MODIFY_QUIET_MODE |
签名|专用 |
– |
允许应用打开/关闭静音模式。 对第三方应用不可用。 |
MODIFY_THEME_OVERLAY |
签名 |
– |
允许应用覆盖正在使用的主题。 对第三方应用不可用。 |
MOVE_PACKAGE |
签名|专用 |
– |
允许应用移动已安装包的位置。 |
NET_ADMIN |
签名 |
– |
允许访问配置网络接口、配置/使用IPSec等。 |
NET_TUNNELING |
签名 |
– |
允许低级别访问tun tap驱动程序。 |
NETWORK_BYPASS_PRIVATE_DNS |
签名 |
– |
允许应用绕过专用DNS。 对第三方应用不可用。 |
NETWORK_SETTINGS |
签名 |
– |
允许应用设置和SystemUI调用网络服务。 对第三方应用不可用。 |
NETWORK_SETUP_WIZARD |
签名|设置 |
– |
允许设置向导调用网络服务。 对第三方应用不可用。 |
NETWORK_STACK |
签名 |
– |
允许应用访问网络堆栈服务。 对第三方应用不可用。 |
NFC_HANDOVER_STATUS |
签名|专用 |
– |
允许从WiFi和蓝牙发送和接收切换传输状态。 |
NOTIFICATION_DURING_SETUP |
签名|专用 |
– |
允许应用在设置设备之前显示通知。 对第三方应用不可用。 |
NOTIFY_PENDING_SYSTEM_UPDATE |
签名|专用 |
– |
允许系统更新服务通知设备所有者挂起的更新。 对第三方应用不可用。 |
NOTIFY_TV_INPUTS |
签名|专用 |
– |
允许应用通过发送广播通知电视输入。 对第三方应用不可用。 |
OBSERVE_APP_USAGE |
签名|专用 |
– |
允许应用观察应用的使用时间。 |
OBSERVE_GRANT_REVOKE_PERMISSIONS |
签名|专用 |
– |
允许应用观察权限更改。 |
OEM_UNLOCK_STATE |
签名 |
– |
允许启用/禁用OEM解锁。 对第三方应用不可用。 |
OPEN_APPLICATION_DETAILS_OPEN_BY_DEFAULT_PAGE |
签名 |
– |
允许应用直接打开详细屏幕内的“默认”页面。 对第三方应用不可用。 |
OVERRIDE_WIFI_CONFIG |
签名|专用 |
– |
允许应用修改任何WiFi配置。 对第三方应用不可用。 |
PACKAGE_VERIFICATION_AGENT |
签名|专用 |
– |
包验证程序必要。 |
PACKET_KEEPALIVE_OFFLOAD |
签名|专用 |
– |
允许系统应用访问硬件包卸载功能。 |
PEERS_MAC_ADDRESS |
签名|设置 |
– |
允许访问Wifi和蓝牙配对设备的MAC地址。 |
PERFORM_CDMA_PROVISIONING |
签名|专用 |
– |
允许应用执行CDMA OTA配置 |
PERFORM_SIM_ACTIVATION |
签名|专用 |
– |
允许应用激活SIM。 |
PROVIDE_RESOLVER_RANKER_SERVICE |
签名|专用 |
– |
允许应用扩展ResolverRankerService。 |
PROVIDE_TRUST_AGENT |
签名|专用 |
– |
允许应用提供信任代理。 |
QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT |
签名 |
– |
允许应用查询DO_NOT_ASK_CREDENTIALS_ON_BOOT的应用。 |
QUERY_TIME_ZONE_RULES |
签名|专用 |
– |
允许应用查询当前时区规则。 |
READ_BLOCKED_NUMBERS |
签名 |
– |
允许读取被拦截号码。 |
READ_CONTENT_RATING_SYSTEMS |
签名|专用 |
– |
允许应用读取TvContentRatingSystemInfo。 对第三方应用不可用。 |
READ_DREAM_STATE |
签名|专用 |
– |
允许应用读取休眠设置。 |
READ_INSTALL_SESSIONS |
正常 |
– |
允许应用读取安装会话。 对第三方应用不可用。 |
READ_LOWPAN_CREDENTIAL |
签名|专用 |
– |
允许应用读取LoWPAN凭证。 对第三方应用不可用。 |
READ_NETWORK_USAGE_HISTORY |
签名|专用 |
– |
允许应用读取特定网络和历史使用情况。 |
READ_OEM_UNLOCK_STATE |
签名|专用 |
– |
允许读取OEM解锁状态。 对第三方应用不可用。 |
READ_PRECISE_PHONE_STATE |
签名|专用 |
– |
允许只读访问精确的电话状态。 |
READ_PRINT_SERVICE_RECOMMENDATIONS |
签名|预安装 |
– |
允许应用获取当前推荐的打印服务。 |
READ_PRINT_SERVICES |
签名|预安装 |
– |
允许应用获取已安装和启用的打印服务。 |
READ_PRIVILEGED_PHONE_STATE |
签名|专用 |
– |
允许读取专用电话状态。 对第三方应用不可用。 |
READ_RUNTIME_PROFILES |
签名|专用 |
– |
允许应用读取其他应用的运行时配置文件。 对第三方应用不可用。 |
READ_SEARCH_INDEXABLES |
签名|专用 |
– |
允许应用读取可索引数据。 |
READ_SYSTEM_UPDATE_INFO |
签名 |
– |
允许应用读取系统更新信息。 |
READ_WALLPAPER_INTERNAL |
签名|专用 |
– |
允许应用读取系统壁纸图片。 对第三方应用不可用。 |
READ_WIFI_CREDENTIAL |
签名|专用 |
– |
允许应用读取Wi-Fi凭证。 对第三方应用不可用。 |
REAL_GET_TASKS |
签名|专用 |
– |
允许应用使用新版本GET_TASKS。 |
RECEIVE_BLUETOOTH_MAP |
签名|专用 |
– |
允许应用监视传入的蓝牙地图信息。 |
RECEIVE_DATA_ACTIVITY_CHANGE |
签名|专用 |
– | |
RECEIVE_EMERGENCY_BROADCAST |
签名|专用 |
– |
允许应用接收紧急蜂窝广播消息。 对第三方应用不可用。 |
RECEIVE_MEDIA_RESOURCE_USAGE |
签名|专用 |
– |
允许接收媒体资源的使用。 |
RECEIVE_STK_COMMANDS |
签名|专用 |
– |
允许应用接收STK相关的命令。 |
RECEIVE_WIFI_CREDENTIAL_CHANGE |
签名|专用 |
– |
允许系统应用接收WiFi凭证更改广播。 对第三方应用不可用。 |
RECOVER_KEYSTORE |
签名|专用 |
– |
允许应用管理RecoveryController。 对第三方应用不可用。 |
RECOVERY |
签名|专用 |
– |
允许应用还原系统。 |
REGISTER_CALL_PROVIDER |
签名|专用 |
– |
允许应用注册通话提供者。 |
REGISTER_CONNECTION_MANAGER |
签名|专用 |
– |
允许应用注册连接管理。 |
REGISTER_SIM_SUBSCRIPTION |
签名|专用 |
– |
允许应用注册SIM订阅。 |
REGISTER_WINDOW_MANAGER_LISTENERS |
签名 |
– |
允许从窗口管理器注册事件的侦听器。 |
REMOTE_AUDIO_PLAYBACK |
签名 |
– |
允许注册远程音频播放。 |
REMOVE_DRM_CERTIFICATES |
签名|专用 |
– |
允许应用移除DRM凭证。 对第三方应用不可用。 |
REMOVE_TASKS |
签名 |
– |
允许应用删除任务。 |
REQUEST_NETWORK_SCORES |
签名|设置 |
– |
允许应用从NetworkScoreService请求网络建议和分数。 对第三方应用不可用。 |
RESET_FINGERPRINT_LOCKOUT |
签名 |
– |
允许应用重置指纹尝试计数器。 |
RESET_SHORTCUT_MANAGER_THROTTLING |
签名 |
– |
允许应用重置快捷方式。 |
RESTRICTED_VR_ACCESS |
签名|预安装 |
– |
允许访问VR-API。 |
RETRIEVE_WINDOW_CONTENT |
签名|专用 |
– |
允许应用检索活动窗口的内容。 |
RETRIEVE_WINDOW_TOKEN |
签名 |
– |
允许应用从辅助功能管理器检索窗口令牌。 |
REVOKE_RUNTIME_PERMISSIONS |
签名|安装|验证 |
– |
允许应用撤消特定权限。 |
RUN_IN_BACKGROUND |
签名 |
– |
允许应用在后台运行。 |
SCORE_NETWORKS |
签名|专用 |
– |
允许应用程序充当网络记分员。 |
SEND_EMBMS_INTENTS |
签名|专用 |
– |
允许应用发送EMBMS下载信息。 |
SEND_SHOW_SUSPENDED_APP_DETAILS |
签名 |
– |
允许应用发送显示挂起应用详细。 对第三方应用不可用。 |
SEND_SMS_NO_CONFIRMATION |
签名|专用 |
– |
允许应用在用户未确认一下发送短码消息。 对第三方应用不可用。 |
SERIAL_PORT |
签名|专用 |
– |
允许应用通过SerialManager访问串行端口。 |
SET_ACTIVITY_WATCHER |
签名 |
– |
允许应用监视和控制如何在系统中全局启动活动。 |
SET_DISPLAY_OFFSET |
签名|专用 |
– |
允许应用设置屏幕的显示偏移。 对第三方应用不可用。 |
SET_HARMFUL_APP_WARNINGS |
签名|verifier |
– |
允许应用将其他应用标记为有害。 |
SET_INPUT_CALIBRATION |
签名 |
– |
设置输入校准。 对第三方应用不可用。 |
SET_KEYBOARD_LAYOUT |
签名 |
– |
设置键盘布局。 对第三方应用不可用。 |
SET_MEDIA_KEY_LISTENER |
签名|专用|开发 |
– |
允许应用设置媒体密钥事件侦听器。 |
SET_ORIENTATION |
签名 |
– |
设置横屏。 对第三方应用不可用。 |
SET_POINTER_SPEED |
签名 |
– |
设置点击速度。 对第三方应用不可用。 |
SET_SCREEN_COMPATIBILITY |
签名 |
– |
允许应用更改屏幕兼容性模式。 |
SET_VOLUME_KEY_LONG_PRESS_LISTENER |
签名|专用|开发 |
– |
允许应用设置音量键长按监听器。 |
SET_WALLPAPER_COMPONENT |
签名|专用 |
– |
允许应用设置实时壁纸。 |
SHOW_KEYGUARD_MESSAGE |
签名|专用 |
– |
允许应用解除键盘上的信息。 |
SHUTDOWN |
签名|专用 |
– |
允许关机。 |
START_ANY_ACTIVITY |
签名 |
– |
允许应用启动任何Activity。 |
START_TASKS_FROM_RECENTS |
签名|专用 |
– |
允许应用启动任务。 |
STATSCOMPANION |
签名 |
– |
允许应用管理statcomponent。 对第三方应用不可用。 |
STATUS_BAR_SERVICE |
签名 |
– |
允许应用成为状态栏。 |
STOP_APP_SWITCHES |
签名|专用 |
– |
允许应用停止应用程序切换。 |
STORAGE_INTERNAL |
签名 |
– |
内部存储。 |
SUBSTITUTE_NOTIFICATION_APP_NAME |
签名|专用 |
– |
允许应用替换N以上版本中旁边通知的应用名称。 对第三方应用不可用。 |
SUSPEND_APPS |
签名|专用 |
– |
允许应用挂起其他应用。 |
TABLET_MODE |
签名 |
– |
允许应用查询Tablet模式状态并监视更改。 对第三方应用不可用。 |
TEMPORARY_ENABLE_ACCESSIBILITY |
签名 |
– |
允许应用临时启用可访问性。 |
TEST_BLACKLISTED_PASSWORD |
签名 |
– |
允许测试管理员是否禁止密码。 对第三方应用不可用。 |
TETHER_PRIVILEGED |
签名|专用 |
– |
允许应用更改捆绑状态并捆绑运营商。 对第三方应用不可用。 |
TRIGGER_TIME_ZONE_RULES_CHECK |
签名 |
– |
允许应用修改时区规则。 确保只有系统可以绑定到它。 |
TRUST_LISTENER |
签名 |
– |
允许应用侦听信任更改。 |
TV_INPUT_HARDWARE |
签名|专用 |
– |
允许TvInputService访问基础的电视输入硬件。 |
TV_VIRTUAL_REMOTE_CONTROLLER |
签名|专用 |
– |
电视的虚拟遥控器必要。 对第三方应用不可用。 |
UNLIMITED_SHORTCUTS_API_CALLS |
签名|文本分类器 |
– |
允许无限制地调用快捷方式变异API。 |
UPDATE_APP_OPS_STATS |
签名|专用|安装 |
– |
允许更新应用操作统计信息。 对第三方应用不可用。 |
UPDATE_CONFIG |
签名|专用 |
– |
允许应用启动配置更新。 |
UPDATE_LOCK_TASK_PACKAGES |
签名|设置 |
– |
允许应用在锁定任务模式期间白名单任务。 对第三方应用不可用。 |
UPDATE_LOCK |
签名|专用 |
– |
允许应用持有一个UpdateLock。 |
UPDATE_TIME_ZONE_RULES |
签名|专用 |
– |
允许应用请求系统安装/卸载时区规则。 |
USE_COLORIZED_NOTIFICATIONS |
签名|设置 |
– |
允许应用着色通知。 对第三方应用不可用。 |
USE_DATA_IN_BACKGROUND |
签名 |
– |
允许应用在后台使用数据。 |
USE_RESERVED_DISK |
签名|专用 |
– |
允许应用使用保留的磁盘空间。 对第三方应用不可用。 |
USER_ACTIVITY |
签名|专用 |
– |
允许访问PowerManager.userActivity。 对第三方应用不可用。 |
VIEW_INSTANT_APPS |
签名|预安装 |
– |
允许查看设备上的即时应用。 |
WATCH_APPOPS |
签名 |
– |
允许应用监视更改 和/或 活动状态。 对第三方应用不可用。 |
以上权限都有中文注释和说明,供查阅!