目的事の発端は、新しくお下がりされた Android 端末である。 標準音楽プレイヤーであるところのWALKMAN様が、私には激しく使いづらい。 前の端末に入っていた標準プレイヤーもイマイチ残念な子だったが、 そっちのほうがまだ良かった。 私が満足できるアプリも(無料では)存在しないようだ。 ならば自分で作るしかない。 しかしちゃんとした Android アプリは作ったことがない。 サンプルだのプロトタイプだのばかりである。 一から作るのは敷居が高い。 そうだ、前の端末の標準プレイヤーの作りを参考にさせてもらおう! 作業環境は windows7。 前の Android 端末はナイショ(使用規約的な意味で)。 準備参考にしたページは以下。 Androidアプリケーションのリバースエンジニアリング | JUMPERZ.NET Blog ・参考にしたいアプリを前の端末から持ってくる /system/apk 以下にいた。 少なくとも、*.apk, *.odex のセットが必要。 他に /system/framework も全部PCにコピーしておく。 ・リバースエンジニアリング用ツールたちをDL JDK smali baksmali dex2jar jad smali と baksmali は以下から jar を落とす。 Downloads - smali - An assembler/disassembler for Android's dex format - Google Project Hosting dex2jar は以下。 Downloads - dex2jar - Tools to work with android .dex and java .class files - Google Project Hosting jad はこちら。 JAD Java Decompiler Download Mirror apkを解凍フツウにzip解凍すれば良い。 ./myapk/ などをテキトウに作成して配置。 odex → smaliDOS窓で以下を実行。 .\myapk\smali\ 以下に各種ファイルが作成される。 -d の後のは、 /system/framework をコピーしたディレクトリ。 > java -jar baksmali.jar -a 9 -x appli.odex -o .\myapk\smali\ -d .\framework 引数なしで実行するとヘルプが出るので参考にする。 jar や -d の後のディレクトリなどは、ちゃんとパスが解決できるように指定すること。 -a の後の API-Level はこちらで調べた。 AndroidのバージョンとAPIレベルの対応関係 smali ファイルなんか見てもわからないので、作業を続けて *.java にしていく。 smali → dexdex2jar に掛けるために、いったんdexにする。 .\myapk\smali\ 以下のファイルを dex に変換。 > java -jar smali.jar -o .\myapk\appli.dex .\myapk\smali\ dex → jar.\myapk\appli_dex2jar が作成される。 > dex2jar.sh .\myapk\appli.dex jar → class.\myapk\class などを作って、フツウにzip解凍 class → java.\myapk\class 以下を再帰的にデコンパイルして *.java というファイル名にして、.\myapk\src ディレクトリに出力。 ディレクトリ構造をそのまま保持してくれるのは嬉しい。 > jad -o -r -sjava -d.\myapk\src .\myapk\class\**\*.class 「Couldn't fully decompile method ...」とか たくさんのエラーが出るけど、 自分で作るための参考にするだけで、 大まかにわかれば良いので、これでおk。
by xiaoxia
| 2014-07-31 17:55
| ソフトウェア
|
カテゴリ
以前の記事
2022年 12月 2021年 05月 2019年 12月 2018年 12月 2018年 05月 2018年 03月 2017年 03月 2017年 02月 2016年 08月 2016年 04月 more... 最新の記事
最新のトラックバック
ライフログ
今読んでる
その他のジャンル
記事ランキング
ブログジャンル
|
ファン申請 |
||