PinePhoneやOrange Pi OneなどのAllwinner SoCで動くAOSPベースのandroidであるGloDroidというのがある。
これはGoogle Play StoreなどのGoogle関連(GMS)が入っていないので使いづらい。OpenGappsでも入れられないかなぁ?とパッケージをみてみたけど、こちらはTWRP用にカスタマイズされていてよく分からない・・・
GloDroidのgithubを見るとprebuilt_appsなんてレポジトリがありfdroidとkodiのインストールについての定義がある。ここらを応用すれば何かできないかなぁ、と思ってGloDroidを自分でビルドしてみることにした。
最初Ubuntu 18.04環境で作ってみたけど、うまくいかないのでGoogleのドキュメント上では推奨されているUbuntu 14.04環境作ってみたりしたけど、うまくいかなかった。
エラーの状況
Ubuntu 18.04でもUbuntu 14.04でもほぼ同じで下記のようなエラーが出力されます。
============================================ [100% 451/451] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja FAILED: out/soong/build.ninja out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Android.bp Killed 10:47:31 soong bootstrap failed with: exit status 1 ninja: build stopped: subcommand failed.build/make/core/main.mk:21: recipe for target 'run_soong_ui' failed make: *** [run_soong_ui] Error 1 osakanataro@ubuntuserver:~/GloDroid$
out/soong.log の最後は下記のようなエラーです。
2020/06/12 10:47:31.168342 build/soong/ui/build/exec.go:95: soong bootstrap failed with: exit status 1
Ubuntu 14.04の場合
Javaのバージョンが古いので新しいOpenJDKを使える様にする。
$ sudo add-apt-repository ppa:openjdk-r/ppa $ sudo apt install openjdk-13-jdk
Googleのドキュメント(Establishing a Build Environment)記載のパッケージをインストール。
$ sudo apt install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
また、上記のNoteに記載されている「python-networkx」と「libnss-sss:i386」も必要で、これが無いことでninjaのエラーがでていました。
$ sudo apt install python-networkx libnss-sss:i386
Repoのインストールを「Downloading the Source」記載の手順で行います。
$ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo gpg --recv-key 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65 $ curl https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ~/bin/repo
repo内部ではgitコマンドを使用するためgitの初期設定も行います。
$ git config --global user.name "Your Name" $ git config --global user.email "you@example.com"
次にGloDroidで要求されているパッケージをインストール。(記述にはrepoが含まれてますがパッケージじゃないので抜く)
$ sudo apt install swig python-dev python3-dev libssl-dev flex bison device-tree-compiler
で・・・この後、試行錯誤した結果、さらに以下のパッケージも必要でした。
$ sudo apt install python-pip gettext gdisk