Android应用程序进行系统签名

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuezhuo_752/article/details/53787569

有时写一个程序需要调用系统的库,如果权限不够,是用不了库里面一些方法的 。这时就需要将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


猜你喜欢

转载自blog.csdn.net/yuezhuo_752/article/details/53787569