Android 签名校验
签名及校验是Android 安全性中非常重要的一项。在build apk时或是制作OTA包时都需要做签名操作,并且在客户端做校验动作,保证升级安装过程的可靠性。
一、签名操作
1、在源码环境使用Android.mk文件编译时签名
# 源码签名文件目录:build\target\product\security\
# 可选签名类型如下
# 1、testkey:默认签名(非系统签名),未指定签名时使用;
# 2、platform:设置为系统签名。
# 3、shared:和contacts等系统进程有相同系统签名,共享数据。
# 4、media:和media等系统进程有相同系统签名,共享数据。
# 5、PRESIGNED:使用apk自身签名。
LOCAL_CERTIFICATE := xxx
2、使用Android Studio打包APK时签名
步骤:"build "→ “Generate Signed Bundle or APK”
打包APK时可以选择Android App Bundle或者APK
(Android App Bundle:Google为了巩固自己的生态系统,推出了Android App Bundle,通过Google Play可用。好处是可以动态根据下载的设备只使用相适配的资源,减少APK大小和安装时间。国内版本的基本无视了)
创建新的的私钥,输入对应参数,生成.jks格式的密钥和签名过的apk。秘钥需要保存好,以后升级release apk还需要使用。Google也推出了一项功能,可以在Google play上传应用的时候同时上传私钥,交由Google play保存。
3、使用工具手动对apk重签名
java -jar signapk.jar publicKey privateKey old.apk sign.apk
signapk.jar 路径
源码编译在如下路径:
out/host/linux-x86/framework/signapk.jar