LiveWallpaperネクサスマシマシ - ReDo

2011年2月12日

LiveWallpaperネクサスマシマシ

nexusx_1.jpg

標準のLiveWallpaperに「ネクサス」って言うのがあるのですが、youtenはこれが大好きです。

このLiveWallpaperは、タップすると十字状に4色のエフェクトが走りますが、数に制限があるという1点のみが気に入らなかったので...。

nexusx_2.jpg

改造しました。LiveWallpapersX.apk

nexusx_3.jpg

初期ライン効果数を2倍に、タップした際の十字状のエフェクトの最大数を10倍にしました。
タップし放題ですよ!

今回試した対象ブランチは-b android-2.3.2_r1、とりあえず試す分には変更ソースは一つだけ、packages/wallpapers/Basic/res/raw/nexus.rsです。

RenderScriptのスクリプト部(Cで書かれている)らしきものを、最初に並んでいる#defineを変更するだけです。MAX_PULSESが初期状態で流れるエフェクト数、MAX_EXTRAS/4(4方向なので)がタップした際に流れるエフェクトの最大数です。

で、そのままだとデフォルトで入っているLiveWallpapers.apk(system/app/LiveWallpaers.apk)と被ってrootedが必須になってしまうため、コピーしてパッケージを変更しました。

作業はだいだい以下の様な感じです。

% cd myginger/
% source build/envsetup.sh
% cd packages/wallpapers/
% cp -r Basic/ Basic2/
% cd Basic2/
% vi Android.mk
# apk名が被ると困るのでLiveWallpapers.apkをLiveWallpaperX.apkに変更します。

# なぜか初期状態だと絵のリソースがapkに含まれなくてぬるぽになるので変更します。
参考:NetWalkerでNexus OneのLive Wallpaper
% mv res/drawable-hdpi res/drawable

# ここで各srcから適当に全パッケージ名をcom.android.wallpaperから変更します。
# 不要なネクサス以外の水・星雲・草・ポーラークロックを剥がします。
# LiveWallpaperピッカーに表示される名前が被ると紛らわしいので、
# ネクサスからネクサスXあたりにvalues*配下のstringx.xmlを変更します。

% vi AndroidManifest.xml
# 不要なネクサス以外のactivity, service, permissionタグを削除します。
# 普通のアプリとしてインストールするとSDKバージョンチェックが必要なので以下の行を追加します。
# <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="9" />
% mm

# out/target/product/generic/system/app/LiveWallpapersX.apk あたりにapkができます。

できてたらadb install。

コメントする