Obfuscation Busy classes with proguard

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

+6
source share
1 answer

Try putting this in your proguard.cfg file:

  -keepclassmembers class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } 

This should save the parcelable part and confuse everything else.

+13
source

All Articles