proguard-rules.pro 16 KB

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