File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2020-dontwarn okhttp3.**
2121-dontwarn okio.**
2222-dontwarn org.conscrypt.**
23- -dontwarn org.bouncycastle.**
2423-dontwarn org.openjsse.**
2524
2625# ---- BouncyCastle (bcprov-jdk18on) ----
2726# AIEditorApp.registerBouncyCastle() 在启动时注册完整版 BC 取代 Android 裁剪版,供 sshj 做 X25519 密钥交换。
28- # JCE 框架通过反射按类名加载 Provider 注册的各算法 SPI(KeyStore/Cipher/Signature/AlgorithmParameters 等),
29- # 类名一旦被 R8 混淆,BouncyCastleProvider 注册的 BKS KeyStore 等类型实例化失败,
30- # 表现为 release 下 HTTPS 请求抛 KeyStoreException: BKS not found(debug 不开 R8 故正常)。
31- # 故保留整个 BC provider 包及其内部 *Mappings(BouncyCastleProvider 靠反射加载这些注册类)。
32- -keep class org.bouncycastle.jce.provider.** { *; }
33- -keep class org.bouncycastle.jce.provider.BouncyCastleProvider
34- -keepclassmembers class org.bouncycastle.jce.provider.BouncyCastleProvider {
35- <init>();
36- }
27+ # BouncyCastleProvider 在构造时通过反射加载散布在各包下的 *Mappings 注册类,再由 JCE 框架按类名反射实例化
28+ # 各算法 SPI(KeyStore/Cipher/Signature/AlgorithmParameters 等)。R8 静态分析看不到这些反射引用,
29+ # 会把「无人调用」的 BC 类当死代码裁剪掉——release 下 BKS KeyStore 等 SPI 类被删,实例化时抛
30+ # KeyStoreException: BKS not found(debug 不开 R8 故正常)。故保留整个 BC 库不被裁剪/混淆。
31+ -keep class org.bouncycastle.** { *; }
32+ -dontwarn org.bouncycastle.**
3733
3834# ---- Gson(Retrofit converter + AILogger 用 GsonBuilder 反射序列化)----
3935# Retrofit/Gson 通过反射读写 data class 字段,类名与字段名不可混淆/裁剪。
You can’t perform that action at this time.
0 commit comments