Wie kann ProGuard Methoden- und Klassennamen verschleiern?

8

Ich benutze ProGuard, um meine APK zu verschleiern, aber es gibt keine Änderungen in Klassen- und Methodennamen - sie sind die gleichen wie zuvor. Nur Variablennamen werden geändert.

Die meisten von ihnen erweitern Klassen wie Activity nicht; Es gibt einige Vererbung in meinem Code, aber es ist 100% von mir selbst geschrieben.

Ich verwende d2j-dex2jar und jd-gui, um die Ergebnisse zu überprüfen.

Einige der Klassen sind wegen der Verwendung von GSON ausgeschlossen, hier ist meine proguard-project.txt:

%Vor%     
Adrian Adamczyk 11.06.2013, 09:01
quelle

3 Antworten

7

Wenn Sie dieses Problem mit Komponenten (Activity, Services oder BroadcastReceivers) haben, ist dies in Ordnung.

Proguard verschleiert die Namen von Komponenten nicht.

Und wenn Sie die Klassen verwenden, die als

definiert sind %Vor%

ALSO kann ihr Name nicht geändert werden, wegen der Option keep .

Versuchen Sie, -keep public class * { public protected *; } line

zu entfernen     
Pankaj Kumar 11.06.2013, 09:06
quelle
2

Einige Zeit Klassennamen Verschleierung funktionieren nicht wegen "Butterknife" Fügen Sie die Regeln in Ihrer Proguard-Datei hinzu.

%Vor%

HINWEIS: Verwenden Sie die obigen Regeln nur, wenn Sie "Buttermesser" verwenden.

    
Nilesh Rathore 23.04.2017 21:55
quelle
1

Butterknifes alte Anweisungen definierten Code für Proguard verursacht dieses Problem, wenn Sie Buttermesser und eine ältere Version wie Version 7 verwenden, stellen Sie sicher, dass Sie diese Zeile nicht in Ihren proguared Regeln haben

%Vor%

Dies bewirkt, dass alle Klassennamen nicht verschleiert werden.

Verwenden Sie unter Config für Butterknife, ist besser und zukunftssicher im Vergleich zu einem anderen Vorschlag.

%Vor%     
Ankush Chugh 27.11.2017 12:32
quelle

Tags und Links