Android系统签名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android系统签名相关的知识,希望对你有一定的参考价值。
参考技术A 有时候,我们开发的apk需要用到系统权限,需要在androidManifest.xml中添加共享系统进程属性:这时候apk的签名就需要是系统签名(platform、shared或media)才能正常使用。
常用系统签名方式
这种方式比较麻烦,你需要有编译过的源码环境,并按如下步骤:
1、拷贝App源码到Android源码的packages/apps/目录下,且App源码是普通(Eclipse)格式的
2、配置Android.mk,在其中添加
3、使用mm编译App,生成的apk即系统签名
这种方式比在源码环境下签名简单,App可以在Eclipse或Android Studio下编译,然后给apk重新签名即可。
但这种方式在频繁调试的时候比较痛苦,即使写成脚本,也需要重复一样的操作。
相关文件
platform.x509.pem、platform.pk8、signapk.jar
文件位置
platform.x509.pem、platform.pk8:
signapk.jar:
signapk源码路径:
签名命令
步骤
1、将相关文件及源apk文件置于同一路径下
2、检查源apk包,去掉META-INF/CERT.SF 和 META-INF/CERT.RSA 文件
3、执行签名命令即可
让Android Studio集成系统签名,需要用到一个工具 keytool-importkeypair ,详见下文。
这个工具的作用是将系统签名的相关信息导入到已有的签名文件里。
工具的使用方法可以通过–help或README.textile来寻求帮助
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh
我的做法是在App根目录新建Signature文件夹专门存放签名相关文件。
步骤
1、生成demo.jks签名文件
2、编写签名脚本signature.sh,内容如下:
为脚本文件添加可执行权限:
执行脚本:
3、配置builde.gradle
在android区域下(与defaultConfig同级)添加配置:
这样debug或release apk就带有系统签名了。
如果想直接Run app就是release版且带系统签名的apk,还需修改:
这样直接Run app就是带系统签名的release版apk了。
Android Studio支持系统签名(证书)
让Android Studio集成系统签名,需要用到一个工具keytool-importkeypair
这个工具的作用是将系统签名的相关信息导入到已有的签名文件里。可从这里下载。
相关文件
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks
我的做法是在App根目录新建Signature文件夹专门存放签名相关文件。
步骤
1、生成demo.jks签名文件
相关文件
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks
我的做法是在项目根目录新建Sign文件夹专门存放签名相关文件。
如图:
步骤一:
步骤二:
步骤三:
ps:图片上的密码要和命令的密码对应,别名Alias也要对应起来,还有路径,其他信息是次要的
这个步骤后,可以在对应的位置生成一个demo.jks文件
步骤四:
注意:
利用生成的应用签名文件生成新的系统签名文件
内容如下:
注意!!一定要把这个文件放到linux环境下编译,我这边没有装Linux系统,因此我使用到的是Git;
步骤五:
在项目根目录新建的Sign文件夹右击选择 Git Bash Here 打开工具
步骤六:命令行执行以下命令
#!/bin/sh
# 转换平台签名命令
./keytool-importkeypair -k demo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias demo
# demo.jks : 签名文件
# 123456 : 签名文件密码
# platform.pk8、platform.x509.pem : 系统签名文件
# demo : 签名文件别名
执行到这里提示:导入时存在现有条目别名 demo, 是否覆盖? [否]: 导入新的别名 (按回车以取消对此条目的导入);这里我们需要输入与上面新建应用签名一致的别名:例如:demo;进行覆盖
步骤七:
到此处系统签名文件生成完成;
这里就是最新的系统签名文件;
引用进行打包就可以了。
注:应用系统打包签名需要在清单文件中添加:
以上是关于Android系统签名的主要内容,如果未能解决你的问题,请参考以下文章