android系统签名的不足

android编程时,有时候我们可能需要时到到比如重启、关机等特殊的权限!此时需要用到app系统签名,app才可以运行!比如:

<uses-permission android:name="android.permission.REBOOT"></uses-permission>
<uses-permission android:name="android.permission.SHUTDOWN"></uses-permission>

在xml中添加以上权限时,我们首先会遇到第一个问题,就是编译出错,系统提示如下错误:
Permission is only granted to system apps!
解决方法请参考:

Android Studio 的“Permission is only granted to system apps”


解决了上面的问题后,此时可以编译生成apk,并且可以安装,但是此时如果app运行到使用上面的权限的相关代码时,会崩溃!

因为app并没有获取到那些权限,怎么样可以获取呢?,那几是对apk添加系统签名。


我们下载对应系统的platform.x509.pem、platform.pk8文件,并下载signapk.jar(我用的4.42源码下的,6.0的既然不行)文件到特定文件夹下面;

编译未签名的apk到该文件夹;

执行如下命令:

java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk

就会在当前文件夹下生成新签名的apk。


如果你当前运行的系统的前面文件platform.x509.pem、platform.pk8和你下载的一致,那么生成的apk可以跑。

否则安装报错。


总结:在考虑使用这种方式生成apk开前,一定要考虑签名文件的一致性。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值