ZTE Openをbuildしてみた

端末を購入したんで早速環境を作ってOSをビルドしてみた。
折角bootloaderがunlockされてるんだし。

ビルド環境

環境はVMware Playerにセットアップしたubuntu12.04 LTS 64bit。
B2G OS build prerequisites - Archive of obsolete content | MDN を参考にしつつ。
必要なコンパイラなどをTerminalでインスト。

$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make zip
$ sudo apt-get install android-tools-adb

adbで実機とつなぐ必要があるんでudevの設定もする。

$ sudo vi /etc/udev/rules.d/51-android.rules

51-android.rulesを作成したら、下を入力。

SUBSYSTEM=="usb", ATTRS{idVendor}=="####:####", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
TEST=="/var/run/ConsoleKit/database", RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}"

保存したら権限をつけて、サービスの再起動。

$ sudo chmod a+r /etc/udev/rules.d/android.rules
$ sudo service udev restart

というか環境に関しては以前GN向けに試したときのなのでここの「ビルド環境作成」をそのままやった記憶が。

ソース取得

現時点でmasterリポジトリから最新版を取得したら、OS 1.3 preview版だったので参考にしたサイトの通りbranch指定で取得してみた。
まずは作業ディレクトリを作成してその中でgit cloneしてリポジトリを取得。

$ mkdir ~/b2g_work
$ cd ~/b2g_work
$ git clone git://github.com/mozilla-b2g/B2G.git

cloneが完了したらソースの取得。

$ cd B2G
$ BRANCH=v1.2 VARIANT=user ./config.sh inari

通信環境にもよるけど、ソースの取得で時間がかかるんで休憩。
VARIANTを変えればrooted状態にもできるはず。

geckoとgaiaの日本語化

日本語化はBuilding B2G OS - Archive of obsolete content | MDNの「Building multilocale」を参考に。
言語ファイルを予め作っておく。

$ vi ~/b2g_work/languages-ja.json

なかみはjson形式で。

{
  "en-US"     : "English (US)",
  "ja"        : "日本語"
}

各種言語ファイルを取得&設定していく。

$ cd ../
$ hg clone http://hg.mozilla.org/gaia-l10n/ja gaia-l10n/ja
$ export LOCALE_BASEDIR=$PWD/gaia-l10n
$ export LOCALES_FILE=$PWD/B2G/gaia/shared/resources/languages-ja.json

$ hg clone http://hg.mozilla.org/l10n-central/ja gecko-l10n/ja
$ export L10NBASEDIR=$PWD/gecko-l10n
$ export MOZ_CHROME_MULTILOCALE="ja"

$ hg clone http://hg.mozilla.org/build/compare-locales
$ export PATH="$PATH:$PWD/compare-locales/scripts"
$ export PYTHONPATH="$PWD/compare-locales/lib"

オフィシャルビルドへ

ブートロゴとかをオフィシャルにしたいときはmakefileに変数を追加。
B2G/gaia/Makefileを開いて252行目辺りに下を追加。

MOZILLA_OFFICIAL=1

ビルド実行

あとはビルドエラーがでないことを祈りつつ実行。

$ cd ~/b2g_work/B2G
$ export CC=gcc-4.6
$ export CXX=g++-4.6
$ BRANCH=v1.2 VARIANT=user ./build.sh

焼く

ビルドが成功したら、boot.imgをコピーしてから焼く。
boot.imgはhttp://sl.edujose.org/2013/10/adapted-boot-image-for-use-with-b2g.htmlここから入手。
out/target/product/inari/boot.img としてコピー。

$ ./flash.sh

フラッシュすれば、起動する…はず。

日本語キーボード

キーボードもブログを参考にしながらやってみたけど、gaia配下のキーボードアプリがビルドのタイミングでpullされて初期化されちゃうらしく・・・。
シェルにその後定義をコピーするように書いてみても動く気配がないので、現在は放置中。

参考にしたサイト

http://blog.sola-dolphin-1.net/archives/4386949.html
このブログが無かったら本家MDNだけじゃ謎だらけ。


FirefoxOS 1.2 on ZTE Open - Miker
ZTE Openのビルド方法はここにまとまってる。


B2G OS - Archive of obsolete content | MDN
本家。