有段时间做系统hook时需要用到系统重启,找了几种重启的方法,还有几种关机的方法,总结一下。
一,发送广播
Broadcast,
Intent.ACTION_REQUEST_SHUTDOWN关机广播
Intent.ACTION_REBOOT重启广播
ACTION_REQUEST和ACTION_REBOOT是Intent.java是声明的两个字符串常量,系统接收到这两个广播后就会响应关机或重启的操作。
源码中的实现如下:
声明代码路径:/frameworks/base/core/java/android/content/Intent.java
public static final String ACTION_REQUEST_SHUTDOWN = "android.intent.action.ACTION_REQUEST_SHUTDOWN"
public static final String ACTION_REBOOT = "android.intent.action.REBOOT"
实现代码示例:
广播关机
广播重启
权限:
AndroidMenifest.xml中添加代码
android:sharedUserId="android.uid.system"提升