Pixel 휴대전화를 개발 플랫폼으로 사용하기

프런트엔드 소프트웨어를 개발하는 Automotive 파트너팀은 앱과 사용자 환경을 개발하는 Google 지원 하드웨어 플랫폼이 필요합니다.

주의사항

Pixel 4a(5G) 및 Pixel 5를 개발 플랫폼으로 사용하는 경우 다음과 같은 제한사항이 적용됩니다.

  • Pixel 4a(5G) 및 Pixel 5는 인증되었으며 지원됩니다. Pixel에 관한 자세한 내용은 Google 스토어를 방문하세요.

  • 다음 기기는 지원은 되지만 적극적인 테스트를 거치지는 않았습니다. 올바른 바이너리를 다운로드한 다음 아래 단계를 따르세요.
    • Pixel 3a
    • Pixel 3aXL
    • Pixel 4
    • Pixel 4XL
    • Pixel 4a
    • Pixel 6 및 6 Pro(실험용)
  • Android 12 빌드 SP1A.210812.016.A1사용해야 합니다.

  • 일부 블루투스 프로필은 지원되지 않습니다.

전제조건

계속하기 전에 다음 항목이 있는지 확인하세요.

  1. 필수 항목인 OEM 잠금 해제. 잠금 해제된 Pixel 4a(5G) 또는 Pixel 5를 사용합니다.
  2. Android 코드를 빌드할 수 있는 Linux 데스크톱. 자세한 내용은 빌드 환경 설정을 참고하세요.

코드 동기화 및 빌드

  1. Android 빌드 SP1A.210812.016.A1을 동기화하려면 다음을 실행합니다.
    mkdir aaos_on_phone
    cd aaos_on_phone
    repo init -u https://android.googlesource.com/platform/manifest -b android-12.0.0_r3 --use-superproject --partial-clone --partial-clone-exclude=platform/frameworks/base --clone-filter=blob:limit=10M
    repo sync -j8 -c -q
    
  2. 독점 바이너리 및 패치를 다운로드합니다.
    1. Pixel 4a(5G). Android 12 빌드 SP1A.210812.016.A1용 공급업체 이미지 및 Qualcomm 드라이버와 같은 4a(5G) 바이너리를 다운로드합니다.
      curl --output - https://dl.google.com/dl/android/aosp/google_devices-bramble-sp1a.210812.016.a1-a60d24d5.tgz  | tar -xzvf -
      tail -n +315 extract-google_devices-bramble.sh | tar -zxvf -
      
      curl --output - https://dl.google.com/dl/android/aosp/qcom-bramble-sp1a.210812.016.a1-3fa45eab.tgz | tar -xzvf -
      tail -n +315 extract-qcom-bramble.sh | tar -xzvf -
      
    2. Pixel 5. Android 12 빌드 SP1A.210812.016.A1용 공급업체 이미지 및 Qualcomm 드라이버와 같은 Pixel 5 바이너리를 다운로드합니다.
      curl --output - https://dl.google.com/dl/android/aosp/google_devices-redfin-sp1a.210812.016.a1-8813b219.tgz  | tar -xzvf -
      tail -n +315 extract-google_devices-redfin.sh | tar -zxvf -
      
      curl --output - https://dl.google.com/dl/android/aosp/qcom-redfin-sp1a.210812.016.a1-8d32b5b1.tgz | tar -xzvf -
      tail -n +315 extract-qcom-redfin.sh | tar -xzvf -
      
  3. 빌드를 실행합니다. 다음 예의 <target>aosp_bramble_car 또는 aosp_redfin_car로 바꿔야 합니다.
    . build/envsetup.sh
    lunch <target>
    m
    
  4. Automotive 관련 패키지를 빌드합니다.
    m android.hardware.automotive.audiocontrol@1.0-service android.hardware.automotive.vehicle@2.0-service
    

빌드를 플래시하도록 기기 설정

아직 개발자 옵션을 사용 설정하지 않은 경우 사용 설정하세요. 설정 > 시스템 > 휴대전화 정보로 이동한 다음 빌드 번호를 7번 탭합니다.

개발자 옵션을 사용 설정한 경우:

  1. 설정 > 시스템 > 개발자 옵션으로 이동하여 USB 디버깅OEM 잠금 해제를 사용 설정합니다.
USB 디버깅 OEM 잠금 해제

빌드 플래시

  1. 기기를 빠른 부팅 모드로 전환한 다음 잠금 해제합니다.
    adb reboot bootloader
    fastboot flashing unlock
    
  2. 기기에서 부트로더 로드 취소를 선택합니다. 이렇게 하면 기기의 모든 데이터가 삭제됩니다.
  3. 빌드를 플래시하려면 다음을 실행합니다.
    fastboot -w flashall
    
  4. 빌드가 부팅되고 홈 화면이 표시된 후 다음을 실행합니다.
    1. adb remount를 사용 설정하려면 다음을 실행합니다.
      adb root && sleep 5 && adb disable-verity && sleep 1 && adb reboot && adb wait-for-device && sleep 5 && adb root && sleep 5 &&  adb remount
      
    2. 필수 Automotive 관련 파일을 기기에 푸시하려면 다음을 실행합니다.
      adb sync vendor
      adb reboot
      
    3. 기기가 시작될 때까지 기다립니다.

    실험적 기능

    Pixel 6 및 6 Pro는 실험용으로 지원됩니다. Google은 이러한 기기가 실험 단계를 벗어나도록 하기 위해 노력하고 있습니다.

    위에 나열된 전제조건을 모두 충족하는지 확인합니다.

    코드 동기화 및 빌드

    • android-12.0.0_r4 동기화(SD1A.210817.015.A4)
    • https://developers.google.com/android/drivers에서 SD1A.210817.015.A4에 맞는 Oriole(P6)과 Raven(P6 Pro)용 바이너리 다운로드
    • Android 12 패치 선택
    • aosp_oriole_car(Pixel 6) 또는 aosp_raven_car(Pixel 6 Pro) 빌드
    • AAOS 빌드 아티팩트
    • m android.hardware.automotive.audiocontrol@1.0-service android.hardware.automotive.vehicle@2.0-service
      
    • 위의 4단계 remount에서 설명한 대로 기기 플래시 및 adb remount 사용 설정
    • 기기에 AAOS 아티팩트 푸시
    • FILES="bin/hw/android.hardware.automotive.vehicle@2.0-service bin/hw/android.hardware.automotive.audiocontrol@1.0-service lib64/android.automotive.watchdog-V2-ndk_platform.so lib64/android.hardware.automotive.audiocontrol@1.0.so lib64/android.automotive.watchdog-V2-ndk_platform.so lib64/android.hardware.automotive.vehicle@2.0.so etc/vintf/manifest/android.hardware.automotive.vehicle@2.0-service.xml etc/vintf/manifest/audiocontrol_manifest.xml etc/init/android.hardware.automotive.audiocontrol@1.0-service.rc etc/init/android.hardware.automotive.vehicle@2.0-service.rc"; for F in $FILES ; do echo writing $F; adb push $OUT/vendor/$F vendor/$F ; done
      adb reboot
      
    • 선택사항: 다음 명령을 사용하여 화면 밀도 수정
    • adb shell wm density 240
      adb reboot