提交 57add6a5 编写于 作者: T toutes

fix animation and battery event

Signed-off-by: Ntoutes <zhaoruiyuan2@huawei.com>
Change-Id: I6f5ce6cf1bd26da2382e3ab05ea9f8ade1e88bfe
上级 58a8bbb3
......@@ -35,6 +35,8 @@ typedef struct {
#define DECIMAL_BASE 10
#define WAIT_MAX_SECOND 5
#define MAX_BUFFER_LEN 256
#define CMDLINE_VALUE_LEN_MAX 512
#define PARAM_CMD_LINE "/proc/cmdline"
#define ARRAY_LENGTH(array) (sizeof((array)) / sizeof((array)[0]))
uid_t DecodeUid(const char *name);
......@@ -54,6 +56,7 @@ int ReadFileInDir(const char *dirPath, const char *includeExt,
char **SplitStringExt(char *buffer, const char *del, int *returnCount, int maxItemCount);
void FreeStringVector(char **vector, int count);
int InUpdaterMode(void);
int InChargerMode(void);
int StringReplaceChr(char *strl, char oldChr, char newChr);
int GetMapValue(const char *name, const InitArgInfo *infos, int argNum, int defValue);
......
......@@ -44,6 +44,7 @@ int DoJobNow(const char *jobName);
#define INIT_CONFIGURATION_FILE "/etc/init.without_two_stages.cfg"
#endif
#define OTHER_CFG_PATH "/system/etc/init"
#define OTHER_CHARGE_PATH "/system/etc/charge"
#define MAX_PATH_ARGS_CNT 20
void ReadConfig(void);
......
......@@ -93,7 +93,10 @@ static void ParseAllImports(const cJSON *root)
void ReadConfig(void)
{
// parse cfg
if (InUpdaterMode() == 0) {
if (InChargerMode() == 1) {
ParseInitCfg(INIT_CONFIGURATION_FILE, NULL);
ReadFileInDir(OTHER_CHARGE_PATH, ".cfg", ParseInitCfg, NULL);
} else if (InUpdaterMode() == 0) {
ParseInitCfg(INIT_CONFIGURATION_FILE, NULL);
ReadFileInDir(OTHER_CFG_PATH, ".cfg", ParseInitCfg, NULL);
ReadFileInDir("/vendor/etc/init", ".cfg", ParseInitCfg, NULL);
......
......@@ -684,6 +684,7 @@ static int LoadParamFromCmdLine(void)
static const char *cmdLines[] = {
OHOS_BOOT"hardware",
OHOS_BOOT"bootgroup",
OHOS_BOOT"reboot_reason",
#ifdef STARTUP_INIT_TEST
OHOS_BOOT"mem",
OHOS_BOOT"console",
......
......@@ -411,6 +411,21 @@ int InUpdaterMode(void)
}
}
int InChargerMode(void)
{
char *data = ReadFileData(PARAM_CMD_LINE);
char value[CMDLINE_VALUE_LEN_MAX];
int ret = 0;
if ((GetProcCmdlineValue("reboot_reason", data, value, CMDLINE_VALUE_LEN_MAX) == 0) &&
(strcmp(value, "poweroff_charge") == 0)) {
ret = 1;
}
INIT_LOGE("GetProcCmdlineValue():reboot_reason=%s ,ret=%d\n", value, ret);
free(data);
return ret;
}
int StringReplaceChr(char *strl, char oldChr, char newChr)
{
INIT_ERROR_CHECK(strl != NULL, return -1, "Invalid parament");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册