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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Android Studio编译APK后,生成的APK文件并不具备系统签名,无法直接安装到手机上。因此,我们需要对APK进行系统签名。有两种常用的签名方法: 方法一是使用编译的signapk.jar进行签名,这个工具可以在编译的目录中找到,具体路径是out/host/linux-x86/framework/signapk.jar。你需要将APK文件、签名工具signapk.jar、以及对应的签名文件platform.pk8和platform.x509.pem放置在同一个目录下。然后,在终端或命令行中,进入该目录,并执行以下命令进行重新签名: ``` java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk ``` 这样,就会生成一个新的APK文件new.apk,它已经使用了platform签名文件进行了系统签名。 方法二是使用自己的Android签名工具对APK进行签名。你可以在系统源码的build/target/product/security/目录下找到Android的签名文件。同样,你需要将APK文件、签名工具和对应的签名文件放置在同一个目录下。然后,打开终端或命令行,并进入该目录,执行你自己的签名工具对APK进行签名。具体的签名方法可能因为不同的签名工具而有所不同,你可以参考网上的资料来进行操作。 总结来说,对于在Android Studio编译的APK进行系统签名,你可以选择使用编译的signapk.jar工具进行签名,或者使用自己的Android签名工具。在执行签名操作之前,确保将APK文件、签名工具和对应的签名文件放置在同一个目录下,并按照相应的方法进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [android studio开发系统应用签名处理](https://download.csdn.net/download/weixin_38741759/14017935)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Android studio打包APK流程及给APK系统签名步骤](https://blog.csdn.net/IT_xiao_bai0516/article/details/120789218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值