Orange Pi 4はRockchip RK3399を搭載したシングルボードコンピュータです。
公式ページからAndroidイメージをダウンロードする事もできますが、カスタマイズをする場合は自分でイメージをビルドする必要があります。
必要な環境
- 100GB 以上のストレージ空き容量
- Docker環境
(マニュアルでは、Ubuntu 14.04にJDKや依存関係をインストールするよう指示されていますが、現在Ubuntu 14.04をネイティブで使用している方は少ないと思うので、ビルド環境をDockerにまとめました。)
私はDockerホストはUbuntu 20.04を使っています。
参考 : 私の開発環境
Ryzen 3700X / 32GB RAM
makeの-jN
オプションによるかもしれませんが、ビルド中は10GB程度のメモリを消費する模様です。
手順
http://www.orangepi.org/downloadresources/ から
Orange Pi 4B / Android Source Codeをダウンロードしましょう。中国以外の国からはGoogle Driveでダウンロードするのが良いでしょう。サイズは16GBです。ソースコードのZipファイルを展開
落としてきたAndroid code source.zip
を適当な場所に展開します。
(ここから先は展開したファイル中にある中国語PDFの"七、 Android 编译环境搭建"の内容と、環境をDockerに置き換えたものです。)-
tar.gzaXを結合/展開
rk3399-android-8.1.tar.gz*
がある場所で$ mkdir OrangePi_4 $ cat rk3399-android-8.1.tar.gz* > rk3399-android-8.1.tar.gz $ tar xvf rk3399-android-8.1.tar.gz -C OrangePi_4
-
ビルド!
$ cd OrangePi_4/rk3399-android-8.1/ $ docker run --rm -v $(pwd):/workdir aquahika/android-buildenv-orangepi4 ./make.sh -F -M -u
私の環境ではビルドが終わるまで約1時間でした
-
成果物
OrangePi_4/rk3399-android-8.1/rockdev/Image-rk3399_mid
にあります$ cd rockdev/Image-rk3399_mid $ ls boot.img misc.img pcba_small_misc.img resource.img uboot.img kernel.img oem.img pcba_whole_misc.img system.img update.img MiniLoaderAll.bin parameter.txt recovery.img trust.img vendor.img
手元にOrangePi4がまだ無いので実際に書き込んではいませんが、ビルド自体はうまく出来ているようです。
マルチコア用並列ビルドの設定
OrangePi_4/rk3399-android-8.1/make.sh
の11行目にMAKE="make -j8"
と書いてあり、デフォルトでは8スレッドで並列ビルドをするようです。
私のRyzen 7 3700Xは8コア16スレッドなので、MAKE="make -j16"
に書き換えました。
※ -jN
オプションはコア数+1を指定したほうがよい説もあります。が、すべてのコアがフルに使われている様子をシステムモニターで眺めていると気持ち良いので(笑)、最大スレッド数にしています。
ビルド環境のDockerイメージ / Dockerfile
Issue/PR歓迎しております。