上次更新时间:2025 年 12 月 2 日
2. 设备类型
2.2. 手持设备相关要求
2.2.1. 硬件
如果手持设备实现声明支持任何 64 位 ABI(无论是否支持任何 32 位 ABI),并针对 ActivityManager.isLowRamDevice() 返回 false,则:
- [7.1.4.2/H-2-1] 必须支持 Vulkan 1.1。
2.2.3. 软件
当应用符合所有推广特征时,可以推广应用的实时动态通知。在本文档中,此类通知称为“推广的实时动态通知”。手持设备实现必须按照以下要求,以醒目的方式显示推广的实时动态通知。
如果手持设备实现声明 API 级别为 36.1 或更高级别,则:
[3.8.3.1/H-0-1] 必须在锁定屏幕上的醒目位置显示推广的实时动态通知。
[3.8.3.1/H-0-12] 当与其他通知一起显示时,推广的实时动态通知必须作为浮动通知显示在通知堆栈顶部,且必须显示在彩色通知(其中
setColorized为true)上方。- 当有多个应用符合推广的实时动态通知的条件时,可能会确定在通知栏和锁定屏幕中显示推广的实时动态通知的顺序。
[3.8.3.1/H-0-2] 必须以展开状态显示推广的实时动态通知。
[3.8.3.1/H-0-3] 不得提供任何方式,让用户能够收起上述展开的通知。
[3.8.3.1/H-0-4] 必须在推广的实时动态通知中显示使用
StyleSpan或UnderlineSpan规定的文本内容基本样式(粗体、斜体和下划线)。[3.8.3.1/H-0-5] 在推广的实时动态通知中,必须仅显示标准操作对象(通过
Notification.Action),并且必须隐藏输入框、“回复”按钮和关联操作等非标准操作对象(通过addRemoteInput()和setContextual()),即使通知中包含这些对象也是如此。[3.8.3.1/H-0-6] 必须以紧凑的表示形式(在 SDK 文档中也称为状态条状标签)显示推广的实时动态通知,且其中必须包含
Notification.getSmallIcon()。[3.8.3.1/H-0-7] 在使用紧凑的表示形式时,其他字段都是可选字段。但只要紧凑的表示形式可以展开,就必须显示
Notification.getShortCriticalText()(如有)或Notification.when(如无Notification.getShortCriticalText)。[3.8.3.1/H-0-8] 如有多个推广的实时动态通知,则必须在状态栏中,以紧凑的表示形式显示至少一个。
[3.8.3.1/H-0-9] 当用户点按紧凑的表示形式时,必须显示关联的通知(首选)或打开关联的应用(通过
Notification.contentIntent)。[3.8.3.1/H-0-13] 必须在关联的通知中显示与通知栏中的可见内容完全相同的内容。
[3.8.3.1/H-0-10] 必须提供一种方式,让用户能够为单个应用的通知停用和启用推广显示。
[3.8.3.1/H-0-11] 必须正确呈现所有实时动态通知,包括但不限于不符合或仅部分符合推广特征的非推广实时动态通知。 此类非推广通知必须以非推广状态显示。
2.2.5. 安全模型
如果设备实现声明支持 android.hardware.telephony,则:
- [9.5/H-1-1] 不得将
UserManager.isHeadlessSystemUserMode设置为true。
2.5. Automotive 设备相关要求
2.5.1. 硬件
Automotive 设备实现:
- [7.1.1.1/A-0-3] 必须支持图形缓冲区的 GPU 合成,其大小至少与任何内置屏幕的最高分辨率一样大。
如果 Automotive 设备实现支持 Vulkan,则:
- [7.1.4.2/A-1-1] 必须满足 Android Baseline 2021 配置文件所指定的要求。
如果 Automotive 设备实现声明通过 Configuration.isScreenHdr() 支持高动态范围屏幕,则:
- [7.1.4.5/A-1-1] 必须通告对
EGL_EXT_gl_colorspace_bt2020_pq、EGL_EXT_surface_SMPTE2086_metadata、EGL_EXT_surface_CTA861_3_metadata、VK_EXT_swapchain_colorspace和VK_EXT_hdr_metadata扩展的支持。
Automotive 设备实现:
- [7.1.4.6/A-0-1] 必须通过系统属性
graphics.gpu.profiler.support报告设备是否支持 GPU 性能剖析功能。
如果 Automotive 设备实现通过系统属性 graphics.gpu.profiler.support 声明支持,则:
[7.1.4.6/A-1-1] 必须报告一条符合 Perfetto 文档中定义的 GPU 计数器和 GPU 渲染阶段架构的 protobuf 跟踪记录。
[7.1.4.6/A-1-2] 必须按照
gpu counter trace数据包 proto 为设备的 GPU 计数器报告符合要求的值。[7.1.4.6/A-1-3] 必须按照渲染阶段跟踪记录包 proto 为设备的 GPU 渲染阶段报告符合要求的值。
[7.1.4.6/A-1-4] 必须报告 GPU 频率跟踪点,格式为:power/gpu_frequency。
Automotive 设备实现:
- [7.1.5/A-0-1] 必须支持上游 Android 开源代码所实现的旧应用兼容模式。也就是说,设备实现不得更改启用兼容模式的触发条件或阈值,也不得更改兼容模式本身的行为。
如果 Automotive 设备实现包含在外围设备模式下运行的控制器的 USB 端口,则:
- [7.7.1/A-1-1] 必须实现 Android Open Accessory (AOA) API。
在连接 USB 外围设备期间调用 AudioManager.getDevices() API 时:
[7.8.2.2/A-1-1] 如果 USB 音频终端类型字段为
0x0302,则必须列出设备类型AudioDeviceInfo.TYPE_USB_HEADSET和角色isSink()。[7.8.2.2/A-1-2] 如果 USB 音频终端类型字段为
0x0402,则必须列出设备类型AudioDeviceInfo.TYPE_USB_HEADSET和角色isSink()。[7.8.2.2/A-1-3] 如果 USB 音频终端类型字段为
0x0603,则必须列出设备类型AudioDeviceInfo.TYPE_USB_HEADSET和角色isSink()。[7.8.2.2/A-1-4] 如果 USB 音频终端类型字段为
0x0400,则必须列出设备类型AudioDeviceInfo.TYPE_USB_HEADSET和角色isSink()。
2.5.3. 软件
Automotive 设备实现:
- [3.2.3.1/A-0-2] 必须包含用于处理
ACTION_GET_CONTENT、ACTION_OPEN_DOCUMENT、ACTION_OPEN_DOCUMENT_TREE和ACTION_CREATE_DOCUMENTintent(如 SDK 文档中所述)的应用,并提供一种方式,让用户能够使用DocumentsProviderAPI 访问文档提供程序数据。
如果 Automotive 设备实现的设置应用通过 activity 嵌入实现分屏功能,则:
- [3.2.3.1/A-1-1] 在分屏功能处于开启状态时,必须有一个 activity 用于处理
Settings#ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITYintent。该 activity 必须受android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK保护,并且必须启动从Settings#EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI解析的 intent 的 activity。
如果 Automotive 设备实现允许用户拨打任何类型的电话,则:
[7.4.1.2/A-1-1] 必须声明功能标志
android.software.telecom。[7.4.1.2/A-1-2] 必须实现 Telecom 框架。
2.5.4. 性能与功耗
Automotive 设备实现:
如果 Automotive 设备实现针对 android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS 返回 android.os.Build.VERSION_CODES.U 或更高版本,则:
2.5.5. 安全模型
如果 Automotive 设备实现支持多个用户,则:
如果 Automotive 设备实现支持系统 API VisualQueryDetectionService 或其他查询检测机制,而无需显示麦克风和/或摄像头访问指示,则:
[9.8/A-1-1] 必须确保查询检测服务只能将数据传输到系统、
ContentCaptureService或设备端语音识别服务(由SpeechRecognizer#createOnDeviceSpeechRecognizer()创建)。[9.8/A-1-2] 不得允许将任何音频或视频信息传输到
VisualQueryDetectionService之外(传输到ContentCaptureService或设备端语音识别服务的情况除外)。[9.8/A-1-3] 当设备检测到用户有意与数字助理应用互动时(例如通过摄像头检测用户活跃状态),必须在系统界面中向用户显示通知。
[9.8/A-1-4] 在检测到用户查询后,必须立即显示麦克风指示标志,并在界面中显示检测到的用户查询。
[9.8/A-1-5] 不得允许用户可安装的应用提供可视化查询检测服务。
3. 软件
3.4. Web 兼容性
3.4.1. WebView 兼容性
如果设备实现提供 android.webkit.Webview API 的完整实现,则:
[C-1-3] 对于以 SDK 级别 35 及更低级别为目标平台的应用,WebView 报告的用户代理字符串必须采用以下格式:
Mozilla/5.0 (Linux; Android $(VERSION); \[$(MODEL)\] \[Build/$(BUILD)\]; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile Safari/537.36$(VERSION)字符串的值必须与android.os.Build.VERSION.RELEASE的值相同。$(MODEL)字符串可以为空,但如果不为空,则其值必须与android.os.Build.MODEL的值相同。“Build/$(BUILD)”可以省略,但如果存在,则
$(BUILD)字符串的值必须与android.os.Build.ID的值相同。$(CHROMIUM_VER)字符串的值必须是上游 Android 开源项目中的 Chromium 的版本。设备实现可以在用户代理字符串中省略 Mobile。
3.8. 界面兼容性
3.8.14. 多窗口模式
- [C-1-2] 必须遵从应用在
AndroidManifest.xml文件中设置的android:resizeableActivity(如本 SDK 中所述)。
3.9. 设备管理
3.9.1. 设备配置
3.9.1.2. 受管资料配置
如果设备实现声明 android.software.managed_users,则:
- [C-1-1] 必须声明
android.software.device_admin和实现相应的 API,以便设备政策控制器 (DPC) 应用成为新增受管理资料的所有者。
3.9.4 设备政策管理角色要求
如果设备实现声明 android.software.device_admin或 ,则:android.software.managed_users
- [C-1-1] 必须支持第 9.1 节中定义的设备政策管理角色。可以通过以下方法来定义持有设备政策管理角色的应用:将
config_devicePolicyManagement设为软件包名称。除非应用是预装的,否则软件包名称必须后跟英文冒号 (:) 和签名证书。
3.9.5. 设备政策解决框架
如果设备实现声明 android.software.device_admin或 ,则:android.software.managed_users
- [C-1-1] 必须解决设备政策冲突,如设备政策解决框架中所述。
3.18. 通讯录
自定义本地账号:是指如下原始联系人的账号:仅存储在设备上、不与 AccountManager 中的账号关联,且创建时 ACCOUNT_NAME 和 ACCOUNT_TYPE 列的值都至少有一个为非 null。
如果设备实现使用自定义本地账号,则:
- [C-1-3] 由第三方应用通过默认本地账号插入的原始联系人(即,为
ACCOUNT_NAME和ACCOUNT_TYPE设置 null 值)必须插入自定义本地账号中。
- [C-1-3] 由第三方应用插入的原始联系人(未指定账号)必须插入到设备的默认联系人账号中。如果默认联系人账号为
DEFAULT_ACCOUNT_STATE_LOCAL或DEFAULT_ACCOUNT_STATE_NOT_SET,则必须将这些原始联系人存储在自定义本地账号中。
5. 多媒体兼容性
5.1. 媒体编解码器
5.1.3. 音频编解码器详细信息
| 格式/编解码器 | 详细信息 | 支持的文件类型/容器格式 |
|---|---|---|
| G.711 μ-law 和 A-law | 支持采样率为 8 kHz 的单声道/立体声/5.1 内容 |
|
| MPEG-4 AAC Profile (AAC LC) |
支持单声道/立体声/5.0/5.1 内容,标准采样率为 8-48 kHz。 |
|
| MPEG-4 HE AAC 配置文件 (AAC+) | 支持单声道/立体声/5.0/5.1 内容,标准采样率为 16-48 kHz。 |
|
| MPEG-4 HE AACv2 Profile(增强型 AAC+) |
支持单声道/立体声/5.0/5.1 内容,标准采样率为 16-48 kHz。 |
|
| AAC ELD(增强型低延迟 AAC) | 支持单声道/立体声内容,标准采样率为 16-48 kHz。 |
|
| USAC | 支持单声道/立体声内容,标准采样率为 7.35-48 kHz。 | MPEG-4(.mp4、.m4a) |
| AMR-NB | 4.75-12.2 kbps,采样率为 8 kHz | 3GPP (.3gp) |
| AMR-WB | 有 9 个比特率(介于 6.60-23.85 kbit/s)可供选择,采样率为 16 kHz(如 AMR-WB、自适应多速率 - 宽带语音编解码器中所定义) | 3GPP (.3gp) |
| FLAC | 对于编码器和解码器:必须至少支持单声道和立体声模式。必须支持高达 192 kHz 的采样率;必须支持 16 位和 24 位分辨率。FLAC 24 位音频数据处理必须具有浮点音频配置。 |
|
| MP3 | 单声道/立体声 8-320 Kbps 恒定 (CBR) 或可变比特率 (VBR) |
|
| MIDI | MIDI 类型 0 和 1。DLS 版本 1 和 2。XMF 和 Mobile XMF。支持铃声格式 RTTTL/RTX、OTA 和 iMelody |
|
| Vorbis | 解码:支持单声道、立体声、5.0 和 5.1 内容,采样率为 8000、12000、16000、24000 和 48000 Hz。
编码:支持单声道和立体声内容,采样率为 8000、12000、16000、24000 和 48000 Hz。 |
|
| PCM/WAVE | PCM 编解码器必须支持 16 位线性 PCM 和 16 位浮点。WAVE 提取器必须支持 16 位、24 位、32 位线性 PCM 和 32 位浮点(比特率最高可达到硬件上限)。必须支持 8 kHz 至 192 kHz 的采样率。 | WAVE (.wav) |
| Opus | 解码:支持单声道、立体声、5.0 和 5.1 内容,采样率为 8000、12000、16000、24000 和 48000 Hz。
编码:支持单声道和立体声内容,采样率为 8000、12000、16000、24000 和 48000 Hz。 |
|
5.5. 音频播放
5.5.4. 音频分流 (offload)
如果设备实现支持音频分流播放,则:
- [C-SR-2] 强烈建议针对 AAC、MP3、OPUS 和 PCM 格式实现分流播放。
5.6. 音频播放
| 设备和声明 | RTL(毫秒) | MAD(毫秒) | 环回路径 |
|---|---|---|---|
| 手持 | 扬声器/麦克风、模拟 3.5 毫米(如果支持)、USB(如果支持) | ||
| >= MPC_T (13) | 80 | 15 | 至少一条路径 |
| FEATURE_AUDIO_LOW_LATENCY | 50 | 10 | 至少一条路径 |
| FEATURE_AUDIO_PRO | 25 | 5 | 至少一条路径 |
| FEATURE_AUDIO_PRO | 20 | 5 | 模拟(如果支持) |
| FEATURE_AUDIO_PRO | 25 | 5 | USB(如果不支持模拟) |
5.12. HDR 视频
如果设备实现包含支持 FEATURE_HdrEditing 的编解码器,则设备:
HDR 显示屏要求
如果设备实现接收使用 ADATASPACE_TRANSFER_HLG 编码的缓冲区内容,并且该内容通过 SurfaceControl.Transaction#setBuffer 发送到显示屏,则:
- [C-8-1] 必须遵循 BT. 2408-7 中的图像白色建议,并且显示内容时仅最多比 SDR 内容大 4.926 倍。
6. 开发者工具和选项兼容性
6.1. 开发者工具
设备实现:
- [C-0-10] 记录时不得有任何遗漏,并使以下事件可供
cmd statsshell 命令和StatsManager系统 API 类访问和使用。- ActivityForegroundStateChanged
- AnomalyDetected
- AppBreadcrumbReported
- AppCrashOccurred
- AppStartOccurred
- BatteryLevelChanged
- BatterySaverModeStateChanged
- BleScanResultReceived
- BleScanStateChanged
- ChargingStateChanged
- DeviceIdleModeStateChanged
- ForegroundServiceStateChanged
- GpsScanStateChanged
- InputDeviceUsageReported
- JobStateChanged
- KeyboardConfigured
- KeyboardSystemsEventReported
- PluggedStateChanged
- PressureStallInformation
- ScheduledJobStateChanged
- ScreenStateChanged
- SyncStateChanged
- SystemElapsedRealtime
- TouchpadUsage
- UidProcessStateChanged
- WakelockStateChanged
- WakeupAlarmOccurred
- WifiLockStateChanged
- WifiMulticastLockStateChanged
- WifiScanStateChanged
7. 硬件兼容性
7.1. 显示和图形
7.1.3. 屏幕方向
如果设备实现支持两种屏幕方向,则:
- [C-1-1] 必须支持按应用动态设置屏幕方向(纵向或横向)。也就是说,设备必须遵从应用对特定屏幕方向的要求。
7.3. 传感器
7.3.5. 气压计
如果设备实现声明了系统属性 sensor.barometer.high_quality.implemented,则:
[C-2-1] 必须报告 300 hPa 到 1100 hPa 之间的压力测量结果,绝对精度为 +/- 1 hPa。
[C-2-2] 在 100 hPa 范围内,相对精度必须为 0.15 hPa,相当于在海平面上 1000 m 左右的变化误差不超过 1 m 左右。
[C-2-3] 当用户点按、按下或挤压设备时,必须在 +/- 0.5 hPa 范围内保持稳定。
[C-2-4] 当用户手持设备或将设备放在口袋中行走时,必须在 +/- 0.15 hPa 范围内保持稳定。
[C-2-5] 对于超过 5 Hz 的启用,平滑时间常数不得超过 300 ms,并且平滑在传感器多次启用之间不得出现泄漏。
[C-2-6] 在受到蓝牙、移动网络连接或 Wi-Fi 等常见来源引入的日常照明和射频的影响时,必须保持在 +/- 0.15 hPa 以内。
7.3.14. 自定义传感器 [新增部分]
为了提供差异化体验,设备实现可以包含 Android 或 Wear OS 未涵盖的其他传感器,预加载应用可以访问这些传感器。
对于这类传感器,传感器 ID 具有以下特性:
- [C-0-1] 必须高于 65536。
如果自定义传感器用于健康或健身相关用途,则:
- [C-0-2] 必须由平台权限或系统权限进行保护。
7.4. 数据连接
7.4.3. 蓝牙
如果设备实现声明 FEATURE_BLUETOOTH_LE,则:
如果设备实现声明 FEATURE_BLUETOOTH_LE_CHANNEL_SOUNDING,则:
[C-11-1] 必须报告硬件功能标志
android.hardware.bluetooth_le.channel_sounding。[C-11-2] 必须在 1 米的距离上使用累积分布函数计算得出的第 90 个百分位处将报告精确到 +/- 0.5 米以内。
7.5. 相机
如果设备实现包含至少一个摄像头,并且预安装的摄像头应用处理 MediaStore.ACTION_MOTION_PHOTO_CAPTURE 或 MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE intent,则:
[C-1-4] 必须确保在处理这些 intent 时,预安装的摄像头应用负责先移除图像元数据中的用户位置,再将其发送至接收应用(如果接收应用没有
ACCESS_FINE_LOCATION)。[C-1-5] 必须确保返回的动态照片使用动态照片格式 1.0 规范。
9. 安全模型兼容性
9.1. 权限
如果设备包含公开与健康相关的生物识别数据(例如心率或体表温度)的数据传感器,则这些生物识别数据:
[C-0-16] 如果
HealthPermissions中存在相应的权限,则必须由android.permission-group.HEALTH中的平台权限进行保护。[C-0-17] 如果没有平台权限与所需数据类型匹配,则必须由自定义系统权限进行保护。(例如,
ELECTROCARDIOGRAM。)
如果设备报告 android.software.managed_users,则:
[C-1-1] 不得由管理员以静默方式授予以下权限:
- 位置信息(
ACCESS_BACKGROUND_LOCATION、ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION)。 - 摄像头 (
CAMERA) - 麦克风 (
RECORD_AUDIO) - 身体传感器 (
BODY_SENSORS) - 运行状况 (
HealthPermissions) - 身体活动 (
ACTIVITY_RECOGNITION)
- 位置信息(
9.5. 多用户支持
如果设备实现创建上述附加用户个人资料,包含至少一个摄像头,并且预安装的摄像头应用处理 intent MediaStore.ACTION_MOTION_PHOTO_CAPTURE 或 MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE,则:
- [C-5-1] 必须允许主要用户的应用处理源自该附加用户个人资料的这些 intent。
9.7. 安全功能
内核完整性和自保护功能对于确保 Android 安全性至关重要。设备实现:
- [C-0-8] 当可执行代码为只读、只读数据不可执行且不可写入,以及可写入数据不可执行时,必须实现严格的内核内存保护机制
(例如(例如,同时启用CONFIG_DEBUG_RODATA或CONFIG_STRICT_KERNEL_RWX)rodata和CONFIG_STRICT_KERNEL_RWX)。
9.8. 隐私设置
9.8.2. 录制
设备实现:
- [C-0-2] 每次通过
MediaProjection.createVirtualDisplay()、VirtualDeviceManager.createVirtualDisplay()、MediaProjection.createVirtualDisplay()或专有 API启动启用用于截取屏幕的会话时,都必须向用户显示警告,并获得用户的明确同意,即用户允许捕获其屏幕上显示的任何敏感信息。
- [C-0-4] 不得让用户能够禁用以后提示用户同意截取屏幕的提示,除非会话是由用户允许
associate()使用android.app.role.COMPANION_DEVICE_APP_STREAMING或android.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING设备配置文件的系统应用启动的。
9.11. 密钥和凭据
如果设备实现支持安全锁定屏幕,则:
[C-1-6] 必须支持以下某一项:
- IKeymasterDevice 3.0,
- IKeymasterDevice 4.0,
- IKeymasterDevice 4.1,
- IKeyMintDevice 版本 1,或
- IKeyMintDevice 版本 2。
- [C-1-6] 必须支持 IKeymasterDevice 3.0 或更高版本,或 IKeyMintDevice 版本 1 或更高版本。
- [C-SR-1] 强烈建议支持 IKeyMintDevice 版本 1。
9.11.1. 安全锁定屏幕、身份验证和虚拟设备
如果设备实现允许应用创建辅助虚拟屏幕,并且支持关联的输入事件(例如通过 VirtualDeviceManager),则:
[C-10-2] 空闲超时时,必须与所有虚拟设备断开连接
[C-10-3] 必须有空闲超时
[C-10-7] 必须满足以下条件之一:
- 停用剪贴板
- 为支持剪贴板的每台设备启用单独的剪贴板
- [C-10-15] 必须在跨设备访问剪贴板数据时显示通知,并且必须使内容在从初始共享时间算起一分钟后无法再访问。
- [C-10-15] 必须在访问剪贴板数据的设备和剪贴板发起的设备上显示通知。
9.18. 开发者验证 [新增部分]
声明 API 级别为 36.1 或更高级别的设备实现:
- 可以包含对开发者验证工具服务的支持,以证明应用来自已知开发者。
如果设备实现声明 API 级别为 36.1 或更高级别,并通过在 config.xml 中定义 config_developerVerificationServiceProviderPackageName 配置开发者验证工具,则:
- [9.18/C-1-1] 必须针对每一次应用软件包安装操作(包括新安装以及安装现有应用的更新)调用配置的
android.content.pm.verify.developer.DeveloperVerifierService。
声明 API 级别为 36.1 或更高级别的设备实现:
- 也可以通过在
config.xml中定义config_developerVerificationPolicyDelegatePackageName配置委托,以设置生效的政策。
如果配置了开发者验证工具,则设备实现:
- [9.18/C-2-1] 必须仅允许开发者验证工具或其配置的委托设置安装政策(如
android.content.pm.PackageInstaller中所定义)。
如果是在软件包安装会话中调用验证工具,则设备实现:
[9.18/C-3-1] 必须在出现下列情况时阻止安装应用软件包:
- 安装未能通过开发者身份验证。
- 安装会话的开发者验证政策设置为
DEVELOPER_VERIFICATION_POLICY_NONE以外的任何值。 - 符合 9.18/C-3-2 或 9.18/C-3-3 所述的情况除外。
[9.18/C-3-2] 在下列情况下,无论政策或验证状态如何,都不得阻止安装应用软件包:
- 软件包是通过 Android 调试桥 (ADB) 安装的。
- 软件包是配置的开发者验证工具或其安装程序。
[9.18/C-3-3] 若下列所有条件均得到满足,则不得阻止安装应用软件包:
- 政策设置为
DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_WARN或DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_OPEN。 - 报告指示验证不完整。
- 安装程序报告
DEVELOPER_VERIFICATION_USER_RESPONSE_INSTALL_ANYWAY,指示用户明确请求继续安装。
- 政策设置为
如果安装操作由受管设备或受管资料的所有者在相应设备上发起,则无论其政策或验证状态如何,都可以允许安装应用软件包。但强烈建议按照 9.18/C-3-1 中的要求阻止安装。