aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init/Android.mk4
-rw-r--r--init/init_msm8996.cpp57
2 files changed, 33 insertions, 28 deletions
diff --git a/init/Android.mk b/init/Android.mk
index 6ee7ecf..f4dd71d 100644
--- a/init/Android.mk
+++ b/init/Android.mk
@@ -19,7 +19,9 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
-LOCAL_C_INCLUDES := system/core/init
+LOCAL_C_INCLUDES := \
+ system/core/base/include \
+ system/core/init
LOCAL_CFLAGS := -Wall -DANDROID_TARGET=\"$(TARGET_BOARD_PLATFORM)\"
LOCAL_SRC_FILES := init_msm8996.cpp
LOCAL_MODULE := libinit_msm8996
diff --git a/init/init_msm8996.cpp b/init/init_msm8996.cpp
index 5b6c7ec..4c23b67 100644
--- a/init/init_msm8996.cpp
+++ b/init/init_msm8996.cpp
@@ -31,43 +31,46 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/sysinfo.h>
+
+#include <android-base/strings.h>
+
#include "property_service.h"
#include "vendor_init.h"
#include "log.h"
#include "util.h"
+using android::base::Trim;
+
char const *heapminfree;
char const *heapmaxfree;
static void init_alarm_boot_properties()
{
- int boot_reason;
- FILE *fp;
-
- fp = fopen("/proc/sys/kernel/boot_reason", "r");
- fscanf(fp, "%d", &boot_reason);
- fclose(fp);
-
- /*
- * Setup ro.alarm_boot value to true when it is RTC triggered boot up
- * For existing PMIC chips, the following mapping applies
- * for the value of boot_reason:
- *
- * 0 -> unknown
- * 1 -> hard reset
- * 2 -> sudden momentary power loss (SMPL)
- * 3 -> real time clock (RTC)
- * 4 -> DC charger inserted
- * 5 -> USB charger inserted
- * 6 -> PON1 pin toggled (for secondary PMICs)
- * 7 -> CBLPWR_N pin toggled (for external power supply)
- * 8 -> KPDPWR_N pin toggled (power key pressed)
- */
- if (boot_reason == 3) {
- property_set("ro.alarm_boot", "true");
- } else {
- property_set("ro.alarm_boot", "false");
- }
+ char const *boot_reason_file = "/proc/sys/kernel/boot_reason";
+ std::string boot_reason;
+
+ if (read_file(boot_reason_file, &boot_reason)) {
+ /*
+ * Setup ro.alarm_boot value to true when it is RTC triggered boot up
+ * For existing PMIC chips, the following mapping applies
+ * for the value of boot_reason:
+ *
+ * 0 -> unknown
+ * 1 -> hard reset
+ * 2 -> sudden momentary power loss (SMPL)
+ * 3 -> real time clock (RTC)
+ * 4 -> DC charger inserted
+ * 5 -> USB charger inserted
+ * 6 -> PON1 pin toggled (for secondary PMICs)
+ * 7 -> CBLPWR_N pin toggled (for external power supply)
+ * 8 -> KPDPWR_N pin toggled (power key pressed)
+ */
+ if (Trim(boot_reason) == "3") {
+ property_set("ro.alarm_boot", "true");
+ } else {
+ property_set("ro.alarm_boot", "false");
+ }
+ }
}
void check_device()