2015/06/03

備忘録 -Lollipop deodex-

全部じゃなくて個別にでおでおしたい今日このごろ。
必要なもの
JDK 7か8か
adb
7z
oat2dex.jar

64bitか32bitか調べる。
$ adb shell getprop ro.product.cpu.abi
arm64-v8aだったら64bit?
違ったら32bit?

boot.oatなるものを引っこ抜く。
# 64bit
$ adb pull /system/framework/arm64/boot.oat
# 32bit
$ adb pull /system/framework/arm/boot.oat

raw dexなるものを展開する。
$ oat2dex boot boot.oat
dexとodexになにやら吐き出す。

でおでおしたいものを引っこ抜く。
$ adb pull /system/app/hoge
arm64かarm
hoge.apkが現れる。

arm64/hoge.odexかarm/hoge.odexになにやら施す。
# 64bit
$ mv arm64/hoge.odex hoge.odex
$ oat2dex hoge.odex dex
($ java -jar oat2dex.jar hoge.odex dex) 
# 32bit
$ mv arm/hoge.odex hoge.odex
$ oat2dex hoge.odex dex
($ java -jar oat2dex.jar hoge.odex dex)
hoge.dexが吐出される。

hoge.dexをclesses.dexに変えちゃう。
$ mv hoge.dex classes.dex
ただのリネーム

hoge.apkに突っ込む。
$ 7z a -tzip hoge.apk classes.dex

これでいいらしい。

デコンパイルとコンパイル
# Decompile
$ baksmali -x hoge.apk -o test

# Compile
$ smali test -o classes.dex

0 件のコメント:

コメントを投稿