Firefox OS/masterのビルド方法 (日本語化含む)

Android solaさんのKeonのビルド方法をベースに現状に合わせています。
好んで使っているのはUbuntu 12.10 x64です。
メモリは4G以上必須です。CPUコアはあればあるほどいいです。
過去の記事から起こしつつ、2013/10末時点に合わせています。

☆環境作成
1,必要なパッケージ
MDN(Mozzila Developer Network)のFireFox OSの必要条件を参考にします。
https://developer.mozilla.org/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites

インスコ

apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make

これに加えて、g++もインストールしてください。cc1plusがないといって失敗します。

libX11.so と libGL.so ライブラリの32 ビットバージョン問題の修正

ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

2,デフォルトコンパイラの変更
B2Gはgcc 4.6でないとコンパイルエラーになります。
めんどいので、.bashrcの末尾に加えるといいでしょう。

export CC=gcc-4.6
export CXX=g++-4.6

3,CCACHEとAndroid SDKの設定
.bashrcの末尾に加えるといいでしょう。

export PATH=$PATH:/usr/local/android-sdk-linux/sdk/platform-tools
ccache -M 3072M


Android SDKの場所は、各自の環境に合わせてください。

4,USBの設定
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone
この辺から適当に。
各自のデバイスに合わせて設定してください。

☆コンパイル作業
1,ソースの取得
Keonの場合です。

mkdir ~/b2g_work
export B2G_WORK=~/b2g_work

cd $B2G_WORK
git clone git://github.com/mozilla-b2g/B2G.git
cd B2G
./config.sh keon

ちなみに、
KEON: keon
PEAK: peak
Alcatel One Touch Fire: hamachi
ZTE Open: inari
Nexus4: nexus-4
LG D-300: leo ???
と置き換えてください。

2,日本語周りのソースの取得
以下を実行

cd $B2G_WORK
hg clone http://hg.mozilla.org/gaia-l10n/ja gaia-l10n/ja
export LOCALE_BASEDIR=$PWD/gaia-l10n
wget http://sola-dolphin-1.net/data/B2G/source/languages-japan.json -O $PWD/B2G/gaia/shared/resources/languages-japan.json
export LOCALES_FILE=$PWD/B2G/gaia/shared/resources/languages-japan.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”

solaさんのlanguages-japan.jsonをいつまでも使わせていただいております。
中身はこんな感じです。他の言語も使いたかったら適当に追加編集するといいかもですね。

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

3,日本語IMEを使いたいときでかつ辞書を組み込みたい場合
naist-jdic-0.4.3.tar.gzを適当に取得してHOMEに置いておくといいです。

cd $B2G_WORK
tar zxvf ~/naist-jdic-0.4.3.tar.gz
cd $B2G_WORK/B2G/gaia/apps/keyboard/js/imes/jskanji/dict
mkdir ipadic
cp $B2G_WORK/naist-jdic-0.4.3/naist-jdic.dic ipadic/
make json

※:日本語IMEは一筋縄では有効に出来ません。当方の過去ログを参考にするか、その方法がだめなら頑張る他ないです。ダメになりました。当面自力で頑張るか入力はあきらめましょう。

4,実機固有のバイナリの取得
Keonの場合です。その他の場合はB2G/deviceの下を探して適当に当ててください。

cd $B2G_WORK/B2G/device/geeksphone/keon
./extract-files.sh

One Touch FireはB2G/device/qcom/hamachiだったかな?

☆ビルド
1,オフィシャルビルドにする

export MOZILLA_OFFICIAL=1

2,userdebugにする
デバッグ系のアプリが消えて、あと端末をリセットしても固まらなくなります。
B2G配下の.configに以下の行を追記

LUNCH=full_keon-userdebug

keonの部分は適宜置き換えてください。

3,ビルド

cd $B2G_WORK/B2G
./build.sh

なお、ビルドに失敗してももう一度ビルドするとうまくいく場合があります。
3回やってだめならあきらめるか手順を見直しましょう。
手順が合っててもそもそもリポジトリがおかしくてコンパイルが出来ない場合も多いです。materブランチなんで・・・
原因の切り分けには

./build.sh -j1

とやると、並列実行しなくなるので見やすくなります。

☆書き込み
端末をつないだ状態で

./flash.sh

で焼けます。

☆☆☆注意
ここで書いた方法が全てではありません。もっと本来のやり方(スマートな方法)があると確信していますが、面倒なのでこの方法でつづけています。
いい方法がありましたらぜひご教授ください。

たぶんこれが正当なやり方なんだろうなと・・・
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file