Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

CTS 설정

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

물리적 환경

블루투스 LE 비콘

테스트 대상 기기(DUT)에서 블루투스 LE를 지원하는 경우 DUT의 5m 반경 내에 3개 이상의 블루투스 LE 비콘을 배치하여 블루투스 LE 검사 테스트를 실시합니다. 이러한 비콘은 종류에 제한이 없고 별도로 구성하거나 특정 대상을 내보낼 필요가 없으며 iBeacon, Eddystone 또는 BLE 비콘 시뮬레이션 기기를 포함할 수도 있습니다.

카메라

카메라 CTS를 실행할 때 렌즈에서 너무 가깝지 않은(거리는 기기의 최소 포커스 거리에 따라 달라짐) 테스트 패턴 차트(예: 격자 무늬 패턴)를 사용하는 일반 조명 조건을 사용합니다.

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

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

GPS/GNSS

DUT가 범지구 위치 결정 시스템/범지구 위성 항법 시스템(GPS/GNSS) 기능을 지원하는 경우 수신 및 GPS 위치 계산에 적합한 신호 수준에서 DUT로 GPS/GNSS 신호(ICD-GPS-200C 규격의 GPS 부분 포함)를 제공합니다. GPS/GNSS 신호 소스는 위성 시뮬레이터부터 실외 신호의 GPS/GNSS 중계기, GPS/GNSS 신호를 직접 수신할 수 있을 정도로 창에 가깝게 배치된 DUT에 이르기까지 어떤 종류든 사용할 수 있습니다.

Wi-Fi 및 IPv6

CTS 테스트에는 IPv6를 지원하고, DUT를 격리된 클라이언트로 취급할 수 있으며, 인터넷 연결이 가능한 Wi-Fi 네트워크가 필요합니다. 격리된 클라이언트는 DUT가 Wi-Fi AP 구성 또는 다른 기기가 연결되지 않은 상태에서 격리된 서브네트워크에서의 DUT 실행을 통해 서브네트워크의 브로드캐스트/멀티네트워크 메시지를 확인할 수 없는 구성을 의미합니다.

네이티브 IPv6 네트워크, IPv6 이동통신사 네트워크 또는 VPN에 액세스하여 IPv6에 따라 일부 테스트를 통과할 수 없는 경우 Wi-Fi 액세스 포인트 및 IPv6 터널을 사용할 수 있습니다. Wikipedia의 IPv6 터널 브로커 목록을 참조하세요.

Wi-Fi RTT

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

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

데스크톱 컴퓨터 설정

ADB 및 AAPT

CTS를 실행하기 전에 최신 버전의 Android 디버그 브리지(adb)Android Asset Packaging Tool(AAPT)이 모두 설치되어 있고 이러한 도구의 위치가 컴퓨터의 시스템 경로에 추가되어 있는지 확인합니다.

ADB를 설치하려면 운영체제의 Android SDK 도구 패키지를 다운로드하고 패키지를 연 다음 포함된 README 파일의 안내를 따르세요. 문제해결 정보는 독립형 SDK 도구 설치를 참조하세요.

adbaapt 코드가 시스템 경로에 있어야 합니다. 다음 명령어는 홈 디렉터리에서 패키지 아카이브를 열었다고 가정합니다.

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

자바 개발 키트

올바른 버전의 자바 개발 키트(JDK)를 설치합니다. Android 7.0 이상:

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

CTS 파일

기기의 Android 버전에 맞는 CTS 패키지와 기기에서 지원하는 모든 Application Binary Interface(ABI)를 다운로드하고 엽니다.

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

기기 감지

다음 단계를 따라 Ubuntu Linux용 udev 규칙 파일을 만드는 것과 같이 기기를 감지하도록 시스템을 설정합니다.

Android 기기 설정

사용자 빌드

호환 가능한 기기는 사용자/릴리스 키 서명 빌드가 포함된 기기로, 코드명, 태그 및 빌드 번호에서 호환 가능한 사용자 빌드(Android 4.0 이상)로 알려진 것을 기반으로 시스템 이미지를 실행해야 합니다.

