CTS 설정

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

CTS를 실행하려면 먼저 물리적 환경, 데스크톱 컴퓨터, 테스트에 사용 중인 Android 기기를 준비하세요.

물리적 환경

블루투스 LE 비콘

DUT(테스트 대상 장치)가 Bluetooth LE를 지원하는 경우 Bluetooth LE 스캔 테스트를 위해 DUT에서 5미터 이내에 3개 이상의 Bluetooth LE 비콘을 배치합니다. 이러한 비콘은 구성하거나 특정 항목을 방출할 필요가 없으며 iBeacon, Eddystone 또는 BLE 비콘을 시뮬레이션하는 장치를 포함하여 모든 종류가 될 수 있습니다.

카메라

카메라 CTS를 실행할 때 테스트 패턴 차트(예: 바둑판 패턴)와 함께 일반 조명 조건을 사용합니다. DUT의 최소 초점 거리에 따라 테스트 패턴 차트를 배치하여 렌즈에 너무 가깝지 않은지 확인합니다.

테스트 중인 센서가 CONTROL_AE_TARGET_FPS_RANGE 에 지정된 대로 구성된 최대 초당 목표 프레임(FPS)에 도달하고 유지될 수 있도록 충분한 조명이 있는 장면을 카메라 센서로 가리킵니다. 이는 테스트가 나열된 장치를 반복하고 성능을 개별적으로 측정할 때 getCameraIdList 에서 보고한 모든 카메라 센서에 적용됩니다.

DUT가 USB 웹캠과 같은 외부 카메라를 지원하는 경우 CTS를 실행할 때 외부 카메라를 연결합니다. 그렇지 않으면 CTS 테스트가 실패합니다.

GPS/GNSS

DUT가 GPS/GNSS(Global Positioning System/Global Navigation Satellite System) 기능을 지원하는 경우 수신 및 GPS 위치 계산에 적합한 신호 레벨로 DUT에 GPS/GNSS 신호를 제공합니다. GPS 부분은 ICD-GPS-200C를 준수해야 합니다. 그렇지 않으면 GPS/GNSS 신호는 위성 시뮬레이터 또는 실외 신호의 GPS/GNSS 중계기를 포함하여 모든 종류가 될 수 있습니다. 또는 충분한 GPS/GNSS 신호를 직접 수신할 수 있도록 DUT를 창에 충분히 가깝게 배치할 수 있습니다.

Wi-Fi 및 IPv6

CTS 테스트에는 IPv4 및 IPv6을 지원하고, IPv4 및 IPv6용 DNS가 작동하는 인터넷 연결이 있고, IP ​​멀티캐스트를 지원하고, DUT를 격리된 클라이언트로 취급할 수 있는 Wi-Fi 네트워크가 필요합니다. 격리된 클라이언트 는 DUT가 해당 하위 네트워크의 브로드캐스트/다중 네트워크 메시지를 볼 수 없는 구성입니다. 이는 Wi-Fi 액세스 포인트(AP) 구성에서 발생하거나 다른 장치를 연결하지 않고 격리된 하위 네트워크에서 DUT를 실행하여 발생합니다.

기본 IPv6 네트워크, IPv6 캐리어 네트워크 또는 IPv6에 따라 일부 테스트를 통과하는 VPN에 액세스할 수 없는 경우 Wi-Fi 액세스 포인트 및 IPv6 터널을 사용할 수 있습니다.

CTS를 전달하려면 DUT에 Wi-Fi 인터페이스에 설정된 UP , BROADCASTMULTICAST 플래그가 필요합니다. Wi-Fi 인터페이스에는 IPv4 및 IPv6 주소가 할당되어야 합니다. adb shell ifconfig 를 사용하여 Wi-Fi 인터페이스 속성을 확인하십시오.

와이파이 RTT

Android에는 Wi-Fi RTT (왕복 시간) 기능을 위한 Wi-Fi RTT API 가 포함되어 있습니다. 이를 통해 장치는 1~2미터의 정확도로 액세스 포인트까지의 거리를 측정하여 실내 위치 정확도를 크게 높일 수 있습니다. Wi-Fi RTT를 지원하는 두 가지 권장 장치는 Google WifiCompulab의 fitlet2 액세스 포인트 (5GHz에서 40MHz 대역폭으로 설정)입니다.

액세스 포인트는 전원이 켜져 있어야 하지만 네트워크 연결이 필요하지 않습니다. 액세스 포인트는 테스트 장치 옆에 있을 필요는 없지만 DUT에서 40피트 이내에 있는 것이 좋습니다. 일반적으로 하나의 액세스 포인트로 충분합니다.

데스크탑 컴퓨터 설정

ADB와 AAPT

