In purpose of learning how ProGuard works I have created tiny Android example, added some jar to it, wrote couple lines of code, enabled ProGuard and so on.
my ProGuard options are next
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
-optimizationpasses 5
-optimizations !class/unboxing/enum
So after reverse engeneering of my APK names to all Object's methods, such as toString(), hashCode(), equals() remains the same. Apart from Object's methods, names of Externalizable methods remains too
So have you any idea why it happens, could it be fixed at all?
ProGuard cannot obfuscate methods that do not originate in your classes (where "your" includes JAR/AARs that you compile in).
Anything you override from framework-supplied classes needs to stay intact. Otherwise, the framework cannot call those methods, since ProGuard is not obfuscating the firmware-installed framework classes on ~1.5 billion Android devices.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With