1.修复漏洞:BaseDao 中的 SQL 注入
2.移除ACCESS_MOCK_LOCATION 权限 3.MMKV启用AES-256加密保存
This commit is contained in:
177
app/proguard-rules.pro
vendored
177
app/proguard-rules.pro
vendored
@@ -23,12 +23,175 @@
|
||||
|
||||
|
||||
#禁用所有优化规则,查看混淆后 APK是否可以正常工作
|
||||
-dontoptimize
|
||||
#-dontoptimize
|
||||
|
||||
# Please add these rules to your existing keep rules in order to suppress warnings.
|
||||
# This is generated automatically by the Android Gradle plugin.
|
||||
-dontwarn com.baidu.mapsdkplatform.comapi.util.SysOSAPI
|
||||
-dontwarn com.daimajia.easing.Glider
|
||||
-dontwarn com.daimajia.easing.Skill
|
||||
# 基础混淆配置
|
||||
-optimizationpasses 5
|
||||
-dontusemixedcaseclassnames
|
||||
-dontskipnonpubliclibraryclasses
|
||||
-dontskipnonpubliclibraryclassmembers
|
||||
-dontpreverify
|
||||
-verbose
|
||||
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
|
||||
|
||||
-keep class android.*
|
||||
# 保留注解、泛型、异常信息
|
||||
-keepattributes *Annotation*,Signature,Exception
|
||||
-keepattributes InnerClasses,EnclosingMethod
|
||||
|
||||
# Android基础组件保护
|
||||
-keep public class * extends android.app.Activity
|
||||
-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.app.backup.BackupAgentHelper
|
||||
-keep public class * extends android.preference.Preference
|
||||
-keep public class com.android.vending.licensing.ILicensingService
|
||||
|
||||
# 保留Activity生命周期方法
|
||||
-keepclassmembers public class * extends android.app.Activity {
|
||||
public void *(android.view.View);
|
||||
public void on*(...);
|
||||
}
|
||||
|
||||
# 保留Service生命周期方法
|
||||
-keepclassmembers public class * extends android.app.Service {
|
||||
public void on*(...);
|
||||
}
|
||||
|
||||
# 保留BroadcastReceiver接收方法
|
||||
-keepclassmembers class * extends android.content.BroadcastReceiver {
|
||||
public void onReceive(android.content.Context, android.content.Intent);
|
||||
}
|
||||
|
||||
# 保留ContentProvider方法
|
||||
-keepclassmembers class * extends android.content.ContentProvider {
|
||||
public android.net.Uri insert(android.net.Uri, android.content.ContentValues);
|
||||
public int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
|
||||
public int delete(android.net.Uri, java.lang.String, java.lang.String[]);
|
||||
public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
|
||||
}
|
||||
|
||||
# 保留R文件
|
||||
-keep class **.R$* { *; }
|
||||
|
||||
# Parcelable和Serializable支持
|
||||
-keep class * implements android.os.Parcelable {
|
||||
public static final android.os.Parcelable$Creator *;
|
||||
}
|
||||
-keepclassmembers class * implements java.io.Serializable {
|
||||
static final long serialVersionUID;
|
||||
private static final java.io.ObjectStreamField[] serialPersistentFields;
|
||||
!static !transient <fields>;
|
||||
private void writeObject(java.io.ObjectOutputStream);
|
||||
private void readObject(java.io.ObjectInputStream);
|
||||
java.lang.Object writeReplace();
|
||||
java.lang.Object readResolve();
|
||||
}
|
||||
|
||||
# Kotlin特定规则
|
||||
-keep class kotlin.** { *; }
|
||||
-keep class kotlin.Metadata { *; }
|
||||
-dontwarn kotlin.**
|
||||
-keepclassmembers class **$WhenMappings {
|
||||
<fields>;
|
||||
}
|
||||
-keepclassmembers class kotlinx.coroutines.internal.MainCoroutineDispatcherFactory {
|
||||
public <init>();
|
||||
}
|
||||
-keepclassmembers class kotlinx.coroutines.CoroutineExceptionHandler {
|
||||
public <init>();
|
||||
}
|
||||
|
||||
# 数据类保护(根据项目实际数据类包名调整)
|
||||
-keep class com.abbidot.tracker.data.** { *; }
|
||||
-keep class com.abbidot.tracker.model.** { *; }
|
||||
|
||||
# ViewBinding支持
|
||||
-keep class com.abbidot.tracker.databinding.** { *; }
|
||||
|
||||
# Hilt依赖注入
|
||||
-keep class dagger.hilt.android.lifecycle.HiltViewModelFactory { *; }
|
||||
-keep class * extends dagger.hilt.android.lifecycle.HiltViewModel { *; }
|
||||
-keep @dagger.hilt.android.lifecycle.HiltViewModel class * { *; }
|
||||
-keep @dagger.hilt.android.AndroidEntryPoint class * { *; }
|
||||
-keep @dagger.Module class * { *; }
|
||||
-keep @dagger.hilt.EntryPoint class * { *; }
|
||||
|
||||
# Room数据库
|
||||
-keep class * extends androidx.room.RoomDatabase { *; }
|
||||
-keep @androidx.room.Entity class * { *; }
|
||||
-keep interface * extends androidx.room.Dao { *; }
|
||||
-keepclassmembers class * extends androidx.room.RoomDatabase {
|
||||
<methods>;
|
||||
}
|
||||
|
||||
# 第三方库规则
|
||||
|
||||
# Coil图片加载
|
||||
-keep class io.coil.** { *; }
|
||||
-dontwarn io.coil.**
|
||||
|
||||
# Lottie动画
|
||||
-keep class com.airbnb.lottie.** { *; }
|
||||
-dontwarn com.airbnb.lottie.**
|
||||
|
||||
# BaseRecyclerViewAdapterHelper
|
||||
-keep class com.chad.library.adapter.** { *; }
|
||||
-keep public class * extends com.chad.library.adapter.base.BaseQuickAdapter
|
||||
-keep public class * extends com.chad.library.adapter.base.BaseViewHolder
|
||||
|
||||
# Mapbox
|
||||
-keep class com.mapbox.** { *; }
|
||||
-dontwarn com.mapbox.**
|
||||
|
||||
# 百度地图
|
||||
-keep class com.baidu.** { *; }
|
||||
-keep class vi.com.gdi.bgl.android.** { *; }
|
||||
-dontwarn com.baidu.**
|
||||
|
||||
# 极光推送
|
||||
-keep class cn.jiguang.** { *; }
|
||||
-dontwarn cn.jiguang.**
|
||||
|
||||
# Stripe支付
|
||||
-keep class com.stripe.** { *; }
|
||||
-dontwarn com.stripe.**
|
||||
|
||||
# Braintree支付
|
||||
-keep class com.braintreepayments.** { *; }
|
||||
-dontwarn com.braintreepayments.**
|
||||
|
||||
# 微信SDK
|
||||
-keep class com.tencent.mm.opensdk.** { *; }
|
||||
-keep class com.tencent.wxop.** { *; }
|
||||
-keep class com.tencent.mm.sdk.** { *; }
|
||||
|
||||
# 支付宝SDK
|
||||
-keep class com.alipay.** { *; }
|
||||
-dontwarn com.alipay.**
|
||||
|
||||
# DFU升级库
|
||||
-keep class no.nordicsemi.android.** { *; }
|
||||
-dontwarn no.nordicsemi.android.**
|
||||
|
||||
# 测试相关
|
||||
-dontnote junit.framework.**
|
||||
-dontnote junit.runner.**
|
||||
-dontwarn android.test.**
|
||||
-dontwarn android.support.test.**
|
||||
-dontwarn org.junit.**
|
||||
|
||||
# 移除日志(发布版)
|
||||
-assumenosideeffects class android.util.Log {
|
||||
public static boolean isLoggable(java.lang.String, int);
|
||||
public static int v(...);
|
||||
public static int i(...);
|
||||
public static int w(...);
|
||||
public static int d(...);
|
||||
public static int e(...);
|
||||
}
|
||||
|
||||
# 混淆映射输出
|
||||
-printmapping proguardMapping.txt
|
||||
-printseeds proguardSeeds.txt
|
||||
-printusage proguardUsage.txt
|
||||
Reference in New Issue
Block a user