Apk 系统签名

随着物联网与人工智能的发展,越来越多需要开发一些应用集成到系统中,这些应用往往回需要获取系统的相关使用权限,因此需要对应的需要进行申明权限。

Apk系统签名一般的提供了两种签名方式jarsign 和signapk。jarsign 方式是就是通常的keystore方式,signapk 通常指使用系统的plateform.pk8 和 plateform.x509.pem(公钥+私钥)方式。

一、.pk8与x509.pem 转换成 .jks

将系统的.pk8和.509.pem文件转化成keystore方式需要keytool-importkeypair工具,这个可以在GitHub上下载。

.pk8和.509.pem在系统源码中的./build/target/product/security目录下。

keytool-importkeypair命令:

keytool-importkeypair [-k keystore] [-p storepass] -pk8 pk8 -cert cert -alias key_alias

-k:.jks 文件保存的路径

-p:密码

-pk8: 系统.pk8文件路径

-cert: 系统.x509.pem文件路径

-alias: .jks别名

keytool-importkeypair -k android.jks -p 123456 -pk8 '/home/wxq/developer/sign/platform.pk8' -cert '/home/wxq/developer/sign/platform.x509.pem' -alias android

将生成的android.jks拷贝到androidStudio中直接使用。

二、直接使用signApk对Apk签名

signapk 工具是make系统后输出的签名工具,存放目录out/host/linux64/framework/文件下。

signapk 命令及参数:

 signapk [-w] [-a <alignment>] [-providerClass <className>] [--min-sdk-version <n>] [--disable-v2] publickey.x509[.pem] privatekey.pk8 [publickey2.x509[.pem] privatekey2.pk8 ...] input.jar output.jar

publickey.x509: 对应系统的.x509.pem文件

privatekey.pk8:对应系统的.pk8文件

input.jar: 需要签名的文件

output.jar: 签名输出的问文件

java -jar signapk.jar ~/developer/sign/platform.x509.pem ~/developer/sign/platform.pk8  ~/Desktop/EAirPlay_6.10.21\ _text.apk ~/Desktop/EairPlay_6.10.21.apk

本以为按照signapk的命令提示直接执行就可以了,可结果却是不行的。提示

提示java.library.path 中缺少conscrypt_openjdk_jni对应的SO库。因此需要将libconscrypt_openjdk_jni.so(目录:out/host/linux-x86/lib64)拷贝到需要签名Apk的目录下,然后执行:

java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 EAirPlay_6.10.21\ _text.apk EAirPlay_6.10.21.apk
  完成,对应的Apk就有了系统签名了。

另可查看:

jks与pem文件相互转换,请参阅http://www.iloveandroid.net/2015/10/14/jksTopm/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值