[PR]
2025年02月01日
×
[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
ここまでが下準備
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
とすればとりあえず元の環境で起動するはず。
を実行することによって 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
とすればとりあえず元の環境で起動するはず。
PR
Comment