ブログネタ
FirefoxOS に参加中!
まずは改造するためのベース環境を作成した。
B2G はターゲットを指定する毎にソースをダウンロードしてくるのが煩わしいので、
B2JC は少し変更してみた。
ビルド手順は以下の通り。
現時点では Nexus4 と Nexus7(2013)のみ。

Nexus4 向け
  • ソースコードの取得
  • $ mkdir -p ~/b2jc_work
    $ export B2JC_ROOT=~/b2jc_work
    $ cd $B2JC_ROOT
    $ repo init -u https://github.com/JCROM-FxOS/b2jc-manifest.git -b b2jc-master
    $ repo sync
  • プロプライエタリなファイルの取得
  • $ cd $B2JC_ROOT/device/lge/mako
    $ ./download-blobs.sh
  • ccache の設定
  • $ export USE_CCACHE=1
    $ $B2JC_ROOT/prebuilts/misc/linux-x86/ccache/ccache -M 100G
  • Firefox OS のビルド
  • $ cd $B2JC_ROOT
    $ source build/envsetup.sh
    $ source jcrom/common/b2jc.sh
    $ lunch b2jc_mako-userdebug
    $ make otapackage
    make の部分は、make otapackage -j8 や make otapackage -j12 として並列に make を実行する事で時間を短縮出来る。
    大量にメモリを使用するので、メモリ搭載量の半分くらいを目安にする。
    例えばメモリ16GBの環境だと、make otapackage -j8 で実行。

    ビルドが完了すると $B2JC/out/target/product/mako/B2JC-x.x.x-yyyymmdd_mako.zip が出来る。
    これを ClockworkMod Recovery 等で書き込む。初めて B2JC を書き込む場合は data/cache のクリアを行うこと。

    Nexus4 は radio を Android 4.3 のものにしないと WiFi で通信出来ないようなので、
    radio を Android 4.3 のものに書き換えること。
    ソースは Nexus 4 用に日本語対応の Firefox OS をビルドした話 を参照。細かく書いてある。

Nexus7(2013) 向け
  • ソースコードの取得
  • $ mkdir -p ~/b2jc_work
    $ export B2JC_ROOT=~/b2jc_work
    $ cd $B2JC_ROOT
    $ repo init -u https://github.com/JCROM-FxOS/b2jc-manifest.git -b b2jc-master
    $ repo sync
  • プロプライエタリなファイルの取得
  • $ cd $B2JC_ROOT/device/asus/flo
    $ ./download-blobs.sh
  • ccache の設定
  • $ export USE_CCACHE=1
    $ $B2JC_ROOT/prebuilts/misc/linux-x86/ccache/ccache -M 100G
  • Firefox OS のビルド
  • $ cd $B2JC_ROOT
    $ source build/envsetup.sh
    $ source jcrom/common/b2jc.sh
    $ lunch b2jc_flo-userdebug
    $ make otapackage
    make の部分は、make otapackage -j8 や make otapackage -j12 として並列に make を実行する事で時間を短縮出来る。
    大量にメモリを使用するので、メモリ搭載量の半分くらいを目安にする。
    例えばメモリ16GBの環境だと、make otapackage -j8 で実行。

    ビルドが完了すると $B2JC/out/target/product/flo/B2JC-x.x.x-yyyymmdd_flo.zip が出来る。
    これを ClockworkMod Recovery 等で書き込む。初めて B2JC を書き込む場合は data/cache のクリアを行うこと。

KitKat(Android 4.4)ベースにするのは簡単だけど、
自分が試したタイミングではカメラや通信が動作してなかったので、JellyBean(Android4.3)ベースで作っている。