Android 中odex转成dex

     有时候你看上某个rom里的程序比较好用,想提取出来和大家分享,却发现这个程序分了为apk和odex两个文件,不方便安装,所以我们要想办法把这两个文件合并成为一个文件。: d+ e4 W, U6 B0 t9 U6 b* D) j
      那么我先说明下odex文件的作用,如果你仔细观察会发现那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用。据说还能使系统稳定什么的,我在这里不多研究了,其实我也不清楚。嘿嘿。
  f/ t/ }% a0 T$ B8 g6 P
0 y& Y& u$ u5 T
  那么我们开始工作:$ v3 Q  U* a  b
     一。首先是要在java环境(java环境请访问www.java.com安装网页提示下载安装)

     二。baksmali-2.0.3.jar和smali-2.0.3.jar下载  然后把这两个文件和ROM里面的system\framework目录下的文件一起放在一个文件夹里。(如baksmail文件夹中)

     下载地址: http://code.google.com/p/smali/downloads/list

   

 2 O& x3 z' _( |4 m6 V
6 x( T" h4 m/ z' R) A" i: t  ]
    三:我们以pdf为例子,ROM里面拿出来的可能是2个文件,pdfapk + pdf.odex。& Y4 o3 z$ z; C0 R9 F7 a& J
      第一步,分解odex文件:
先运行cmd命令,然后用CD /D +你文件所在目录,将这个目录设置工作目录8 d- X. E. i2 f5 |! O) ?
然后运行下列命名:8 f6 b& z, i5 I: ]$ F
      java -jar baksmali-2.0.3.jar -x pdf.odex -d framework(加上-d framework ,否则可能出现如下错误)  _" ~$ Y% s7 r6 D) E

会在工作目录生成一个out的目录,里面是分解出来的一些文件,我们在此不深究这些文件的作用。

    




$ J" A7 G! O4 C7 n

    四:把分解得到的文件变成classes.dex:, _6 G' e! ?) k3 i
在cmd中运行下列命令:

      java -Xmx512M -jar smali-2.0.3.jar out -o classes.dex (注意大小写)

# P3 Z: p$ t5 G  \! |) U, ~6 _3 D

. P. @) `- \% @1 ]: ^6 e$ n$ s
这样,我们就得到了一个有用的classes.dex文件,用WinZip或者WinRAR打开pdf.apk文件,把这个classes.dex放进去,
/ k: U3 Y# {3 Y) o$ y% U
最后把这个包含classes.dex的apk重新签名一下,就生成一个可以安装的单独APK程序了。  ~- m6 X. _" D8 U$ [

那么我们就完工了,没有什么难度。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值