Android オープン ソース プロジェクト (AOSP) ビルドと関連するハードウェア固有のバイナリを使用して、Nexus および Pixel デバイス用のビルドを作成できます。利用可能な Android ビルドとターゲット デバイスについては、「ソース コード タグとビルド」を参照してください。
また、 DragonBoard 845c 、 HiKey 960 、 Khadas VIM3 、およびQualcomm Robotics Board RB5 Android リファレンス ボードのビルドを作成することもできます。これらは、非モバイル コンポーネント ベンダーがドライバーを開発し、Android リリースに移植するのに役立つように設計されています。リファレンス ボードを使用すると、アップグレード作業が容易になり、新しい Android デバイスの市場投入までの時間が短縮され、ODM/OEM が幅広い互換性のあるコンポーネントから選択できるようになるため、デバイスのコストが削減され、コンポーネント サプライヤー間のイノベーションの速度が向上します。
Google は、 DragonBoard 845c 、 HiKey 960 、 Khadas VIM3 、およびQualcomm Robotics Board RB5 Android リファレンス ボードをサポートしています。 AOSP はこれらのボードにカーネル ソースとボード サポートを提供するため、開発者は OEM の負担を軽減して、周辺機器ドライバーの作成とデバッグ、カーネル開発、その他のタスクの実行を簡単に行うことができます。
ドラゴンボード 845c
DragonBoard 845c は RB3 プラットフォームの一部であり、 96boards.orgから入手できます。
図 1. DragonBoard 845c
ユーザー空間のコンパイル
次のコマンドを使用して、DragonBoard 845c に Android をダウンロードしてビルドします。
Android ソース ツリーをダウンロードします。
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
現在のベンダー パッケージをダウンロードします。
./device/linaro/dragonboard/fetch-vendor-package.sh
AOSP をビルドします。
. ./build/envsetup.sh
lunch db845c-userdebug
make -j24
ローカル イメージのインストール
db845c を fastboot モードで起動します。
次のコマンドを実行します。
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
必要に応じて、USB フラッシュ モードで db845c を起動した後、次のスクリプトを実行して QDL ボードの回復を実行できます ( DragonBoard の回復を参照)。
./device/linaro/dragonboard/installer/db845c/recovery.sh
カーネルの構築
DragonBoard db845c Android Generic Kernel Image (GKI) カーネル アーティファクトをビルドするには:
次のコマンドを実行して、カーネル ソースとビルド済みの Android ツールチェーンを複製し、スクリプトをビルドします。
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -j8 -c
rm -rf out
tools/bazel run //common:db845c_dist -- --dist_dir=$DIST_DIR
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
内のすべてのオブジェクトを削除し、ビルド アーティファクトをout/android-mainline/dist/
から${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
にコピーします。${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
次に、ユーザー空間を次のように再構築します。make TARGET_KERNEL_USE=mainline -j24
結果の boot.img と super.img でデバイスをフラッシュします (ユーザー空間のコンパイルを参照)。
GKI カーネルをテストします。
最新の kernel_aarch64 ビルドを表示します。
artifactsで、Image をダウンロードします。
画像をgzipする
gzip Image
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
にコピーします。AOSP を再構築し、新しい boot.img でデバイスをフラッシュします (ユーザー空間のコンパイルを参照)。
HiKey 960 ボード
HiKey 960 ボードは、Amazon およびLenovatorから入手できます。
図 2. Lenovator の HiKey 960 ボード
ユーザー空間のコンパイル
次のコマンドを使用して、HiKey 960 ボードに Android をダウンロードしてビルドします。
Android ソース ツリーをダウンロードする
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
現在のベンダー パッケージをダウンロードする
./device/linaro/hikey/fetch-vendor-package.sh
建てる
. ./build/envsetup.sh
lunch hikey960-userdebug
make -j24
ローカル イメージのインストール
スイッチ 3 をオンにして fastboot モードを選択します (詳細については、 HiKey 960 入門ガイドを参照してください)。
ボードに電力を供給します。
フラッシュ ローカル イメージ:
./device/linaro/hikey/installer/hikey960/flash-all.sh
スイッチ 3 をオフにして、ボードの電源を入れ直します。
カーネルの構築
HiKey960 Android GKI カーネル アーティファクトをビルドするには:
次のコマンドを実行します。
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.hikey960 build/build.sh
${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/
内のすべてのオブジェクトを削除し、ビルド アーティファクトをout/android12-5.4/dist/
のカーネル ビルドから${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
DTB を連結します。
cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb > device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
Android ユーザー空間の構築
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
新しいカーネルでデバイスをフラッシュします(ユーザー空間のコンパイルを参照)
Generic Kernel Image (GKI) カーネルをテストする
最新の kernel_aarch64 ビルドを表示します。
artifactsで
Image
ファイルをダウンロードし、${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
にコピーします。画像を圧縮して DTB を連結する
gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb > ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
- 新しいカーネルでデバイスをビルドしてフラッシュします (ユーザー空間のコンパイルを参照)。
シリアルナンバーの設定
ランダムなシリアル番号を設定するには、次を実行します。
fastboot getvar nve:SN@16\_DIGIT\_NUMBER
ブートローダーは、生成されたシリアル番号をandroidboot.serialno=
を使用してカーネルにエクスポートします。このパラメーターは、Android 11 以前ではカーネル コマンドラインを介して渡され、カーネル バージョン 5.10 以降の Android 12 では bootconfig を介して渡されます。
モニター解像度の設定
device/linaro/hikey/hikey960/BoardConfig.mk
パラメータBOARD_KERNEL_CMDLINE
を編集し、 video
設定を構成します。たとえば、24 インチ モニターの設定はvideo=HDMI-A-1:1280x800@60
です。
VIM3 および VIM3L ボード
Khadas による Vim3 および VIM3L ボードは、 Khadas の Web サイトから入手できます。
図 3. Khadas による VIM3 ボード
ユーザー空間のコンパイル
次のコマンドを使用して、VIM3 ボードに Android をダウンロードしてビルドします。
Android ソース ツリーをダウンロードします。
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
建てる:
. ./build/envsetup.sh
lunch yukawa-userdebug
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
デフォルトでは、Android は 5.10 カーネルでビルドされています。カーネル 5.4 プリビルドを使用するには:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
VIM3L の場合、次を使用します。
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
初期イメージのインストール
VIM3 フラッシュの指示に従って、ボードを USB アップグレード モードにします。
初期イメージを RAM にフラッシュします。
cd path/to/aosp/device/amlogic/yukawa/bootloader/
./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
./tools/update run 0xfffa0000
./tools/update bl2_boot u-boot_kvim3_noab.bin
- 権限の問題が発生した場合は、 udev ルールのセクションを参照して、適切な USB ルールを追加してください。
-
tools/update
が機能しない場合は、代わりにpyamlboot ツールを使用してボードをフラッシュしてください。
U-Boot が起動して fastboot を実行したら、次のコマンドを実行します。
fastboot oem format
fastboot flash bootloader u-boot_kvim3_noab.bin
fastboot erase bootenv
fastboot reboot bootloader
電源ケーブルを抜き差しします。
ボードは、フラッシュしたばかりの U-Boot で起動し、fastboot モードに入る必要があります。
画像の点滅
fastboot モードに入ります (手順については、前のセクションを参照してください)。
すべての Android イメージをフラッシュします。
cd out/target/product/yukawa
fastboot flash boot boot.img
fastboot flash super super.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img
fastboot flash recovery recovery.img
fastboot flash dtbo dtbo-unsigned.img
fastboot reboot
カーネルの構築
VIM3 または VIM3L のカーネル アーティファクトをビルドするには:
追加のツールチェーンをダウンロードします。
git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
カーネル ソースのクローンを作成します。
# for 4.19 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
# for 5.4 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
# for 5.10 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
# for 5.15 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
ビルド変数をエクスポートします。
export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export LLVM=1
カーネルをビルドします。
cd hikey-linaro
make meson_defconfig
make DTC_FLAGS="-@" -j24
カーネルを圧縮し、build_artifacts を
${AOSP_TOPDIR}/device/amlogic/yukawa-kernel
にコピーします。lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
KERN_VER=4.19 # for 4.19 kernel
KERN_VER=5.4 # for 5.4 kernel
KERN_VER=5.10 # for 5.10 kernel
KERN_VER=5.15 # for 5.15 kernel
for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f) done
cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
Android ユーザー空間を再構築し ( Compiling userspaceを参照)、新しいカーネルをフラッシュします ( Flashing imagesを参照)。
クアルコム ロボティクス ボード RB5
Robotics Board RB5 は96boards.orgから入手できます。
図 4.ロボティクス ボード RB5
ユーザー空間のコンパイル
次のコマンドを使用して、RB5 に Android をダウンロードしてビルドします。
Android ソース ツリーをダウンロードします。
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
現在のベンダー パッケージをダウンロードします。
./device/linaro/dragonboard/fetch-vendor-package.sh
AOSP をビルドします。
. ./build/envsetup.sh
lunch rb5-userdebug
make -j24
ローカル イメージのインストール
RB5 を fastboot モードで起動します。
次のコマンドを実行します。
./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
必要に応じて、USB フラッシュ モードで RB5 を起動した後、次のスクリプトを実行して QDL ボードの回復を実行できます (「 RB5 の回復」を参照)。
./device/linaro/dragonboard/installer/rb5/recovery.sh
カーネルの構築
RB5 Android Generic Kernel Image (GKI) カーネル アーティファクトをビルドするには:
次のコマンドを実行して、カーネル ソースとビルド済みの Android ツールチェーンを複製し、スクリプトをビルドします。
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.db845c ./build/build.sh
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
内のすべてのオブジェクトを削除し、ビルド アーティファクトをout/android-mainline/dist/
から${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
を実行してから、次のようにユーザー空間を再構築します。make TARGET_KERNEL_USE=mainline -j24
結果の boot.img と super.img でデバイスをフラッシュします (ユーザー空間のコンパイルを参照)。
GKI カーネルをテストします。
- 最新の kernel_aarch64 ビルドを表示します。
- artifactsで、Image をダウンロードします。
画像をgzipする
gzip Image
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
にコピーします。AOSP を再構築し、新しい boot.img でデバイスをフラッシュします (ユーザー空間のコンパイルを参照)。