重启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的应用程序结构分析:HelloActivity
  2. Android应用程序上传错误The package name of your apk may not
  3. Android——编译release版签名系统
  4. Android* 操作系统上的应用程序远程调试
  5. Android的日志系统分层与logcat使用
  6. 写TextView的Selector了解到的android读取xml文件的几点规则
  7. Android基础知识之Manifest文件的组织结构
  8. android中一些配置文件的参数的意义
  9. Android系统框架概述

随机推荐

  1. CISSP学习:第10章物理安全要求
  2. 代孕123
  3. 全球气候变冷
  4. JavaScript 点击事件 - 一个按钮触发另一
  5. MYSQL 死锁
  6. MYSQL ACID
  7. MYSQL锁
  8. 分布式事务(ACID)
  9. 17、华为 华三中小型企业网络架构搭建 【
  10. MYSQL 源码阅读 六