Package org.jf.dexlib2.rewriter
Class DexRewriter
java.lang.Object
org.jf.dexlib2.rewriter.DexRewriter
- All Implemented Interfaces:
Rewriters
Out-of-the box, this class does nothing except make a picture-perfect copy of a dex file.
However, it provides many points where you can hook into this process and selectively modify
the dex file. For example, If you want to rename all instances (including definitions and references)
of the class Lorg/blah/MyBlah; to Lorg/blah/YourBlah;
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);
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Rewriter<AnnotationElement> private final Rewriter<Annotation> private final Rewriter<EncodedValue> private final Rewriter<ExceptionHandler> private final Rewriter<FieldReference> private final Rewriter<Instruction> private final Rewriter<MethodImplementation> private final Rewriter<MethodParameter> private final Rewriter<MethodReference> private final Rewriter<TryBlock<? extends ExceptionHandler>> -
Constructor Summary
Constructors -
Method Summary
-
Field Details
-
dexFileRewriter
-
classDefRewriter
-
fieldRewriter
-
methodRewriter
-
methodParameterRewriter
-
methodImplementationRewriter
-
instructionRewriter
-
tryBlockRewriter
-
exceptionHandlerRewriter
-
debugItemRewriter
-
typeRewriter
-
fieldReferenceRewriter
-
methodReferenceRewriter
-
annotationRewriter
-
annotationElementRewriter
-
encodedValueRewriter
-
-
Constructor Details
-
DexRewriter
-
-
Method Details
-
getDexFileRewriter
- Specified by:
getDexFileRewriterin interfaceRewriters
-
getClassDefRewriter
- Specified by:
getClassDefRewriterin interfaceRewriters
-
getFieldRewriter
- Specified by:
getFieldRewriterin interfaceRewriters
-
getMethodRewriter
- Specified by:
getMethodRewriterin interfaceRewriters
-
getMethodParameterRewriter
- Specified by:
getMethodParameterRewriterin interfaceRewriters
-
getMethodImplementationRewriter
- Specified by:
getMethodImplementationRewriterin interfaceRewriters
-
getInstructionRewriter
- Specified by:
getInstructionRewriterin interfaceRewriters
-
getTryBlockRewriter
- Specified by:
getTryBlockRewriterin interfaceRewriters
-
getExceptionHandlerRewriter
- Specified by:
getExceptionHandlerRewriterin interfaceRewriters
-
getDebugItemRewriter
- Specified by:
getDebugItemRewriterin interfaceRewriters
-
getTypeRewriter
- Specified by:
getTypeRewriterin interfaceRewriters
-
getFieldReferenceRewriter
- Specified by:
getFieldReferenceRewriterin interfaceRewriters
-
getMethodReferenceRewriter
- Specified by:
getMethodReferenceRewriterin interfaceRewriters
-
getAnnotationRewriter
- Specified by:
getAnnotationRewriterin interfaceRewriters
-
getAnnotationElementRewriter
- Specified by:
getAnnotationElementRewriterin interfaceRewriters
-
getEncodedValueRewriter
- Specified by:
getEncodedValueRewriterin interfaceRewriters
-