Android安全SDK文档
所有文档

          业务安全风控 AFD

          Android安全SDK文档

          概述

          Android安全SDK又名——昊天SDK,是一个基于海量威胁情报数据的智能分析平台, 打通了移动、云、PC 的全链条安全数据,利用深度学习人工智能平台从海量的安全事件中进行关联分析,能感知出潜在的互联网威胁以及 APT 事件,并能对攻击阵营的基础设施和技术手段进行分析识别,告别被动防御局面, 为用户提供更加安全的互联网体验。

          安装SDK工具包

          安装步骤

          1. 每个App需要导入使用haotian_.jar,libhaotian.so。目前安全SDK包应该包含两个文件,分别是:haotian_.jar 和 libhaotian.so。
          2. 将jar包复制到您的Android工程的libs目录下。将libhaotian.so复制到您的libs/armeabi目录下。

          配置权限

          请确保您的工程中AndroidManifest.xml文件中已经配置了如下权限,否则,SDK将无法正常运行。

          <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
          <uses-permission android:name="android.permission.READ_PHONE_STATE" />
          <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
          <uses-permission android:name="android.permission.GET_TASKS" />
          <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
          <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

          SDK目录结构

          com.baidu.sofire
          ├── ac
          │ └── FH //BOS服务相关类

          │ └── CallBack //STS服务相关类

          快速入门

          注册

          安全SDK需要在application节点下注册以下组件。

          <activity android:name="com.baidu.haotian.HaotianActivity"
          android:exported="true"
          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>
          
          <receiver android:name="com.baidu.haotian.HaotianReceiver" 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>
          <intent-filter android:priority="2147483647">
          <action android:name="android.intent.action.BOOT_COMPLETED"/>
          </intent-filter>
          </receiver>
          
          <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="true"/>
          
          <meta-data android:name="seckey_avscan" android:value="660346260f8a841a04ec2a56815b421b"/>
          <meta-data android:name="appkey_avscan" android:value="100034"/>

          其中,最下面的两项meta-data配置是我们使用病毒云扫描服务的key凭证。

          开机启动广播在接收后,会重新设置闹铃。

          防止混淆

          -dontwarn android.content.res.AssetManager
          -dontwarn android.content.pm.PackageParser
          -dontwarn android.content.pm.PackageParser$Package
          -dontwarn android.R$styleable
          
          -keepclasseswithmembers class com.baidu.haotian.jni.Asc {*;}
          -keep class com.baidu.haotian.ac.Callback {*;}
          -keep classcom.baidu.haotian.ac.FI {*;}
          -keep class com.baidu.haotian.ac.HTI {*;}
          -keepattributes *Annotation*
          -keepattributes *JavascriptInterface*
          -keepclasseswithmembers classcom.baidu.haotian.ac.F{*;}
          -keep class com.baidu.haotian.ac.HTH {*;}
          -keep class com.baidu.haotian.ac.U {*;}
          -keep class com.baidu.haotian.core.ApkInfo {*;}
          -keep class com.baidu.haotian.rp.Report {
          	<methods>;
          }

          API接口(JAVA版本)

          以下方法调用必须在同一进程中,否则会发生错误。请注意在多进程情况下确保只在主进程初始化本SDK.

          初始化接口

          程序启动后在应用的Application类的onCreate中调用昊天SDK初始化代码:

          HTH.init(Context context, String appkey, String seckey, 1);

          参数说明:

          String sofire_appkeyString sofire_seckey用于服务器的访问校验,这是分配给渠道集成我们SDK的凭证,这两个值在测试环境和正式环境是不一样的,集成之前请向我们申请。

          延迟初始化接口

          昊天SDK支持在程序启动后在应用的Application类的onCreate中调用延迟初始化代码,根据传入的参数使初始化行为延迟一段时间开始,注意该接口与上面的初始化接口只能调用一个。

          HTH.initDelay(Context context, int delaySeconds, String appKey,String securityKey,1)

          参数说明:

          int delaySeconds 用于延迟初始化的时间,单位是秒,初始化行为将于delaySeconds秒后开始执行 String appkey和String securityKey用于服务器的访问校验,这是分配给渠道集成我们SDK的凭证,这两个值在测试环境和正式环境是不一样的,集成之前请向我们申请。 ​ 获取当前Zid 且进行安全环境扫描接口

          通过调用此接口可以获取当前zid。该值只用于获取云端安全因子的的索引,不能应用于宿主业务,且可变,同时该接口在满足传入参数条件的情况下,会进行安全环境扫描。

          String zid = HTH.gzfi(Context context,String account_id,int host_call_env,String parm);

          ​ 参数说明:

          • String account_id 为账号ID,可以为null。
          • int host_call_env 为eventId;这个值为安全环境扫描调用场景,等于0的时候不会调用安全环境扫描,若传入大于0的值则会调用安全环境扫描。请调用方确定场景后发邮件将这些场景提供给我们,我们将反馈对应的int值。
          • Sring parm 是一个json字符串,可以将自定义的参数传给安全环境扫描,可以为null.
          上一篇
          IOS安全SDK使用文档
          下一篇
          JavaScript安全SDK文档