2011年10月3日月曜日

システムファイルの差し替え方法

root を取ると、UOT KITCHEN 等で作成したリソースファイルを差し替えたくなります。なりますよね。ならないなら、root 取った意味があんまり無いと思います。

差し替えの方法なのですが、自分は以下の方法で行っています。

2011/11/24 追記: reboot 前に sync しないの?って聞かれたんだけど、busybox って reboot しても sync してくれないんだっけ?
……気になったので 1.19.3 のソースをざっと見た所、/init/init.c の 718 行目から run_shutdown_and_kill_processes 関数があって、sync はちゃんとしてくれている。
だから、ソースを弄ってなけりゃ大丈夫なんじゃね?
結論:もし、使っている busybox バイナリにオリジナルから改変が入ってると考えてるなら、reboot 前に sync は入れておいても良いんじゃね?とは、思います。私は入れません。
タフすぎて そんはない



事前準備
  • busybox を導入しておく
差し替えたいファイルは多々あると思いますが、代表的な3つのファイルについて差し替え手順を自分の方法で書いておきます。

各ファイルは d:\android に置いてあるものとします。携帯には、空き容量のある SD カードを挿しておくこと。オリジナルは必ずバックアップを取っておくこと。
また、すべてパソコンのコマンドプロンプトで行います。

framework-res.apk
なお、このファイルを差し替える前に本体電話帳とdocomo電話帳に保存されている連絡先は必ずバックアップを行うこと。すべて消去されます。
ただし、Google 関連は同期設定を再設定すればすべて復活はします。ただ、怖いのでバックアップは取っておきましょう。
また、このファイルは危険らしいです。自分はまだやっちまったことはありませんが、でも、たぶん、adb さえ通れば画面が真っ暗でも復旧はどうとでもなるはずです。

adb push d:\android\framework-res.apk /mnt/sdcard
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
cd /system/framework
mv framework-res.apk framework-res.apkOld
cp /mnt/sdcard/framework-res.apk framework-res.apk
chmod 644 framework-res.apk
ls -l frame*
reboot
  • mount -o ~ は、起動時の状態では領域自体が読み取り専用なので、それを解除するおまじない。
  • mv ~の時に、既に同名ファイルでバックアップを取っているなら、先にバックアップを消す。 rm freamework-res.apkOld とでも。
  • ls -l frame* は、パーミッションとファイル名の確認のためにやってるので、別にしなくても良いです。
SystemUI.apk
このファイルの差し替えは比較的安全です。framework-res.apk の様にデータが消されることはありませんでした。処理を間違えても上部の通知領域が出なかったり、ファイル読み取りエラーが延々と携帯端末に表示されたりするぐらいです(経験談)。電源を落として再起動すれば、上部の通知領域が読み込まれなくなり、読み取りエラーも出ないので、落ち着いて adb を使ってオリジナルと置き換えれば簡単に復旧できます。

adb push d:\android\SystemUI.apk /mnt/sdcard
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
cd /system/app
mv SystemUI.apk SystemUI.apkOld
cp /mnt/sdcard/SystemUI.apk SystemUI.apk
chmod 644 SystemUI.apk
mv SystemUI.odex SystemUI.odexSleep
ls -l System*
reboot

bootanimation.zip
起動時のロゴを差し替えるファイル。このファイルも比較的安全らしいです。

adb push d:\android\bootanimation.zip /mnt/sdcard
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
cd /system/media/
cp /mnt/sdcard/bootanimation.zip bootanimation.zip
chmod 644 bootanimation.zip
ls -l bootani*
reboot

それでは、dance forever your only one !

0 件のコメント:

コメントを投稿

Edge 消せないなら、使えなくしようぜ

 何度殺しても復活する Edge に疲れてきた。 よくわかった。もう、好きにしろ。その代わり、URLだけはブロックさせてもらう。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\...