高通平台关机充电直接开机

高通平台关机充电直接开机

修改文件及记录如下:
bootable/bootloader/lk/app/aboot/aboot.c

diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 2419b95..855f685 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -537,6 +537,8 @@ unsigned char *update_cmdline(const char * cmdline)
        if(is_mdtp_activated)
                cmdline_len += strlen(mdtp_activated_flag);
 #endif
+
+    dprintf(DEBUG, "UpdateCmdLine ====== device.charger_screen_enabled ============= %d\n",device.charger_screen_enabled);
        if (boot_into_ffbm) {
                cmdline_len += strlen(androidboot_mode);
 
@@ -548,7 +550,8 @@ unsigned char *update_cmdline(const char * cmdline)
                cmdline_len += strlen(loglevel);
        } else if (boot_reason_alarm) {
                cmdline_len += strlen(alarmboot_cmdline);
-       } else if (target_pause_for_battery_charge() && !boot_into_recovery) {
+        /* modify by hhm for ID1086449 on 2021-10-11*/
+       } else if (device.charger_screen_enabled && target_pause_for_battery_charge() && !boot_into_recovery) {
                pause_at_bootup = 1;
                cmdline_len += strlen(battchg_pause);
        }

除此修改之外,debug版本也可以通过fastboot指令实现此功能
fastboot 指令主要通过修改charger_screen_enabled。相关代码块如下,有兴趣可以研究下


fastboot oem enable-charger-screen  打开关机充电功能
fastboot oem disable-charger-screen  关闭关机充电功能
struct fastboot_cmd_desc cmd_list[] = {
                        /* By default the enabled list is empty. */
                        {"", NULL},
                        /* move commands enclosed within the below ifndef to here
                         * if they need to be enabled in user build.
                         */
#ifndef DISABLE_FASTBOOT_CMDS
                        /* Register the following commands only for non-user builds */
                        {"flash:", cmd_flash},
                        {"erase:", cmd_erase},
                        {"boot", cmd_boot},
                        {"continue", cmd_continue},
                        {"reboot", cmd_reboot},
                        {"reboot-bootloader", cmd_reboot_bootloader},
                        {"oem unlock", cmd_oem_unlock},
                        {"oem unlock-go", cmd_oem_unlock_go},
                        {"oem lock", cmd_oem_lock},
                        {"flashing unlock", cmd_oem_unlock},
                        {"flashing lock", cmd_oem_lock},
                        {"flashing lock_critical", cmd_flashing_lock_critical},
                        {"flashing unlock_critical", cmd_flashing_unlock_critical},
                        {"flashing get_unlock_ability", cmd_flashing_get_unlock_ability},
                        {"oem device-info", cmd_oem_devinfo},
                        {"preflash", cmd_preflash},
                        {"oem enable-charger-screen", cmd_oem_enable_charger_screen},                                                                                                                       
                        {"oem disable-charger-screen", cmd_oem_disable_charger_screen},
                        {"oem off-mode-charge", cmd_oem_off_mode_charger},
                        {"oem select-display-panel", cmd_oem_select_display_panel},
                        {"set_active",cmd_set_active},
#if DYNAMIC_PARTITION_SUPPORT
                        {"reboot-fastboot",cmd_reboot_fastboot},
                        {"reboot-recovery",cmd_reboot_recovery},
#endif
#if UNITTEST_FW_SUPPORT
                        {"oem run-tests", cmd_oem_runtests},
#endif
#endif
                        };

void cmd_oem_enable_charger_screen(const char *arg, void *data, unsigned size)
{
    dprintf(INFO, "Enabling charger screen check\n");
    device.charger_screen_enabled = 1;                                                                                                                                                                      
    write_device_info(&device);
    fastboot_okay("");
}

void cmd_oem_disable_charger_screen(const char *arg, void *data, unsigned size)
{
    dprintf(INFO, "Disabling charger screen check\n");
    device.charger_screen_enabled = 0;
    write_device_info(&device);
    fastboot_okay("");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值