有的时候在应用程序中需要获取一些特殊权限,比如写该系统时间,或者关机程序,这是后除了获取root权限方法之外,还可以使用在menifest.xml文件中添加android:sharedUserId="android.uid.system"到根节点中将自己的应用程序打包成系统应用以达到目的。


但是添加android:sharedUserId="android.uid.system"编译成功后的apk是不能安装的 ,这是因为系统应用使用了统一的签名,而我们的签名和系统应用的签名不一样,所以接下来的事情就是怎么将自己的应用签名改成系统的应用签名了(尴尬的是现在国内大多数系统都是定制过得,系统应用签名无法获取,所以该方法仅限于android原生系统)


1、使用目标系统的platform密钥来重新给apk文件签名。

首先在我的Android源码目录中的位置是"build        argetproductsecurity",下面的platform.pk8和platform.x509.pem两个文件。

然后使用系统提供的签名工具signapk.jar,使用步骤是将自己的apk还有上述三个文件放入一个文件夹如图:


android之使用signapk打包成系统应用,获取系统权限_第1张图片

2、然后用压缩软件打开自己的apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。


3、然后在cmd下进入到改文件夹下我的是e:/to/SignApk使用如下命令:


回车后我们的文件夹下已经多了一个new.apk文件了,这就将我们的应用打包成系统应用了如图:
android之使用signapk打包成系统应用,获取系统权限_第2张图片

下面是资源问价signapk.jar  platfrom.pk8   platform.x509.pem 的下载链接:

下载链接




更多相关文章

  1. Android 系统启动分析
  2. Android系统启动流程(nougat7.1.1_r6)
  3. Android输入系统解析及Native层模拟按键方案
  4. ANDROID资源文件
  5. 实践中探索Android智能手机系统------ROM分区

随机推荐

  1. Android不让弹出键盘挡住View
  2. Android(安卓)判断网络是否可用以及网络
  3. android 之JSON
  4. ContentProvider
  5. This Android(安卓)SDK requires Android
  6. android (22)
  7. Android:Galaxy Nexus升级到4.1.2,并root(设
  8. Android(安卓)Shape的使用
  9. Android学习之线性布局管理器
  10. 浅析Android中的消息机制