重启android系统有两个要求:

1.应用程序的uid必须是系统uid ;

2.应用程序的签名必须和系统签名一致。

具体的实现步骤如下:

1.在清单文件加上android:sharedUserId="android.uid.system,让当前应用程序分享系统的uid

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.alex.reboot"

android:versionCode="1"

android:versionName="1.0"

android:sharedUserId="android.uid.system">


2.使用SignApk工具操作使得应用程序的签名和系统签名一样

注:apk文件里面的META-INF文件夹下的文件就是应用程序的签名

2.1删除应用程序下面原来的签名文件

2.2找到系统签名文件并拷贝到SignApk目录下,系统签名文件在源代码的目录下:build/target/product/security/,拷贝以下两个文件:

公钥:platform.x509.pem

私钥:platform.pk8

2.3使用以下命令将系统签名文件迁到应用程序当中

java-jarsignapk.jarplatform.x509.pemplatform.pk8test.apktestnew.apk

test.apk为原本的apk文件

testnew.apk为生成的apk文件

3.将生成的apk文件放入手机中,运行重启代码便可重启手机

3.1 查看系统源码android_all_src\JB\frameworks\base\services\java\com\android\server\WachDog.java可获知重启代码如下:

Intentreboot=newIntent(Intent.ACTION_REBOOT);

reboot.putExtra("nowait",1);

reboot.putExtra("interval",1);

reboot.putExtra("window",0);

sendBroadcast(reboot);

更多相关文章

  1. android 如何获得系统权限 android.uid.system
  2. Android基础概念
  3. 【Android-002】【常见布局】
  4. android 布局文件中xmlns:android="http://schemas.android.com/
  5. 安装Android时Could not find D:\Android\a...sdk-windows\to
  6. moodle手机版在android平台上的安装配置
  7. Android的应用程序结构分析:HelloActivity
  8. 传智播客Android视频教程——第六天
  9. Android应用程序上传错误The package name of your apk may not

随机推荐

  1. 编写Playbook部署Etcd集群
  2. Nginx动静分离 - 配置笔记
  3. Xtrabackup备份
  4. QA与测试到底有什么区别?
  5. 黑盒测试VS白盒测试
  6. Prometheus监控CPU,Memory,Disk
  7. 完整的二进制安装Kubernetes高可用集群
  8. MySQL工作常用命令
  9. 自动化测试用例失败继续执行
  10. 干货--MySQL工作常用Select命令