diff --git a/recipes-openharmony/openharmony/files/openharmony-preinit b/recipes-openharmony/openharmony/files/openharmony-preinit
index 974f3881ef39eac5ce9708a6f12eee104030ace6..f5fe8193a0959bf6a3578e7e392230501b891a89 100644
--- a/recipes-openharmony/openharmony/files/openharmony-preinit
+++ b/recipes-openharmony/openharmony/files/openharmony-preinit
@@ -73,6 +73,9 @@ mkdir -p /data/vendor_ce
 mkdir -p /data/vendor_de
 mkdir -p /data/vendor/hardware
 mkdir -p /data/weston
+mkdir -p /data/log/hilog
+mkdir -p /data/log/faultlog/faultlogger
+mkdir -p /data/log/faultlog/temp
 mkdir -p /usr/lib/dri
 
 chmod -R 777 /data
@@ -100,6 +103,9 @@ if systemctl -q is-enabled param.service; then
 	sleep "$STARTUP_CMD_SLEEP"
 fi
 
+# Explicitly set default value to silence error message about parameter not being set
+setparam persist.ace.trace.enabled 0
+
 # - pre-init stage
 # - init stage
 
@@ -304,12 +310,14 @@ fi
 # "disabled" : 1
 if systemctl -q is-enabled hdcd.service; then
 	setparam persist.hdc.port 35000
+	setparam persist.hdc.root 1 # We are running hdcd as root
+	setparam ro.hdc.secure 0 # Do not enable secure mode
 	sleep "$STARTUP_CMD_SLEEP"
 
 	/system/bin/hdcd -t &
 fi
 
 if systemctl -q is-enabled faultloggerd.service; then
-	/usr/bin/install -m 775 -d /data/log/faultlog /data/log/faultlog/faultlogger /data/log/faultlog/temp/
+	setparam ro.logsystem.usertype 6 # UserType::OVERSEAS_COMMERCIAL
 	/system/bin/faultloggerd &
 fi
diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.0/init_lite-silence-GetControlFromEnv-spam.patch b/recipes-openharmony/openharmony/openharmony-standard-3.0/init_lite-silence-GetControlFromEnv-spam.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7f7fd6a9944a05db41d647ac0b6221cfec4de660
--- /dev/null
+++ b/recipes-openharmony/openharmony/openharmony-standard-3.0/init_lite-silence-GetControlFromEnv-spam.patch
@@ -0,0 +1,53 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+This patch is for //base/startup/init_lite repository of OpenHarmony 3.0
+
+When initializing sockets, no less than 2 info and 2 error messages are logged for each socket.  It is caused by a codepath that allows for specifying a socket fd using an environment variable. When the variable is not defined, all 4 messages are logged. As this is really the normal case, I have changed all 4 messages to debug messages.
+
+Signed-off-by: Esben Haabendal <esben@geanix.com>
+Upstream-Status: Pending
+
+diff --git a/interfaces/innerkits/socket/init_socket.c b/interfaces/innerkits/socket/init_socket.c
+index be64939e993e..247ba5bfbbfe 100755
+--- a/interfaces/innerkits/socket/init_socket.c
++++ b/interfaces/innerkits/socket/init_socket.c
+@@ -39,10 +39,10 @@ static int GetControlFromEnv(const char *path, int length)
+     if (path == NULL || length <= 0) {
+         return -1;
+     }
+-    INIT_LOGI("GetControlFromEnv path is %s ", path);
++    INIT_LOGD("GetControlFromEnv path is %s ", path);
+     const char *val = getenv(path);
+     if (val == NULL) {
+-        INIT_LOGE("GetControlFromEnv val is null %d", errno);
++        INIT_LOGD("GetControlFromEnv %s val is null", path);
+         return -1;
+     }
+     errno = 0;
+@@ -50,9 +50,9 @@ static int GetControlFromEnv(const char *path, int length)
+     if (errno) {
+         return -1;
+     }
+-    INIT_LOGI("GetControlFromEnv fd is %d ", fd);
++    INIT_LOGD("GetControlFromEnv fd is %d ", fd);
+     if (fcntl(fd, F_GETFD) < 0) {
+-        INIT_LOGE("GetControlFromEnv errno %d ", errno);
++        INIT_LOGE("GetControlFromEnv %s fnctl errno %d ", path, errno);
+         return -1;
+     }
+     return fd;
+@@ -67,10 +67,10 @@ int GetControlSocket(const char *name)
+     if (snprintf_s(path, sizeof(path), sizeof(path) - 1, OHOS_SOCKET_ENV_PREFIX"%s", name) == -1) {
+         return -1;
+     }
+-    INIT_LOGI("GetControlSocket path is %s ", path);
++    INIT_LOGD("GetControlSocket path is %s ", path);
+     int fd = GetControlFromEnv(path, MAX_SOCKET_ENV_PREFIX_LEN);
+     if (fd < 0) {
+-        INIT_LOGE("GetControlFromEnv fail ");
++        INIT_LOGD("GetControlFromEnv fail ");
+         return -1;
+     }
+     struct sockaddr_un addr;
diff --git a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb
index 10561a0eea9982924b15f1fd44e6160565703fcb..cd083d21f7f953228f10a3b4b3540f8a27a96f19 100644
--- a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb
+++ b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb
@@ -62,6 +62,7 @@ SRC_URI += "file://appspawn-procps.patch;patchdir=${S}/base/startup/appspawn_sta
 SRC_URI += "file://base_startup_appspawn_standard-disable-longProcName-resetting.patch;patchdir=${S}/base/startup/appspawn_standard"
 SRC_URI += "file://test_xts_acts-Align-tests-list-with-mandatory-set.patch;patchdir=${S}/test/xts/acts"
 
+SRC_URI += "file://init_lite-silence-GetControlFromEnv-spam.patch;patchdir=${S}/base/startup/init_lite"
 SRC_URI += "file://param_service_standalone.patch;patchdir=${S}/base/startup/init_lite"
 SRC_URI += "file://param_service-Add-to-startup-l2-part.patch;patchdir=${S}/base/startup/appspawn_standard"