proguard-rules.pro 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. # Add project specific ProGuard rules here.
  2. # You can control the set of applied configuration files using the
  3. # proguardFiles setting in build.gradle.
  4. #
  5. # For more details, see
  6. # http://developer.android.com/guide/developing/tools/proguard.html
  7. # If your project uses WebView with JS, uncomment the following
  8. # and specify the fully qualified class name to the JavaScript interface
  9. # class:
  10. #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
  11. # public *;
  12. #}
  13. # Uncomment this to preserve the line number information for
  14. # debugging stack traces.
  15. #-keepattributes SourceFile,LineNumberTable
  16. # If you keep the line number information, uncomment this to
  17. # hide the original source file name.
  18. #-renamesourcefileattribute SourceFile
  19. -keepattributes Exceptions,InnerClasses,*Annotation*,Signature,EnclosingMethod
  20. -dontshrink
  21. -dontoptimize
  22. -dontpreverify
  23. -dontnote
  24. -ignorewarnings
  25. -keepclassmembers enum * {
  26. public static <methods>;
  27. }
  28. # 避免混淆Annotation、内部类、泛型、匿名类
  29. -keepattributes *Annotation*,InnerClasses,Signature,EnclosingMethod
  30. -keepnames class * implements java.io.Serializable
  31. -keepclassmembers class * implements java.io.Serializable {
  32. static final long serialVersionUID;
  33. private static final java.io.ObjectStreamField[] serialPersistentFields;
  34. !static !transient <fields>;
  35. private void writeObject(java.io.ObjectOutputStream);
  36. private void readObject(java.io.ObjectInputStream);
  37. java.lang.Object writeReplace();
  38. java.lang.Object readResolve();
  39. }
  40. -keep class * extends android.os.Parcelable {
  41. public static final android.os.Parcelable$Creator *;
  42. }
  43. -keep,allowshrinking class * extends dji.publics.DJIUI.** {
  44. public <methods>;
  45. }
  46. #加固后的AAR,其内容无法被混淆工具识别,所以MSDK外部依赖的类,必须被Keep。
  47. -keep class net.sqlcipher.** { *; }
  48. -keep class net.sqlcipher.database.* { *; }
  49. -keep class dji.** { *; }
  50. -keep class com.dji.** { *; }
  51. -keep class djimrtc.** { *; }
  52. -keep class com.google.** { *; }
  53. -keep class org.bouncycastle.** { *; }
  54. -keep class org.** { *; }
  55. -keep class com.squareup.wire.** { *; }
  56. -keep class sun.misc.Unsafe { *; }
  57. -keep class com.secneo.** {*;}
  58. -keep class io.reactivex.**{*;}
  59. -keep class okhttp3.**{*;}
  60. -keep class okio.**{*;}
  61. -keep class org.bouncycastle.**{*;}
  62. -keep class sun.**{*;}
  63. -keep class java.**{*;}
  64. -keep class com.amap.api.**{*;}
  65. -keep class com.here.**{*;}
  66. -keep class com.mapbox.**{*;}
  67. -keep class retrofit2.**{*;}
  68. -keepclasseswithmembers,allowshrinking class * {
  69. native <methods>;
  70. }
  71. -keep class * implements com.google.gson.TypeAdapterFactory
  72. -keep class * implements com.google.gson.JsonSerializer
  73. -keep class * implements com.google.gson.JsonDeserializer
  74. -keep class androidx.appcompat.widget.SearchView { *; }
  75. -keepclassmembers class * extends android.app.Service
  76. -keepclassmembers public class * extends android.view.View {
  77. void set*(***);
  78. *** get*();
  79. }
  80. -keepclassmembers class * extends android.app.Activity {
  81. public void *(android.view.View);
  82. }
  83. -keep class kotlin.** { *; }
  84. -keep class androidx.** { *; }
  85. -keep class android.** { *; }
  86. -keep class com.android.** { *; }
  87. -keep class android.media.** { *; }
  88. -keep class okio.** { *; }
  89. -keep class com.lmax.disruptor.** {
  90. *;
  91. }
  92. -dontwarn com.mapbox.services.android.location.LostLocationEngine
  93. -dontwarn com.mapbox.services.android.location.MockLocationEngine
  94. -keepclassmembers class * implements android.arch.lifecycle.LifecycleObserver {
  95. <init>(...);
  96. }
  97. # ViewModel's empty constructor is considered to be unused by proguard
  98. -keepclassmembers class * extends android.arch.lifecycle.ViewModel {
  99. <init>(...);
  100. }
  101. # keep Lifecycle State and Event enums values
  102. -keepclassmembers class android.arch.lifecycle.Lifecycle$State { *; }
  103. -keepclassmembers class android.arch.lifecycle.Lifecycle$Event { *; }
  104. # keep methods annotated with @OnLifecycleEvent even if they seem to be unused
  105. # (Mostly for LiveData.LifecycleBoundObserver.onStateChange(), but who knows)
  106. -keepclassmembers class * {
  107. @android.arch.lifecycle.OnLifecycleEvent *;
  108. }
  109. -keepclassmembers class * implements android.arch.lifecycle.LifecycleObserver {
  110. <init>(...);
  111. }
  112. -keep class * implements android.arch.lifecycle.LifecycleObserver {
  113. <init>(...);
  114. }
  115. -keepclassmembers class android.arch.** { *; }
  116. -keep class android.arch.** { *; }
  117. -dontwarn android.arch.**
  118. #<------------ utmiss config start------------>
  119. -keep class dji.sdk.utmiss.** { *; }
  120. -keep class utmisslib.** { *; }
  121. #<------------ utmiss config end------------>
  122. # 地图相关
  123. -keep class com.dji.mapkit.amap.provider.AMapProvider {*;}
  124. -keep class com.dji.mapkit.maplibre.provider.MapLibreProvider {*;}
  125. -keep class com.dji.mapkit.core.** {*;}
  126. -keep class com.autonavi.** {*;}
  127. ## keep 千寻相关接口
  128. -keep class com.qx.wz.dj.rtcm.** {*;}