diff --git a/init/init_land.cpp b/init/init_land.cpp index 6c4c0bf..10c4a1a 100644 --- a/init/init_land.cpp +++ b/init/init_land.cpp @@ -54,10 +54,13 @@ char const *large_cache_height; static void init_alarm_boot_properties() { char const *boot_reason_file = "/proc/sys/kernel/boot_reason"; + char const *power_off_alarm_file = "/persist/alarm/powerOffAlarmSet"; std::string boot_reason; + std::string power_off_alarm; std::string reboot_reason = property_get("ro.boot.alarmboot"); - if (read_file(boot_reason_file, &boot_reason)) { + if (read_file(boot_reason_file, &boot_reason) + && read_file(power_off_alarm_file, &power_off_alarm)) { /* * Setup ro.alarm_boot value to true when it is RTC triggered boot up * For existing PMIC chips, the following mapping applies @@ -73,7 +76,8 @@ static void init_alarm_boot_properties() * 7 -> CBLPWR_N pin toggled (for external power supply) * 8 -> KPDPWR_N pin toggled (power key pressed) */ - if (Trim(boot_reason) == "3" || reboot_reason == "true") { + if ((Trim(boot_reason) == "3" || reboot_reason == "true") + && Trim(power_off_alarm) == "1") { property_set("ro.alarm_boot", "true"); } else { property_set("ro.alarm_boot", "false");