apktoolを使ってみました。

その前に画面キャプチャする為のコマンド

2秒後にアクティブウィンドウのキャプチャを行う場合、
gnome-screenshot -w -d 2
または、
xwd > hoge.png

さて、apktoolを使って逆コンパイルしてみました。

必要なファイルはこれ。

$FXer太郎のブログ

ダウンロードはこちらから。

1.私の場合はubuntu使っているので、
 ・apktool1.3.2.tar.bz2
 ・apktool-install-linux-2.2_r01-1.tar.bz2
をダウンロード。

2.それぞれ解凍。
 ・apktool.jar
 ・apktool-install-linux-2.2_r01-1ディレクトリ(配下にファイルaaptとapktoolあり)

3.3ファイル(apktool.jar,aapt,apktoolを移動。(私の環境では/usr/local/binに移動)
$FXer太郎のブログ

あ、ここまでもここからもPATHが通ってるとかその辺は説明してないです。

4.パスが通っているディレクトリに.apkファイルを置く
(apkファイルの取得は、appmonster使うなりadb pullで引き抜くなりなんなりと)
$FXer太郎のブログ

5.コマンドライン端末から「apktool d mikutestpj.apk」と叩く
$FXer太郎のブログ

6.以下のディレクトリ・ファイルが作成される。
 ・resディレクトリ(画像とかxmlファイル)
 ・smaliディレクトリ(ソース(でもまだちょっと読めるレベルじゃない。推測はできるけど)
 ・Androidmanifest.xml
 ・apktool.yml(テキストファイル。実行結果っぽい内容)

$FXer太郎のブログ


ここからsmliディレクトリのファイルをソースに逆コンパイルする方法があるみたいなんだけど時間の都合で次回書きます。

※ちなみにAndroidマーケットにあるプログラムをapktoolで逆コンパイルしてみたんですがsmaliディレクトリが作成されなかったです。
お疲れ様です。

Eclipse環境をUbuntuの別ユーザにAndroidSDKをダウンロードして再構築し、旧ユーザを削除したところEclipse起動時に「SDK Platform Tools component is missing. Please install it with the SDK Manager (tools/android)」というメッセージが出て、作成中のプロジェクトの全てにエラーが発生するようになってしまいました。

ダウンロードして解凍したandroid-sdk-linux_86配下のディレクトリにやけにディレクトリが少なくなった気がしたのですが、どうもandroid-sdk_r08-linux_86.tgzではディレクトリ構成が変わったようです。

コマンドライン端末を起動し、解凍したandroid-sdk-linux_86にチェンジディレクトリして、
./tools/android update sdk -uと叩いたらandroid-sdk-linux_86配下にディレクトリが増え、Eclipse起動後にエラーが出なくなりました。

余計なことはするもんじゃないっす。一つ偉くなったけど。

今日はXperiaからFrameworkをPullしてApktoolで遊ぼうと思っていたのに・・・
今日は無理っす