I am trying to confuse a class with Proguard:
Before adding Parcelable, the class:
public class Foo{ private String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
Obfuscation result:
public class a { private String a; public String a() { return this.a; } public void a(String paramString) { this.a = paramString; } }
After adding an implementation to the parcelable class class
public class Foo implements Parcelable { private String value; private Foo(Parcel in) { value = in.readString(); } public Foo() { } public String getValue() { return value; } public void setValue(String value) { this.value = value; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(value); } public static final Parcelable.Creator<Foo> CREATOR = new Parcelable.Creator<Foo>() { public Foo createFromParcel(Parcel in) { return new Foo(in); } public Foo[] newArray(int size) { return new Foo[size]; } }; }
Obfuscated result
public class Foo implements Parcelable { public static final Parcelable.Creator CREATOR = new a(); private String a; public Foo() { } private Foo(Parcel paramParcel) { this.a = paramParcel.readString(); } public String a() { return this.a; } public void a(String paramString) { this.a = paramString; } public int describeContents() { return 0; } public void writeToParcel(Parcel paramParcel, int paramInt) { paramParcel.writeString(this.a); } } class a implements Parcelable.Creator { public Foo a(Parcel paramParcel) { return new Foo(paramParcel, null); } public Foo[] a(int paramInt) { return new Foo[paramInt]; } }
How to configure proguard to obfuscate the entire class (including name, parameters and methods), except for the partial part?
thanks
source share