Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用org.jf.dexlib2写入或重写dex文件?_Java_Android_Dalvik_Dex_Smali - Fatal编程技术网

Java 如何使用org.jf.dexlib2写入或重写dex文件?

Java 如何使用org.jf.dexlib2写入或重写dex文件?,java,android,dalvik,dex,smali,Java,Android,Dalvik,Dex,Smali,我在网上搜索了很长时间。但是没有用。请帮助或尝试给出一些如何实现这一点的想法。 这里有一个演示,但我不明白。我想知道dexlib2是否可以用来编写或重写dex文件 DexRewriter rewriter = new DexRewriter(new RewriterModule() { public Rewriter<String> getTypeRewriter(Rewriters rewriters) { return new Rewriter<String>

我在网上搜索了很长时间。但是没有用。请帮助或尝试给出一些如何实现这一点的想法。 这里有一个演示,但我不明白。我想知道dexlib2是否可以用来编写或重写dex文件

DexRewriter rewriter = new DexRewriter(new RewriterModule() {
public Rewriter<String> getTypeRewriter(Rewriters rewriters) {
    return new Rewriter<String>() {
        public String rewrite(String value) {
            if (value.equals("Lorg/blah/MyBlah;")) {
                 return "Lorg/blah/YourBlah;";
             }
             return value;
         }
     };
 }
});
DexFile rewrittenDexFile = rewriter.rewriteDexFile(dexFile);
dexrewiter rewriter=新的dexrewiter(新的RewriterModule()){
公共重写器getTypeRewriter(重写器重写器){
返回新的重写器(){
公共字符串重写(字符串值){
if(value.equals(“Lorg/blah/MyBlah;”){
返回“Lorg/blah/YourBlah;”;
}
返回值;
}
};
}
});
DexFile rewritendexfile=rewriter.rewriteDexFile(DexFile);

dexlib2源代码在这里还有另一个演示,但很难理解您的方向是正确的。什么东西不适合你?试试这个链接这个代码可以解决这个问题