Cuttlefish를 사용하여 AOSP 빌드 실행

이 페이지에서는 Cuttlefish를 사용하여 AOSP 빌드를 실행하는 방법을 설명합니다.

KVM 가용성 확인

Cuttlefish는 가상 기기이며 호스트 머신에서 사용할 수 있는 가상화에 종속됩니다.

호스트 머신의 터미널에서 커널 기반 가상 머신(KVM)으로 가상화를 사용할 수 있는지 확인합니다.

grep -c -w "vmx\|svm" /proc/cpuinfo

이 명령어는 0이 아닌 값을 반환해야 합니다.

ARM 머신에서 실행하는 경우 가장 쉬운 방법은 /dev/kvm을 확인하는 것입니다.

find /dev -name kvm

Cuttlefish 실행

  1. 터미널 창에서 호스트 Debian 패키지를 다운로드하고 빌드한 후 설치합니다.

    sudo apt install -y git devscripts config-package-dev debhelper-compat golang curl
    git clone https://github.com/google/android-cuttlefish
    cd android-cuttlefish
    for dir in base frontend; do
      cd $dir
      debuild -i -us -uc -b -d
      cd ..
    done
    sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
    sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
    sudo usermod -aG kvm,cvdnetwork,render $USER
    sudo reboot

    재부팅하면 추가 커널 모듈 설치가 트리거되고 udev 규칙이 적용됩니다.

  2. Cuttlefish는 Android 오픈소스 플랫폼(AOSP)의 일부입니다. 가상 기기의 빌드는 Android 지속적 통합 사이트에서 확인할 수 있습니다. 모든 Android 빌드의 색인을 찾으려면 Android 지속적 통합 사이트(http://ci.android.com/)로 이동하세요.

  3. 브랜치 이름을 입력합니다. 기본 aosp-master 브랜치를 사용하거나 일반 시스템 이미지(GSI) 브랜치(예: aosp-android13-gsi)를 사용합니다.

  4. aosp_cf_x86_64_phone 빌드 타겟으로 이동하고 userdebug를 클릭하여 최신 빌드를 찾습니다.

  5. userdebug 아래의 녹색 상자를 클릭하여 이 빌드를 선택합니다. 이 빌드와 관련된 자세한 정보가 있는 Details 패널이 표시됩니다. 이 패널에서 Artifacts를 클릭하여 이 빌드에 연결된 모든 아티팩트 목록을 확인합니다.

  6. Artifacts 패널에서 Cuttlefish의 아티팩트를 다운로드합니다.

    1. aosp_cf_x86_64_phone-img-xxxxxx.zip 아티팩트를 클릭합니다. 여기에는 기기 이미지가 포함되어 있습니다. 파일 이름에서 'xxxxxx'는 이 기기의 빌드 ID입니다.

    2. 패널에서 아래로 스크롤하여 cvd-host_package.tar.gz를 다운로드합니다. 항상 이미지와 동일한 빌드에서 호스트 패키지를 다운로드해야 합니다.

  7. 로컬 시스템에서 컨테이너 폴더를 만들고 패키지를 추출합니다.

    mkdir cf
    cd cf
    tar -xvf /path/to/cvd-host_package.tar.gz
    unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip
  8. Cuttlefish를 실행합니다.

    HOME=$PWD ./bin/launch_cvd --daemon

adb를 통해 Cuttlefish가 표시되는지 확인

실제 기기와 마찬가지로 Cuttlefish는 Android 디버그 브리지(adb)를 통해 표시됩니다.

Cuttlefish를 실행한 폴더에서 다음 명령어를 실행하여 호스트 머신의 adb를 통해 사용할 수 있는 모든 Android 기기 목록을 확인합니다.

./bin/adb devices

웹에서 가상 기기 보기 및 상호작용

기본적으로 Cuttlefish는 --start_webrtc로 시작되며, 이 명령어는 호스트 머신에서 8443 포트를 통해 WebView를 사용 설정합니다.

가상 기기를 보고 기기와 상호작용하려면 웹브라우저에서 https://localhost:8443으로 이동합니다.

자세한 내용은 Cuttlefish: WebRTC 스트리밍을 참고하세요.

Cuttlefish 중지

가상 기기를 실행하는 데 사용한 디렉터리와 동일한 디렉터리 내에서 기기를 중지합니다.

HOME=$PWD ./bin/stop_cvd