目录
环境平台:msm8953、android7.1.2、kernel3.18.31
1、问题描述
现象:关机状态下,插入USB充电会自动开机。
原因:是由于编译的是userdebug模式,而user模式进入的则是充电界面。所以与编译条件相关。
本文连接:https://blog.csdn.net/qq_33611327/article/details/106429500
2、源码涉及和解决
相关源码:ap/bootable/bootloader/lk/app/aboot/aboot.c
....
unsigned char*update_cmdline(const char* cmdline)
{
.....
}else if((target_build_variant_user() || device.charger_screen_enabled)
&& target_pause_for_battery_charge()){
pause_at_bootup = 1;
cmdline_len += strlen(battchg_pause);
}
....
}
target_build_variant_user()判断模式,只要是user模式,则会进入下一个判断target_pause_for_battery_charge()是否在充电,是则停止启动进入充电状态。
userdebug模式下解决方法
#fastboot oem enable-charger-screen //打开关机充电
#fastboot oem disable-charger-screen //关闭充电,自动开机
3、其他修改
init.c
if (!is_ffbm)
is_charger = !strcmp(bootmode, "charger");
......
if (is_charger)
action_for_each_trigger("charger", action_add_queue_tail);
.....
init.rc
on charger
class_start charger
init.qcom.rc
service charger /charger
class charger
system/core/healthd/Android.mk
即Symlink /charger to /sbin/healthd
LOCAL_MODULE := healthd
...
本文连接:https://blog.csdn.net/qq_33611327/article/details/106429500