• 合并apk和odex 为完整的apk安装文件


    from:http://bbs.hiapk.com/thread-1151284-1-1.html

    1.安装java,这个自己去网上下载,这里不给地址了;
    2.下载工具,这里我给个工具包 tools(其实也是我在坛子里找的,对分享者表示感谢),解压缩后使用;解压后有这些文件:
    <ignore_js_op>1.JPG 
    3.把想合并的apkodex放在解压后的tools文件夹下面;
    4.要把该apkodex 文件所在的MOD 里的五个文件同时放在tools文件夹下面,者五个文件是:core.jarext.jarservices.jarframework.jarandroid.policy.jar;如果MOD里有这五个文件的odex文件,只需要五个文件的odex文件就可以了(多谢 释放 提醒)。其实在你把odex文件拖到deodex后,如果文件不全,会有错误提示缺少那个文件的。
    5.下载签名软件

    -------------------------------------------------分割线----------------------------------------------------------------------

    前面的准备工作做好之后就可以开始主要的操作了(以123.apk123.odex为例):
    1.123.odex拖放到deodex.cmd上面去,出现下面的窗口后,按任意键结束,此时会在tools文件夹下生成一个123文件夹;<ignore_js_op>1.JPG 
    2.123文件夹拖放到odex.cmd,出现下面的窗口后,按任意键结束,此时会在tools123文件夹生成classes.dex
    <ignore_js_op>2.JPG 
    3.用好压工具打开123.apk,不要解压缩,将得到的classes.dex拖进去;
    <ignore_js_op>3.JPG 
    4.保险期间,将加入了classes.dex123.apk重新签名;

    5.把上一步的123.apk放到 签名 文件夹下面,双击Sign.bat,等待片刻会生成123-signed.apk,这个就是可以安装的apk文件了,拿去安装使用吧!<ignore_js_op>4.JPG 

    ***************************分割线*********************************************

    所有步骤就是这些了,教程终于完成了,自己实践的步骤,下面你懂得……
    所用到的tools和签名工具在坛子都有,搜索一下,应该能找到,要不改天补上…… 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    现在2.2和2.3系统已经很多了,想合并2.2或2.3系统的文件的TX也有,原来上传的工具之支持2.1的文件,现在更新其中的smali和baksmali为1.2.6版,能够支持2.2和2.3了,附件加压后把文件名的“-1.2.6”删去,即文件名为smali和baksmali后替换原来tools文件夹内的文件就可以了,其他文件不用替换,操作过程依旧!

    可能出现的问题:

    1:

    为了将ROM中system/app下的CertInstaller.odex反编译为CertInstaller.dex,输入命令:

    “java -jar baksmali.jar -x CertInstaller.odex”

    出现如下错误:


    org.jf.util.ExceptionWithContext: Cannot locate boot class path file /system/framework/core.odex
            at org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry(ClassPath.java:2
    17)
            at org.jf.dexlib2.analysis.ClassPath.fromClassPath(ClassPath.java:161)
            at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:59)
            at org.jf.baksmali.main.main(main.java:274)

              

    提示的意思是缺少“core.odex”,于是将core.odex放到当前目录,重新输入命令,还是出现同样的错误!

    解决方法在当前文件夹下新建system文件夹,并在system文件夹下建立framework文件夹,然后将

    常用的一些odex放入framework文件夹下,如core.odex, ext.odex, framework.odex, android.policy.odex, services.odex(在相应ROM中system/framework/下提取,或从相应源码中out/.../system/framework/获得),

    再输入命令:


    java -jar baksmali.jar -d ./system/framework -x CardManager.odex


    按照它的提示缺哪个就将相应的odex放入framework文件夹,直到命令成功运行不报错误,成功后会在

    当前文件夹下会生成一个out文件夹

    最后输入命令:

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

    即可生成classses.dex文件

    2:NullPointExcpetion的问题

    smali和baksmali的版本不对,请到

    3:

    UNEXPECTED TOP-LEVEL EXCEPTION:
    java.lang.RuntimeException: bad magic value: 64 65 79 0a 30 33 36 00
            at org.jf.dexlib.DexFile.<init>(DexFile.java:382)
            at org.jf.baksmali.main.main(main.java:249)
    继续换版本,换成了1.2.6问题解决

    总结一下:1.3.3可能是为4.0+准备的,所以很多的2.3.6的odex无法正常编译。

    tools

    smali_baksmali_1.2.6

    smali_baksmali_2.0.3

    签名

  • 相关阅读:
    coding++ :局部 Loading 加载效果
    coding++:快速构建 kindeditor 富文本编辑器(一)
    POJ 1265 计算几何 多边形面积 内部格点数 边上格点数
    POJ 1385 计算几何 多边形重心
    POJ 1584 计算几何 凸包
    POJ 2653 计算几何
    POJ 3666 DP
    POJ 2184 DP 01背包+完全背包
    POJ 2392 DP 多重背包
    POJ 1930 数学
  • 原文地址:https://www.cnblogs.com/94cool/p/3622345.html
Copyright © 2020-2023  润新知