2017-06-12 4 views
0

Ich versuche, eine Android-App, die andere Android-Apps dekompilieren können. Ich habe gerade angefangen, aber ich bin stecken geblieben beim Versuch, Ressourcen des Typs xml, d. H. Die unter res/xml/gespeichert.Decoding binäre Android Xml-Ressourcen in Android

Das Problem, das ich bin vor ist, dass diese Dateien binäre Informationen enthalten (soweit ich verstehe, wandelt aapt XML-Dateien in binären während des Verpackungsprozesses.)

Auch ich bin über die Existenz von Werkzeugen wie apktool oder der dump-Befehl von aapt selbst. Allerdings sind dies PC-basierte Tools, während ich die XML-Ressourcen in einer Android-App entschlüsseln muss.

Also gibt es eine Möglichkeit, es in Android zu tun, oder muss ich den aapt-Code durchlaufen und den zugehörigen Code auf Android portieren?

Edit: Ich habe auch versucht, die Resources Android API, die getXml()-Funktion, die ein XmlResourceParser zurückgibt, kann es aber nicht zu arbeiten, weil die binären Natur der XML-Datei.

Bearbeiten (2): Basierend auf der einsamen Antwort integrierte ich ApkParser in meinen Code. Es funktioniert gut für die meisten Teile, außer dass für bestimmte XML-Dateien, wie die XML-Ressourcen in Framework-Res.apk, die Werte für die XML-Attribute falsch dekodiert wurden. Zum Beispiel wurden alle booleschen Werte in der XML als "falsch" gemeldet, während die tatsächliche XML einige Attribute mit "wahren" Werten hatte. Also, ich denke, der ApkParser hat einige Einschränkungen.

Ich habe die folgende issue auf Github für das Projekt gefunden, das einige Aspekte des Problems teilt, mit dem ich konfrontiert bin.

Bitte schlagen Sie andere Alternativen vor.

+0

Bitte geben Sie die Gründe an, die Sie ablehnen möchten – CodeMonkey

Antwort