I dexlib2 bin mit statischer Zeichenfolge ersetzen von dex file.As einem ersten Schritt, ich habe unten Stück Code geschrieben Klassen in dex-Dateien zu erhalten:Dexlib2 nicht scannig Code der Anwendung in Dexrewriter
try {
DexBackedDexFile dexFile = DexFileFactory.loadDexFile("classes.dex", 24);
Iterator iterator = dexFile.getClasses().iterator();
while (iterator.hasNext()) {
System.out.println("Value: " + iterator.next() + " ");
}
System.out.println("done");
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Ausgabe Ist es das Drucken aller Klassen anders als von meinem Code.
Jeder hat dasselbe Problem? Zur Verdeutlichung ist meine Dex-Datei eine Dex-Datei aus mehreren Dex-Dateien, da meine App die Multidex-Funktion verwendet.
Die Klassen einer Anwendung können sich in einer beliebigen Dex-Datei in einer Multidex-Anwendung befinden. – JesusFreke
@JesusFreke: Ich habe die Dex-Datei, die diesen Code hat, wie ich es mit dem Dex2jar-Tool überprüft. Ein anderer Punkt ist vielleicht, dass es mit dem API-Level zu tun hat, den ich für Opcodes angegeben habe. Auch meine Hauptaufgabe ist es, bestimmte String-Konstante zu ersetzen. ist es mit Dexlib2 Dexrewriter-Klasse möglich? –
Der Code, der über Klassen iteriert, ist relativ einfach und enthält keine bekannten Fehler. Wenn sich die Klasse in der Dex-Datei befindet, wird der Code, den Sie geschrieben haben, ihn während der Iteration finden und ausdrucken. Und ja, das ist möglich. Haben Sie versucht, in die anderen Dex-Dateien zu schauen? ;) – JesusFreke