solaさんのブログエントリ(Keon 向けに Firefox OS をビルドして動かしてみた)をなぞって、Mac上でKeon向けビルドを行って焼いてみました。
(参考)
・Firefox OS ビルドの必要条件」の「Mac OS X での必要条件」
・dynamisさんの「firefoxos/wiki/build」
使った環境
・MacBook Pro Mid 2010(2.4GHz Core i5、メモリ8GB)
・MacOS X 10.7.5(Lion)
・Homebrew(http://mxcl.github.io/homebrew/)導入済み
・Android SDK(http://developer.android.com/sdk/index.html)導入済み
(adbやfastbootが使用可能である)
事前準備
Keonのリモートデバッグを有効にする
KeonのリモートデバッグはデフォルトでOFFになっているので、有効にします。
具体的な手順は、ブリリアントさんの「Firefox OSの実機にPCからアプリをインストールする」を参照してください。
adb shellが通ることを確認する
Terminalから「adb shell」を実行して、Keonのshellに入れることを確認します。
Mac用の必要環境を用意する
MDNで公開されている「Firefox OS ビルドの必要条件」の「Mac OS X での必要条件」に従って、環境の確認と必要なソフトウェアのインストールを行います。
注意点として、「Mac OS X 10.6 SDK」が必要です。
これは最新のXcodeに付属していないので、上記リンク内で述べられているようにApple Developerのサイトから古いXcodeをダウンロードする等して入手してください。
(古い版のXcodeがあればそこに入っている)
Terminalから「Firefox OS Mac ブートストラップ」の冒頭にあるコマンドを実行してください。
10.6 SDKのチェックの後、homebrewで不足ソフトウェアのインストールが実行されます。
Firefox OSの日本語化+ビルド
KeonへのROM焼きまで含めて基本的にsolaさんブログの手順通りで問題ありませんが、Macでのビルド用に3箇所差分。
mercurialをHomebrewからインストールする
手順では「日本語データの取得と設定」の「mercurial のインストール」でapt-getを使ってインストールしていますが、Macなので代わりにHomebrewでインストールします。
$ brew install mercurial
keyboard/js/imes/jskanji/dict/conv.pyを修正する
「日本語辞書の設定」の項で発行する「make json」から呼び出されるconv.pyで使われているsimplejsonモジュールがいません(というか現行のpythonではjsonモジュールにリネームされているらしい)ので、import宣言を修正します。
「$B2G_WORK/B2G/gaia/apps/keyboard/js/imes/jskanji/dict/conv.py」の冒頭部を以下の通り変更してください。
(変更前)
import simplejson as json
(変更後)
import json
elf.hを/usr/includeに置く
ビルド中に「elf.hがない」と怒られますので、elf.hを/usr/include直下に追加します。
(参考:「【Xperia】OSXでICS正式カーネルをBuild」)
$ sudo wget http://www.rockbox.org/tracker/9006?getfile=16683 -O /usr/include/elf.h
ビルド結果を確認する
エラーが出てビルドが失敗した場合は、無慈悲なエラーメッセージが出力されます。
> Build failed! < エラーなくビルドが完了した場合は、以下のようなメッセージが出力されます。 real 100m40.011s user 221m8.034s sys 35m10.502s Run |./flash.sh| to flash all partitions of your device
今のROMをバックアップする
とりあえずddでバックアップを取りました。
「DDでバックアップしたファイルをFirefox OS端末 KEONに戻してみた」を読むとダメな感じもしますが、「KEON用にFirefoxOSをビルドして動かしてみた(日本語化含む)」を読むとそうでもないかもしれません。
$ adb shell
# cd /mnt/sdcard
# mkdir backup_keon
# cd backup_keon
# dd if=/dev/block/mmcblk0pX of=mmcblk0pX.img bs=4096
(「mmcblk0pX」のところは、実際にはmmcblk0p1〜p20。上記ブログから、実際に要りそうなのはmmcblk0p8、mmcblk0p10、mmcblk0p12、mmcblk0p13ぐらいか)
全体で4GBぐらいあります。小分けに取ってPC等へ待避するか、大容量のSDカードを使ってください。
データの実体はそんなに大きくないので(特にuserdata/mmcblk0p13)もうちょいマシなやり方もあると思うのですが知らないしめんどくさいし。
MacからKeonのSDカードへアクセスする場合は、[Settings]-[Device]-[Media storage]を開き、[USB mass storage]にチェックを入れた後、USBケーブルを挿し直してください。
逆にadbコマンドを使う場合は、チェックをオフにしてください。
ROM焼き
Keonへ焼いて確認します。
スタートアップ画面の出だし、選択肢が英語と日本語になっていたらたぶん成功です。
コメントを残す