android4.0をベースに作られているそうです。
以前から興味があったのですが、XDAにも情報がないのでスルーしていたのですが、なんと日本の方がビルドしたりカスタマイズしているじゃないですか!
しかも、何となく手元にあったXperia Rayで!
というわけで早速トライしてみました。
・・・ところで、私はOSのビルドなんてやった事ないです。
なのでこのサイトは自分用の覚書ですから・・・。
参考にさせて頂いたサイト
- neuralassemblyのメモ:
Xperia arcとXperia ray向けにFirefox OSをビルドしてみた: - Boot to JCROM:
自分の環境
- ubuntu 13.04 32bit Desktop版
- CPU Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
Mem:8GB - android SDKはもともと構築済み。
- 端末はbootloaderをunlockしてあるXperia Ray グローバル版です。
下準備
下準備にはこちらのサイトを参考にしました。
ただし、64bit版へのインストールですので若干違うところがありました。
1.「ソース取得とビルドに必要なソフトのインストール」
これは64bit向けですので端末から下記を実行。
$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git libncurses-gst libncurses5-dev libncursesw5-dev libncurses5 libncursesw5 libgl1-mesa-dev libx11-dev make
途中で片っ端からインストールしちゃえっていう感じになってしまったので無駄なライブラリが入っていると思います。何が正しくて何が間違っているのか、分からない状態です。
2.「libGL.so へのシンボリックリンク作成」
実行しても既にファイルがあります、みたいなエラーが出るので実行しなくても大丈夫だと思います。
3.「JDK6 のインストール」
すでにJDK7はインストールしてあるのですが、このあたりのバージョンはビルドにはシビアなようですので、素直に古いバージョンをインストールします。
このオラクルのサイト、いつの間にやらユーザ登録が必要で住所とかも記入しなくてはいけないようです。難の情報を収集しているのでしょうか。謎
ここから「jdk-6u45-linux-i586.bin」をダウンロードしてきました。
解説してくださっているサイトではホームディレクトリにjdkを置いているようですので、素直に従います。
端末から下記を実行
$ cd ~/ $ chmod a+x jdk-6u45-linux-i586.bin $ ./jdk-6u45-linux-i586.bin
続いてエディタでパスを記述しておきます。
端末から下記を実行
$ gedit ~/.bashrc
geditが起動したら末尾にでも
export JAVA_HOME=~/jdk1.6.0_45 export PATH=$PATH:$JAVA_HOME/bin export ANDROID_JAVA_HOME=$JAVA_HOME
を記述して保存。
また端末で実行。
$ source ~/.bashrc
4.USB の設定
5.Android SDK のダウンロードと設定
6.git の設定
ここのところは、解説サイトの通りで良さげです。
自分はgitのユーザ登録?は真面目に書いてしまいましたが。。
?いよいよビルド・・・の前に。
ここからは
のコピペになります。
解説なんて大それたことは出来ません。
まずは作業用のディレクトリの作成。
B2G_WORKをカレントディレクトリにしますよっと変数に覚えさせます。
$ mkdir ~/b2g_work $ cd ~/b2g_work $ export B2G_WORK=`pwd`
DEVICEという変数にurushiを覚えさせると。
$ export DEVICE=urushi
neuralassemblyさんのところからB2JCをローカルに移しますよ、と。
$ git clone https://github.com/neuralassembly/B2JC.git B2G $ cd B2G
通常のFirefox OSをビルドする場合は下記を、
$ ./config.sh $DEVICE
Boot to JCROMをビルドする場合は下記を実行します。
$ ./config.sh $DEVICE-b2jc
これはどっちが良いのか分かりませんが多分、日本語面に強化されたBoot to JCROMの方がいいのかな?
というわけで、Boot to JCROMの方を実行。
するとダウンロードが始まるわけですが、本当に1時間くらいかかります。
買い物でも済ませたほうがいいかもしれません。
しかも、最後のほうではFetching Projectのステータスが98%のまましばらく動かなくなるので不安になるのですが、信じて待つのみです。
ダウンロードが終わったあと、Xperia Rayの/systemディレクトリ以下を使うそうですが、Cyanogenmo9の/systemディレクトリで代用しているので、そのまま従いました。
その前にディレクトリを作っておきます。
$ mkdir $B2G_WORK/B2G/backup-$DEVICE $ cd $B2G_WORK/B2G/backup-$DEVICE
そしたら下記のサイトへアクセス。
このページから「cm-9.1.0-urushi.zip」をダウンロードしてきて、「B2G_WORK/B2G/backup-urushi」ディレクトリに置いておきます。
そしてコマンド実行
$ unzip cm-9.1.0-$DEVICE.zip $ cd $B2G_WORK/B2G/device/semc/$DEVICE/ $ ./extract-files.sh
続いてray向けに傾きセンサーの修正
$ cd $B2G_WORK/B2G/vendor/semc/urushi/proprietary/etc/ $ wget https://dl.dropboxusercontent.com/u/69652790/patch/b2g-urushi-sensors-conf.patch $ patch < b2g-urushi-sensors-conf.patch
続いて「電池残量や充電状況の取得に失敗する点、
画面ON時にHOMEボタン裏のLEDが光りっぱなしになる点」を修正するそうです。
このあたりからもうよく分からないのでコピペってます。
本当に助かりますねー。
$ cd $B2G_WORK/B2G/gecko/hal/gonk/ $ wget https://dl.dropboxusercontent.com/u/69652790/patch/b2g-GonkHal.patch $ patch < b2g-GonkHal.patch
最後に環境変数の設定だそうです。
$ export LOCALE_BASEDIR=$B2G_WORK/B2G/multilocale/gaia-l10n $ export LOCALES_FILE=$B2G_WORK/B2G/multilocale/languages-japan.json $ export PATH="$PATH:$B2G_WORK/B2G/multilocale/compare-locales/scripts" $ export PYTHONPATH="$B2G_WORK/B2G/multilocale/compare-locales/lib" $ export MOZILLA_OFFICIAL=1 $ export GAIA_DEV_PIXELS_PER_PX=2
なんか分からないけど、すごいです。
最後にビルドなんですけど、引っかかったところがあったので事前の修正。
これまたなんか分かりませんがエラーを吐いてコンパイルが完了しません。
ERROR: signapk.jar failed: return code 1
原因はメモリ?のようで修正が必要でした。
ファイルは、「b2g_work/B2G/build/tools/releasetools」にある「common.py」です。
エディタで開いて「2048」で検索してみます。
367行目、「“-Xmx2048m”」を「“-Xmx1024m”」に書き換えて保存。
あとはビルドを実行します。
$ cd $B2G_WORK/B2G $ ./build.sh otapackage
/b2g_work/B2G/out/target/product/urushiディレクトリに「full_urushi-ota-eng.yourname.zip」が出来上がりました。
あとは参考サイトの通り。
SDカードに先ほどのzipファイルを移動させる。
zipファイルの中のboot.imgを取り出しておく。
fastbootコマンドで、
fastboot flash boot boot.img
でbootイメージを焼く。
再起動させてCWMを起動させ、full_urushi-ota-eng.yourname.zipをインストール。
おお、起動したー。
コメント