android-x86 4.0.3 firefox fennec 16.0a1

https://wiki.mozilla.org/Mobile/Fennec/Android
Android-x86 用のFirefox がPlay ストアに登録されていないので、自分でx86 アーキテクチャ向けのAndroid 用Firefox(Fennec) をビルドしてみた。i386-linux-android 向けのmozconfig を見つけたけれど、そのままではうまくビルドできなかったので、修正して利用してみた。Android SDK/NDK の環境はできているので、その後から始めよう。ビルドする環境はUbuntu 12.04 x86_64。Android 端末は、Inspiron duo にandroid-x86-4.0-RC1-tegav2.iso をインストール済み。

  1. ビルドするための依存関係の取得
$ sudo apt-get install mercurial ccache
$ sudo apt-get build-dep firefox
  1. Firefox のソースの取得
$ hg clone http://hg.mozilla.org/mozilla-central/ src
  1. MOZCONFIG のカスタマイズ
$ cd src
$ gedit mozconfig-android-x86
mozconfig-android-x86
# Global options
mk_add_options MOZ_MAKE_FLAGS="-j4"

# Build Fennec
ac_add_options --enable-application=mobile/android

# Android
ac_add_options --target=i386-linux-android
ac_add_options --with-endian=little
ac_add_options --with-android-ndk="$HOME/Projects/Android/android-ndk-r8"
ac_add_options --with-android-sdk="$HOME/Projects/Android/android-sdk-linux/platforms/android-15"
ac_add_options --with-android-version=10
ac_add_options --with-android-platform="$HOME/Projects/Android/android-ndk-r8/platforms/android-14/arch-x86"
ac_add_options --with-system-zlib

#
ac_add_options --disable-auto-deps
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --disable-tests
ac_add_options --disable-ipdl-tests
ac_add_options --enable-strip
ac_add_options --enable-install-strip

# updater
ac_add_options --disable-updater
ac_add_options --disable-update-channel
ac_add_options --disable-update-packaging

# crash reporter
ac_add_options --disable-crashreporter

# maintenance service
ac_add_options --disable-maintenance-service

# JDK
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64

# branding
ac_add_options --with-branding=mobile/android/branding/beta
  1. ロゴ画像の作成
    他のサイズのロゴ画像を参考にサイズ40x40 のPNG 形式画像を作成する。
    ./mobile/android/branding/beta/content/fennec_40x40.png

  2. インストール先のAndroid 端末を無線LAN で接続する。

$ export ADBHOST=192.168.0.4
$ adb devices
  1. ビルドとインストール
$ export MOZCONFIG=./mozconfig-android-x86
$ make -f client.mk build_and_deploy
$

インストーラパッケージは以下に生成される。
./obj-x86_64-unknown-linux-gnu/dist/fennec-16.0a1.en-US.android-i386.apk

  1. 次回ビルド時にソースを最新の状態にするには
$ hg pull -u

いくつか気になることがあったので、修正してリビルドしてみた。

  • about:buildconfig でAndroid SDK やAndroid NDK の絶対パスが見えてしまうので、/tools/ 下からシンボリックリンクを張った。

  • branding をnightly に変更した。

  • ロゴ画像を追加するのをやめた。(必要なかった。)

mozconfig-android-x86
# Global options
mk_add_options MOZ_MAKE_FLAGS="-j4"

# Build Fennec
ac_add_options --enable-application=mobile/android

# Android
ac_add_options --target=i386-linux-android
ac_add_options --with-endian=little
ac_add_options --with-android-ndk="/tools/android-ndk-r8"
ac_add_options --with-android-sdk="/tools/android-sdk-linux/platforms/android-15"
ac_add_options --with-android-version=10
ac_add_options --with-system-zlib
ac_add_options --with-android-platform="/tools/android-ndk-r8/platforms/android-14/arch-x86"

#
ac_add_options --disable-auto-deps
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --disable-tests
ac_add_options --disable-ipdl-tests
ac_add_options --enable-strip
ac_add_options --enable-install-strip

# updater
ac_add_options --disable-updater
ac_add_options --disable-update-channel
ac_add_options --disable-update-packaging

# crash reporter
ac_add_options --disable-crashreporter

# maintenance service
ac_add_options --disable-maintenance-service

# JDK
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64

# mozilla
ac_add_options --with-branding=mobile/android/branding/nightly

about:buildconfig の内容
android-x86 firefox fennec 16.0a1 buildconfig