【问题标题】:converting java files into .jar and make it .dex将 java 文件转换为 .jar 并使其成为 .dex
【发布时间】:2016-01-24 17:03:09
【问题描述】:

我正在尝试编辑一个 .apk 文件,更改一些变量或在其中的 java 文件中添加一些函数。

所以,首先,我使用 apktool 来反编译 .apk。 然后,我使用 dex2jar 将 classes.dex 制作为 classes.jar 并使用 jd-gui 读取文件。如您所知,.jar 中的文件都是 .class 文件,它们是二进制文件,无法读取,所以我尝试使用 .jar 将 .jar 转换为 java 文件

'Save all sources' 

在 jd-gui 中,它为我提供了可读和可编辑的 java 文件,这对我有好处。然后我编辑了 java 文件并使用

将它们制作成 .jar 文件
'jar cf newjar.jar javafiles'

问题是,

jar2dex 命令用新的.jar 文件,编辑的总是失败,原因是'没有指定类文件'。

我认为这是因为我是用 .java 文件而不是 .class 文件制作的。所以我该怎么做?我是否必须使用 javac 命令将所有 java 文件转换为 .class 文件?或者有什么想法?

【问题讨论】:

    标签: java android jar dex2jar


    【解决方案1】:

    从dex2jar和jd-gui获取的java源码仅供参考,一直不完整和/或不正确。 此外,如果它完全可靠,就没有真正需要开源。

    正如@Robert Williams 所说,如果您认真对待 apk 修改,您应该研究 smali。 如果你这样做了,这里有一些链接可以帮助你开始

    http://smali.net16.net/

    http://androidcracking.blogspot.in/search/label/smali

    【讨论】:

      【解决方案2】:

      如果您有 Java 文件和提取的资源,您应该能够将它们导入常规 Android 项目并使用标准构建工具进行构建。请注意,尽管反编译器并不完美,因此生成的 Java 文件甚至可能无法编译。

      如果你对APK修改很认真,我强烈建议你看smali,这是代码的更直接的表示,可以直接编译成dex格式。

      【讨论】:

        猜你喜欢
        • 2015-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 2018-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多