CTS를 실행하기 전에 최신 버전의 Android 디버그 브리지(adb)Android 자산 패키징 도구(AAPT) 를 모두 설치하고 해당 도구의 위치를 ​​컴퓨터의 시스템 경로에 추가했는지 확인하세요.

ADB를 설치하려면 운영 체제용 Android SDK 도구 패키지를 다운로드하여 열고 포함된 README 파일의 지침을 따르십시오. 문제 해결 정보 는 독립 실행형 SDK 도구 설치 를 참조하십시오.

adbaapt 가 시스템 경로에 있는지 확인하십시오. 다음 명령은 홈 디렉토리에서 패키지 아카이브를 열었다고 가정합니다.

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

Ubuntu용 Java 개발 키트

적절한 버전의 JDK(Java Development Kit) 를 설치합니다.

  • Android 11의 경우 OpenJDK11을 설치합니다.
  • Android 9 및 Android 10의 경우 OpenJDK9를 설치합니다.
  • Android 7.0, 7.1, 8.0 및 8.1의 경우 OpenJDK8을 설치합니다.

자세한 내용은 JDK 요구 사항 을 참조하십시오.

Python 지원 설정

설치 지침에 따라 플랫폼용 virtualenv 를 설치합니다.

virtualenv -h 를 호출하여 설치가 성공했는지 확인할 수 있습니다.

CTS 파일

기기의 Android 버전 및 기기가 지원하는 모든 ABI(애플리케이션 바이너리 인터페이스)와 일치하는 호환성 테스트 제품군 다운로드 에서 CTS 패키지를 다운로드하고 엽니다.

최신 버전의 CTS 미디어 파일 을 다운로드하여 엽니다.

장치 감지

단계에 따라 장치를 감지하도록 시스템을 설정합니다 .

메모리 제한

cts-tradfed 스크립트에서 테스트를 실행하는 동안 사용 가능한 최대 메모리를 늘릴 수 있습니다. 자세한 내용은 예제 CL 을 참조하십시오.

안드로이드 기기 설정

사용자 빌드

호환 가능한 장치는 사용자/릴리스 키 서명 빌드가 있는 장치로 정의됩니다. 기기는 Codenames, Tags 및 Build Numbers 에서 호환되는 것으로 알려진 사용자 빌드(Android 4.0 이상)를 기반으로 시스템 이미지를 실행해야 합니다.

첫 번째 API 레벨 빌드 속성

특정 CTS 요구 사항은 기기가 원래 배송된 빌드에 따라 다릅니다. 예를 들어 원래 이전 빌드와 함께 제공되는 장치는 이후 빌드와 함께 제공되는 장치에 적용되는 시스템 요구 사항에서 제외될 수 있습니다.

이 정보를 CTS에서 사용할 수 있도록 기기 제조업체는 빌드 시간 속성 ro.product.first_api_level 을 정의했을 수 있습니다. 이 속성의 값은 기기가 상업적으로 출시된 첫 번째 API 수준입니다.

장치 제조업체는 공통 기본 구현을 재사용하여 동일한 장치 그룹에 있는 기존 제품의 업그레이드로 새 제품을 출시할 수 있습니다. 기기 제조사는 선택적으로 기존 제품의 API 레벨을 ro.product.first_api_level 로 설정하여 CTS 및 Treble/VTS에 업그레이드 요구 사항이 적용되도록 할 수 있습니다.

기기 제조업체는 다음 예와 같이 device.mk 파일에 PRODUCT_SHIPPING_API_LEVEL 을 정의하여 이 속성을 설정할 수 있습니다.

# PRODUCT_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
PRODUCT_SHIPPING_API_LEVEL := 21

Android 9 이상을 위한 첫 번째 API 레벨

Android 9 이상으로 출시된 기기의 경우 ro.product.first_api_level 속성을 Codenames, Tags 및 Build Numbers 의 유효한 값으로 설정합니다.

Android 8.x 이하의 첫 번째 API 레벨

Android 8.x 이하에서 출시된 기기의 경우 제품의 첫 번째 빌드에 대한 ro.product.first_api_level 속성을 설정 해제(제거)합니다. 모든 후속 빌드의 경우 ro.product.first_api_level 을 올바른 API 레벨 값으로 설정하십시오. 이를 통해 속성은 새 제품을 올바르게 식별하고 제품의 첫 번째 API 수준에 대한 정보를 보존할 수 있습니다. 플래그가 설정되지 않은 경우 Android는 Build.VERSION.SDK_INTro.product.first_api_level 에 할당합니다.

CTS 심 패키지

Android 10 이상에는 APEX 라는 패키지 형식이 포함되어 있습니다. APEX 관리 API에 대한 CTS 테스트(예: 새 버전으로 업데이트 또는 활성 APEX 보고)를 실행하려면 /system 파티션에 CtsShimApex 패키지를 사전 설치해야 합니다.

