diff --git a/begetd.gni b/begetd.gni index cd1a134c4fece50734fa86beb875d00b33ad9d4b..920fc32d0018e7bf593635322bcfb935089b85f1 100755 --- a/begetd.gni +++ b/begetd.gni @@ -21,9 +21,8 @@ declare_args() { enable_ohos_startup_init_feature_begetctl_liteos = false enable_ohos_startup_init_lite_use_thirdparty_mbedtls = true enable_ohos_startup_init_lite_use_posix_file_api = false + enable_ohos_startup_init_feature_loader = false config_ohos_startup_init_lite_data_path = "" - if (defined(product_name) && product_name == "rk3568") { - boot_kernel_extended_cmdline = - "hardware=rk3568 default_boot_device=fe310000.sdhci" - } + + # boot_kernel_extended_cmdline for extend cmdline } diff --git a/services/begetctl/BUILD.gn b/services/begetctl/BUILD.gn index 915707a94bef5df1438edabb55e0ad564b884a40..6b3d876f708da7f4e157df00c34ae4c4ba6cd4aa 100755 --- a/services/begetctl/BUILD.gn +++ b/services/begetctl/BUILD.gn @@ -73,7 +73,7 @@ if (defined(ohos_lite)) { defines = [ "_GNU_SOURCE" ] - if (defined(product_name) && product_name == "rk3568") { + if (enable_ohos_startup_init_feature_loader) { defines += [ "PRODUCT_RK" ] } diff --git a/services/init/standard/BUILD.gn b/services/init/standard/BUILD.gn index d001aaee939bf8155d4c1347505b8931c2d8e78f..66bdfee60ca93cb9fc8151132ff5e2a8bcf361ec 100644 --- a/services/init/standard/BUILD.gn +++ b/services/init/standard/BUILD.gn @@ -121,7 +121,7 @@ ohos_executable("init") { defines += [ "ASAN_DETECTOR" ] } - if (defined(product_name) && product_name == "rk3568") { + if (enable_ohos_startup_init_feature_loader) { defines += [ "PRODUCT_RK" ] } version_script = get_label_info( diff --git a/services/param/linux/BUILD.gn b/services/param/linux/BUILD.gn index 33f9576ae76e282623938484bae8acd59520fb3c..8324cc7faedee8542b9b0fea0ccb16bc80aa3d3d 100755 --- a/services/param/linux/BUILD.gn +++ b/services/param/linux/BUILD.gn @@ -108,10 +108,6 @@ if (defined(ohos_lite)) { defines += [ "BOOT_EXTENDED_CMDLINE=\"${boot_kernel_extended_cmdline}\"" ] } - if ("${product_name}" == "m40") { - defines += [ "USE_MTK_EMMC" ] - } - if (build_selinux) { include_dirs += [ "//third_party/selinux/libselinux/include/", diff --git a/services/param/manager/param_server.c b/services/param/manager/param_server.c index e75a0c8285cc30c722e54971b818c872d7d513ce..5074e783337461fed509c7e003b82ab7b200b293 100755 --- a/services/param/manager/param_server.c +++ b/services/param/manager/param_server.c @@ -58,34 +58,10 @@ static int CommonDealFun(const char *name, const char *value, int res) return ret; } -static int SnDealFun(const char *name, const char *value, int res) +static int ReadSnFromFile(const char *name, const char *file) { -#ifdef USE_MTK_EMMC - static const char SN_FILE[] = {"/proc/bootdevice/cid"}; -#else - static const char SN_FILE[] = {"/sys/block/mmcblk0/device/cid"}; -#endif - int ret = CheckParamName(name, 0); - PARAM_CHECK(ret == 0, return ret, "Invalid name %s", name); - char *data = NULL; - if (res != 0) { // if cmdline not set sn or set sn value is null,read sn from default file - data = ReadFileData(SN_FILE); - if (data == NULL) { - PARAM_LOGE("Error, Read sn from default file failed!"); - return -1; - } - } else if (value[0] == '/') { - data = ReadFileData(value); - if (data == NULL) { - PARAM_LOGE("Error, Read sn from cmdline file failed!"); - return -1; - } - } else { - PARAM_LOGV("**** name %s, value %s", name, value); - ret = WriteParam(name, value, NULL, 0); - PARAM_CHECK(ret == 0, return ret, "Failed to write param %s %s", name, value); - return ret; - } + char *data = ReadFileData(file); + PARAM_CHECK(data != NULL, return -1, "Read sn from %s file failed!", file); int index = 0; for (size_t i = 0; i < strlen(data); i++) { @@ -100,11 +76,38 @@ static int SnDealFun(const char *name, const char *value, int res) } data[index] = '\0'; PARAM_LOGV("**** name %s, value %s", name, data); - ret = WriteParam(name, data, NULL, 0); - PARAM_CHECK(ret == 0, free(data); - return ret, "Failed to write param %s %s", name, data); + int ret = WriteParam(name, data, NULL, 0); free(data); + PARAM_CHECK(ret == 0, return ret, "Failed to write param %s %s", name, data); + return ret; +} +static int SnDealFun(const char *name, const char *value, int res) +{ + const char *snFileList [] = { + "/sys/block/mmcblk0/device/cid", + "/proc/bootdevice/cid" + }; + int ret = CheckParamName(name, 0); + PARAM_CHECK(ret == 0, return ret, "Invalid name %s", name); + if (value != NULL && res == 0 && value[0] != '/') { + PARAM_LOGV("**** name %s, value %s", name, value); + ret = WriteParam(name, value, NULL, 0); + PARAM_CHECK(ret == 0, return ret, "Failed to write param %s %s", name, value); + return ret; + } + if (value != NULL && value[0] == '/') { + ret = ReadSnFromFile(name, value); + if (ret == 0) { + return ret; + } + } + for (size_t i = 0; i < ARRAY_LENGTH(snFileList); i++) { + ret = ReadSnFromFile(name, snFileList[i]); + if (ret == 0) { + break; + } + } return ret; }