reboot_mode = check_hard_reboot_mode(); #else reboot_mode = check_reboot_mode(); #endif } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. boot_into_fastboot跟boot_into_recovery均为全局变量,用来记录是否进入fastboot跟recovery; 我们在LK的config.h中并未看到USE_PON_REBOOT_REG的定义,所以调用...
{kernel_shutdown_prepare(SYSTEM_POWER_OFF);// 执行重启的准备工作:调用reboot通知队列,关闭usermodehelper,关闭所有设备if(pm_power_off_prepare)pm_power_off_prepare();migrate_to_reboot_cpu();// 迁移所有任务到cpu0上syscore_shutdown();// 关闭syscore设备pr_emerg("Power down\n");kmsg_dump(KMSG_...
1:如果按键就会进入recovery 2:如果check_boot_mode是recovery的时候就会做 3 : 如果recovery_init返回的是真的话就会进入recovery mode 第一种很好理解,标准就是 第二种会去读smem unsigned check_reboot_mode(void) { unsigned mode[2] = {0, 0}; unsigned int mode_len = sizeof(mode); unsigned smem_...
}elseif(reboot_target =="recovery") {// reboot,recoverybootloader_message boot = {};if(std::string err; !read_bootloader_message(&boot, &err)) {LOG(ERROR) <<"Failed to read bootloader message: "<< err; }// Update the boot command field if it's empty, and preserve// the other ...
* Reboot into the recovery system to wipe the /cache partition. * 重启系统来删除 /cache目录文件 * @throws IOException if something goes wrong. */ public static void rebootWipeCache(Context context) throws IOException { bootCommand(context, "--wipe_cache"); ...
7.* This is not safe to call in interrupt context. 8.*/ 9.void kernel_restart(char *cmd) 10.{ 11.kernel_restart_prepare(cmd); 12.if (!cmd) 13.printk(KERN_EMERG "Restarting system.\n"); 14.else 15.printk(KERN_EMERG "Restarting system with command '%s'.\n", cmd); 16.kmsg_...
[cpp] void kernel_power_off(void) { kernel_shutdown_prepare(SYSTEM_POWER_OFF); if (pm_power_off_prepare) pm_power_off_prepare(); disable_nonboot_cpus(); syscore_shutdown(); printk(KERN_EMERG "Power down.\n"); kmsg_dump(KMSG_DUMP_POWEROFF); machine_power_off(); } EXPORT_SYMBOL_...