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