设置 CTS

物理环境

蓝牙 LE 信标

如果 DUT 支持蓝牙 LE 功能,则至少应在距离 DUT 五米的范围内放置三个蓝牙 LE 信标,以进行蓝牙 LE 扫描测试。这些信标可以为任何类型,不需要进行配置或发射任何特定信号,并且可以包括 iBeacon、Eddystone 甚至模拟 BLE 信标的设备。

GPS/GNSS

如果 DUT 支持全球定位系统 (GPS)/全球导航卫星系统 (GNSS) 功能,则应该以合适的信号电平向 DUT 提供 GPS/GNSS 信号(GPS 部分符合 ICD-GPS-200C 标准),以便其接收到相应信号并计算 GPS 位置。GPS/GNSS 信号源的种类不限(可以是卫星模拟器,也可以是室外 GPS/GNSS 信号中继器),只需将 DUT 放在距离窗口足够近的位置以使其可以直接接收到足够强的 GPS/GNSS 信号即可。

WLAN 和 IPv6

CTS 测试需要满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离客户端,并可以连接到互联网。隔离客户端是一种配置,可将 DUT 配置为无法接收子网络上的广播/多网消息;这种配置可通过 WLAN AP 配置或通过在未连接其他设备的隔离子网络上运行 DUT 来实现。

如果您无法访问原生 IPv6 网络、IPv6 运营商网络或 IPv6 VPN,以致无法通过基于 IPv6 的一些测试,则可以改为使用 WLAN 接入点和 IPv6 隧道。请参阅维基百科 IPv6 隧道代理列表

台式机设置

CTS 目前支持 64 位 Linux 和 Mac OS 主机。

ADB 和 AAPT

在运行 CTS 之前,请确保您已安装最新版本的 Android 调试桥 (adb)Android 资源打包工具 (AAPT),并将这些工具的位置添加到计算机的系统路径中。

要安装 ADB,请下载适用于您的操作系统的 Android SDK 工具包,打开它,然后按照附带的 README 文件中的说明进行操作。要了解问题排查相关信息,请参阅安装独立 SDK 工具

确保 adbaapt 位于您的系统路径下。以下命令假定您已在主目录中打开了软件包归档文件:


export PATH=$PATH:$HOME/android-sdk-linux/build-tools/<version>

注意:请确保起始路径和目录名称均准确无误。

Java 开发套件 (JDK)

安装适当版本的 Java 开发套件 (JDK)。对于 Android 7.0 -

如需了解详情,请参阅 JDK 要求

CTS 文件

下载并打开与您设备的 Android 版本以及您的设备支持的所有应用二进制接口 (ABI) 相匹配的 CTS 包。

下载并打开最新版本的 CTS 媒体文件

设备检测

请按照相应的步骤设置您的系统以检测您的设备,例如为 Ubuntu Linux 创建 udev 规则文件。

Android 设备设置

用户版本

兼容的设备会被定义为具有用户/release-key 签名版本的设备,因此您的设备应基于代号、标签和版本号中已知兼容的用户版本(Android 4.0 及更高版本)运行系统映像。

注意:使用 CTS 确认最终系统映像的 Android 兼容性时,您必须在具有用户版本的设备上执行 CTS。

第一个 API 级别版本属性

特定的 CTS 要求取决于设备最初搭载的版本。例如,如果设备最初搭载的是较低的版本,则不符合适用于搭载较高版本的设备的系统要求。

为了保证在 CTS 中可读取到这些信息,设备制造商可以定义编译时属性:ro.product.first_api_level。该属性的值是以商业化形式发布该设备时所采用的第一个 API 级别。

原始设备制造商 (OEM) 可以将 PRODUCT_PROPERTY_OVERRIDES 添加到其 device.mk 文件以设置这项属性,具体如以下示例所示:

#ro.product.first_api_level indicates the first api level, device has been commercially launched on.
PRODUCT_PROPERTY_OVERRIDES +=\
ro.product.first_api_level=21

CTS Shim 应用

Android 7.0 包含以下预编译的应用(通过此来源编译),这些应用不包含除清单以外的任何代码:

CTS 会使用这些应用来测试特权和权限。要通过测试,您必须将应用预加载到系统映像上的相应目录下,而无需对它们重新签名。

存储空间要求

CTS 媒体压力测试要求将视频剪辑存放在外部存储设备 (/sdcard) 上。大部分剪辑来自 Big Buck Bunny,其版权归 Blender Foundation 所有并采用知识共享署名 3.0 许可

