読者です 読者をやめる 読者になる 読者になる

人工知能作っちゃう?

画像処理を中心に人工知能を作っていきます。

apkファイルを解凍してデコンパイルする

すこし迷ったことがあったのでメモ。

必要なもの

dex2jar

classes.dexをjarファイルに変換する時に必要。

JAD

classファイルをjavaファイルに変換する際に必要。

手順

※黄緑はターミナルに打ち込むコマンド
apk->dex->jar->class

  1. 解凍したいapkファイルの拡張子をzipに変えて、解凍。
  2. classes.dexがあることを確認。
  3. dex2jarをSourceForgeからダウンロード。
  4. 解凍して.shと.batが入っていることを確認。
  5. ターミナルでdex2jarを解凍したフォルダに行き、すべてのシェルに権限を与える。sudo chmod +x *.sh
  6. ターミナルで./d2j-dex2jar.sh hoge/fuga/classes.dexを実行してdex2jar hoge/fuga/classes.dex -> ./classes-dex2jar.jarと表示されたら成功。dex2jarのフォルダにclasses-dex2jar.jarが生成される。
  7. classes-dex2jar.jarをclasses-dex2jar.zipにして解凍する。
  8. 解凍したら.classファイルがあるのを確認。

class->java

  1. http://varaneckas.com/jad/に行き、Jad 1.5.8g for Mac OS X 10.4.6 on Intel platform (170707 bytes, compiled by GCC 4.0).をダウンロード。
  2. jadをターミナルに登録。echo "export PATH=\$PATH:hoge/fuga/jad" >> ~/.bashrc
  3. 更新 source ~/.bashrc
  4. jadと入力してコマンド一覧が表示されればOK
  5. ターミナルにjad -s java -d src -r path/to/*.classとすると全てのclassファイルがjavaに変換されます。jadは優秀なので階層も保持されます。
  6. jadフォルダ下に階層を保持したままjavaファイルが生成されています。

まとめ

少し長かったですが、apkを解凍することができました。ちなみに少し迷ったのはずっとGithubのをダウンロードしてGradleでビルドしてたのですが、エラーがばんばんでていたので詰んでいました。SourceForgeに実行できるファイルがあってよかったです。