FAQ
SDK (4)
- APK包中的.RSA或.DSA文件是遵循ASN.1编码的文件结构,副署签名作为属性保存在其中的一个集合里面,这个集合是无序的,也就是说进入到这个集合的先后顺序与最终呈现在这个集合的顺序无关。
- TTSDK中 TTCounterSignatureInfo 类实现了排序接口,Trust Tracker 中显示副署签名的顺序,是在获取到副署签名集合后做了排序,因此显示顺序会有不同。
- 获得副署签名集合并做排序的实现代码如下:
//获得TTCounterSignatureVerifier 对象 TTCounterSignatureVerifier ttcsVerifier =...; List<TTCounterSignatureInfo> ttcsInfoList = ttcsVerifier.getCounterSignatureInfos(); //排序 Collections.sort(ttcsInfoList); //ttcsInfoList 按照副署签名时间排序完成
通过安装APK来判断Android原生签名的正确性这一做法既繁琐又不友好,从TTSDK V1.0.8开始,增加了直接验证APK原生签名的接口。
示例代码如下:
//首先获得未安装APK的全路径 String apkPath ="../../XXX.apk"; //然后调用TTAPKSignatureVerifier的静态函数验证即可 boolean result = TTAPKSignatureVerifier. verifySignature (apkPath);
在TTSDK V1.0.8中,对于未安装的APK,使用以下代码可以直接判断其是否含有副署签名
//判断 一个Apk 是否包含副署签名,但并不验证签名的正确性 String apkPath= "../../xxx.apk";//获得APK的全路径 booean result = TTCounterSignatureTracker.hasCounterSignature(apkPath);
TTSDK目前有两个版本:TTSDK-Android和TTSDK-PC。两者的API接口基本一致,但设计目的不同。一个用于在Android终端验证移动应用副署签名,一个用于在PC端(J2EE)环境下验证应用应用副署签名,因此两者不能通用,请根据实际使用的环境来选择TTSDK的版本。
APKSign (1)
证书选择框列表为空,说明目前没有可用来签名的数字证书.
apksign.exe (Windows)使用了Windows操作系统自身的证书库. Windows操作系统当前的证书库可以从以下的步骤看到:
打开IE -> IE右上角的配置图标 -> 选择菜单中的[Internet 选项] -> 选择对话框中的[内容]页 -> 点击内容页里面的[证书]按钮
如果经过上面的步骤, 在最后出现的证书对话框里面, [个人]页里面是空白的, 就说明当前Windows证书库里面没有可以用来签名的证书.
对于此种情况,如果仅仅是出于测试目的, 可以选择生成一张自签名证书(pfx格式), 并导入到Windows证书库中. 如果是用于正式产品发布, 则需要首先到第3方可信CA机构申请一张“代码签名证书”,在成功安装第3方可信CA机构提供的驱动或者客户端软件后,代码签名证书将自动导入,至此再使用apksign签名时,就可以在证书选择框中看到可用的数字证书。
用户指南 (2)
对于安卓应用开发者, 请参考下面的流程:
- 去可信CA机构申请您的开发者证书
- 下载apksign工具包
- 使用标准的安卓应用发布流程生成apk包并完成原始签名 (Android SDK, keytool等)
- 用apksign + 您的开发者证书对原始apk包做副署签名. 例如: apksign.exe -i xx.apk -o xx.signed.apk
- 发布xx.signed.apk (apk的名称无所谓, 您也可以把xx.signed.apk改名成xx.apk后发布)
- 特别提醒: 如果需要在百度应用商店上架, 请参阅百度应用商店安卓副署应用上架指南, 其它应用商店目前无此特别要求.
对于安卓应用商店, 请参考下面的流程:
- 下载最新版本TTSDK-Android、TTSDK-PC、《Android应用程序开发者第三方数字证书签名、验证和标识规范(试行版)》
- 根据规范修改应用商店上架及展示部分:
- 应用上架时,应验证开发者提交移动应用程序的签名信息。
- 若移动应用程序是经数字签名认证的,应用商店须向用户提示该移动应用程序经数字签名认证,向用户显示移动应用程序签名信息,并根据规范将数字签名认证标识放在应用商店网站及移动客户端的指定位置。
- TTSDK-PC提供了完成上述要求的相关接口.
- 根据规范修改应用商店客户端:
- 用户在安装移动应用程序时,应用商店客户端应验证移动应用程序的签名信息。
- 若移动应用程序经数字签名认证,且在安装过程中签名验证成功并可正常安装的情况下,移动终端须向用户提示该移动应用程序经数字签名认证,并向用户显示移动应用程序签名的详细信息。
- TTSDK-Android提供了完成上述要求的相关接口.
- 为鼓励开发者使用数字证书,应用商店可以在首页开设“签名认证应用”专栏专区,集中放置和优先推荐采用第三方数字签名认证后的应用程序。