展会信息港展会大全

Android: Android Reboot流程
来源:互联网   发布日期:2015-09-24 18:52:25   浏览:2247次  

导读:reboot systemcase1: factory resetSettings/src/com/android/settings/MasterClear.java sendBroadcast(new Intent(android.intent.action.MASTER_CLEAR));-frameworks/base/services/java/com/android......

reboot system

case1: factory reset

Settings/src/com/android/settings/MasterClear.java

sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR"));

->

frameworks/base/services/java/com/android/server/MasterClearReceiver.java

RecoverySystem.rebootWipeUserData(context);

->

frameworks/base/core/java/android/os/RecoverySystem.java

bootCommand(context, "--wipe_data");

->

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);

pm.reboot("recovery");

->

frameworks/base/services/java/com/android/server/PowerManagerService.java

public void reboot(String reason){

ShutdownThread.reboot(mContext, finalReason, false);

}

->

frameworks/base/core/java/com/android/internal/app/ShutdownThread.java

rebootOrShutdown(){

Power.reboot(reason);

}

->

frameworks/base/core/java/android/os/Power.java

rebootNative(reason);

->

frameworks/base/core/jni/anroid_os_Power.cpp

__reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (char*) chars);

->

kernel/kernel/sys.c

case LINUX_REBOOT_CMD_RESTART2:

kernel_restart(buffer);

->

machine_restart(cmd);

->

kernel/arch/arm/kernel/process.c

void arm_machine_restart(char mode, const char *cmd){

//set flag and reboot

}

赞助本站

人工智能实验室

相关热词: Reboot

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港