posts - 33, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          odex打包為可用的apk程序

          Posted on 2011-08-28 15:22 馬航 閱讀(590) 評論(0)  編輯  收藏

          細心的網(wǎng)友可能發(fā)現(xiàn)Android的 ROM中有很多odex文件,相對于APK中的dex文件而言這個odex有什么作用呢? Android123提示大家,如果你仔細觀察會發(fā)現(xiàn)文件名時一一對應(yīng)的,同時那些對應(yīng)的apk文件中沒有dex文件。這樣做可以使其廠商保證一定的反盜 版,因為沒有沒有dex文件的apk是無法正常安裝的,而廠商直接將odex和不完整的apk文件放到手機rom固化到/system/bin中可以讓一般用戶無法正常導(dǎo)出使用。

            很多網(wǎng)友可能想到的是合并odex和apk變成apk中包含dex文件的,這樣合并后最終apk文件安裝在/data/中,而rom存放時在 /system/bin中,所以最終導(dǎo)致了用戶可裝在Android手機中的軟件會變少,占用系統(tǒng)空間。

            一、APK生成odex文件方法:

            編譯開源GIT上的build/tools/dexpreopt/dexopt-wrapper這個,使用dexopt-wrapper即可,操作步驟

            將dexopt-wrapper放到/data/local目錄中,使用adb shell執(zhí)行l(wèi)inux命令行,使用cd命令進入/data/local目錄,

            cd /data/local

            ./dexopt-wrapper android123.apk android123.odex

          二、合并odex和 少dex的apk 為完整的apk文件

            1. 下載 http://smali.googlecode.com/files/smali-1.2.2.jarhttp://smali.googlecode.com/files/baksmali-1.2.2.jar,既然是需要盜版,還需要odex所在rom中的一些引用類,一般在 /system/framework 目錄中

            2 .  通過odex生成class文件

                    java -jar baksmali-1.2.2.jar -x android123.odex

                  執(zhí)行完上面這行命令后,會生成一個out 文件夾里面是android123.odex的class文件。出現(xiàn)問題,根據(jù)提示可以從rom的 /system/framework 中的xxx.jar放到pc上的java環(huán)境變量中一起生成。

            3. 通過class生成classes.dex 文件。

                  java -Xmx512M -jar smali-1.2.2.jar out -o classes.dex

            4. 將classes.dex放到apk文件

                  因為apk是zip的mime編碼類型,使用winzip或winrar直接拖入到apk改名為zip的壓縮包中即可。

            5. 不要忘記了簽名,使用jdk中的arsigner和keytool打包重新簽名即可。


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 自治县| 太湖县| 屏南县| 高雄县| 班玛县| 股票| 蒙阴县| 柞水县| 长子县| 赣州市| 巫山县| 安宁市| 德钦县| 兴和县| 南康市| 五大连池市| 鲜城| 鸡泽县| 黄陵县| 兴安县| 泸定县| 长岛县| 比如县| 安阳县| 宾阳县| 金山区| 剑川县| 汕尾市| 永嘉县| 崇信县| 东安县| 万荣县| 宁乡县| 民乐县| 高平市| 宁安市| 汝阳县| 连州市| 松滋市| 防城港市| 长顺县|