APEX shim 유효성 검사 테스트는 CtsShimApex 의 구현을 확인합니다.

ro.apex.updatable 요구 사항

  • ro.apex.updatable 속성이 true 로 설정되면 APEX 패키지 관리를 지원하는 모든 장치에 CtsShimApex 가 필요합니다.

  • ro.apex.updatable 속성이 없거나 설정되지 않은 경우 CtsShimApex 를 장치에 사전 설치할 필요가 없습니다.

APEX shim 유효성 검사 테스트는 CtsShimApex 의 구현을 확인합니다.

CtsShim 사전 설치 및 사전 로드

Android 11부터 CtsShimApex 에는 매니페스트를 제외한 코드가 포함되지 않은 두 개의 미리 빌드된 앱( 빌드 소스 에서 빌드)이 포함되어 있습니다. CTS는 이러한 앱을 사용하여 권한과 권한을 테스트합니다.

기기가 APEX 패키지 관리를 지원하지 않는 경우(즉, ro.apex.updatable 속성이 없거나 설정되지 않은 경우) 기기가 버전 10 이하를 실행하는 경우 두 개의 사전 빌드된 앱이 시스템을 별도로.

장치 버전 사전 설치
(APEX가 지원되는 경우)
예압
x86 x86
안드로이드 12 android12-arm-release
/system/apex/com.android.apex.cts.shim.apex 아래
android12-x86-릴리스
/system/apex/com.android.apex.cts.shim.apex 아래
android12-arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk 아래

android12-arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk 아래

android12-x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk 아래

android12-x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk 아래

안드로이드 11 android11-arm-release
/system/apex/com.android.apex.cts.shim.apex 아래
android11-x86-릴리스
/system/apex/com.android.apex.cts.shim.apex 아래
android11-arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk 아래

android11-arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk 아래

android11-x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk 아래

android11-x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk 아래

안드로이드 10 android10 릴리스
/system/apex/com.android.apex.cts.shim.apex 아래
android10-arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk 아래

android10-arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk 아래

android10-x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk 아래

android10-x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk 아래

Android 9, O 및 O-MR1 해당 없음 해당 없음 arm-CtsShim.apk
/system/app/CtsShimPrebuilt.apk 아래

arm-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk 아래

x86-CtsShim.apk
/system/app/CtsShimPrebuilt.apk 아래

x86-CtsShimPriv.apk
/system/priv-app/CtsShimPrivPrebuilt.apk 아래

테스트를 통과하려면 앱에 다시 서명하지 않고 시스템 이미지의 적절한 디렉터리에 앱을 미리 로드합니다.

샘플 애플릿

Android 9에는 Open Mobile API가 도입되었습니다. 둘 이상의 보안 요소를 보고하는 장치의 경우 CTS는 테스트 사례를 추가하여 Open Mobile API의 동작을 검증합니다. 이러한 테스트 사례를 사용하려면 DUT의 내장 보안 요소(eSE) 또는 DUT에서 사용하는 SIM 카드에 샘플 애플릿을 한 번만 설치해야 합니다. eSE 샘플 애플릿SIM 샘플 애플릿 은 AOSP에서 찾을 수 있습니다.

Open Mobile API 테스트 사례 및 액세스 제어 테스트 사례에 대한 자세한 내용 은 보안 요소에 대한 CTS 테스트를 참조하십시오.

스토리지 요구 사항

CTS 미디어 스트레스 테스트를 수행하려면 비디오 클립이 외부 저장소( /sdcard )에 있어야 합니다. 대부분의 클립은 Creative Commons Attribution 3.0 라이선스 에 따라 Blender Foundation이 저작권을 보유한 Big Buck Bunny 에서 가져온 것입니다.

필요한 공간은 장치에서 지원하는 최대 비디오 재생 해상도에 따라 다릅니다. 필요한 해상도의 플랫폼 버전은 Android 호환성 정의 문서 의 섹션 5를 참조하세요.

최대 비디오 재생 해상도에 따른 저장 요구 사항은 다음과 같습니다.

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

스크린 및 스토리지

  • 내장된 화면이 없는 모든 장치는 화면에 연결해야 합니다.
  • 장치에 메모리 카드 슬롯이 있는 경우 빈 SD 카드를 꽂습니다. CTS를 통과할 수 있도록 SDHC 또는 SDXC 용량의 초고속(UHS) 버스 또는 속도 클래스 10 이상을 지원하는 SD 카드를 사용하십시오.

  • 장치에 SIM 카드 슬롯이 있는 경우 활성화된 SIM 카드를 각 슬롯에 꽂습니다. 장치가 SMS를 지원하는 경우 각 SIM 카드에는 고유한 번호 필드가 채워져 있어야 합니다. Android 12 이상을 실행하는 기기의 경우 모든 SIM 카드는 ADN(Abbreviated Dialing Number) 저장을 지원해야 합니다. 통신 전용 파일(DF Telecom )이 있는 GSM 및 USIM 카드는 이 요구 사항을 충족합니다.

