Android標準ホームアプリ(Launcher2)のパッケージを変更してビルドしてみた

備忘録エントリ。
Android標準ホームアプリ(Launcher2)のパッケージを変更してビルドしてみたので手順をメモしておく。環境は、Mac OS X 10.7(Lion)、Android 3.2。

1.SDKのビルド

http://d.hatena.ne.jp/learn/20120111/p1
の手順でSDKのビルドを行う。

2.アプリの変更

単純に、ホームアプリをビルドするだけであれば、

. build/envsetup.sh
cd packages/apps/Launcher2
mm

で、out/target/product/generic/system/app/Launcher2.apkが出力される。
ここでは、標準ホームアプリと別アプリ扱いになるよう、packages/apps/Launcher2をコピーしてpackages/apps/MyLauncherとする。
packages/apps/MyLauncher以下のファイルについて、以下の変更を行う。

  • ソースパッケージの変更(com.android.launcher2 -> jp.example.mylauncher)
  • AndroidManifest.xmlの変更
    • を変更(com.android.launcher -> jp.example.mylauncher)
    • android:sharedUserIdを削除
    • タグを削除
    • のandroid:nameのパッケージを変更(com.android.launcher2.Xxx -> .Xxx)
    • を変更(com.android.launcher2.settings -> jp.example.mylauncher.settings)
    • ※com.android.launcher.permission.xxxのものは変更不要。
  • res配下のxml内のパッケージ記述の変更(com.android.launcher2 -> jp.example.mylauncher)
  • proguard.flagsのパッケージ記述の変更(com.android.launcher2 -> jp.example.mylauncher)
  • Android.mkのLOCAL_PACKAGE_NAMEの変更(Launcher2 -> MyLauncher)

3.バージョン設定ファイルの確認

build/core/version_defaults.mkのPLATFORM_VERSION_CODENAMEを確認する。
AOSP(Android Open Source Project)になっている場合、実行環境もAOSP版でないとインストールできない。標準のエミュレータ等へインストールする場合は、以下のように変更する。

PLATFORM_VERSION_CODENAME := REL

4.ビルド、インストール

. build/envsetup.sh
cd packages/apps/MyLauncher
mm

で、out/target/product/generic/system/app/MyLauncher.apkが出力される。

adb install out/target/product/generic/system/app/MyLauncher.apk

でインストールされる。インストール後、端末でHOMEキーを押せば、アプリ選択ダイアログが表示される。
他にも変更必要なものもあるかもしれないが、とりあえず、これで起動はできた。