proguard-rules.pro 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480
  1. -optimizationpasses 5 # 指定代码的压缩级别
  2. -dontwarn
  3. -dontusemixedcaseclassnames # 是否使用大小写混合
  4. -dontskipnonpubliclibraryclasses # 是否混淆第三方jar
  5. -dontpreverify # 混淆时是否做预校验
  6. -verbose # 混淆时是否记录日志
  7. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法
  8. -keep public class * extends android.app.Activity
  9. -keep public class * extends android.app.Application
  10. -keep public class * extends android.app.Service
  11. -keep public class * extends android.content.BroadcastReceiver
  12. -keep public class * extends android.content.ContentProvider
  13. -keep public class * extends android.app.backup.BackupAgentHelper
  14. -keep public class * extends android.preference.Preference
  15. -keep public class com.android.vending.licensing.ILicensingService
  16. # 保持 native 方法不被混淆
  17. -keepclasseswithmembernames class * {
  18. native <methods>;
  19. }
  20. -keepclasseswithmembers class * {
  21. public <init>(android.content.Context, android.util.AttributeSet);
  22. }
  23. # 保持自定义控件类不被混淆
  24. -keepclasseswithmembers class * {
  25. public <init>(android.content.Context, android.util.AttributeSet, int);
  26. }
  27. # 保持自定义控件类不被混淆
  28. -keepclassmembers class * extends android.app.Activity {
  29. public void *(android.view.View);
  30. }
  31. # 保持枚举 enum 类不被混淆
  32. -keepclassmembers enum * {
  33. public static **[] values();
  34. public static ** valueOf(java.lang.String);
  35. }
  36. # 保持 Parcelable 不被混淆
  37. -keep class * implements android.os.Parcelable {
  38. public static final android.os.Parcelable$Creator *;
  39. }
  40. # 保持自己定义的类不被混淆
  41. -keep class MyClass
  42. #如果有引用v4包可以添加下面这行
  43. -keep class android.support.v4.** { *; }
  44. -keep public class * extends android.support.v4.**
  45. -keep public class * extends android.app.Fragment
  46. #如果引用了v4或者v7包,可以忽略警告,因为用不到android.support
  47. -dontwarn android.support.**
  48. #保持自定义组件不被混淆
  49. -keep public class * extends android.view.View {
  50. public <init>(android.content.Context);
  51. public <init>(android.content.Context, android.util.AttributeSet);
  52. public <init>(android.content.Context, android.util.AttributeSet, int);
  53. public void set*(...);
  54. }
  55. #保持 Serializable 不被混淆
  56. -keepnames class * implements java.io.Serializable
  57. #保持 Serializable 不被混淆并且enum 类也不被混淆
  58. -keepclassmembers class * implements java.io.Serializable {
  59. static final long serialVersionUID;
  60. private static final java.io.ObjectStreamField[] serialPersistentFields;
  61. private void writeObject(java.io.ObjectOutputStream);
  62. private void readObject(java.io.ObjectInputStream);
  63. java.lang.Object writeReplace();
  64. java.lang.Object readResolve();
  65. }
  66. #保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可
  67. -keepclassmembers enum * {
  68. public static **[] values();
  69. public static ** valueOf(java.lang.String);
  70. }
  71. -keepclassmembers class * {
  72. public void *ButtonClicked(android.view.View);
  73. }
  74. #不混淆资源类
  75. -keepclassmembers class **.R$* {
  76. public static <fields>;
  77. }
  78. #xUtils(保持注解,及使用注解的Activity不被混淆,不然会影响Activity中你使用注解相关的代码无法使用)
  79. -keep class * extends java.lang.annotation.Annotation {*;}
  80. -keep class com.jixin.im.activity.** {*;}
  81. # 以libaray的形式引用的图片加载框架,不想混淆(注意,此处不是jar包形式,想混淆去掉"#")
  82. -keep class org.doubango.ngn.events.** { *; }
  83. -keep class org.doubango.ngn.events.**
  84. -keep class org.doubango.ngn.media.** { *; }
  85. -keep class org.doubango.ngn.media.**
  86. -keep class org.doubango.ngn.model.** { *; }
  87. -keep class org.doubango.ngn.model.**
  88. -keep class org.doubango.ngn.services.** { *; }
  89. -keep class org.doubango.ngn.services.**
  90. -keep class org.doubango.ngn.sip.** { *; }
  91. -keep class org.doubango.ngn.sip.**
  92. -keep class org.doubango.ngn.utils.** { *; }
  93. -keep class org.doubango.ngn.utils.**
  94. -keep class org.doubango.ngn.** { *; }
  95. -keep class org.doubango.ngn.**
  96. -keep class org.doubango.tinyWRAP.** { *; }
  97. -keep class org.doubango.tinyWRAP.**
  98. -keep class de.greenrobot.event.** { *; }
  99. -keep class de.greenrobot.event.**
  100. -keep class de.greenrobot.event.util.** { *; }
  101. -keep class de.greenrobot.event.util.**
  102. -keep class org.jivesoftware.smack.initializer**
  103. -keep class org.jivesoftware.smack.**
  104. -keep class org.jivesoftware.smackx.**
  105. -keep class org.jivesoftware.smackx.**{*;}
  106. -keep class org.jivesoftware.smack.compression.**
  107. #-keep class com.shiku.job.push.utils.GsonUtil
  108. -keepattributes EnclosingMethod
  109. -keep class org.jivesoftware.smack.initializer.** { *; }
  110. -keep class org.jivesoftware.smack.** { *; }
  111. -keep class com.github.siyamed.shapeimageview.**
  112. -dontwarn com.github.siyamed.shapeimageview.**
  113. -keep class org.kxml2.io.**
  114. -keep class org.kxml2.io.KXmlParser
  115. -dontwarn org.kxml2.io.KXmlParser
  116. -keep class org.kxml2.io.**{*;}
  117. -keep class com.github.siyamed.shapeimageview.**{*;}
  118. # ormlite
  119. -keep class com.j256.**
  120. -keepclassmembers class com.j256.** { *; }
  121. -keep enum com.j256.**
  122. -keepclassmembers enum com.j256.** { *; }
  123. -keep interface com.j256.**
  124. -keepclassmembers interface com.j256.** { *; }
  125. ###-------- Gson 相关的混淆配置--------
  126. -keepattributes Signature
  127. -keepattributes *Annotation*
  128. -keep class sun.misc.Unsafe { *; }
  129. -keep class com.alipay.android.app.IAlixPay{*;}
  130. -keep class com.alipay.android.app.IAlixPay$Stub{*;}
  131. -keep class com.alipay.android.app.IRemoteServiceCallback{*;}
  132. -keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
  133. -keep class com.alipay.sdk.app.PayTask{ public *;}
  134. -keep class com.alipay.sdk.app.AuthTask{ public *;}
  135. -keepclassmembers class ** {
  136. public void onEvent*(**);
  137. void onEvent*(**);
  138. }
  139. ###-------- pulltorefresh 相关的混淆配置---------
  140. -dontwarn com.handmark.pulltorefresh.library.**
  141. -keep class com.handmark.pulltorefresh.library.** { *;}
  142. -dontwarn com.handmark.pulltorefresh.library.extras.**
  143. -keep class com.handmark.pulltorefresh.library.extras.** { *;}
  144. -dontwarn com.handmark.pulltorefresh.library.internal.**
  145. -keep class com.handmark.pulltorefresh.library.internal.** { *;}
  146. ###-------- ShareSDK 相关的混淆配置---------
  147. -keep class cn.sharesdk.**{*;}
  148. -keep class com.sina.**{*;}
  149. -keep class **.R$* {*;}
  150. -keep class **.R{*;}
  151. -keep class com.mob.**{*;}
  152. -keep class m.framework.**{*;}
  153. -dontwarn cn.sharesdk.**
  154. -dontwarn com.sina.**
  155. -dontwarn com.mob.**
  156. -dontwarn **.R$*
  157. ###--------------umeng 社会化分享相关的混淆配置-----------
  158. -dontshrink
  159. -dontoptimize
  160. -dontwarn com.google.android.maps.**
  161. -dontwarn android.webkit.WebView
  162. -dontwarn com.umeng.**
  163. -dontwarn com.tencent.weibo.sdk.**
  164. -dontwarn com.facebook.**
  165. -dontwarn java.lang.invoke**
  166. -dontwarn org.apache.lang.**
  167. -dontwarn org.apache.commons.**
  168. -dontwarn com.nhaarman.**
  169. -dontwarn se.emilsjolander.**
  170. -keep enum com.facebook.**
  171. -keepattributes Exceptions,InnerClasses,Signature
  172. -keepattributes *Annotation*
  173. -keepattributes SourceFile,LineNumberTable
  174. -keep public interface com.facebook.**
  175. -keep public interface com.tencent.**
  176. -keep public interface com.umeng.socialize.**
  177. -keep public interface com.umeng.socialize.sensor.**
  178. -keep public interface com.umeng.scrshot.**
  179. -keep public class com.umeng.socialize.* {*;}
  180. -keep public class javax.**
  181. -keep public class android.webkit.**
  182. -keep class com.facebook.**
  183. -keep class com.facebook.** { *; }
  184. -keep class com.umeng.scrshot.**
  185. -keep public class com.tencent.** {*;}
  186. -keep class com.umeng.socialize.sensor.**
  187. -keep class com.umeng.socialize.handler.**
  188. -keep class com.umeng.socialize.handler.*
  189. -keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
  190. -keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
  191. -keep class im.yixin.sdk.api.YXMessage {*;}
  192. -keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}
  193. -dontwarn twitter4j.**
  194. -keep class twitter4j.** { *; }
  195. -keep class com.tencent.** {*;}
  196. -dontwarn com.tencent.**
  197. -keep public class com.umeng.soexample.R$*{
  198. public static final int *;
  199. }
  200. -keep public class com.umeng.soexample.R$*{
  201. public static final int *;
  202. }
  203. -keep class com.tencent.open.TDialog$*
  204. -keep class com.tencent.open.TDialog$* {*;}
  205. -keep class com.tencent.open.PKDialog
  206. -keep class com.tencent.open.PKDialog {*;}
  207. -keep class com.tencent.open.PKDialog$*
  208. -keep class com.tencent.open.PKDialog$* {*;}
  209. -keep class com.sina.** {*;}
  210. -dontwarn com.sina.**
  211. -keep class com.alipay.share.sdk.** {
  212. *;
  213. }
  214. ###--------------umeng 统计相关的混淆配置-----------
  215. -keepclassmembers class * {
  216. public <init> (org.json.JSONObject);
  217. }
  218. -keep public class **.R$*{
  219. public static final int *;
  220. }
  221. -keepclassmembers enum * {
  222. public static **[] values();
  223. public static ** valueOf(java.lang.String);
  224. }
  225. ###-------Parcelable------------
  226. -keepnames class * implements android.os.Parcelable {
  227. public static final ** CREATOR;
  228. }
  229. ###--------百度地图----------
  230. #-libraryjars libs/BaiduLBS_Android.jar
  231. -keep class com.baidu.** { *; }
  232. -keep class vi.com.gdi.bgl.android.**{*;}
  233. -keep class com.baidu.location.** { *; }
  234. -keep class com.linkedin.** { *; }
  235. -keep class mapsdkvi.com.** {*;}
  236. -keepattributes Signature
  237. ###--------百度推送----------
  238. #-libraryjars libs/pushservice-6.1.1.21.jar
  239. -dontwarn com.baidu.**
  240. -keep class com.baidu.**{*; }
  241. ###--------eventbus
  242. -keepattributes *Annotation*
  243. -keepclassmembers class ** {
  244. @org.greenrobot.eventbus.Subscribe <methods>;
  245. }
  246. -keep enum org.greenrobot.eventbus.ThreadMode { *; }
  247. # Only required if you use AsyncExecutor
  248. -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
  249. <init>(java.lang.Throwable);
  250. }
  251. ###-----------okhttp
  252. -dontwarn com.squareup.okhttp.**
  253. -dontwarn org.xbill.DNS.spi.**
  254. -dontwarn org.simpleframework.xml.stream.**
  255. -dontwarn demo.**
  256. -dontwarn com.alibaba.fastjson.util.**
  257. -dontwarn com.alibaba.fastjson.support.spring.**
  258. -dontwarn com.alibaba.fastjson.serializer.**
  259. -keep class com.squareup.okhttp.** { }
  260. -dontwarn okio.*
  261. -keep class com.squareup.okhttp3.** {
  262. *;
  263. }
  264. ###------------twitter
  265. -dontwarn com.google.appengine.api.urlfetch.**
  266. -dontwarn rx.**
  267. -dontwarn retrofit.**
  268. -keepattributes Signature
  269. -keepattributes Exceptions
  270. -keepattributes *Annotation*
  271. -keep class com.squareup.okhttp.** { *; }
  272. -keep interface com.squareup.okhttp.** { *; }
  273. -keep class retrofit.** { *; }
  274. -keepclasseswithmembers class * { @retrofit.http.* <methods>; }
  275. -ignorewarnings
  276. #部分library不混淆
  277. -keep class org.wysaid.** {*;}
  278. -keep class com.dubu.livecamera.** {*;}
  279. -keep class com.coremedia.** {*;}
  280. -keep class com.github.** {*;}
  281. -keep class com.googlecode.** {*;}
  282. -keep class com.seu.** {*;}
  283. -keep class net.ossrs.** {*;}
  284. -keep class com.dou361.** {*;}
  285. -keep class tv.** {*;}
  286. # bean类,主要用于json to bean, 不能混淆,
  287. -keep class com.xuan.xuanhttplibrary.okhttp.result.** { *; }
  288. -keep class com.jixin.im.util.SkinUtils.Skin { *; }
  289. -keep class com.jixin.im.socket.** { *; }
  290. -keep class com.jixin.im.bean.** { *; }
  291. -keep class com.jixin.im.ui.live.bean.** { *; }
  292. -keep class com.jixin.im.ui.mucfile.bean.** { *; }
  293. -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
  294. -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
  295. -keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
  296. # Do not strip any method/class that is annotated with @DoNotStrip
  297. -keep @com.facebook.proguard.annotations.DoNotStrip class *
  298. -keep @com.facebook.common.internal.DoNotStrip class *
  299. -keepclassmembers class * {
  300. @com.facebook.proguard.annotations.DoNotStrip *;
  301. @com.facebook.common.internal.DoNotStrip *;
  302. }
  303. -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
  304. void set*(***);
  305. *** get*();
  306. }
  307. -keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
  308. -keep class * extends com.facebook.react.bridge.NativeModule { *; }
  309. -keepclassmembers,includedescriptorclasses class * { native <methods>; }
  310. -keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
  311. -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
  312. -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }
  313. -dontwarn com.facebook.react.**
  314. # TextLayoutBuilder uses a non-public Android constructor within StaticLayout.
  315. # See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details.
  316. -dontwarn android.text.StaticLayout
  317. # okhttp
  318. -keepattributes Signature
  319. -keepattributes *Annotation*
  320. -keep class okhttp3.** { *; }
  321. -keep interface okhttp3.** { *; }
  322. -dontwarn okhttp3.**
  323. # okio
  324. -keep class sun.misc.Unsafe { *; }
  325. -dontwarn java.nio.file.*
  326. -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
  327. -dontwarn okio.**
  328. # WebRTC
  329. -keep class org.webrtc.** { *; }
  330. -dontwarn org.chromium.build.BuildHooksAndroid
  331. # Jisti Meet SDK
  332. -keep class org.jitsi.meet.sdk.** { *; }
  333. # 新jitsi依赖的一个东西,
  334. -keep class com.horcrux.** { *; }
  335. # jpush, https://docs.jiguang.cn/jpush/client/Android/android_guide/
  336. -dontoptimize
  337. -dontpreverify
  338. -dontwarn cn.jpush.**
  339. -keep class cn.jpush.** { *; }
  340. -keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; }
  341. -dontwarn cn.jiguang.**
  342. -keep class cn.jiguang.** { *; }
  343. # 华为推送,https://developer.huawei.com/consumer/cn/service/hms/catalog/huaweipush_agent.html?page=hmssdk_huaweipush_devprepare_agent#6%20%E9%85%8D%E7%BD%AE%E6%B7%B7%E6%B7%86%E8%84%9A%E6%9C%AC
  344. -keepattributes *Annotation*
  345. -keepattributes Exceptions
  346. -keepattributes InnerClasses
  347. -keepattributes Signature
  348. -keepattributes SourceFile,LineNumberTable
  349. -keep class com.hianalytics.android.**{*;}
  350. -keep class com.huawei.updatesdk.**{*;}
  351. -keep class com.huawei.hms.**{*;}
  352. -keep class com.huawei.android.hms.agent.**{*;}
  353. # mipush, https://dev.mi.com/console/doc/detail?pId=41#_3_3
  354. -keep public class * extends com.xiaomi.mipush.sdk.PushMessageReceiver {*;}
  355. #可以防止一个误报的 warning 导致无法成功编译,如果编译使用的 Android 版本是 23。
  356. -dontwarn com.xiaomi.push.**
  357. #滤镜库, 没有提供混淆方式
  358. -keep class com.xiaojigou.**{*;}
  359. -keep class org.bouncycastle.**{*;}
  360. # 支付宝,https://docs.open.alipay.com/54/104509/
  361. -keep class com.jixin.im.ui.me.redpacket.alipay.** { *; }
  362. -keep class com.alipay.android.app.IAlixPay{*;}
  363. -keep class com.alipay.android.app.IAlixPay$Stub{*;}
  364. -keep class com.alipay.android.app.IRemoteServiceCallback{*;}
  365. -keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
  366. -keep class com.alipay.sdk.app.PayTask{ public *;}
  367. -keep class com.alipay.sdk.app.AuthTask{ public *;}
  368. -keep class com.alipay.sdk.app.H5PayCallback {
  369. <fields>;
  370. <methods>;
  371. }
  372. -keep class com.alipay.android.phone.mrpc.core.** { *; }
  373. -keep class com.alipay.apmobilesecuritysdk.** { *; }
  374. -keep class com.alipay.mobile.framework.service.annotation.** { *; }
  375. -keep class com.alipay.mobilesecuritysdk.face.** { *; }
  376. -keep class com.alipay.tscenter.biz.rpc.** { *; }
  377. -keep class org.json.alipay.** { *; }
  378. -keep class com.alipay.tscenter.** { *; }
  379. -keep class com.ta.utdid2.** { *;}
  380. -keep class com.ut.device.** { *;}
  381. # 魅族推送,https://github.com/MEIZUPUSH/PushDemo/blob/3367bbc290de17487fdeba66e44c56cacaa6141f/PushdemoInternal/artifactory-proguard-rules.pro#L40-L39
  382. -keep public class * extends com.google.protobuf.GeneratedMessage { *; }
  383. -keep class com.google.protobuf.** { *; }
  384. -keep public class * extends com.google.protobuf.** { *; }
  385. -keep class com.meizu.cloud.pushsdk.** { *; }
  386. -dontwarn com.meizu.cloud.pushsdk.**
  387. -keep class com.meizu.nebula.** { *; }
  388. -dontwarn com.meizu.nebula.**
  389. -keep class com.meizu.push.** { *; }
  390. -dontwarn com.meizu.push.**
  391. # VIVO推送,
  392. -dontwarn com.vivo.push.**
  393. -keep class com.vivo.push.**{*; }
  394. -keep class com.vivo.vms.**{*; }
  395. -keep class * extends com.vivo.push.sdk.OpenClientPushMessageReceiver {*;}
  396. # Oppo推送,看起来是多余的,https://open.oppomobile.com/wiki/doc#id=10196
  397. -keep public class * extends android.app.Service
  398. # slf4j, 有出现过slf4j混淆导致slf4j-android崩溃的情况,
  399. -keep class org.slf4j.**{*; }
  400. # firebase,
  401. -keep class com.google.firebase.**
  402. # androidx, https://stackoverflow.com/a/56055731
  403. -dontwarn androidx.**
  404. -keep class androidx.** { *; }
  405. -keep interface androidx.** { *; }
  406. -keep class androidx.annotation.Keep
  407. -keep @androidx.annotation.Keep class * {*;}
  408. -keepclasseswithmembers class * {
  409. @androidx.annotation.Keep <methods>;
  410. }
  411. -keepclasseswithmembers class * {
  412. @androidx.annotation.Keep <fields>;
  413. }
  414. -keepclasseswithmembers class * {
  415. @androidx.annotation.Keep <init>(...);
  416. }
  417. # pinyin4j, http://youmu178.com/android-development/proguard-sample.html
  418. -dontwarn net.soureceforge.pinyin4j.**
  419. -dontwarn demo.**
  420. -keep class net.sourceforge.pinyin4j.** { *;}
  421. -keep class demo.** { *;}
  422. # QQ登录,https://wiki.connect.qq.com/android%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98
  423. -keep class * extends android.app.Dialog