Ich baue ein Android-Framework und ich muss das Glas verschleiern und verkleinern, um es an die Benutzer zu versenden.Wie verschleiert man alles außer öffentlichen Methodennamen und -attributen mit Proguard?
Ich bin mit dem proguard Tool im Android SDK enthält, und ich habe die folgenden Anforderungen für die Ausgabe jar:
- halten alle Klassen in dem Eingang Glas eingeschlossen, aber sie verschleiern.
- Sie die Klassennamen der Klassen in der `AndroidManifest.xml genannt nicht verschleiern
- Sie den Klassennamen und den öffentlichen Methodennamen nicht verschleiern/Attribute für die Klasse, die eine Schnittstelle für den Benutzer verwendet wird, jedoch hat Mach es für ihren Inhalt.
Dazu verwende ich die folgende Konfiguration:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-keep, allowobfuscation class com.company.*
-keepclassmembers, allowobfuscation class * {
*;
}
-keepnames class com.company.MyClass { *; }
-keepclassmembernames class com.company.MyClass {
public <methods>;
public <fields>;
#!private *; also tried this but it didn't work
}
jedoch Namen meiner privaten Klassen und Attribute haben immer noch den gleichen Namen, obwohl der Inhalt verschleiert wird. Habe ich etwas in meinen Wildcards vermisst?
Sie die '-keepnames' Option nutzen zu können muss wirklich? Ich denke, es ist derjenige, der deine Verschleierung inkorrekt macht. –