Androidアプリのリバースエンジニアリングの手法としては、apktookでsmaliを作るのが良く知られてるが、よりソースに近い状態にするのが以下の方法。
ルート化端末などを用いて、apkファイルを引っこ抜ける状態なのが前提。
d2j-dex2jar、jadというツールを使って、apkからjava(っぽい)ファイルを取り出す。
$ unzip hoge.apkで解凍。classes.dexを得る。
$ d2j-dex2jar classes.dexでclasses_dex2jar.jarができる。
$ unzip classes_dex2jar.jarで、.classファイルがソースツリー状に大量にできる。
src/ディレクトリ用意して、以下コマンドでjavaファイルにできる。
$ jad -d src/ -s java -r **/*.classこれで、難読化してないと普通に読めちゃう。