忍者ブログ

[PR]

2017年11月19日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

[SC02B] *.odexの編集方法

2011年04月01日
download
http://code.google.com/p/smali/downloads/list
http://code.google.com/p/smali/downloads/detail?name=smali-1.2.6.jar&can=2&q=
http://code.google.com/p/smali/downloads/detail?name=baksmali-1.2.6.jar&can=2&q=
をダウンロードしてそれぞれを

smali-1.2.6.jar → smali.jar
baksmali-1.2.6.jar     → baksmali.jar

にリネームする。

http://forum.xda-developers.com/showpost.php?p=3864655&postcount=36
http://forum.xda-developers.com/attachment.php?attachmentid=190382&d=1243739828
をダウンロード

解凍後コマンドプロンプトにて

adb root
adb shell mount -o remount,rw /system
adb push dexopt-wrapper /system/framework/
adb shell chmod 755 /system/framework/dexopt-wrapper

を実行する。

adb pull /system/framework/ext.odex
adb pull /system/framework/core.odex
adb pull /system/framework/framework.odex
adb pull /system/framework/android.policy.odex
adb pull /system/framework/android.policy.jar
copy android.policy.jar original.android.policy.jar
copy android.policy.odex original.android.policy.odex

ここまでが下準備


java -jar baksmali.jar -x android.policy.odex -o android.policy

を実行することによって android.policyディレクトリに android.policy.odex の内容が解凍される。

適当にソースを変更後・・・

java -jar smali.jar android.policy -o classes.dex

にて classed.dex が作成される。

winrar や explzh にて android.policy.jar 内のカレントに classes.dex を入れる
例(7za.exeで入れる場合)→ 7za.exe a -tzip -mx0 android.policy.jar classes.dex

adb push android.policy.jar /system/framework/
adb shell

※ ここからadb shell コマンド ※

# cd /system/framework/
# ./dexopt-wrapper android.policy.jar patched.odex /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
↑ android.policy.jar から patched.odex を作成する

Ouput should be:
--- BEGIN 'android.policy.jar' (bootstrap=0) ---
--- would reduce privs here
--- waiting for verify+opt, pid=xxxx
--- END 'android.policy.jar' (success) ---

と表示されれば成功。失敗する場合は大体古い patched.odex が残っている場合なので消して下さい。

生成された patched.odex は署名がだめらしいので以下のコマンドで署名部分(0x34-0x47)をコピーする。

# dd if=original.android.policy.odex of=patched.odex bs=1 count=20 skip=52 seek=52 conv=notrunc

以上で patched.odex が新しい android.policy.odex として使えるようになるので

# dd if=patched.odex of=android.policy.odex

で android.policy.odex に上書きしてやる。

# exit

でコマンドプロンプトに戻り、変更した状態になっている android.policy.jar をオリジナルに戻してやる。

adb push original.android.policy.jar /system/framework/android.policy.jar

以上で完成。

adb shell reboot

で再起動してやればうまくいくはず。
だめだと 「Docomo」 の画面で止まるので

adb root
adb push original.android.policy.odex /system/framework/android.policy.odex

とすればとりあえず元の環境で起動するはず。

拍手[5回]

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback
トラックバックURL: