android 的系统签名

刚入职的时候,固件中 app 需要在源码中编译,不是很理解,为什么不使用 IDE 编译,然后 copy 到 /system/app/*,咨询导师,得到反馈 app 需要使用系统的权限 在 AndroidManifest.xml 中声明了系统全下申明了系统权限android:sharedUserId="android.uid.system"

随着工作时间延长,慢慢理解了 apk 签名机制,为了解决上述疑问,出现了 2 套解决方案:

单独签名解决方案

  1. 找到平台签名文件“platform.pk8”和“platform.x509.pem”
文件位置 android/build/target/product/security/
  1. 签名工具“signapk.jar”
位置:android/prebuilts/sdk/tools/lib
  1. 签名证书“platform.pk8 ”“platform.x509.pem ”,签名工具“signapk.jar ”放置在同一个文件夹;
  2. 执行命令
java -jar signapk.jar platform.x509.pem platform.pk8 Demo.apk signedDemo.apk

或者直接在Ubuntu 编译环境执行
java -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/platform.x509.pem build/target/product/security/platform.pk8 input.apk output.apk

IDE 中添加源码平台生成证书 platform.keystore

生成平台platform.keystore文件:

  1. 编译平台签名文件“platform.pk8”和“platform.x509.pem”
文件位置:android/build/target/product/security/
  1. 把pkcs8格式的私钥转化成pkcs12格式:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
  1. 把x509.pem公钥转换成pkcs12格式:
openssl pkcs12 -export -in platform.x509.pem -inkey     shared.priv.pem -out shared.pk12 -name androiddebugkey
密码都是:android
  1. 生成platform.keystore
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore platform.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey

Eclipse 添加证书

将生成的platform.keystore导入eclipse 在eclipse下Windows/preferences/Android/build中设置“Custom debug keystore”为刚才生成的platform.keystore即可

调试apk时直接点击Debug As —> Android Application即使用系统签名签名了该apk

Android Studio 添加证书

image.png
image.png


作者:DB_Liu
链接:https://www.jianshu.com/p/63d699cffa1a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值