2011-03-08

7-zip と 9patch と Apk Manager

9patchについてちょっと試してみたのでメモ
参考になるか分かりませんが、実行は自己責任で。

テストにはstatusbar_background.9.pngを使ってみました。

まずは、Apk Managerの使い方はこちらなどを参考に


デフォルトのframework-res.apkをデコンパイル。

projectsに出来たframework-res.apkフォルダの中の
statusbar_background.9.pngを参考に、
28x40のサイズなので26x38のpng画像を用意。

(私は24x34を用意して9patchで26x38になりました。
ただの間違いですが、とくに問題はないようです。)

で、こちらなどを参考に、9patch実行。デフォルトそのままで。
Draw 9-patch - ソフトウェア技術ドキュメントを勝手に翻訳
statusbar_background.9.pngにリネームしておきます。

それを、7-zipで変更したいframework-res.apkの
drawable-hdpiに上書き。

7-zipについてはこちらなどを参考に
7-zipの使い方

ほいで、出来たframework-res.apkを差し替える。
私はrecovery2eを導入したのでupdate.zipを
作って差し替えました。

recovery2eとupdate.zipについては
前回のエントリを参考に(ならないかも…)

その実行結果がこちら↓





すごく残念なことになりました。
(ちなみにデフォルトホームでpng画像は透過してます。)

そこで、始めに用意したpng画像を9patch処理をせずに
名前だけstatusbar_background.9.pngに変更。
それを前と同じやり方で7-zipで上書き。


その実行結果がこちら↓




きれいになりました。

が、一つ問題が。
このframework-res.apkをApk Managerで
デコンパイル→何もせずコンパイル。
なんか、エラーが出ます。

原因はこちら↓










9patchじゃなくなってる。

9patch処理を省いたせいかと思い始めに作った方を
確認すると↓









ここで既に9patchじゃなくなってる。

端っこが黒かったのはこのせいみたい。

で、Apk Managerで9patchを差し替えて
コンパイルしてみると↓






エラーが。
statusbar_background.pngの方を消し忘れたのが原因みたい。

statusbar_background.pngを消して再度コンパイル。
今度は大丈夫みたい。


あとは、keepフォルダのstatusbar_background.9.pngを削除。
resources.arscも忘れずに削除。

出来たframework-res.apkを差し替えると↓




見た目は同じ。
でも、framework-res.apkの中は










ちょっと違う。
ちゃんとstatusbar_background.9.pngになってる。
statusbar_background.pngも無い。

7-zipで9patchを差し替える場合はちょっと注意が必要かも。
まあ、7-zipでpngだけ差し替える分には関係ないけど。

xdaとかから拾ってきたthemeの、framework-res.apkも
デコンパイルしてみると、同じようになってるところがあるから
7-zipで差し替えてるのかも。
sc-02b用に作り変えるときは要確認。

まあ、私は某掲示板でいただいたthemeを元にして
ちょっと変更するだけなんだけど…。

ありがとう5z○nさん。

2011-03-04

sc-02b framework 入れ替え

某掲示板に書いてあったのを実行してみたので、
とりあえず自分用にメモ。
実行するのは、自己責任で。

まずこちらを。 recovery2e導入方法 そのままです。

特に何もないですが、adb の場合は、
adb push (絶対パス)\recovery2e /sdcard/recovery2e/
でやった方が良いかも。未確認ですが。私はusbでつないで放り込みました。 

ほいで、どこからともなくframework等の入ったzipを
入手します(以後framework.zipとします)。

で、変更する前にzipの中を確認して、変更対象のファイルを
/system/framework/ とか、/system/app/などから抜き出しておきます。

例(cpでsdに持ってくるだけなら、remountはいらないみたい)
cp /system/framework/framework-res.apk /sdcard/

(以下しばらく、defaultに戻すためのupdate.zip作成メモ)

そして、こちらなどを参考にして、
http://bird-memo.seesaa.net/article/164901537.html

framework.zipファイルの中をどっかに解凍して、
(今回の場合META-INFフォルダと、systemフォルダでした。)
update-scriptの一番上(必ずそこにあるかは分かりませんが)を

ui_print("--= Now Installing: default Theme =-");

とかに変更。まあ、表示される文字列を変更するだけなので、適当に。

で、systemフォルダの中のframework、appフォルダの中身を、
抜き出したdefaultのものに変更。上書きなんかで。

ほいで、META-INF と systemフォルダをLhazとかを使って
まとめてzipファイルに。名前は、update.zipで。

で、どこからともなくAuto-signを入手。(上のブログのリンクとかから)
使い方はこちらなどを参考に。(というか、そのまま)
http://acc.komugi.net/?%E3%83%84%E3%83%BC%E3%83%AB/AutoSign

出来上がったupdate_signed.zipは、どこかに保存。
使うときはupdate.zipにリネーム。
私はこれを使ってもとに戻せましたが、まあ、責任は持てません。

(ここまでdefaultのupdate.zip作成メモ)

ほいで、frameworkの変更。

framework.zip(入手してきた入れ替えたいframework)
をupdate.zipにリネームして

adb push (絶対パス)\update.zip /sdcard/
adb shell
su
reboot recovery

追記
adb reboot recovery
だけでいいみたい。

で、ボリュームボタンの下を押してupdate.zipを選択。ホームボタンを押す。



←ここ。














そんだけ。
なんか、おかしなとこがあるかも。
まあ、うまくいくとは限らないのでくれぐれも自己責任で。

2011-03-02

sc-02b 2.2.1 SharedPreferenceの保存場所

要root。自己責任で。↓ここを参考にしました。
http://forum.xda-developers.com/showpost.php?p=9778957&postcount=15980

/data/data/アプリのパッケージ名/shared_prefs から、
/dbdata/databases/アプリのパッケージ名/shared_prefs
に変わってる…。

作ってた音楽プレイヤーアプリが変だと思ったら…。
上のサイトを参考にして、フォルダ(アプリのパッケージ名のフォルダ)ごと
消してやったら、元に戻った。


アンインストールしてもこのフォルダは残ったままなので、
直接消すしか無いみたい。

アンインストール→フォルダ削除→再インストール 
↑これがいいかな。面倒くさいけど。

アップデート後アプリがなんかおかしかったら
まあ、試してみるのもいいかも。

もちろん、自己責任で。

2011/03/04追記
docomoにメールで問い合わせたら
「分かんね」とのことでした。

samsungからは返事が無い。
問い合わせたとこが間違ってたのかもしれない。
まあ、そんな感じです。