KEON と PEAK が無くても
Firefox OS 開発出来る
自己紹介
●
twitter : @androidsola
blog : http://blog.sola-dolphin-1.net/
●
JCROM(Japanese custom rom) Project
https://sites.google.com/site/jcromproject/
Android をベースにしたカスタム ROM を作ってます。
●
HTML5 、 JavaScript は触れた事が無いので、
何かアプリ作るためにこれから勉強します。
本日の内容
●
Nexus S 等の Android 端末で Firefox OS を使う
●
PandaBoard 等の開発ボードで Firefox OS を使う
●
KEON と PEAK 向けに Firefox OS をビルドする
●
Firefox OS をカスタマイズしてみる
その前に KEON と PEAK を使わない理由
4/23 開発者向け端末販売開始
4/23 開発者向け端末販売開始
15:34 に KEON と PEAK を注文完了。
オーダー番号も 2 桁。
後は待つだけ!
待つだけ・・・
4/29
KEON が発送されたというツイートが出始める
(自分にはまだ来ない・・・)
5/1
KEON や PEAK が届いたというツイートが出始める
(自分にはまだ発送連絡すら来ない・・・)
5/3
自分よりかなり遅く注文した人にも発送連絡が
(自分には・・・)
5/3
Geeksphone の人に連絡してみた(メールで)
5/4 Geeksphone から返事が来た
●
我々は頑張ってる
●
全員分の発送を今週中にやるよ
( 5/4 は土曜日・・・)
●
問題あれば連絡してね
(自分の注文への回答が来てない時点で問題あり)
5/5
ちゃんと調べてくれと再度メールを送った
5/7 Geeksphone から再度返事が来た
●
ほとんどの注文は処理したよ
●
処理した中にお前のがあれば UPS から連絡あるよ
●
もし来なかったら調べるから連絡してね
(テンプレな印象、たぶんちゃんと調べてない)
この時点でもういいやという状態に
(一応、代引が問題なのでは?とメールした)
ここで手元にある
Nexus S と Galaxy Nexus を取り出した
Nexus S 等の Android 端末で Firefox OS を使う
Nexus S で Firefox OS
●
Mozilla Developer Network の Firefox OS の所に手
順があります。
http://goo.gl/ZfNdA
Nexus S で Firefox OS
●
ソースコード取得&ビルド
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh nexus-s
$ ./build.sh
Nexus S で Firefox OS
●
Nexus S への書き込み
fastboot モードにして以下を実行
$ fastboot flash boot out/target/product/crespo/boot.img
$ fastboot flash system
out/target/product/crespo/system.img
$ fastboot flash userdata
out/target/product/crespo/userdata.img
Nexus S で Firefox OS
●
Nexus S で Firefox OS が起動(しかし ... )
KEON や PEAK の画面写真と違って、
幅が余ってる感じ ...
Nexus S で Firefox OS
●
Nexus S で Firefox OS が起動(しかし ... )
アプリの一覧も同じ状態
左右の何も無い空間が気になる
Nexus S で Firefox OS
●
Nexus S で Firefox OS が起動(しかし ... )
言語の選択に日本語が無い!
画面の調整
●
KEON と PEAK の画面写真
HVGA(240x320) と qHD(540x960) の
どちらも画面ピッタリ。
HVGA 向けだから Nexus S(480x800)
では左右に空間が出来ると予想し
たが、 qHD でもうまく表示出来て
るので、何か仕組みがあるはず。
KEON と PEAK のビルド環境
●
manifest.xml を確認すると、 PEAK 向けが無かった
※デフォルトで取得する v1-train ブランチには無い
●
PEAK 用のマニフェストファイルは master ブランチに
登録されていた
●
KEON は v1-train か master 、 PEAK は master を使用
しろという事?
KEON と PEAK の違い
●
gaia 、 gecko 、 gonk-misc を比較した( Firefox OS
固有の部分らしいので)
– KEON
gaia : v1-train
gecko : gecko-18
gonk-misc: v1-train
– PEAK
gaia : master
gecko : master
gonk-misc: master
master ブランチを使えば
OK ?
master ブランチを使えば
OK ?
ホームアプリを比較
●
gaia の下にホームアプリと思われるソースコードが
あったので、確認してみた。
– ホームアプリの場所
gaia/apps/homescreen
– 確認したソースコード
style/grid.css
アプリ一覧を表示してる
画面のレイアウト定義
ホームアプリを比較
●
master は横幅 100% 指定してるからいっぱいに表示さ
れる?
--- /home/sola/v1-train/B2G/gaia/apps/homescreen/style/grid.css
+++ /home/sola/master/B2G/gaia/apps/homescreen/style/grid.css
@@ -25,7 +25,7 @@
}
.apps ol {
- width: -moz-calc(4 * 8rem);
+ width: 100%;
padding: 0;
list-style-type: none;
display: block;
起動画面等のリソースファイル
●
gaia の下を比較していたら、以下のリソースファイル
達を見つけた。
ディレクトリ
  shared/resources/branding/official/
ファイル
  Browser.png
  about_logo.png
  initlogo.png
  logosmall.png
  powered.png
  privacy_sprite.png
  splash_screen_generic.png
起動画面等のリソースファイル
●
master ブランチの方には、更に以下のファイルが登録
されている。
ディレクトリ
  shared/resources/branding/official/
ファイル
  Browser@2x.png
  about_logo@2x.png
  initlogo@2x.png
  logosmall@2x.png
  powered@2x.png
  privacy_sprite@2x.png
 ※ PEAK の画面サイズに合わせた画像
@2x の画像はどこで参照してる?
●
参照箇所が分かれば HVGA(KEON) と qHD(PEAK) を判断
する方法が分かるかも?
grep した結果、
Makefile 、 build/webapp-zip.js 、 build/settings.
py の 3 ファイルで見つかった。
@2x の画像はどこで参照してる?
●
HIDPI という変数が条件になっている
gaia/build/webapp-zip.js
// Forces the file to pass as @2x
if ( HIDPI != '*' && file.path.search('@2x') == -1 ) {
var path2x = file.path.split('.')
[0]+'@2x.'+file.path.split('.')[1];
var file2x = new FileUtils.File(path2x);
// Adds the suffix
if ( file2x.exists() ) {
var path = path.split('.')[0]+'@2x.'+path.split('.')[1];
var file = file2x;
}
}
addToZip(zip, '/shared/resources/' + path, file);
HIDPI はどこで設定している?
●
HIDPI への設定があるのは Makefile のみ
gaia/Makefile
32 行目
HIDPI?=*
412 行目
const HIDPI = "$(HIDPI)";
●
export HIDPI=1 としてからビルドすれば、 @2x のファ
イルを使用するようになる。
この辺の仕組みを拡張すれば、色々な解像度向けにリ
ソースファイルを用意して使うことが出来そう。
Nexus S 向けに変更する内容
●
gaia のブランチを v1-train から master に変更する
●
HIDPI=1 を設定してからビルドする
Nexus S 向けに変更した結果
●
期待通り、画面に合うように配置されるようになった
日本語を追加する方法
●
ソースツリーには日本語のデータが見つからないが、
どうすれば良いか?
※キーボードレイアウトに関しては日本語向けが用意
されていたが、参考にはならず。
日本語を追加する方法
●
何か書いてないかと Mozilla の wiki を眺めていたら
答えが書いてあった。
https://developer.mozilla.org/en-US/docs/Mozilla
/Firefox_OS/Building
Building multilocale という項目があって、 Gaia と
Gecko 向けに日本語等の言語データを追加する方法が
書いてある。
日本語を追加する方法
●
Gaia
$ hg clone http://hg.mozilla.org/gaia-l10n/ja gaia-l10n/ja
$ export LOCALE_BASEDIR=$PWD/gaia-l10n
$ export
LOCALES_FILE=$PWD/B2G/gaia/shared/resources/languages-japan.json
languages-japan.json の内容
英語と日本語の 2 種類を選べるようにするには以下のように書く。
{
"en-US" : "English (US)",
"ja" : " 日本語 "
}
日本語を追加する方法
●
Gecko
$ hg clone http://hg.mozilla.org/l10n-central/ja gecko-l10n/ja
$ hg clone http://hg.mozilla.org/build/compare-locales
$ export L10NBASEDIR=$PWD/gecko-l10n
$ export MOZ_CHROME_MULTILOCALE="ja"
$ export PATH="$PATH:$PWD/compare-locales/scripts"
$ export PYTHONPATH="$PWD/compare-locales/lib"
MOZ_CHROME_MULTILOCALE には追加するものを記述する。
複数書く例
MOZ_CHROME_MULTILOCALE="ja zh-TW"
日本語を追加した結果
●
期待通り、画面に合うように配置されるようになった
その他やると良さそうな事
●
日本語辞書を追加する
●
フォントを変更する
●
official ビルドに変更する
●
user/userdebug でビルドする
日本語辞書を追加する
●
辞書に関しての README があるので、確認する。
gaia/apps/keyboard/js/imes/jskanji/README
# Japanese IME
About Dictionary
The IME dictionary is converted from IPAdic project with
following steps:
1. Get a copy of IPAdic at
http://sourceforge.jp/projects/ipadic/.
2. Extract all .dic files to dict/ipadic/.
3. run `make` under the `dict` directory to generate dict.json.
The tool of `dict/jcconv.py` is getting from
https://github.com/taichino/jcconv.
日本語辞書を追加する
●
README にある URL にアクセスすると、 IPAdic legacy
と書いてあった。
●
調べると( IPAdic を元に作った?) NAIST Japanese
Dictionary というのがあるらしいので、こちらを使う
ことにした。
http://sourceforge.jp/projects/naist-jdic/
日本語辞書を追加する
●
json 形式のファイルを作成する
http://sourceforge.jp/projects/naist-jdic/releases/ から
naist-jdic-0.4.3.tar.gz をダウンロードして展開する。
$ tar zxvf naist-jdic-0.4.3.tar.gz
辞書データを json 形式のフィアルに変換する。
$ mkdir gaia/apps/keyboard/js/imes/jskanji/dict/ipadic
$ cp naist-jdic-0.4.3/naist-jdic.dic
gaia/apps/keyboard/js/imes/jskanji/dict/ipadic/
$ cd gaia/apps/keyboard/js/imes/jskanji/dict
$ make json
フォントを変更する
●
中華フォントで日本語は耐えられないよねって事で
フォントを追加する例
●
Android で使用されている MTLmr3m.ttf を使う場合
MTLmr3m.ttf をソースツリーのどこかに置く。
他のフォントが置いてある所( external/moztt )に便乗させてもらう。
external/moztt/Android.mk に以下の内容を追記。
include $(CLEAR_VARS)
LOCAL_MODULE := MTLmr3m.ttf
LOCAL_SRC_FILES := MTLmr3m/$(LOCAL_MODULE)
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT)/fonts
include $(BUILD_PREBUILT)
フォントを追加する例
●
Android で使用されている MTLmr3m.ttf を使う場合
MTLmr3m.ttf をビルドして出来るイメージに組み込むように、
PRODUCT_PACKAGES に MTLmr3m.ttf を追記する。
ビルド時に読まれる Android.mk 等に追記してあげれば良いの
で、 gonk-misc/b2g.mk に以下の 1 行を追記した。
PRODUCT_PACKAGES += MTLmr3m.ttf
フォントを追加する例
●
瀬戸フォントにするとこうなる
MTLmr3m.ttf を setofont.ttf に
読み替えて組み込めば OK です。
瀬戸フォントはこちらからダウロード
http://nonty.net/item/font/setofont.php
official ビルドに変更する
●
大して重要ではないが、 official でビルドした方が
見た目が良い(好みの問題)
unofficial official
official ビルドに変更する
●
MOZILLA_OFFICIAL を 1 にしてあげれば良い
gaia/Makefile の中で参照して OFFICIAL という変数に
代入してる。
OFFICIAL が 1 かどうかで、
- shared/resources/branding/unofficial
- shared/resources/branding/official
のどちらを使用するか判断している。
user/userdebug でビルドする
●
普通にビルドするのとは何が違う?
「普通にビルドする」例
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh nexus-s
$ ./build.sh
これでビルドすると eng となっている。
Android だとデバッグ関連の機能が有効だった
り、 root になってる状態。
user/userdebug でビルドする
●
user でビルドするのは出荷向け
root にはなれない。
色々と弄ったりする時にはこれでビルドしない方が良
いと思う。
カスタム ROM 公開時にこれでビルドしています。
●
userdebug は user に近いが、デバッグ用の機能が有効
になってる。
su コマンドの実行で root になれる。
カスタム ROM 開発時にはこれでビルドしています。
user/userdebug でビルドする
●
user/userdebug でビルドする簡単な方法
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh nexus-s
ここの段階で生成されている .config ファイルを編集する。
.config の内容
MAKE_FLAGS=-j10
GECKO_OBJDIR=/home/sola/B2G/objdir-gecko
DEVICE_NAME=nexus-s
DEVICE=crespo
LUNCH=full_crespo-userdebug
この後、 $ ./build.sh を実行してビルドすれば OK
これを追加します。
( userdebug の例です)
これを追加します。
( userdebug の例です)
Firefox OS での user/userdebug の差
gaia/Makefile の内容
GAIA_PROFILE_INSTALL_PARENT := $(TARGET_OUT_DATA)/local
GAIA_APP_INSTALL_PARENT := $(GAIA_PROFILE_INSTALL_PARENT)
ifneq ($(filter user userdebug, $(TARGET_BUILD_VARIANT)),)
GAIA_MAKE_FLAGS += PRODUCTION=1
B2G_SYSTEM_APPS := 1
endif
ifeq ($(B2G_SYSTEM_APPS),1)
GAIA_MAKE_FLAGS += B2G_SYSTEM_APPS=1
GAIA_APP_INSTALL_PARENT := $(TARGET_OUT)/b2g
CLEAN_PROFILE := 1
endif
GAIA_APP_INSTALL_PATH := $(GAIA_APP_INSTALL_PARENT)/webapps
user/userdebug の時だけuser/userdebug の時だけ
アプリのインストールパスの設定アプリのインストールパスの設定
Firefox OS での user/userdebug の差
gaia/Makefile の内容
GAIA_PROFILE_INSTALL_PARENT := $(TARGET_OUT_DATA)/local
GAIA_APP_INSTALL_PARENT := $(GAIA_PROFILE_INSTALL_PARENT)
ifneq ($(filter user userdebug, $(TARGET_BUILD_VARIANT)),)
GAIA_MAKE_FLAGS += PRODUCTION=1
B2G_SYSTEM_APPS := 1
endif
ifeq ($(B2G_SYSTEM_APPS),1)
GAIA_MAKE_FLAGS += B2G_SYSTEM_APPS=1
GAIA_APP_INSTALL_PARENT := $(TARGET_OUT)/b2g
CLEAN_PROFILE := 1
endif
GAIA_APP_INSTALL_PATH := $(GAIA_APP_INSTALL_PARENT)/webapps
user または userdebug でビルドすると
/system/b2g になる
user または userdebug でビルドすると
/system/b2g になる
初期値は /data/local初期値は /data/local
Firefox OS での user/userdebug の差
●
user/userdebug でビルドすると system パーティショ
ン( system/b2g/webapps )にアプリが格納される。
●
eng (デフォルト)でビルドすると data パーティショ
ン( data/local/webapps )にアプリが格納される。
user/userdebug でビルドしないと、初期化( data
パーティションのクリア)でたぶん起動しなくなる。
アプリがいなくなるので ...
eng ビルドのまま system パーティションにアプリを格
納したければ、 gaia/Makefile を編集すれば良い。
Galaxy Nexus で Firefox OS を使う
Galaxy Nexus で Firefox OS
●
Mozilla Developer Network の Firefox OS の所に手
順があります。
http://goo.gl/ZfNdA
Galaxy Nexus で Firefox OS
●
ソースコード取得&ビルド
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh galaxy-nexus
※ 日本語化等、変更を加える場合はここで作業を行う。
$ ./build.sh
Galaxy Nexus で Firefox OS
●
Galaxy Nexus への書き込み
fastboot モードにして以下を実行
$ fastboot flash boot out/target/product/maguro/boot.img
$ fastboot flash system
out/target/product/maguro/system.img
$ fastboot flash userdata
out/target/product/maguro/userdata.img
Galaxy Nexus で Firefox OS
●
Galaxy Nexus で Firefox OS を使う時の課題
– キーが電源、音量 UP/DOWN しかないのでホームキー
を押せない(戻れない)
– カメラ使えない
– SD カード認識しない
Galaxy Nexus で Firefox OS
●
ホームキーを使う方法
音量 UP キーをホームキーに割り当てる。
(音量の操作は設定から行えば何とかなるので)
device/samsung/tuna/tuna-gpio-keypad.kl を変更する。
-key 115 VOLUME_UP WAKE
+key 115 HOME WAKE
変更後、 $ ./build.sh でビルドし直す。
●
カメラと SD カードは未対応
Galaxy Nexus でどうしても使いたいという気持ちにな
らないので詳しくは調べてない ...
PandaBoard 等の開発ボードで Firefox OS を使う
PandaBoard ES で Firefox OS
●
Mozilla Developer Network の Firefox OS の所に手
順があります。
http://goo.gl/ZfNdA
PandaBoard ES で Firefox OS
●
ソースコード取得&ビルド
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh pandaboard
$ ./build.sh
PandaBoard ES で Firefox OS
●
ソースコード取得&ビルド
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh pandaboard
$ ./build.sh
ビルドエラーで終了した( 5/10 )
(ソース取得した日によってはエラー出ないかも)
PandaBoard ES で Firefox OS
●
暫定的な対処(ビルドエラー出てなければ不要)
ビルドエラーが出ていた二つのリポジトリを削除した
- external/negatus
- external/orangutan
PandaBoard ES で Firefox OS
●
SD カードへのイメージの書き込み
fastboot での手順が書いてあるけど、 PC で直接 SD
カードに書き込む事にする。
B2G ディレクトリ直下で以下を実行
$ wget
http://sola-dolphin-1.net/data/B2G/patch/panda/mksdcard_panda
board.sh
$ chmod +x mksdcard_pandaboard.sh
$ LANG=C sudo ./mksdcard_pandaboard.sh /dev/sdX $PWD
※/dev/sdX は SD カードのデバイスファイルを指定。
PandaBoard ES で Firefox OS
●
PandaBoard ES で Firefox OS が起動した様子
・首を曲げないと見るのが辛い
・操作不能(タッチパネル無い&マウスカーソル出ない)
・首を曲げないと見るのが辛い
・操作不能(タッチパネル無い&マウスカーソル出ない)
PandaBoard ES で Firefox OS
●
マウスカーソルに対応
https://bugzilla.mozilla.org/show_bug.cgi?id=781039
●
横画面表示に対応
https://bugzilla.mozilla.org/show_bug.cgi?id=851442
gecko へのパッチ
http://sola-dolphin-1.net/data/B2G/patch/panda/0001-enabl
e-landscape-orientation-for-Pandaboard-DVI-outp.patch
http://sola-dolphin-1.net/data/B2G/patch/panda/0001-Add-m
ouse-cursor.patch
device/ti/panda へのパッチ
http://sola-dolphin-1.net/data/B2G/patch/panda/0001-Set-t
he-screen-orientation-to-landscape.patch
PandaBoard ES で Firefox OS
●
PandaBoard ES で Firefox OS が起動した様子
小さくて見難いが、これがカーソル
マジメに使うならもう少し大きく表示
するように変更するのが良い。
小さくて見難いが、これがカーソル
マジメに使うならもう少し大きく表示
するように変更するのが良い。
PandaBoard ES で Firefox OS
●
ホームキーの場所
PandaBoard ES で Firefox OS
●
Nexus S 向けに行った日本語化対応等は PandaBoard に
も適用出来る
以上のような Nexus や PandaBoard で Firefox OS
を使うというブログ記事を KEON と PEAK が届かな
いので上げ続けた
(お前らの端末イラネーよという意味を込めて)
そして geeksphone からメールが届く
5/9 Geeksphone からの残念な連絡
●
メールのタイトルが「 PROBLEM WITH ORDER 」
●
本文は代引での注文は日本に発送出来ないという内容
(過去のやり取りは何だったのかと思った・・・)
TL で同様のメールが届いた人が問い合わせたところ、
銀行振込に変更するしか手段が無いらしい。
スペインへの送金は金かかるのでほぼ諦め状態に。
5/13
怪しい人からの連絡
5/13 怪しい人からの転売情報が届く
【ゆるぼ】と書いているが、
特定の個人宛に書いている怪しい人
【ゆるぼ】と書いているが、
特定の個人宛に書いている怪しい人
取引現場
PEAK を入手しましたPEAK を入手しました
KEON は在庫復活した隙に注文して
5/16 に入手しました
KEON と PEAK 向けに Firefox OS をビルドする
※ 入手したのでやらないわけにはいかない
KEON 向けに Firefox OS をビルドする
●
Mozilla Developer Network の Firefox OS の所に手
順があります。
http://goo.gl/ZfNdA
KEON 向けに Firefox OS をビルドする
●
ソースコード取得&ビルド
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh keon
日本語化等、変更を加える場合はここで作業を行う。
高解像度向けの変更( gaia を master にして HIDPI を設定)は
不要。
$ device/geeksphone/keon
$ ./extract-files.sh
(実機からファイルを吸い出すので、 PC と USB 接続しておく)
$ cd -
$ ./build.sh
KEON 向けに Firefox OS をビルドする
●
KEON への書き込み
fastboot モードにして以下を実行
$ fastboot flash boot out/target/product/keon/boot.img
$ fastboot flash system out/target/product/keon/system.img
$ fastboot flash userdata
out/target/product/keon/userdata.img
KEON 向けに Firefox OS をビルドする
●
さすが開発者向け端末。特に問題は無かった。
PEAK 向けに Firefox OS をビルドする
●
Mozilla Developer Network の Firefox OS の所に手
順があります。
http://goo.gl/ZfNdA
PEAK 向けに Firefox OS をビルドする
●
ソースコード取得&ビルド
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh peak
KEON と PEAK のビルド環境で調べた通り、
デフォルトの v1-train ブランチには peak.xml が無いのでエ
ラーとなる。
fatal: manifest 'peak.xml' not available
fatal: manifest peak.xml not found
Repo sync failed
PEAK 向けに Firefox OS をビルドする
●
考えた解決策
– master ブランチからソースを取得する
– keon.xml から peak.xml を作る
デバイスの固有部分だけを PEAK 向けにする
PEAK 向けに Firefox OS をビルドする
●
考えた解決策
– master ブランチからソースを取得する
– keon.xml から peak.xml を作る
デバイスの固有部分だけを PEAK 向けにする
PEAK 向けに Firefox OS をビルドする
●
master ブランチからソースを取得するように変更
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ BRANCH=master ./config.sh peak
日本語化等、変更を加える場合はここで作業を行う。
今回の場合は gaia は既に master になっている。
$ cd device/geeksphone/peak
$ ./extract-files.sh
(実機からファイルを吸い出すので、 PC と USB 接続しておく)
$ ./build.sh
PEAK 向けに Firefox OS をビルドする
●
PEAK への書き込み
fastboot モードにして以下を実行
$ fastboot flash boot out/target/product/peak/boot.img
$ fastboot flash system out/target/product/peak/system.img
$ fastboot flash userdata
out/target/product/peak/userdata.img
PEAK 向けに Firefox OS をビルドする
●
PEAK もうまくいったか ... ?
問題無さそうに見えるが、キャプチャを取
得すると 360x640 という謎の解像度で取得
されていた。
本当のサイズは 540x960 のはず。
原因は gecko か gonk-misc と予想してる。
これらを v1-train ではなくて master で使
用してるのが Nexus S の環境と大きく異な
る点のため。
PEAK 向けに Firefox OS をビルドする
●
考えた解決策
– master ブランチからソースを取得する
– keon.xml から peak.xml を作る
デバイスの固有部分だけを PEAK 向けにする
PEAK 向けに Firefox OS をビルドする
●
keon.xml から peak.xml を作って、ソースを取得して
みる
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh keon ( keon 向けに一度ソースを取得する)
peak.xml を作成する
$ cd .repo/manifests
$ cp keon.xml peak.xml
PEAK 向けに Firefox OS をビルドする
●
peak.xml の変更内容
KEON 固有のリポジトリは「 <!-- Keon specific things --> 」
の下に書かれているので、まずはこれを削除する。
次に master ブランチにある peak.xml の「 <!-- Peak specific
things --> 」の下に書かれているものを keon.xml から作成した
keon.xml に追記する。
PEAK 向けに Firefox OS をビルドする
●
peak.xml の編集後にやること
$ cd B2G/.repo
$ rm manifest.xml
$ ln -s manifests/peak.xml manifest.xml
$ cd -
$ repo sync
repo sync 完了後はビルドして、
完了後に出来たイメージを PEAK に書き込む。
シンボリックリンクを作り直してるのは、ビルド中に
manifest.xml の内容をチェックするようで、 keon.xml を指して
るままだと keon 関連のファイルが無いと言って怒られるため。
PEAK 向けに Firefox OS をビルドする
●
今度はうまくいった!
540x960 でキャプチャを撮ることが出来
た。
解像度がおかしくなる原因は gecko か
gonk-misc でほぼ当たりと思うが、調べる
モチベーションが無くて放置中。
PEAK 以外の高解像度端末に対応する際、何
か必要なノウハウが出てくるかもしれない
が ...
Firefox OS をカスタマイズしてみる
Firefox OS をカスタマイズした結果
Firefox OS をカスタマイズした結果
●
KEON をけいおん!に
Firefox OS をカスタマイズしてみる
●
変更したファイル
gaia/apps/homescreen/style/dock.css
gaia/apps/system/style/lockscreen/lockscreen.css
gaia/apps/system/style/notifications/notifications.css
gaia/apps/system/style/statusbar/statusbar.css
background 等に画像を指定してるだけ。
この辺の設定に関しては Android と比べて楽だと感じてる。
課題は自分が JavaScript や CSS をサクサク読めない事くらい。
JCROM Project for Firefox OS (仮)
JCROM Project for Firefox OS (仮)
●
Firefox OS でもカスタム ROM を作る
●
JCROM のように見た目を自分好みに変える機能を作る
●
当面はベースとなる Firefox OS の環境を安定させる
事(ビルドが通る、ちゃんと起動する等)
サイトの URL
https://sites.google.com/site/jcromfirefox/
環境構築、ビルド手順などを書いていく予定。
ソースコードは Github で公開しています。
https://github.com/sola-dolphin1
JCROM Project for Firefox OS (仮)
カスタマイズの詳細は
「関東 Firefox OS 勉強会 1st( 仮 ) 」で。
http://atnd.org/events/39556
「 Firefox OS 向けのカスタム ROM 開発」
として話をする予定。
スライド終了

KEONとPEAKが無くてもFirefox OS開発出来る