Android安全SDK文档
概述
Android安全SDK又名——昊天SDK,是一个基于海量威胁情报数据的智能分析平台, 打通了移动、云、PC 的全链条安全数据,利用深度学习人工智能平台从海量的安全事件中进行关联分析,能感知出潜在的互联网威胁以及 APT 事件,并能对攻击阵营的基础设施和技术手段进行分析识别,告别被动防御局面, 为用户提供更加安全的互联网体验。
安装SDK工具包
安装步骤
- 创建一个新的Module,导入控制台下载的AAR文件,这里以hotian*.aar为例,module任意命名,以 “haotian”为例,如下图所示:
- 在自己项目的build.gradle中添加依赖,引入haotian依赖,然后sync。
dependencies {
...
compile project(': haotian)
...
}
- so包相关:aar包中包含了armeabi,armeabi-v7a,arm64-v8a,x86的so包,如果集成的App自身兼容的abi种类少于本aar,应当在build.gradle文件中,加入ndk的abiFilter配置,选定本app支持的abi,以防止引入全部4种abi的so导致在指定abi上缺失其他so文件。
defaultConfig {
...
ndk {
abiFilter "armeabi"
}
...
}
注意事项
以前使用jar包方式集成的如果要转换为aar集成,请一定将集成的jar包,so包和配置文件删除。
API 接口
初始化接口
程序启动后在应用的Application类的onCreate中调用Haotian SDK初始化代码:
HTH.init(Context context, String haotian_appkey, String haotian_seckey, 1);
如果APP需要接入风控服务,需要在APP主进程初始化sdk,确保sdk正常运行。 如果在同意隐私协议前调用初始化接口,初始化过程会被中止,并在调用同意隐私协议方法后恢复。
参数说明
String haotian_appkey和String haotian_seckey用于服务器的访问校验,这是分配给渠道集成SDK的凭证。集成之前请通过控制台申请。这两个 key 是和集成宿主的包名和签名唯一关联的。如果包名或者签名有变化需要重新申请。
延迟初始化接口
Haotian SDK支持在程序启动后在应用的Application类的onCreate中调用延迟初始化代码,根据传入的参数使初始化行为延迟一段时间开始,注意该接口与上面的初始化接口只能调用一个。
HTH.initDelay(Context context, int delaySeconds, String haotian_appKey,String haotian_seckey,1)
如果APP需要接入风控服务,需要在APP主进程初始化Haotian sdk, sdk正常运行。 如果在同意隐私协议前调用初始化接口,初始化过程会被中止,并在调用同意隐私协议方法后恢复。
参数说明
a) int delaySeconds 用于延迟初始化的时间,单位是秒,初始化行为将于delaySeconds秒后开始执行。
b) String haotian_appkey和String haotian_seckey用于服务器的访问校验,这是分配给渠道集成我们SDK的凭证。集成之前请向我们申请。这两个 key 是和集成宿主的包名和签名唯一关联的。如果包名或者签名有变化需要重新申请。
获取当前Zid 且进行安全环境扫描接口
通过调用此接口可以获取当前zid。该值只用于获取云端安全因子的的索引,不能应用于宿主业务,且可变,同时该接口在满足传入参数条件的情况下,会进行安全环境扫描:
String zid = HTH.gzfi(Context context,String account_id,int host_call_env,String parm)
参数说明
a) String account_id 为账号ID,可以为null。
b) int host_call_env 为eventId;这个值为安全环境扫描调用场景,等于0的时候不会调用安全环境扫描,若传入字符串3300~3400则会调用安全环境扫描,根据业务可自行选择传入。
c) Sring parm 是一个json字符串,可以将自定义的参数传给安全环境扫描,可以为null。
注意
禁止在宿主中保存zid,zid的值是可变的。
设置用户同意隐私协议接口
通过调用此接口告知安全SDK用户是否同意了隐私协议。
在同意隐私协议前,所有对安全SDK的调用将不会生效,具有返回值的方法会获取到空的返回值,初始化过程会在delay结束后被中止,直到同意了隐私协议。
HTH.setAgreePolicy(Context context, boolean agree)
参数说明
boolean agree为用户是否同意了隐私协议,true为同意,false为不同意。
绑定设备ID接口
通过调用此接口绑定宿主应用定义的设备ID,用于ID映射。
HTH.setDid(Context context, String did)
参数说明
String did为宿主应用用于标识本设备的唯一Id值。请尽早绑定设备ID以方便进行ID映射(可以在调用初始化接口前)。
多进程支持
Haotian SDK支持同一宿主下多进程运行,默认是运行在主进程中。SDK 的初始化和组件配置必须在同一进程中,请注意以下几点:
a) 如果需要配置Haotian SDK运行在其它进程,请将如下所有组件都通过 Android:process属性配置在同一个进程中。
<activity
android:name="com.baidu.haotian.HaotianActivity"
android:exported="false"
android:theme="@android:style/Theme.Translucent"
android:excludeFromRecents="true"
android:launchMode="standard">
<intent-filter>
<action android:name="com.baidu.action.Haotian.VIEW"/>
<category android:name="com.baidu.category.haotian"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<service
android:name="com.baidu.haotian.HaotianService"
android:exported="false">
<intent-filter>
<action android:name="com.baidu.action.Haotian.VIEW"/>
<category android:name="com.baidu.category.haotian"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
<provider android:authorities="应用包名.haotian.ac.provider"
android:name="com.baidu.haotian.HaotianProvider"
android:exported="false"
tools:replace="android:authorities"/>
b) 请不要为本SDK的provider配置android:multprocess属性。
c) 如果APP需要接入风控服务,需要在APP主进程初始化sdk,确保sdk正常运行。