첫 번째 API 수준 빌드 속성

특정 CTS 요구사항은 기기가 최초로 배송되었을 때 포함된 빌드에 따라 다릅니다. 예를 들어 처음 배송 시 이전 빌드를 포함하고 있던 기기는 후속 빌드가 포함된 채 배송되는 기기에 적용되는 시스템 요구사항에서 제외될 수 있습니다.

CTS에 이 정보가 제공되도록 기기 제조업체에서 빌드 시간 속성 ro.product.first_api_level의 정의가 가능합니다. 이 속성의 값은 기기가 상업적으로 출시된 첫 번째 API 수준입니다.

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

기기 제조업체는 다음 예와 같이 device.mk 파일에 PRODUCT_PROPERTY_OVERRIDES 추가를 통해 이 속성을 설정할 수 있습니다.

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

Android 9 이상의 첫 번째 API 수준

Android 9 이상을 실행하는 기기의 경우 ro.product.first_api_level 속성을 코드명, 태그 및 빌드 번호의 유효한 값으로 설정합니다.

Android 8.x 이하의 첫 번째 API 수준

Android 8.x 이하를 실행하는 기기의 경우 제품의 첫 번째 빌드에서 ro.product.first_api_level 속성을 설정 해제(삭제)합니다. 모든 후속 빌드의 경우 올바른 API 수준 값으로 ro.product.first_api_level 속성을 설정합니다. 그러면 속성에서 올바르게 새 제품을 식별하고 제품의 첫 번째 API에 관한 정보를 보존할 수 있습니다. 플래그가 설정 해제된 경우 Android에서 ro.product.first_api_levelBuild.VERSION.SDK_INT 할당을 실시합니다.

CTS shim 앱

Android 7.0에는 manifest 이외의 코드는 포함되지 않는 다음 사전 빌드 앱(이 소스에서 빌드)이 있습니다.

CTS는 이 앱을 사용하여 권한을 테스트합니다. 테스트를 통과하려면 다시 서명하지 않은 상태에서 앱을 시스템 이미지의 적절한 디렉터리에 미리 로드해야 합니다.

CTS shim APEX

Android 10 이상에는 APEX 패키지 형식이 포함되어 있습니다. APEX 관리 API의 CTS 테스트를 작성하려면(예: 새 버전으로 업데이트, 활성 APEX 보고 등) 대상 기기에 CtsShimApex 패키지를 사전 설치해야 합니다.

CtsShimApex의 경우 /system 파티션에 사전 설치되어야 합니다.

ro.apex.updatable 속성이 true 설정된 경우 APEX 패키지 관리를 지원하는 모든 기기에 CtsShimApex의 존재가 필요합니다. ro.apex.updatable 속성이 누락되거나 설정되지 않은 경우 기기에 CtsShimApex의 사전 설치가 필요하지 않습니다. APEX shim 검증 테스트는 CtsShimApex의 구현을 확인합니다.

샘플 애플릿

Android 9에서는 Open Mobile API가 도입되었습니다. 두 개 이상의 보안 요소를 보고하는 기기의 경우 CTS는 테스트 사례를 추가하여 Open Mobile API의 동작을 검증합니다. 이러한 테스트 사례의 경우 DUT의 임베딩 보안 요소(eSE) 또는 DUT에서 사용하는 SIM 카드에 샘플 애플릿을 1회성으로 설치해야 합니다. eSE 샘플 애플릿SIM 샘플 애플릿은 AOSP에서 찾을 수 있습니다.

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

저장용량 요구사항

CTS 미디어 스트레스 테스트를 실시하려면 동영상 클립이 외부 저장소(/sdcard)에 있어야 합니다. 대부분의 클립은 Big Buck Bunny의 것으로 크리에이티브 커먼즈 저작자 표시 3.0 라이선스에 따라 저작권은 Blender Foundation에 있습니다.

