サポートされているモバイル端末用 Boot to Gecko のビルドが完了したら、インストールしてください。この記事では、インストールの全過程を解説します。
ADBをインストールする
OSX では
OSX に homebrew がインストール済みであれば:
brew install android-platform-tools
なければ、Android Developer Tools をダウンロードし、バイナリを PATH に追加してください。
Ubuntu では
sudo apt-get install android-tools-adb
スマートフォンにフラッシュする
スマートフォンにすべてを書き込むときは、単にスマートフォンを接続し、次のコマンドを入力してください:
./flash.sh
たったこれだけです。これで、B2G の現時点のビルドが端末にフラッシュされます。
ただし、Gaia の大幅に変更されたリビジョンをまたいで更新する場合、次のコマンドも必要になるでしょう:
cd gaia make reset-gaia
これは、Gaia に保存された全データを消去しますが、廃止された Gaia の設定や prefs も消去するので、"クリーンな" Gaia を起動できるようになります。理論的には、./flash.sh
で既に行われていますが、いくつかの端末 (例えば hamachi) では、./flash.sh
ではモジュールのサブセットだけがフラッシュされます (./flash.sh -f
では強制的にすべてをフラッシュします)。
端末用 udev ルールを構成する
Linux で以下が表示された場合、
< waiting for device >
これは、adb 用の udev ルールとは異なる、fastboot 端末用の udev ルールが追加されていない可能性が高いことを意味しています (./flash.sh を sudo つきで実行する必要があるだけかもしれません)。ここで lsusb
を実行すると USB ベンダ ID を確認できます。例えば Google の USB ベンダー ID: 18d1 の場合は、/etc/udev/rules.d/51-android.rules
に、以下の行を追加するとよいでしょう:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
libusb
エラー "-3" が発生した場合、USB 端末にアクセスするために root 権限が必要であることを意味します。sudo
を使用して、もう一度スクリプトを実行してください。Hamachi および Helix、Leo 端末に関する特記事項
スマートフォンが hamachi または helix、leo 端末の場合、./flash.sh スクリプトはデフォルトで gecko と gaia のみをフラッシュします。 OEM をベースビルドとしてフラッシュし、ファームウェアと gonk 階を取得した上で gecko と gaia をフラッシュすることが推奨されます。イメージファイルを使ってフラッシュしたい場合は、./flash.sh -f で上書きフラッシュしてください。これは、端末へのフラッシュにイメージファイルを使用します。
Samsung Galaxy S2 に関する特記事項
あなたのスマートフォンが Galaxy S2 で heimdall 1.3.2 (最新バージョン。heimdall version
で確認してください) を使用している場合、"FACTORYFS upload failed!" という警告エラーに続けて "Heimdall flashing failed" というエラーといくつかの追加情報が表示されるかもしれません。これは、実際には成功しているので、警告を無視して構いません。
この奇妙な振る舞いを止めさせるには、Heimdall の ソースのコピー を入手し、1.3.1 リリースへダウングレード ("git checkout fbbed42c1e5719cc7a4dceeba098981f19f37c06
") してください。次に、README
に従ってコンパイルしてインストールすればエラーが出力されなくなります。しかし、これは必ずしも必要な手順ではありません。
注記: イメージサイズが問題でないかもしれません。次のヒントを見てください。
Heimdall のすべてのバージョンで、100MB 以上の system.img をフラッシュできません。次のコマンドを実行してください:
ls -l ./out/target/product/galaxys2/system.img
イメージファイルのサイズが大きいことが確認できます。あまりにも大きい場合は、IRC で質問してください。これには、2 つの段階で対処する方法があります。
heimdall コマンドの引数が動作せず、その結果フラッシュに失敗するかもしれません。./flash.sh スクリプトを変更する必要があるでしょう。引数は大文字でないといけません (l.185):
case $project in "system") $HEIMDALL flash --FACTORYFS out/target/product/$DEVICE/$project.img ;; "kernel") $HEIMDALL flash --KERNEL device/samsung/$DEVICE/kernel ;; "") $HEIMDALL flash --FACTORYFS out/target/product/$DEVICE/system.img --KERNEL device/samsung/$DEVICE/kernel && update_time ;; esac
Samsung Galaxy S2 用の追加手順
Galaxy S2 をフラッシュする場合、次の追加手順に従ってください。flash.sh
スクリプトで Gaia が自動的にフラッシュされないため、次のコマンドも実行する必要があります:
./flash.sh gaia
スマートフォンを fastboot するため特定パーティションをフラッシュする
特定のパーティションを fastboot スマートフォン (Samsung Galaxy S2 以外の端末) にフラッシュしてください。例えば:
./flash.sh system ./flash.sh boot ./flash.sh user
警告: user をフラッシュすると、少なくともユーザ固有のデータ (連絡先など) が削除されます。
特定のモジュールを更新する
フラッシュ時にコンポーネントの名前を指定すると、B2G の特定のコンポーネントを更新できます。例えば:
./flash.sh gaia ./flash.sh gecko
1 個のアプリケーションのみを更新するには、BUILD_APP_NAME 環境変数を使用してください:
BUILD_APP_NAME=calendar ./flash.sh gaia
ご使用のスマートフォンが開発者向けでない場合 (アプリのテストや最適化に興味がない場合など)、次のようにして gaia を更新できます:
VARIANT=user ./flash.sh gaia
次のステップへ
この時点で、あなたのスマートフォンは Boot to Gecko が動作しているはずです! いよいよ実験や、コード書き、テスト、デバッグ の時がやってきました!
トラブルシューティング
ここには、B2G をインストールした直後、または新バージョンに更新した直後に端末が正しく動作しなかった場合の対処法について、いくつかのヒントがあります。
UI が起動しない場合
スマートフォンを更新してユーザインターフェイスが起動しない場合は、リセットして古い設定などのデータを消去してください。これで再び動作するようになりますが、ユーザ固有のデータ (連絡先など) が削除されるので注意してください。次のコマンドを実行してください:
cd gaia make reset-gaia
開発者モードから製品モードに切り替えたい場合
cd gaia make reset-gaia PRODUCTION=1
警告: reset-gaia は、ユーザ固有のデータ (連絡先など) を削除します。
./flash.sh 実行時の "image is too large" エラーメッセージ
これは、フラッシュする前にスマートフォンをルート化する必要があることを意味します。B2G は root パーティションに書き込まれる必要があるため、インストールするにはスマートフォンがルート化されている必要があります。