android - 混淆器 :- Obfuscating folder names

标签 android proguard obfuscation

我想在发布 apk 后混淆我项目的所有文件夹名称。

我看过很多相关问题,但都没有用。 我试过 -flattenpackagehierarchy 'myobfuscated' 但它会创建另一个 myobfuscate 文件,而不是重命名所有文件夹和类。我还使用了 -repackageclasses '' 但找不到解决方案。请帮助我。

proguard.pro 文件看起来像:-

-ignorewarnings
-dontpreverify
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application  
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider

-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
 }

 -keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
  }

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

  -keepclassmembers class **.R$* {
public static <fields>;
  }

 -keep public class * extends android.support.v4.app.Fragment
 -keep public class * extends android.app.Fragment

 -keepnames class * implements java.io.Serializable 

 -keepclassmembers class * implements java.io.Serializable {
  static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
!private <fields>;
!private <methods>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
   }

    -assumenosideeffects class android.util.Log {
public static *** e(...);
public static *** w(...);
public static *** wtf(...);
public static *** d(...);
public static *** v(...);
  }

 -keepclasseswithmembernames class * {
native <methods>;
 }
   -keepclassmembers class * {
public void *onClick(android.view.View);
       }

  -keep class org.xmlpull.v1.** { *;}
   -dontwarn org.xmlpull.v1.**

 -keep public class * implements com.bumptech.glide.module.GlideModule
  -keep public class * extends com.bumptech.glide.module.AppGlideModule
   -keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
   **[] $VALUES;
   public *;
   }

-keepclassmembers class javax.xml.bind.DatatypeConverter { *; }
  -keepclasseswithmembers class DatatypeConverter {
  public static *;
  }
  -keep class javax.xml.** { *; }
  -keep interface javax.xml.** { *; }
  -keep class org.apache.xerces.** { *; }
  -keep interface org.apache.xerces.** { *; }

I want to obfusticate these classes with folder

最佳答案

很可能您的其他 -keep 属性正在阻止包名称被混淆。

为了验证,评论-keep规则并运行proguard。

谢谢

关于android - 混淆器 :- Obfuscating folder names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57524685/

相关文章:

android - 使用 Proguard 对逻辑操作进行 VerifyError

android - proguard 之后 parse.com 不工作

mysql - 使用数学函数混淆自动增量 DB id

android - 如何检测 Android 设备(例如 Nexus Galaxy)上的 USB 大容量存储支持?

android - 以编程方式从 Activity/服务/接收器更新小部件

android - 混淆器警告 : can't write resource (Duplicate zip entry)

javascript - 混淆视听值得吗?

javascript 和 silverlight 混淆!

Android 监听浏览器历史最后一页

android - 设计带有圆角和内阴影的 EditText