有時候,某些應用並不太常用,放在ROM裏面占空間挺可惜的,不如把它變成一個單獨的APK安裝包,想用的時候再裝來的更方便些。這種時候,就需要把優化成APK檔和Odex檔組成的程式重新合併起來。
需要用到的工具是smali,一個開源的java處理軟體
http://code.google.com/p/smali/downloads/list
下載裏面的baksmali和smali的jar檔到工作目錄,把ROM裏面的core.odex, ext.odex, framework.odex, android.policy.odex, services.odex這5個檔也放在同一目錄(也可以放在別的目錄,通過設置BOOTCLASSPATH指定,默認就是當前目錄)。
我們以teeter為例子,ROM裏面拿出來的可能是2個檔,teeter.apk + teeter.odex。
第一步,分解odex文件:
java -jar baksmali-
如果沒其他問題,會在工作目錄生成一個out的目錄,裏面是分解出來的一些檔,我們在此不深究這些檔的作用。
第二部,把分解得到的檔變成classes.dex:
java -Xmx
這樣,我們就得到了一個有用的classes.dex檔,用WinZip或者WinRAR打開teeter.apk檔,把這個classes.dex放進去,最後再用signapk把最新得到的這個包含classes.dex的apk重新簽署一下,就生成一個可以安裝的單獨APK程式了。
就這麼簡單。
沒有留言:
張貼留言