Android应用程序进行系统签名

有时写一个程序需要调用系统的库,如果权限不够,是用不了库里面一些方法的 。这时就需要将apk进行系统签名。

 简单常用的方法:

                1,在apk的AndroidManifest.xml中的manifest节点中加入Android:sharedUserId="android.uid.system"

                2,运行或打包得到apk

                3,使用目标系统的platform密钥来给apk文件签名:

                在系统android\build\target\product\security目录下找到platform.x509.pem 和platform.pk8两个文件;在系统out/host/Linux-x86/framework目录下找到signapk.jar文件,把它们复制出来放到一个文件夹下,把需要进行系统签名的apk也和它们放到一个文件夹下。然后首先进入该文件目录,再在cmd上输入下面语句:Java -jar signapk.jar  platform.x509.pem  platform.pk8  被签名apk名称.apk  签名后apk名称.apk,执行完后会在当前目录得到一个新的apk "签名后apk名称.apk"  即为已经系统签名的apk。

                举个列子,例如要签名reset.apk,如下图:

  

            cmd进入当前目录:输入命令java -jar signapk.jar platform.x509.pem platform.pk8 reset.apk s_reset.apk

   

            按回车键,生成的s_reset.apk即为已经系统签名的apk。

            需要注意的是,其中必须platform.x509.pem  platform.pk8 之前,否则会报错。

参考:http://blog.csdn.net/lilidejing/article/details/45098879


注:

第二步时   

通过eclipse编译,Android manifest XML中 shared user id 包含android.uid.shared等系统权限的时候,则会报以下错误;

Installation
error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

主要是由于使用了android.uid.shared导致的问题。

使用eclipse编译出apk文件,但是这个apk文件是不能用的。 

然后拿这个apk进行第三步

--------------------------------------------------------------



另一解决方案如下
   第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:

   1. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行 
   2. 使用mm命令来编译,生成的apk就可以在模拟器中运行了。

参考:http://blog.csdn.net/jumping_android/article/details/7241217

http://blog.csdn.net/happyhell/article/details/5903389


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值