android_reboot强制重启 目录 一、简介 二、数据保存 三、app重启 一、简介 在道长重做轨迹功能的过程中,产品经理提出由于app需要,不仅需要保证app长时间的运行在后台,而且保证被杀重新启动时恢复数据。之前道长已经分享保证app长时间的运行在后台,如果需要就点击传送门:Android:越来越难实现的进程保活。由于android对于...
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...
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 = reboot; char* optarg = ""; opterr = 0; ... ret = property_set(ANDROID_RB_PROPERTY, property_v...
Init 中 Reboot 流程 Android framework 处理完 Reboot 流程后,更新了属性sys.powerctl。Init 正是依靠该属性来执行底层 Reboot 动作。Init 对 Reboot 的处理主要为以下几个方面: 1,进程监控属性sys.powerctl的改变。 /system/core/init/init.cppvoidPropertyChanged(conststd::string& name,conststd::string& value...
public static void rebootWipeCache(Context context) throws IOException { bootCommand(context, "--wipe_cache"); } 这几个函数功能的注释写的很清楚,android系统做 wipe_data、wipe_cache、OTA升级就是调用的这三个函数。具体在哪调用的我们不一一列举了,简单说一下,比如rebootWipeUserData是在回复出厂设置时候...
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定义了 __...
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...
然后执行system/core/init/builtins.c#do_powerctl 函数,call android_reboot 重启或者关机。 为何工厂模式下无法adb reboot ? 正常情况下adb reboot 可以重启, 其关键就是因为mediatek/config/{platform}factory_init.rc 中没有定义 on property:sys.powerctl=* ...
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...