Androidのフレームワーク内アプリをカスタムビルドする

例えば、Androidにデフォルトでインストールされているブラウザアプリに変更を加えてビルドする。

独自イメージの作業ディレクトリ /Volumes/android/2.3.7_r1
AVDの名前 abeerforyou.com.2.3.7_r1

 

1. Androidのソースコード全体をビルド

以下のエントリーの通り、一旦ソースコード全体をビルドする。
Mac(Lion, OS 10.7)でAndroid OS(2.3.7_r1)をビルドする

 

2. ソースコードを変更後、ビルド

ブラウザアプリのディレクトリに移動。

$ cd /Volumes/android/2.3.7_r1/packages/apps/Browser/

ソースコード、リソースファイル等を適宜改変。

カレントディレクトリ以下をビルド。

$ mm

ビルドコマンドの詳細は、

/Volumes/android/2.3.7_r1/build/envsetup.sh

を参照。

以下にapkが作成される。

/Volumes/android/2.3.7_r1/out/target/product/generic/system/app/Browser.apk

 

3. エミュレータの起動

avdツールでエミュレータのイメージを作成しておく。

自分で作ったカスタムイメージでavdを作成する場合は、こちらを参照。

システム権限を持たせたいアプリケーションは「/system/app/」、通常のアプリは「/data/app/」配下にインストールする必要がある。

通常アプリは、エミュレータの起動後、

$ adb install hoge.apk

でインストール可能。システム領域(/system/app/)にインストールする場合は、エミュレータ起動時にシステム領域の拡張が必要。

$ emulator -avd abeerforyou.com.2.3.7_r1 -partition-size 128

emulatorコマンドのオプション詳細は、以下で確認可能。

$ emulator -help

 

4. アプリのインストール

エミュレータの起動時点で、システム領域はread-onlyになっているため、read/writeで再マウント。

$ adb remount

インストールは、/system/app/配下にapkをコピーするだけでOK。

$ adb push hoge.apk /system/app/

Androidのフレームワーク内アプリをカスタムビルドする” への1件のコメント

コメントは受け付けていません。