由于是插件化框架,需要动态加载第三方 apk,因此,为了保证第三方 apk 软件的可信赖性,将进行对引入的第三方 apk 软件进行安全与合法检测。检测分两个方面,第一是检测第三方 apk 是否经过签名认证,第二是限定宿主程序信任的某些证书的 apk 软件。
在 Phantom 框架中,想要插件 apk 能够被宿主安装,有如下三种方式:
-
插件的签名在宿主声明的可信签名列表中,宿主在安装插件时会认为该插件是安全的插件,则校验通过并安装;方法是在初始化
Phantom
服务时调用PhantomCore.Config
中的setCheckSignature(true)
并调用addTrustedSignatures(...)
函数,该函数支持String
类型可变长参数,传递插件签名时的keystore
文件的signature
。代码如下:PhantomCore.getInstance().init(this, new PhantomCore.Config() .setCheckSignature(true) .addTrustedSignatures("A489D17B23B2861CE7344264BBF83D5F"));
- 推荐使用,此方法不需要配置相关内容,宿主与插件签名匹配,在企业内部多个产品时较为常用。
-
此方法在安装插件时跳过签名校验步骤,在初始化
Phantom
服务时调用PhantomCore.Config
中的setCheckSignature(false)
,参数传递false
即可,代码如下:PhantomCore.getInstance().init(this, new PhantomCore.Config() .setCheckSignature(false));
***注:***不推荐使用,因为它存在一定的风险性