More Related Content Similar to Firefox OSのカスタムROM開発を始めてみた Similar to Firefox OSのカスタムROM開発を始めてみた (20) More from android sola (14) Firefox OSのカスタムROM開発を始めてみた2. 自己紹介
• twitter : @androidsola
• blog : http://blog.sola-dolphin-1.net/
• JCROM(Japanese Custom ROM)Project
https://sites.google.com/site/jcromproject/
Android をベースにしたカスタムROMを作ってます
5. Firefox OS をビルドする
• Mozilla Developer Network の Firefox OS の所に手
順があります。
http://goo.gl/ZfNdA
英語&最新のソースに追従してるか微妙?なので、
自分で(多少)安定してビルド出来る環境を作って
ます。
6. Firefox OS をビルドする
• Ubuntu(12.04か12.10)を用意
VMWare等の仮想マシンの上でも良い。
• 必要なソフトのインストールと環境変数の設定
https://sites.google.com/site/jcromfirefox/home/e
nvironment
7. Firefox OS をビルドする
• ソースコードの取得&ビルド
KEON向けの例(1/4)
ソースコードの取得。
$ mkdir ~/b2g_work
$ export B2G_WORK=~/b2g_work
$ git clone git://github.com/sola-dolphin1/B2JC.git $B2G_WORK
$ cd $B2G_WORK
$ ./config.sh keon-ja
8. Firefox OS をビルドする
• ソースコードの取得&ビルド
KEON向けの例(2/4)
環境変数の設定(日本語を追加したい場合)
$ export LOCALE_BASEDIR=$B2G_WORK/multilocale/gaia-l10n
$ export LOCALES_FILE=$B2G_WORK/multilocale/languages-
japan.json
$ export PATH="$PATH:$B2G_WORK/multilocale/compare-
locales/scripts"
$ export PYTHONPATH="$B2G_WORK/multilocale/compare-locales/lib"
9. Firefox OS をビルドする
• ソースコードの取得&ビルド
KEON向けの例(3/4)
KEON から必要なファイルを吸い出す。
KEON と PC を USB ケーブルで繋いで以下のコマンドを実行。
$ cd $B2G_WORK/device/geeksphone/keon
$ ./extract-files.sh
10. Firefox OS をビルドする
• ソースコードの取得&ビルド
KEON向けの例(4/4)
Firefox OS のビルド。
$ cd $B2G_WORK
$ ./build.sh
12. 実機で動作確認する
• KEON を fastboot モードにしてイメージを書き込む
fastboot モードになるには、
KEON と PC を USB ケーブルで繋いで以下のコマンドを実行。
$ adb reboot bootloader
イメージの書き込み
$ cd $B2G_WORK
$ 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
$ fastboot reboot
26. changeThemeStatusbar: function ns_changeThemeStatusbar() {
if(this.enableTheme) {
var storage = navigator.getDeviceStorage('sdcard');
var req = storage.get("mytheme/" + StatusBar.themeName +
"/statusbar.png");
req.onsuccess = function(e){
var fl = e.target.result;
var reader = new FileReader();
reader.readAsDataURL(fl);
reader.onload = function(ev) {
var element = document.getElementById('statusbar');
element.style.backgroundImage = 'url('+ev.target.result+')';
}
}
else やエラーの場合は画像の設定を解除する(省略)
変更の詳細はGithubを見てください
https://github.com/sola-
dolphin1/gaia/commit/c3c2e33988124d8bda2c8ecf2a75191c2e96362c
29. changeThemeNotification: function ns_changeThemeNotification() {
if(this.enableTheme) {
var storage = navigator.getDeviceStorage('sdcard');
var req = storage.get("mytheme/" + NotificationScreen.themeName +
"/notification.png");
req.onsuccess = function(e){
var fl = e.target.result;
var reader = new FileReader();
reader.readAsDataURL(fl);
reader.onload = function(ev) {
var element = document.getElementById('notifications-container');
element.style.backgroundImage = 'url('+ev.target.result+')';
}
}
else やエラーの場合は画像の設定を解除する(省略)
変更の詳細はGithubを見てください
https://github.com/sola-
dolphin1/gaia/commit/454d3e71c30f30943c8239f3e0652f874e6f0cb2
32. changeThemeLockscreen: function ns_changeThemeLockscreen() {
var self = this;
if(this.enableTheme) {
var storage = navigator.getDeviceStorage('sdcard');
var req = storage.get("mytheme/" + LockScreen.themeName +
"/lockscreen.png");
req.onsuccess = function(e){
var fl = e.target.result;
var reader = new FileReader();
reader.readAsDataURL(fl);
reader.onload = function(ev) {
self.updateBackground(ev.target.result);
}
}
else やエラーの場合は画像の設定を解除する(省略)
変更の詳細はGithubを見てください
https://github.com/sola-
dolphin1/gaia/commit/501cda7f247edbb8d09196dc4450f1adeaf989e1
35. changeThemeWallpaper: function ns_changeThemeWallpaper() {
if(this.enableTheme) {
var storage = navigator.getDeviceStorage('sdcard');
var req = storage.get("mytheme/" + LockScreen.themeName +
"/wallpaper.png");
req.onsuccess = function(e){
var fl = e.target.result;
var reader = new FileReader();
reader.readAsDataURL(fl);
reader.onload = function(ev) {
var request = navigator.mozSettings.createLock().set({
'wallpaper.image': ev.target.result
});
}
}
else やエラーの場合は画像の設定を解除する(省略)
変更の詳細はGithubを見てください
https://github.com/sola-
dolphin1/gaia/commit/501cda7f247edbb8d09196dc4450f1adeaf989e1
38. アプリのテーマ変更に必要な事
• SettingsListener を追加して、テーマ変更を行う本
体の changeThemeBrowser を実装する。
• SettingsListener を使うために、settings_listener.js
を読み込ませる。
• SDカードへのアクセス権限(読み込み)を追加する。
• 詳細は Github を見てください。
https://github.com/sola-
dolphin1/gaia/commit/5fce794fc6a6b748b4f51053
593ca74a07aec9ef
40. Firefox OS の良い点
• ビルド時間が短い
Android で 50 分だったのが、30 分で終わる。
• テーマ変更時の切り替えが早い
Android は約 10 秒程度の待ちを入れているが、
Firefox OS は待ちはほぼ無い。
(現時点では、これくらいしか良い点を見つけられて
ない)
42. Boot to JCROM で公開してる内容
• 日本語環境入りの Firefox OS 環境
ターゲットは KEON、PEAK、Nexus S、Galaxy Nexus
• JCROM としての機能を Firefox OS に実装した環境
• ソースコードは Github で公開
• 自由に使ってください。
JCROM に興味があれば改造して Pull Request くだ
さい。