很多網友可能會想到將odex和apk合並成包含dex文件的apk,這樣合並後apk文件會安裝在/data/中,rom存儲在/system/bin中,最終導致用戶在Android手機中可以安裝的軟件變少,占用系統空間。
1.APK生成odex文件的方法;
在開源GIT上編譯build/tools/dexepropt/dexopt-wrapper,只需使用dex opt-wrapper,按照步驟操作即可。
將dexopt-wrapper放入/data/local目錄,用adb shell執行linux命令行,用cd命令進入/data/local目錄。
CD/數據/本地
。/dex opt-wrapper Android 123 . apk Android 123 . odex
第二,將odex和less dex的apk合並成壹個完整的apk文件。
需要的工具是smali,壹個開源的java處理軟件:
/p/smali/downloads/list
1.將baksmali和smali的jar文件下載到工作目錄。
2.放核心的五個文件。odex,分機odex,框架。odex,安卓。政策。odex和服務。odex放在同壹個目錄下(也可以放在其他目錄下,這是通過設置BOOTCLASSPATH指定的,默認是當前目錄)。
示例:
以teeter為例(HTC的壹些Android設備往往是內置的)。ROM中可能有兩個文件,teeter.apk+teeter.odex。
1,分解odex文件:
Java-jar baks Mali-1 . 2 . 1 . jar-x teeter . odex
如果沒有其他問題的話,工作目錄中會生成壹個out目錄,裏面包含了壹些分解後的文件,這裏就不深究這些文件的作用了。
2.將分解後的文件改為classes . dex:Java-xmx 512m-jars Mali-1 . 2 . 1 . jarout-o classes . dex,這樣就得到壹個有用的class.dex文件。
3.用WinZip或者WinRAR打開teeter.apk文件,把這個classes.dex放進去。
4.最後用signapk(自動簽名簽名工具上壹篇文章下載的)重新簽名包含classes.dex的最新apk,就可以安裝單獨的apk程序了。
5.簽名後就可以安裝使用了。