上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
携帯電話/HT-03A/Android/odex拡張子
のソース
資料室
携帯電話
/
HT-03A
/
Android
/
odex拡張子
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
携帯電話/HT-03A/Android/odex拡張子
へ行く。
*odex拡張子って? [#pb5ce700] MotorolaのMilestoneを覗いてみたら,.odexという拡張子のついたファイルが存在していた。だいたい同じファイル名を持つ.apkとセットになっていた。aaaa.apkとaaaa.odexのような状態。~ .apkはアプリケーションパッケージですが,じゃあ.odexは何かっていうとどうも「Optimized dex」っていうことらしい。~ それじゃ,dexはなんなんだっていうと,「Dalvik Excecutable」のことみたいだ。~ つまり,.odexファイルは,AndroidのDalvik VMで実行可能なファイルの.dexを最適化したものということになる。 普通は,.dexファイルは.apkに含まれた形で配布される。.apkはzipアーカイブなんで,覗いてみたりすると「classes.dex」というファイルがある。~ 端末でアプリが実行される時は,このclasses.dexを元にしてodexを作った後,実行するようになっているみたいだ。この時,.odexファイルは/data/dalvik-cacheディレクトリに保管される。~ じゃあこのMilestoneの/system/appディレクトリに最初から存在している.odexはどんなやつかっていうと,/data/dalvik-cacheに置いてしまうと/data以下の容量がどんどこ減ってしまう。~ それに比べ,/systemは読み込み専用なわけで,端末が動いているときにファイルなんかが追加されることはない。(通常ね)プリインストールされたアプリでは,/data以下を無駄にすること無くアプリを実行できるようになる,っていうことかなぁ。~ ということで,.odexがあれば.apk内の.dexはいらないはずなんでclasses.dexは無いはず。でもこうなると実行ファイルが存在しないので,.apkだけではアプリのインストールが出来なくなっちゃう。.odexファイルもDalvikごとに違うファイルになるはずなんで,単純に.apkと.odexをコピーした場合は動かない可能性がある気がする。~ *.odexを.dexに変換して.apkに入れる手順 [#g6d6eb53] 必要なのは,.apkと.odex,それとsmali(odexをsmaliにディスアセンブルするbaksmaliと,smali をdexにアセンブルするsmaliのツール。java実行環境も必要)。 それと,baksmaliを実行する時に.odexの含まれるAndroid環境の/system/framework以下のjarファイルなどが必要になる場合があるようだ。~ -odexをsmali形式にディスアセンブル~ aaa.apk,aaa.odex,baksmali.jarとsmali.jarを同じディレクトリに入れて,以下のコマンドを実行する。~ java -jar baksmali.jar -x aaa.odex もしエラーが出たら,/system/frameworkのファイルが必要になると思う。必要なファイルを baksmali.jarなどと同じディレクトリにコピーするか,ディレクトリ位置を指示する-dオプションを追加する。~ java -jar baksmali.jar -d ../system/framework -x aaa.odex うまく行けば,「out」というディレクトリが作成され,その中に.smaliファイルが出来る。 -smali形式からdexファイルを作成~ smaliコマンドを使ってdexに変換する~ java -jar smali.jar -o aaa.dex out うまく行けば,「aaa.dex」というファイルが作成されます。~ -dexファイルをapkに入れる~ mkdir temp cd temp unzip ../aaa.apk rm META-INF/* cp ../aaa.dex classes.dex jar cvf ../aaa_new.apk . cd .. mv aaa.apk aaa_old.apl mv aaa_new.apk aaa.apk -apkに署名をする~ --鍵を作る~ まず署名するための鍵を作成します。鍵は一度作れば使いまわせる。~ keytool -genkey -dname "c=j" -keypass [password] -keystore test.keystore -storepass [password] -validity 10000 -alias test -keyalg RSA --apkに署名を追加~ jarsigner -keystore test.keystore -verbose aaa.apk test 「test.keystore」は鍵を作成したときの「-keystore」オプションに指定した値を,test」は「-alias」オプションに指定した値を使う。実行するとパスワードを聞かれるので,「-storepass」で指定した値を入力すると,apkに署名が追加される。~
携帯電話/HT-03A/Android/odex拡張子 のバックアップソース(No. All)
現: 2020-12-26 (土) 15:07:35
yuji
Counter: 556, today: 1, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