나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-12-26 21:50:17

Android cuttlefish



1. 개요2. 사용 방법3. 여담


소스코드
문서

1. 개요

Google에서 개발한 Android 에뮬레이터중 하나이다. Android Studio의 Emulator는 안드로이드 앱을 개발하고 디버깅 용도로 쓰지만, Android Cuttlefish는 Android 커널과 실제 디바이스의 드라이버를 개발하고 테스트하기 위해 사용한다. 또한 AOSP 소스코드의 일부로 존재한다. 하이퍼바이저는 KVM을 사용하는 crosvm VM 모니터[1] 를 사용하며, 가상 기기는 WebRTC를 통해 상호작용할 수 있다. 데비안 패키지로도 배포되므로 적절한 운영체제에 제공된 패키지를 설치하여 Cuttlefish를 사용해 볼 수도 있다. 클라우드 컴퓨팅도 지원한다.

2. 사용 방법

Android CI 페이지에 가면 여러 빌드가 있는데, 적당한 빌드를 하나 골라 Artifact 목록에 들어간다. 여기서는 x86_64를 기준으로 서술한다. 아주 많은 파일과 폴더가 보일 테지만 구동에 필요한 파일은 aosp_cf_x86_64_phone-img-(빌드 ID).zip[2]cvd-host_package.tar.gz[3] 뿐이다. 브라우저의 페이지에서 찾기 기능을 이용하면 쉽게 찾을 수 있다. cvd-host_package.tar.gz 파일을 원하는 곳에 풀고, 해당 폴더 내부에 aosp_cf_x86_64_phone-img-xxxxxx.zip파일을 압축 해제한다.[4]
이제 필요한 리소스 준비가 끝났으므로 다음은 실행할 차례이다. 기본적으로 ./bin/launch_cvd 명령을 사용하여 실행 가능하다. 단 환경 변수 HOME을 현재 디렉터리 경로로 할당, 즉 HOME=$PWD 를 명령어 앞에 배치해야 한다. 이는 바이너리가 작업 경로를 HOME으로 설정하여 작동하도록 구현되었기 때문에 만일 지정하지 않으면 제대로 실행되지 않는다.

3. 여담

본래 AOSP를 컴파일하고 디버깅하도록 만든 서브프로젝트라 접근성과 인지도가 꽤 낮다. 따라서 여러 오류에 대한 문제 해결이 쉽지 않다.

Magisk로 부팅 이미지를 패치하고 컴퓨터로 추출한 다음, 패치한 이미지로 새로 부팅해 Magisk를 사용할 수도 있다. 다만, 시스템 이미지가 변경되었을 경우 파워워시[5]를 하기 때문에 Magisk 앱을 다시 설치해야 한다는 번거로움이 존재한다.
[1] Google이 개발[2] 안드로이드의 부팅 이미지와 커널, 시스템 파티션과 같은 필수 이미지가 있다.[3] 안드로이드를 부팅하거나 관리하기 위한 여러 바이너리 패키지가 포함되어있다.[4] 다른 곳에 해도 되지만, 같은 디렉터리에 이미지가 있다면 구성이 조금 더 편해진다.[5] 전체 초기화