Einstellung ProGuard zu verschleiern lokale Variablen und Argumente
Ich kann nicht scheinen, um die Einstellung zu ermitteln, das wird verschleiern die lokalen Variablen innerhalb von Methoden einer Klasse, die ist verschleiert.
Hier ein Auszug aus einer der Klassen, die ich habe, dekompiliert, mit einigen offensichtlichen Fehlstellen. Ideal, um die Argumente für die Methoden und die lokalen Variablen, wäre verborgenen zu.
public class eA extends gu
{
private final gt a;
private final gt b;
public static boolean a(fy game)
{
boolean playerDead = game.k().j() <= 0;
boolean enemyDead = game.g().a().size <= 0;
boolean wavesRemain = game.r() > 0;
return (playerDead) || ((!wavesRemain) && (enemyDead));
}
public eA(gt gameState, gt boardState)
{
this.b = gameState;
this.a = boardState;
}
public void a()
{
n();
boolean playerDead = this.f.k().j() <= 0;
boolean enemyDead = this.f.g().a().size <= 0;
if (a(this.f)) {
if (enemyDead) {
this.f.a(new eG(1));
this.e.a(new eW());
} else if (playerDead) {
this.f.a(new eF());
Bearbeiten, ich bin auch der Befestigung der proguard config
-dontskipnonpubliclibraryclassmembers
-dontshrink
-dontoptimize
-printmapping build/libs/output/obfuscation.map
-keepattributes
-adaptclassstrings
-dontnote
-dontwarn
# Keep Android classes
-keep class ** extends android.** {
<fields>;
<methods>;
}
# Keep serializable classes & fields
-keep class ** extends java.io.Serializable {
<fields>;
}
# Keep - Applications. Keep all application classes, along with their 'main'
# methods.
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}
# Also keep - Enumerations. Keep the special static methods that are required in
# enumeration classes.
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# Keep names - Native method names. Keep all native class/method names.
-keepclasseswithmembers,allowshrinking class * {
native <methods>;
}
- Können Sie auch posten Sie Ihre proguard config-Datei
- Durchgeführt, Dank für das schauen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie entfernen oder verfeinern Sie die option
-keepattributes
. Es impliziert, halten die Attribute mit lokaler Variablen-Namen:Könnte man zumindest ausschließen, die
Idealerweise würden Sie nur die Erhaltung der Attribute sind unbedingt erforderlich.
Sehen die ProGuard Handbuch > Verwendung > -keepattributes
Variable names not being obfuscated
in diesem link: proguard.sourceforge.net/manual/... . was Sie sagte, war wahr für meinen Fall (d.h. decompiler kam mit richtigen Namen)