off charging mode flow
2024-09-04 16:52:16
/system/core/init/init.cpp
.....
.....
.....
int main(int argc, char** argv) {
.....
.....
.....
// Don't mount filesystems or start core system services in charger mode.
std::string bootmode = GetProperty("ro.bootmode", "");
if (bootmode == "charger") {
am.QueueEventTrigger("charger");
} else {
am.QueueEventTrigger("late-init");
}
.....
.....
.....
/system/core/rootdir/init.rc
.....
.....
.....
on charger
class_start charger
.....
.....
.....
/system/core/healthd/Android.mk
.....
.....
.....
LOCAL_SRC_FILES := \
charger.cpp \
LOCAL_MODULE := charger
.....
.....
.....
/system/core/healthd/charger.cpp
int healthd_charger_main(int argc, char** argv) {
int ch;
healthd_mode_ops = &charger_ops;
while ((ch = getopt(argc, argv, "cr")) != -1) {
switch (ch) {
case 'c':
// -c is now a noop
break;
case 'r':
// force nops for recovery
healthd_mode_ops = &healthd_nops;
break;
case '?':
default:
KLOG_ERROR(LOG_TAG, "Unrecognized charger option: %c\n",
optopt);
exit(1);
}
}
return healthd_main();
}
int main(int argc, char** argv) {
return healthd_charger_main(argc, argv);
}
[To Be Continued]
最新文章
- [Unity3D]NGUI用Sprite动画和屏幕自适应做游戏开始场景
- bootstrap-table 分页的问题
- 三、图像移动《苹果iOS实例编程入门教程》
- 转:javascript 中select的取值
- MYSQL 分析表、检查表和优化表
- 关于LEA指令(单周期就可以做简单的算术计算)
- 模拟jquery封装选择器
- C++标准程序库读书笔记-第二章新的语言特性
- Android installed app, never used, cannot receiver BroadcastReceiver
- 2.3 LINQ查询表达式中 使用select子句 指定目标数据
- php 处理并发问题
- 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器
- 听说你的MES系统又失败了?
- 重装系统windows10/8/7,绝对纯净版永久激活的详细步骤和固态硬盘找不到分区的原因
- 目标指定法——S.M.A.R.T.
- Go语言规格说明书 之 结构体类型(Struct types)
- Android_ViewPager_实现多个图片水平滚动
- Win10累积更新KB3081424安装失败的解决方法
- 命名空间p方式的属性注入
- SparkSQL中的自定义函数UDF