Merge pull request !1251 from cheng_jinsong/codex
This commit is contained in:
openharmony_ci 2022-09-19 11:05:40 +00:00 committed by Gitee
commit 15c4de23b6
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
7 changed files with 36 additions and 32 deletions

View File

@ -20,6 +20,7 @@ import argparse
import os import os
import sys import sys
def decode_cfg_line(data): def decode_cfg_line(data):
data.replace('\n', '').replace('\r', '') data.replace('\n', '').replace('\r', '')
data = data.strip() data = data.strip()
@ -30,17 +31,19 @@ def decode_cfg_line(data):
return "", "" return "", ""
return strs[0].strip(), strs[1].strip() return strs[0].strip(), strs[1].strip()
def get_param_from_cfg(cfg_name): def get_param_from_cfg(cfg_name):
dict = {} data_dict = {}
with open(cfg_name) as afile: with open(cfg_name) as afile:
data = afile.readline() data = afile.readline()
while data: while data:
name, value = decode_cfg_line(data) name, value = decode_cfg_line(data)
if len(name) != 0 and len(value) != 0: if len(name) != 0 and len(value) != 0:
dict[name] = value data_dict[name] = value
print("sample file name={%s %s}"%(name, value)) print("sample file name={%s %s}" % (name, value))
data = afile.readline() data = afile.readline()
return dict return data_dict
def decode_code_line(data): def decode_code_line(data):
data.replace('\n', '').replace('\r', '') data.replace('\n', '').replace('\r', '')
@ -53,21 +56,23 @@ def decode_code_line(data):
strs = data.split(',') strs = data.split(',')
if len(strs) <= 1: if len(strs) <= 1:
return "", "" return "", ""
return strs[0].strip(), data[len(strs[0]) + 1: ].strip() return strs[0].strip(), data[len(strs[0]) + 1:].strip()
def get_param_from_c_code(code_name): def get_param_from_c_code(code_name):
dict = {} data_dict = {}
with open(code_name, "r+") as afile: with open(code_name, "r+") as afile:
data = afile.readline() data = afile.readline()
while data: while data:
name, value = decode_code_line(data) name, value = decode_code_line(data)
if len(name) != 0 and len(value) != 0: if len(name) != 0 and len(value) != 0:
dict[name] = value data_dict[name] = value
data = afile.readline() data = afile.readline()
afile.truncate(0) afile.truncate(0)
return dict return data_dict
def write_map_to_code(code_name, dict):
def write_map_to_code(code_name, data_dict):
try: try:
with open(code_name, "w") as f: with open(code_name, "w") as f:
# start with 0 # start with 0
@ -91,13 +96,13 @@ def write_map_to_code(code_name, dict):
f.write(os.linesep + os.linesep) f.write(os.linesep + os.linesep)
# write data # write data
f.write('static Node g_paramDefCfgNodes[] = {' + os.linesep) f.write('static Node g_paramDefCfgNodes[] = {' + os.linesep)
for name, value in dict.items(): for name, value in data_dict.items():
if (value.startswith("\"")): if (value.startswith("\"")):
str = " PARAM_MAP({0}, {1})".format(name, value) tmp_str = " PARAM_MAP({0}, {1})".format(name, value)
f.write(str + os.linesep) f.write(tmp_str + os.linesep)
else: else:
str = " PARAM_MAP({0}, \"{1}\")".format(name, value) tmp_str = " PARAM_MAP({0}, \"{1}\")".format(name, value)
f.write(str + os.linesep) f.write(tmp_str + os.linesep)
f.write('};' + os.linesep + os.linesep) f.write('};' + os.linesep + os.linesep)
#end #end
@ -110,19 +115,21 @@ def write_map_to_code(code_name, dict):
f.write(os.linesep) f.write(os.linesep)
f.truncate() f.truncate()
except IOError: except IOError:
print("Error: open or write file %s fail"%{code_name}) print("Error: open or write file %s fail" % {code_name})
return 0 return 0
def add_to_code_dict(code_dict, cfg_dict, high = True):
def add_to_code_dict(code_dict, cfg_dict, high=True):
for name, value in cfg_dict.items(): for name, value in cfg_dict.items():
# check if name exit # check if name exit
has_key = name in code_dict #code_dict.has_key(name) has_key = name in code_dict
if has_key and high: if has_key and high:
code_dict[name] = value code_dict[name] = value
elif not has_key: elif not has_key:
code_dict[name] = value code_dict[name] = value
return code_dict return code_dict
def main(): def main():
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description='A common change param.para file to h.') description='A common change param.para file to h.')

View File

