代码之家  ›  专栏  ›  技术社区  ›  propoLis

Proguard所有包文件和类

  •  1
  • propoLis  · 技术社区  · 9 月前

    我的proguard文件:

    -keepattributes SourceFile,LineNumberTable,InnerClasses,*Annotation*,Signature,EnclosingMethod
    
    -keep class com.android.android.R$raw { *; }
    -dontwarn com.google.android.material.**
    -keep class com.google.android.material.** { *; }
    
    -dontwarn androidx.**
    -keep class androidx.** { *; }
    -keep interface androidx.* { *; }
    
    -keep class androidx.window.** { *; }
    
    -keep public class android.support.v7.widget.** { *; }
    -keep public class android.support.v7.internal.widget.** { *; }
    

    我需要像这样模糊所有类: a.b.c.d() 我的先辈是这样的: com.android.android.util.MyFragment.d()

    如何保护所有类和函数?

    1 回复  |  直到 9 月前
        1
  •  1
  •   JustSightseeing    9 月前

    我设法找到了 -classobfuscationdictionary 这可能有助于您实现这一结果,但它需要一个字典文件,因此,如果您要创建一个简单的文本文件(让我们将其命名为dictionary.txt)并在其中放置一个命名方案,如下所示:

    a
    b
    c
    d
    

    然后在您的ProGuard中,您可以使用

    -classobfuscationdictionary dictionary.txt
    

    (还要确保在上述步骤中文件的路径是正确的,如果文件不在ProGuard所在的同一目录中,则路径将不同)

    aa另一个旁注:

    ProGuard模糊处理不能保证类名完全遵循格式。相反,它确保混淆的名称是有效和唯一的标识符。实际格式取决于字典的大小和类层次结构的复杂性