필요한 공간은 기기에서 지원하는 최대 동영상 재생 해상도에 따라 다릅니다(필수 해상도의 플랫폼 버전은 호환성 정의 문서의 섹션 5 참조). DUT의 동영상 재생 기능은 이전 버전의 Android의 경우 android.media.CamcorderProfile API를 통해, Android 5.0부터는 android.media.MediaCodecInfo.CodecCapabilities API를 통해 검사됩니다.

최대 동영상 재생 해상도별 저장용량 요구사항은 다음과 같습니다.

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

화면 및 저장용량

  • 내장형 화면이 없는 기기는 화면에 연결해야 합니다.
  • 기기에 메모리 카드 슬롯이 있으면 빈 SD 카드를 연결합니다. SDHC 또는 SDXC 용량의 초고속(UHS) 버스를 지원하는 SD 카드 또는 CTS를 통과할 수 있도록 속도 등급이 10 이상인 SD 카드를 사용하세요.
  • 기기에 SIM 카드 슬롯이 있는 경우 활성화된 SIM 카드를 각 슬롯에 연결합니다. 기기에서 SMS를 지원하는 경우 각 SIM 카드의 숫자 입력란이 채워져 있어야 합니다.

개발자 UICC

CTS 이동통신사 API 테스트를 실행하려면 기기에 이동통신사 권한 규칙이 포함된 SIM 카드가 있어야 합니다. UICC 준비를 참조하세요.

Android 기기 설정

  1. 기기 초기화: 설정 > 백업 및 초기화 > 초기화
  2. 기기의 언어를 영어(미국)로 설정: 설정 > 언어 및 입력 > 언어
  3. 기기에 GPS 또는 Wi-Fi/데이터 네트워크 기능이 있는 경우 위치 설정 켜기: 설정 > 위치 > 켜기
  4. IPv6를 지원하고, DUT를 격리된 클라이언트로 취급할 수 있으며(물리적 환경 참조), 인터넷 연결이 가능한 Wi-Fi 네트워크에 연결: 설정 > Wi-Fi
  5. 기기에 잠금 패턴이나 비밀번호가 설정되어 있지 않은지 확인: 설정 > 보안 > 화면 잠금 > 없음
  6. 기기에서 USB 디버깅 사용 설정: 설정 > 개발자 옵션 > USB 디버깅
  7. 12시간 형식으로 시간 설정: 설정 > 날짜 및 시간 > 24시간 형식 사용 > 끄기
  8. 기기의 절전모드 해제 설정: 설정 > 개발자 옵션 > 절전모드 해제 > 켜기
  9. Android 5.x 및 4.4.x에 한해 기기가 가상 위치를 허용하도록 설정: 설정 > 개발자 옵션 > 가상 위치 허용 > 켜기
  10. Android 4.2 이상에서 USB 앱 인증 끄기: 설정 > 개발자 옵션 > USB를 통해 설치된 앱 인증 > 끄기
  11. 브라우저를 실행하고 시작/설정 화면을 닫습니다.
  12. 기기 테스트에 사용할 데스크톱 컴퓨터에 USB 케이블을 연결합니다.

파일 설치

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

  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 미디어 파일을 복사합니다.
    • 미디어 파일이 다운로드되고 압축이 풀린 경로를 탐색(cd)합니다.
    • 파일 권한 변경:
                  chmod u+x copy_media.sh
    • copy_media.sh 실행:
      • 클립을 최대 720x480 해상도로 복사하려면 다음을 실행합니다.
                        ./copy_media.sh 720x480
      • 최대 해상도를 잘 모를 경우 다음 파일을 모두 복사합니다.
                        ./copy_media.sh all
      • adb 아래에 여러 개의 기기가 있는 경우 끝에 직렬 옵션(-s)을 추가합니다. 예를 들어 직렬 1234567이 포함된 기기에 최대 720x480 해상도로 복사하려면 다음을 실행합니다.
                        ./copy_media.sh 720x480 -s 1234567