@ -74,7 +74,7 @@ static void RunSandbox(const std::string &sandboxName)
static void EnterShell() static void EnterShell()
{ {
char *argv[] = { const_cast<char *>("sh"), NULL }; char *argv[] = { const_cast<char *>("sh"), nullptr };
char *envp[] = { nullptr }; char *envp[] = { nullptr };
if (execve("/system/bin/sh", argv, envp) != 0) { if (execve("/system/bin/sh", argv, envp) != 0) {
std::cout << "execve sh failed! err = "<< errno << std::endl; std::cout << "execve sh failed! err = "<< errno << std::endl;

View File

@ -153,15 +153,9 @@ int SwitchRoot(const char *newRoot)
} }
struct stat oldRootStat = {}; struct stat oldRootStat = {};
if (stat("/", &oldRootStat) != 0) { INIT_ERROR_CHECK(stat("/", &oldRootStat) == 0, return -1, "Failed to get old root \"/\" stat");
INIT_LOGE("Failed to get old root \"/\" stat");
return -1;
}
DIR *oldRoot = opendir("/"); DIR *oldRoot = opendir("/");
if (oldRoot == NULL) { INIT_ERROR_CHECK(oldRoot != NULL, return -1, "Failed to open root dir \"/\"");
INIT_LOGE("Failed to open root dir \"/\"");
return -1;
}
struct stat newRootStat = {}; struct stat newRootStat = {};
if (stat(newRoot, &newRootStat) != 0) { if (stat(newRoot, &newRootStat) != 0) {
INIT_LOGE("Failed to get new root \" %s \" stat", newRoot); INIT_LOGE("Failed to get new root \" %s \" stat", newRoot);

View File

@ -91,9 +91,11 @@ bool SetSeccompPolicyWithName(const char *filterName)
strlen(filterName) + strlen(FILTER_NAME_FORMAT) - strlen("%s"), \ strlen(filterName) + strlen(FILTER_NAME_FORMAT) - strlen("%s"), \
FILTER_NAME_FORMAT, filterName); FILTER_NAME_FORMAT, filterName);
PLUGIN_CHECK(rc != -1, return false, "snprintf_s faiVribleName failed"); PLUGIN_CHECK(rc != -1, return false, "snprintf_s faiVribleName failed");
const char *filterLibRealPath = realpath(filterLibPath, NULL);
PLUGIN_CHECK(filterLibRealPath != NULL, return false, "format filter lib real path failed");
void *handler = dlopen(filterLibPath, RTLD_LAZY); void *handler = dlopen(filterLibRealPath, RTLD_LAZY);
PLUGIN_CHECK(handler != NULL, return false, "dlopen %s failed", filterLibPath); PLUGIN_CHECK(handler != NULL, return false, "dlopen %s failed", filterLibRealPath);
filterPtr = (struct sock_filter *)dlsym(handler, filterVaribleName); filterPtr = (struct sock_filter *)dlsym(handler, filterVaribleName);
PLUGIN_CHECK(filterPtr != NULL, dlclose(handler); PLUGIN_CHECK(filterPtr != NULL, dlclose(handler);

View File

@ -23,6 +23,7 @@
#define BUFFER_LENGTH 5 #define BUFFER_LENGTH 5
#define FD_COUNT 2 #define FD_COUNT 2
#define SLEEP_TIME 3
#define ENV_FD_HOLD_PREFIX "OHOS_FD_HOLD_" #define ENV_FD_HOLD_PREFIX "OHOS_FD_HOLD_"
static void SaveFds(const char *serviceName, int argc, char **argv) static void SaveFds(const char *serviceName, int argc, char **argv)
@ -70,13 +71,13 @@ int main(int argc, char **argv)
free(fds); free(fds);
outfdCount = 0; outfdCount = 0;
while (1) { while (1) {
sleep(3); sleep(SLEEP_TIME);
} }
} }
char *files[] = {"/data/test/1", "/data/test/2"}; char *files[] = {"/data/test/1", "/data/test/2"};
SaveFds("fd_holder_test", FD_COUNT, (char **)files); SaveFds("fd_holder_test", FD_COUNT, (char **)files);
while (1) { while (1) {
sleep(3); sleep(SLEEP_TIME);
} }
return 0; return 0;
} }

View File

@ -90,7 +90,7 @@ static void *ThreadRun(void *data)
parameterCtrl->empty = 0; parameterCtrl->empty = 0;
const char *paramValue = (config->action == ACTION_ADD) ? "added" : "removed"; const char *paramValue = (config->action == ACTION_ADD) ? "added" : "removed";
INIT_LOGI("[uevent] SystemSetParameter %s act %s", config->parameter, paramValue); INIT_LOGI("[uevent] SystemSetParameter %s act %s", config->parameter, paramValue);
size_t len = sprintf_s(paramName, sizeof(paramName), "startup.uevent.%s", config->parameter); int len = sprintf_s(paramName, sizeof(paramName), "startup.uevent.%s", config->parameter);
if ((len <= 0) || (SystemSetParameter(paramName, paramValue) != 0)) { if ((len <= 0) || (SystemSetParameter(paramName, paramValue) != 0)) {
INIT_LOGE("[uevent] SystemSetParameter %s failed", config->parameter); INIT_LOGE("[uevent] SystemSetParameter %s failed", config->parameter);
pthread_mutex_lock(&(parameterCtrl->parameterLock)); pthread_mutex_lock(&(parameterCtrl->parameterLock));

View File

@ -148,7 +148,7 @@ static void HandleRequiredDynamicDeviceNodes(const struct Uevent *uevent)
return; return;
} }
while (idx < sizeof(DYNAMIC_DEVICES)/sizeof(DYNAMIC_DEVICES[0])) { while (idx < sizeof(DYNAMIC_DEVICES) / sizeof(DYNAMIC_DEVICES[0])) {
if (strcmp(uevent->deviceName, DYNAMIC_DEVICES[idx].dev + DEV_NODE_PATH_PREFIX_LEN) != 0) { if (strcmp(uevent->deviceName, DYNAMIC_DEVICES[idx].dev + DEV_NODE_PATH_PREFIX_LEN) != 0) {
idx++; idx++;
continue; continue;