shutdownOrRebootInternal(HALT_MODE_REBOOT, confirm, reason, wait); } finally { Binder.restoreCallingIdentity(ident); } } private void shutdownOrRebootInternal(final @HaltMode int haltMode, final boolean confirm, final String reason, boolean wait) { // lowLevelReboot会去解析reason并存储到SystemPr...
因此,我们如果想实现一种不可被拦截的重启系统的方式,最最简单的一种方式就是通过设置系统属性 "sys.powerctl" 的值为 "reboot" 就好了。 在Java 上可以像这样做 importandroid.os.SystemPropertiesvoidmyReboot(){ SystemProperties.set("sys.powerctl", "reboot"); } 在C 语言上可以像这样做 #include <cutils...
// 申请系统权限<uses-permission android:name="android.permission.REBOOT"/> 1. 2. 步骤2:创建一个Intent对象 接下来,我们需要创建一个Intent对象用于发送广播。 Intentintent=newIntent(); 1. 步骤3:设置Intent的action为ACTION_REBOOT 然后,我们需要设置Intent的action为ACTION_REBOOT来指定重启操作。 intent.set...
android_reboot(ANDROID_RB_RESTART2, 0, (char *) chars); env->ReleaseStringUTFChars(reason, chars); // In case it fails. } jniThrowIOException(env, errno); } 继续看这里调用的android_reboot()在:\system\core\libcutils\android_reboot.c int android_reboot(int cmd, int flags, char *arg) ...
1./system/core/android_reboot.c [cpp]view plaincopyprint? 1.int android_reboot(int cmd, int flags, char *arg) 该函数作为通用API, 可以分别用在如下地方: 2.adbshellmodereboot 3.fastbootdownloadingmodereboot 4.recoverymodereboot 5.Chargingmodereboot 2./kernel/include/linux/reboot.h o定义了 __...
Init 处理 reboot init 中, 处理reboot的整理流程如下 Android 有一个专门的reboot命令,它的实现很简单。 core/reboot/reboot.c int main(int argc, char* argv[]) { int ret; size_t prop_len; char property_val[PROPERTY_VALUE_MAX]; static const char reboot[] = "reboot"; const char* cmd = re...
然后执行system/core/init/builtins.c#do_powerctl 函数,call android_reboot 重启或者关机。 为何工厂模式下无法adb reboot ? 正常情况下adb reboot 可以重启, 其关键就是因为mediatek/config/{platform}factory_init.rc 中没有定义 on property:sys.powerctl=* ...
做为一个不称职的老年码农,一直疏忽整理笔记,开博记录一下,用来丰富老年生活, « 上一篇 Android平台上ABI的确认 下一篇 » 引用和评论 注册登录 获取验证码 新手机号将自动注册 登录 微信登录免密码登录密码登录 继续即代表同意《服务协议》和《隐私政策》...
frameworks\base\core\java\com\android\internal\app\ShutdowThread.java 1.首先改GlobalActions.java 我们在CreateDialog()方法里面的:new SinglePressAction前面添加 new SinglePressAction( com.android.internal.R.drawable.ic_lock_reboot, R.string.global_action_reboot) { public void onPress() { // shutdo...
public static void reboot(String reason) throws IOException { rebootNative(reason);//调用JNI的reboo方法 } //声明rebootNative private static native void rebootNative(String reason) throws IOException ; … } Step4: 在android_os_Power.cpp文件: // #define HAVE_ANDROID_OS 1 static void android_os...