JAR/AAR包加固
JAR/AAR包加固的原理是什么?
易盾的JAR/AAR包加固方案是对要保护的类的方法进行抽空并加密处理,在运行时通过自定义虚拟机执行,从而使得破解者无法得到原始代码逻辑。
服务对接过程需要提供哪些文件?
需提供以下文件:
文件类型 | 何时需提供 |
---|---|
待处理的classes列表文件 | 必须要提供 |
mapping文件 | 如果用户在开发SDK时使用了proguard混淆则要提供,否则无需提供 |
classes列表文件是什么?为何需要提供该文件?
classes列表文件是一些接口类,这些类是从待加固SDK中选出来的需要重点保护的逻辑类,也就是说如果用户的SDK中的某个类要重点保护,那么应该将其添加到classes文件列表中,类的格式为原始类的路径名称,每行一个类,如下是一个示例:
com.example.sdk.utils.EncryptionUtil
com.example.sdk.network.HttpRequest
com.example.sdk.data.DataManager
com.example.class1
com.example.class2
建议不要设置太多的保护类,只需设置重点保护类即可。
mapping文件是什么?在哪里可以找到mapping文件呢?
如果用户在开发SDK的时候使用了proguard混淆,那么会在build/outputs/mapping/release/目录下看到名为mapping.txt的文件,该文件即为mapping文件。如果用户在开发SDK时未使用混淆规则则无需该文件。
JAR/AAR包加固后的proguard规则需要改吗?
如果引用SDK的主工程开启了proguard混淆则需要,此时需要在原工程的proguard-rules.pro中增加如下内容
-keep public class com.netease.nis.sdkwrapper.Utils {public ;}
加固后使用SDK有哪些需要注意的地方吗?
如果是多SDK模式,多个SDK可随意搭配,只需要引用一份nesecsdk.aar即可。如果是单SDK模式,我们会将nesecsdk.aar内置到加固后的SDK中,所以此时只需引用加固后SDK即可。