개발자 UICC

CTS 이동통신사 API 테스트를 실행하려면 기기 에서 UICC 준비에 지정된 요구사항을 충족하는 CTS 이동통신사 권한이 있는 SIM을 사용해야 합니다.

안드로이드 기기 구성

  1. 기기 초기화: 설정 > 백업 및 초기화 > 초기화 .

  2. 장치의 언어를 영어( 미국 )로 설정합니다. 설정 > 언어 및 입력 > 언어 .

  3. 장치가 기본 글꼴 사용자 정의를 지원하는 경우 기본 sans-serif 글꼴 패밀리를 Roboto (AOSP 빌드에서 사용되는 기본 sans-serif 글꼴 패밀리)로 설정합니다.

  4. 장치에 GPS 또는 Wi-Fi/셀룰러 네트워크 기능이 있는 경우 위치 설정을 켭니다. 설정 > 위치 > 켜기 .

  5. IPv6을 지원하는 Wi-Fi 네트워크에 연결하고 DUT를 격리된 클라이언트 로 취급할 수 있으며(위의 물리적 환경 참조) 인터넷에 연결되어 있습니다: 설정 > Wi-Fi .

  6. 장치에 잠금 패턴이나 암호가 설정되어 있지 않은지 확인합니다. 설정 > 보안 > 화면 잠금 > 없음 .

  7. 기기에서 USB 디버깅 활성화: 설정 > 개발자 옵션 > USB 디버깅 .

  8. 시간을 12시간 형식으로 설정합니다. 설정 > 날짜 및 시간 > 24시간 형식 사용 > 끄기 .

  9. 깨어 있는 상태로 기기를 설정합니다: 설정 > 개발자 옵션 > 깨어 있는 상태 > 켜기 .

  10. Android 5.x 및 4.4.x에서만 모의 위치를 ​​허용하도록 기기를 설정합니다. 설정 > 개발자 옵션 > 모의 위치 허용 > 켜기 .

  11. Android 4.2 이상 에서는 설정 > 개발자 옵션 > USB를 통해 앱 확인 > 끄기 에서 USB 앱 확인을 끕니다.

  12. Android 13 이상 에서 모의 ​​모뎀을 허용하도록 기기를 설정합니다. 설정 > 개발자 옵션 > 모의 모뎀 허용 > 켜기 .

  13. 브라우저를 시작하고 시작/설정 화면을 닫습니다.

  14. 장치를 테스트하는 데 사용할 데스크톱 컴퓨터를 USB 케이블로 연결합니다.

  15. CTS를 실행하기 전에 사용자가 액세스할 수 있는 어포던스(숨겨지지 않음) 설정을 사용하여 Roboto2를 sans-serif 글꼴로 설정합니다.

파일 설치

장치에 도우미 앱을 설치하고 구성합니다.

  1. CTS 버전에 따라 기기를 설정하세요.

    • CTS 버전 2.1 R2~4.2 R4: 다음 을 사용하여 접근성 테스트를 실행하도록 기기(또는 에뮬레이터)를 설정합니다. adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      장치에서 위임을 활성화합니다. 설정 > 접근성 > 접근성 > 접근성 서비스 위임 .

    • CTS 버전 6.x 이하: android.software.device_admin 을 선언하는 기기에서 다음을 사용하여 기기 관리 테스트를 실행하도록 기기를 설정하세요. adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      설정 > 보안 > 장치 관리자 선택 에서 두 명의 android.deviceadmin.cts.CtsDeviceAdminReceiver* 장치 관리자를 활성화합니다. android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver 및 기타 사전 로드된 기기 관리자가 비활성화된 상태로 유지되는지 확인합니다.

  2. 다음과 같이 CTS 미디어 파일을 장치에 복사합니다.

    1. 미디어 파일을 다운로드하고 압축을 푼 경로( cd )로 이동합니다.
    2. 파일 권한 변경: chmod u+x copy_media.sh

    3. 필요한 파일을 복사합니다.

      • 최대 720x480의 해상도로 클립을 복사하려면 다음을 실행하십시오.

        ./copy_media.sh 720x480
        
      • 최대 해상도가 확실하지 않은 경우 모든 파일을 복사합니다.

        ./copy_media.sh all
        
      • adb 아래에 여러 장치가 있는 경우 끝에 특정 장치의 직렬 옵션( -s )을 추가합니다. 예를 들어, 직렬 1234567이 있는 장치에 최대 720x480을 복사하려면 다음을 실행합니다.

        ./copy_media.sh 720x480 -s 1234567