所需空间取决于设备支持的最大视频播放分辨率(要查看所需分辨率的平台版本,请参阅兼容性定义文档中的第 5 部分)。请注意,被测设备的视频播放功能将通过 android.media.CamcorderProfile API(针对早期 Android 版本)和 android.media.MediaCodecInfo.CodecCapabilities API(针对 Android 5.0)进行检测。

以下是按最大视频播放分辨率列出的存储空间要求:

  • 480x360:98 MB
  • 720x480:193 MB
  • 1280x720:606 MB
  • 1920x1080:1863 MB

屏幕和存储空间

  1. 任何没有嵌入式屏幕的设备都需要连接到屏幕。
  2. 如果设备具有存储卡插槽,请插入空的 SD 卡。请使用支持超高速 (UHS) 总线且具有 SDHC 或 SDXC 容量的 SD 卡,或使用至少具有 Class 10 速度的 SD 卡,以确保设备能够通过 CTS。

    警告:CTS 可能会修改/清空插入设备的 SD 卡上的数据。

  3. 如果设备具有 SIM 卡插槽,请将激活的 SIM 卡插入每个插槽。如果设备支持短信,则应填充每个 SIM 卡的号码字段。

开发者 UICC

为了执行 CTS 运营商 API 测试,该设备需要使用运营商授权的 SIM 卡。请参阅准备 UICC

Android 设备配置

  1. 将设备恢复出厂设置:设置 > 备份和重置 > 恢复出厂设置

    警告:这将清空设备中的所有用户数据。

  2. 将设备的语言设置为英语(美国):设置 > 语言和输入法 > 语言
  3. 如果设备上具有 GPS 或 WLAN/移动网络功能,则打开位置信息设置:设置 > 位置信息 > 开启
  4. 连接到满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离的客户端(请参阅上文的物理环境部分),并可以连接到互联网:设置 > WLAN
  5. 确保设备上未设置锁定图案或密码:设置 > 安全 > 屏幕锁定 > 无
  6. 在设备上启用 USB 调试设置 > 开发者选项 > USB 调试

    注意:在 Android 4.2 及更高版本中,默认情况下会隐藏开发者选项。要显示这些选项,请依次转到设置 > 关于手机,然后点按版本号七次。返回上一屏幕以查找开发者选项。要查看其他详细信息,请参阅启用设备上的开发者选项

  7. 确保将时间设置为 12 小时格式:设置 > 日期和时间 > 使用 24 小时制 > 关闭
  8. 依次选择:设置 > 开发者选项 > 不锁定屏幕 > 开启
  9. 依次选择:设置 > 开发者选项 > 允许模拟位置 > 开启

    注意:此模拟位置设置仅适用于 Android 5.x 和 4.4.x。

  10. 依次选择:设置 > 开发者选项 > 通过 USB 验证应用 > 关闭

    注意:此验证应用步骤在 Android 4.2 中为必需步骤。

  11. 启动浏览器并关闭任何启动/设置屏幕。
  12. 使用 USB 数据线连接用于测试设备的台式机

    注意:将运行 Android 4.2.2 或更高版本的设备连接到计算机时,系统会显示一个对话框,询问您是否接受允许通过此计算机进行调试的 RSA 密钥。选择“允许 USB 调试”。

  13. 在设备上安装和配置帮助程序应用。

    注意:对于 CTS 版本 2.1 R2 至 4.2 R4,请将您的设备(或模拟器)设置为通过以下命令执行无障碍测试:
    adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
    在设备上,依次启用:设置 > 无障碍 > 无障碍 > Delegating Accessibility Service

    注意:对于 7.0 之前的 CTS 版本,请在声明 android.software.device_admin 的设备上,将您的设备设置为使用以下命令执行设备管理测试:
    adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk

    依次选择“设置”>“安全”>“设备管理器”,然后启用两个 android.deviceadmin.cts.CtsDeviceAdminReceiver* 设备管理器。确保 android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver 和任何其他预加载的设备管理器保持停用状态。

  14. 将 CTS 媒体文件复制到设备上,如下所示:

    注意:对于 CTS 2.3 R12 及更高版本,如果设备支持视频编解码器,则必须将 CTS 媒体文件复制到设备上。

    • 导航 (cd) 到下载并解压缩媒体文件的目标路径。
    • 更改文件权限:chmod u+x copy_media.sh
    • 运行 copy_media.sh
      • 要复制分辨率高达 720x480 的剪辑,请运行:./copy_media.sh 720x480
      • 如果您不确定最大分辨率,请尝试运行 ./copy_media.sh all,以便复制所有文件。
      • 如果 adb 下有多个设备,请将 -s(序列号)选项添加到末尾。 例如,要将高达 720x480 的分辨率复制到序列号为 1234567 的设备,请运行:./copy_media.sh 720x480 -s 1234567