フロントエンド ソフトウェアを開発する Automotive のパートナー チームには、アプリとユーザー エクスペリエンスを開発するために、Google がサポートするハードウェア プラットフォームが必要になります。
注意点
Google Pixel 4a(5G)と Google Pixel 5 を開発プラットフォームとして使用する場合、次の制限が適用されます。
-
Google Pixel 4a(5G)と Google Pixel 5 は検証済みで、サポートされています。Google Pixel の詳細については、Google ストアをご覧ください。
-
下記のデバイスはサポートされていますが、現在はテストされていません。正しいバイナリをダウンロードした後、次の手順を行います。
- Google Pixel 3a
- Google Pixel 3a XL
- Google Pixel 4
- Google Pixel 4 XL
- Google Pixel 4a
- Google Pixel 6、Google 6 Pixel Pro(試験運用版)
-
Android 12、ビルド SP1A.210812.016.A1 を使用する必要があります。
- Bluetooth プロファイルには一切サポートが提供されません。
前提条件
続行する前に、以下の項目を満たしていることを確認してください。
- OEM ロック解除が必要。ロック解除された Google Pixel 4a(5G)または Google Pixel 5 を使用します
- Android コードのビルドが可能な Linux デスクトップ。詳細については、ビルド環境を構築するをご覧ください。
コードの同期とビルド
- 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
- 専用のバイナリとパッチをダウンロードします。
- Google Pixel 4a(5G)。Android 12 のベンダー イメージや Qualcomm ドライバなどの 4a(5G)バイナリをダウンロードして、SP1A.210812.016.A1 をビルドします。
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 -
- Google Pixel 5。Android 12 のベンダー イメージや Qualcomm ドライバなどの Pixel 5 バイナリをダウンロードして、SP1A.210812.016.A1 をビルドします。
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 -
- Google Pixel 4a(5G)。Android 12 のベンダー イメージや Qualcomm ドライバなどの 4a(5G)バイナリをダウンロードして、SP1A.210812.016.A1 をビルドします。
- ビルドを実行します。次の例の
<target>
は、aosp_bramble_car
またはaosp_redfin_car
のいずれかに置き換えてください。. build/envsetup.sh lunch <target> m
- Automotive 関連のパッケージをビルドします。
m android.hardware.automotive.audiocontrol@1.0-service android.hardware.automotive.vehicle@2.0-service
ビルドをフラッシュするようにデバイスを設定する
まだ有効にしていない場合は、開発者向けオプションを有効にしてください。[設定] > [システム] > [デバイス情報] に移動し、ビルド番号を 7 回タップします。
[開発者向けオプション] を有効にしている場合:
- [設定] > [システム] > [開発者向けオプション] に移動し、[USB デバッグ] と [OEM ロック解除] を有効にします。
ビルドをフラッシュする
- デバイスを Fastboot モード(Fastboot mode)にしてからロックを解除します。
adb reboot bootloader fastboot flashing unlock
- デバイスで、[Unlock the Bootloader] を選択します。この操作により、デバイス上のすべてのデータが消去されます。
- ビルドをフラッシュします。
fastboot -w flashall
- ビルドの起動後、ホーム画面が表示されたら次の操作を行います。
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
- 必要な Automotive 固有のファイルをデバイスにプッシュします。
adb sync vendor adb reboot
- デバイスが起動するまで待ちます。
試験運用版
Google Pixel 6 と Google 6 Pixel 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
(Google Pixel 6)またはaosp_raven_car
(Google 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