디버그 Ramdisk를 사용한 VTS 테스트

Android 10에서는 GSI가 출시 서명되었기 때문에 CSI-on-GSI/VTS 규정 준수 테스트를 실행하는 데 사용되는 일반 시스템 이미지(GSI)가 userdebug에서 user 빌드 유형으로 변경되었습니다. 그러나 테스트 중인 Android 기기의 호스트 루트 권한을 제공하는 adb root 명령어는 user 빌드에서 사용할 수 없습니다. VTS를 실행하려면 adb root가 필요하기 때문에 발생하는 문제입니다.

디버그 ramdisk는 기기가 잠금 해제된 경우에 adb root를 가능하게 하기 위해 Android 10에 도입되었습니다. 이렇게 하면 동일한 user 빌드 GSI system.img를 재사용하여 테스트 플로우를 간소화할 수 있습니다. STS 설정에서는 여전히 또 다른 userdebug OEM system.img를 사용해야 합니다. 다음 표에는 Android 10에서의 규정 준수 테스트와 관련된 이미지와 빌드 유형이 나와 있습니다.

테스트 제품군 테스트에 사용할 항목 빌드 디버그 ramdisk adb 루트 여부Android 9 -> 10 빌드 변형 변경
CTS OEM 시스템 user 아니요 아니요 변경사항 없음
CTS-on-GSI GSI user 아니요 아니요

userdebug -> user GSI

출시 서명됨

STS OEM 시스템 userdebug 아니요 Q의 새로운 기능
VTS GSI user

userdebug -> user GSI

출시 서명됨

디버그 ramdisk 사용을 위한 필수 요건

디버그 ramdisk는 규정 준수 테스트를 실행하는 OEM에서 제공됩니다. 디버그 ramdisk는 출시 서명되어서는 안 되고 기기가 잠금 해제된 경우에만 사용할 수 있습니다.

다음과 같은 방법으로 기기를 업그레이드할 때에는 디버그 ramdisk는 생성되거나 사용되지 않습니다.

  • BOARD_BUILD_SYSTEM_ROOT_IMAGE true
  • 커널 명령줄의 skip_initramfs

AOSP 변경사항

AOSP의 디버그 ramdisk 변경사항은 debug_ramdisk 해시태그를 통해 식별됩니다.

빌드 폴더 out/target/product/$(TARGET_DEVICE) 아래에 다음과 같은 추가 이미지 파일이 생성됩니다.

  • ramdisk-debug.img
  • boot-debug.img

기기의 /boot 파티션에 boot-debug.img가 플래시되면 시스템 sepolicy 파일의 userdebug 버전과 추가 속성 파일 adb_debug.prop가 로드됩니다. 이렇게 하면 user 빌드 system.img(GSI 또는 OEM)를 통해 adb root가 가능합니다.