diff --git a/recipes-openharmony/openharmony/files/openharmony-preinit b/recipes-openharmony/openharmony/files/openharmony-preinit
index 51527e19f6bcd3cebb72654ddc0f66fe5538f85b..08f3426238b688ffc880e1cc68eedff1b0be9675 100644
--- a/recipes-openharmony/openharmony/files/openharmony-preinit
+++ b/recipes-openharmony/openharmony/files/openharmony-preinit
@@ -75,8 +75,11 @@ mkdir -p /data/vendor/hardware
 mkdir -p /data/weston
 mkdir -p /usr/lib/dri
 
-# /dev/binder needs to be rw for all users
+chmod -R 777 /data
+
+# /dev/binder and /dev/ashmem need to be rw for all users
 chmod 666 /dev/binder
+chmod 666 /dev/ashmem
 
 # /dev/dri/card0 needs to be rw for all users
 if [ -c /dev/dri/card0 ]; then
diff --git a/recipes-openharmony/openharmony/files/openharmony-preinit.service b/recipes-openharmony/openharmony/files/openharmony-preinit.service
index 873db0daf2c3f59ade21ac51709cc688722762e5..3b3fc0173a53ae716fff6cd5f3f4349e867f0ed9 100644
--- a/recipes-openharmony/openharmony/files/openharmony-preinit.service
+++ b/recipes-openharmony/openharmony/files/openharmony-preinit.service
@@ -4,6 +4,7 @@ Description=OpenHarmony pre-init setup
 [Service]
 Type=oneshot
 ExecStart=/bin/sh /usr/sbin/openharmony-preinit
+RemainAfterExit=yes
 
 [Install]
 WantedBy=multi-user.target
diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.0/RenderText-PerformLayout-remove-sigsegv-code.patch b/recipes-openharmony/openharmony/openharmony-standard-3.0/RenderText-PerformLayout-remove-sigsegv-code.patch
new file mode 100644
index 0000000000000000000000000000000000000000..cbbafe068d37db92f74a6c7d24cdb2e4a04ff4c5
--- /dev/null
+++ b/recipes-openharmony/openharmony/openharmony-standard-3.0/RenderText-PerformLayout-remove-sigsegv-code.patch
@@ -0,0 +1,31 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+RenderText::PerformLayout() is causing a SIGSEGV for some reasons. 
+The error appears to be raised in the Measure method(). This is
+causing hap applications to crash, including ACTS test suites.
+As a temporary solution we are removing the part of the code that
+is raising the segfault. The side effect of this is that texts are 
+not properly rendered.
+
+Apply to foundation/ace/ace_engine
+
+Signed-off-by: Francesco Pham <francesco.pham@huawei.com>
+Upstream-Status: Inappropriate
+
+diff --git a/frameworks/core/components/text/render_text.cpp b/frameworks/core/components/text/render_text.cpp
+index f3135d3c..813d6179 100644
+--- a/frameworks/core/components/text/render_text.cpp
++++ b/frameworks/core/components/text/render_text.cpp
+@@ -133,8 +133,8 @@ void RenderText::PerformLayout()
+     if (pipelineContext) {
+         UpdateIfChanged(dipScale_, pipelineContext->GetDipScale());
+     }
+-    Size size = Measure();
+-    SetLayoutSize(GetLayoutParam().Constrain(size));
++    // Size size = Measure();
++    // SetLayoutSize(GetLayoutParam().Constrain(size));
+     for (const auto& spanChild : GetChildren()) {
+         if (spanChild) {
+             const auto& param = GetLayoutParam();
diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.0/remove-root-uid-check.patch b/recipes-openharmony/openharmony/openharmony-standard-3.0/remove-root-uid-check.patch
new file mode 100644
index 0000000000000000000000000000000000000000..330fc3f0c826ae8cbaef8bf90e324c013af9f132
--- /dev/null
+++ b/recipes-openharmony/openharmony/openharmony-standard-3.0/remove-root-uid-check.patch
@@ -0,0 +1,33 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+OpenHarmony uses couple of UIDs/GIDs for running it's services.
+Currently in meta-openharmony we have everything run as root, which 
+causes some issues in starting abilities. As a temporary workaround
+we are removing the Uid check.
+
+Apply to foundation/aafwk/standard
+
+Signed-off-by: Francesco Pham <francesco.pham@huawei.com>
+Upstream-Status: Inappropriate
+
+diff --git a/services/abilitymgr/include/ability_util.h b/services/abilitymgr/include/ability_util.h
+index a090a1eb..d495a75b 100644
+--- a/services/abilitymgr/include/ability_util.h
++++ b/services/abilitymgr/include/ability_util.h
+@@ -144,10 +144,10 @@ static sptr<AppExecFwk::IBundleMgr> GetBundleManager()
+         if (callerUid == -1) {
+             callerUid = IPCSkeleton::GetCallingUid();
+         }
+-        if (ROOT_UID == callerUid) {
+-            HILOG_ERROR("uid is root,ability cannot be start when the visible is false");
+-            return ABILITY_VISIBLE_FALSE_DENY_REQUEST;
+-        }
++        // if (ROOT_UID == callerUid) {
++        //     HILOG_ERROR("uid is root,ability cannot be start when the visible is false");
++        //     return ABILITY_VISIBLE_FALSE_DENY_REQUEST;
++        // }
+         auto bms = GetBundleManager();
+         CHECK_POINTER_AND_RETURN(bms, GET_ABILITY_SERVICE_FAILED);
+         auto isSystemApp = bms->CheckIsSystemAppByUid(callerUid);
diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.0/test-xts-acts-Start-tests-from-onInit.patch b/recipes-openharmony/openharmony/openharmony-standard-3.0/test-xts-acts-Start-tests-from-onInit.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5dc477a65b05cf1611041e25bc31354ba20f69c3
--- /dev/null
+++ b/recipes-openharmony/openharmony/openharmony-standard-3.0/test-xts-acts-Start-tests-from-onInit.patch
@@ -0,0 +1,691 @@
+From a2f2299afa37a20dccf2bfbc7fcf3d6a96759d93 Mon Sep 17 00:00:00 2001
+From: Robert Drab <robert.drab@huawei.com>
+Date: Fri, 30 Sep 2022 10:28:29 +0200
+Subject: [PATCH] test/xts/acts: Start tests from onInit
+
+Currently, due to some services/graphics issues onShow callback is not being
+called and therefore tests are not executed. For screen-less devices graphics
+stack should not be required and therefore moving test execution to onInit
+
+Signed-off-by: Robert Drab <robert.drab@huawei.com>
+---
+ .../entry/src/main/js/default/pages/index/index.js          | 6 +++---
+ .../entry/src/main/js/default/pages/index/index.js          | 4 ++--
+ .../entry/src/main/js/default/pages/index/index.js          | 4 ++--
+ .../entry/src/main/js/default/pages/index/index.js          | 4 ++--
+ .../src/main/js/default/pages/index/index.js                | 6 +++---
+ .../src/main/js/default/pages/index/index.js                | 6 +++---
+ .../src/main/js/default/pages/index/index.js                | 6 +++---
+ .../src/main/js/default/pages/index/index.js                | 6 +++---
+ .../startability/src/main/js/default/pages/index/index.js   | 4 ++--
+ .../src/main/js/default/pages/index/index.js                | 6 +++---
+ .../src/main/js/default/pages/index/index.js                | 4 ++--
+ .../entry/src/main/js/default/pages/index/index.js          | 4 ++--
+ .../src/main/js/default/pages/index/index.js                | 4 ++--
+ .../entry/src/main/js/default/pages/index/index.js          | 6 +++---
+ .../entry/src/main/js/default/pages/index/index.js          | 4 ++--
+ .../entry/src/main/js/default/pages/index/index.js          | 6 +++---
+ .../entry/src/main/js/default/pages/index/index.js          | 6 +++---
+ .../entry/src/main/js/default/pages/index/index.js          | 6 +++---
+ .../entry/src/main/js/default/pages/index/index.js          | 6 +++---
+ .../entry/src/main/js/default/pages/index/index.js          | 4 ++--
+ .../entry/src/main/js/default/pages/index/index.js          | 4 ++--
+ .../bmssceneeight/src/main/js/default/pages/index/index.js  | 2 +-
+ .../wifi_standard/src/main/js/default/pages/index/index.js  | 4 ++--
+ .../hap/src/main/js/default/pages/index/index.js            | 6 +++---
+ .../hap/src/main/js/default/pages/index/index.js            | 6 +++---
+ .../src/main/js/default/pages/index/index.js                | 6 +++---
+ .../src/main/js/default/pages/index/index.js                | 6 +++---
+ .../src/main/js/default/pages/index/index.js                | 4 ++--
+ 28 files changed, 70 insertions(+), 70 deletions(-)
+
+diff --git a/aafwk/aafwk_standard/amsdatauriutils/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/amsdatauriutils/entry/src/main/js/default/pages/index/index.js
+index 4bfa4f7e4..9cc6b872b 100644
+--- a/aafwk/aafwk_standard/amsdatauriutils/entry/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/amsdatauriutils/entry/src/main/js/default/pages/index/index.js
+@@ -22,8 +22,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('====onShow finish====<')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -39,6 +37,8 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+-}
+\ No newline at end of file
++}
+diff --git a/aafwk/aafwk_standard/amszipfileunzipfilest/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/amszipfileunzipfilest/entry/src/main/js/default/pages/index/index.js
+index 71d803721..0e5c67f3e 100644
+--- a/aafwk/aafwk_standard/amszipfileunzipfilest/entry/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/amszipfileunzipfilest/entry/src/main/js/default/pages/index/index.js
+@@ -24,8 +24,6 @@ export default{
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -40,6 +38,8 @@ export default{
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/context/actscontexttest/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/context/actscontexttest/entry/src/main/js/default/pages/index/index.js
+index 177e8dc6f..095743b34 100755
+--- a/aafwk/aafwk_standard/context/actscontexttest/entry/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/context/actscontexttest/entry/src/main/js/default/pages/index/index.js
+@@ -27,8 +27,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -43,6 +41,8 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/featureability/actsfeatureabilitytest/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/featureability/actsfeatureabilitytest/entry/src/main/js/default/pages/index/index.js
+index a84693493..604c4fe49 100644
+--- a/aafwk/aafwk_standard/featureability/actsfeatureabilitytest/entry/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/featureability/actsfeatureabilitytest/entry/src/main/js/default/pages/index/index.js
+@@ -25,8 +25,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -40,6 +38,8 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/featureability/sceneproject/finishwithresultemptytest/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/featureability/sceneproject/finishwithresultemptytest/src/main/js/default/pages/index/index.js
+index 891d4d9d9..2a699fe4d 100644
+--- a/aafwk/aafwk_standard/featureability/sceneproject/finishwithresultemptytest/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/featureability/sceneproject/finishwithresultemptytest/src/main/js/default/pages/index/index.js
+@@ -25,10 +25,8 @@ export default {
+     data: {
+         title: ""
+     },
+-    onInit() {
++    async onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    async onShow() {
+         commonEvent.publish("ACTS_FinishWithResult_0300_CommonEvent", PublishCallBackOne);
+         var promise = await featureAbility.terminateSelfWithResult(
+             {
+@@ -50,6 +48,8 @@ export default {
+                 console.debug('==========Terminate Ability Success==========')
+         });
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/featureability/sceneproject/finishwithresultpromiseparameterstest/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/featureability/sceneproject/finishwithresultpromiseparameterstest/src/main/js/default/pages/index/index.js
+index d84b9fb6e..638b3ba44 100644
+--- a/aafwk/aafwk_standard/featureability/sceneproject/finishwithresultpromiseparameterstest/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/featureability/sceneproject/finishwithresultpromiseparameterstest/src/main/js/default/pages/index/index.js
+@@ -26,10 +26,8 @@ export default {
+     data: {
+         title: ""
+     },
+-    onInit() {
++    async onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    async onShow() {
+         commonevent.publish("ACTS_FinishWithResult_0100_CommonEvent", PublishCallBack);
+         var promise = await featureAbility.terminateSelfWithResult(
+             {
+@@ -90,6 +88,8 @@ export default {
+             console.debug('==========Terminate Ability Success==========');
+         });
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/featureability/sceneproject/finishwithresulttest/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/featureability/sceneproject/finishwithresulttest/src/main/js/default/pages/index/index.js
+index c37fe74e7..056bd7fed 100644
+--- a/aafwk/aafwk_standard/featureability/sceneproject/finishwithresulttest/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/featureability/sceneproject/finishwithresulttest/src/main/js/default/pages/index/index.js
+@@ -26,10 +26,8 @@ export default {
+     data: {
+         title: ""
+     },
+-    onInit() {
++    async onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    async onShow() {
+         commonEvent.publish("ACTS_FinishWithResult_0200_CommonEvent", PublishCallBack);
+         var promise = await featureAbility.terminateSelfWithResult(
+             {
+@@ -46,6 +44,8 @@ export default {
+             console.debug('==========Terminate Ability Success==========');
+         });
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/featureability/sceneproject/getcallingbundletest/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/featureability/sceneproject/getcallingbundletest/src/main/js/default/pages/index/index.js
+index 3098aaec6..454ecbc6e 100644
+--- a/aafwk/aafwk_standard/featureability/sceneproject/getcallingbundletest/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/featureability/sceneproject/getcallingbundletest/src/main/js/default/pages/index/index.js
+@@ -31,10 +31,8 @@ export default {
+     data: {
+         title: ""
+     },
+-    onInit() {
++    async onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    async onShow() {
+         commonEvent.publish("ACTS_GetCallingBundle_0100_CommonEvent", PublishCallBackOne);
+         var context = featureAbility.getContext();
+         var info = await context.getCallingBundle();
+@@ -46,6 +44,8 @@ export default {
+             }
+         );
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/featureability/sceneproject/startability/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/featureability/sceneproject/startability/src/main/js/default/pages/index/index.js
+index 8dc8d643f..5a346d155 100644
+--- a/aafwk/aafwk_standard/featureability/sceneproject/startability/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/featureability/sceneproject/startability/src/main/js/default/pages/index/index.js
+@@ -42,8 +42,6 @@ export default {
+     },
+     onInit() {
+         this.title = "StartAbility";
+-    },
+-    onShow() {
+         commonEvent.publish("ACTS_StartAbility_0100_CommonEvent", PublishCallBackOne);
+         commonEvent.publish("ACTS_StartAbility_0200_CommonEvent", PublishCallBackTwo);
+         commonEvent.publish("ACTS_StartAbility_0300_CommonEvent", PublishCallBackThree);
+@@ -51,6 +49,8 @@ export default {
+         commonEvent.publish("ACTS_StartAbility_0500_CommonEvent", PublishCallBackFive);
+         commonEvent.publish("ACTS_StartAbility_0600_CommonEvent", PublishCallBackSix);
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/featureability/sceneproject/startabilityforresult/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/featureability/sceneproject/startabilityforresult/src/main/js/default/pages/index/index.js
+index e4ab37dde..c19ab6613 100644
+--- a/aafwk/aafwk_standard/featureability/sceneproject/startabilityforresult/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/featureability/sceneproject/startabilityforresult/src/main/js/default/pages/index/index.js
+@@ -21,10 +21,8 @@ export default {
+     data: {
+         title: "StartAbility"
+     },
+-    onInit() {
++    async onInit() {
+         this.title = "StartAbilityForResult";
+-    },
+-    async onShow() {
+         var promise = await featureAbility.terminateSelfWithResult(
+             {
+                 resultCode: 1,
+@@ -37,6 +35,8 @@ export default {
+         );
+         await featureAbility.terminateSelf();
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/featureability/sceneproject/terminateabilitytest/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/featureability/sceneproject/terminateabilitytest/src/main/js/default/pages/index/index.js
+index f6534d839..9b6ac1adc 100644
+--- a/aafwk/aafwk_standard/featureability/sceneproject/terminateabilitytest/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/featureability/sceneproject/terminateabilitytest/src/main/js/default/pages/index/index.js
+@@ -37,8 +37,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         commonEvent.publish("ACTS_TerminateAbility_0100_CommonEvent", PublishCallBackOne);
+         commonEvent.publish("ACTS_TerminateAbility_0200_CommonEvent", PublishCallBackTwo);
+         featureAbility.terminateSelf(
+@@ -49,6 +47,8 @@ export default {
+             }
+         );
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/aafwk/aafwk_standard/want/actsgetwantalltest/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/want/actsgetwantalltest/entry/src/main/js/default/pages/index/index.js
+index 177e8dc6f..095743b34 100644
+--- a/aafwk/aafwk_standard/want/actsgetwantalltest/entry/src/main/js/default/pages/index/index.js
++++ b/aafwk/aafwk_standard/want/actsgetwantalltest/entry/src/main/js/default/pages/index/index.js
+@@ -27,8 +27,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -43,6 +41,8 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/account/OsAccountTest_js/src/main/js/default/pages/index/index.js b/account/OsAccountTest_js/src/main/js/default/pages/index/index.js
+index e485a7268..630089840 100755
+--- a/account/OsAccountTest_js/src/main/js/default/pages/index/index.js
++++ b/account/OsAccountTest_js/src/main/js/default/pages/index/index.js
+@@ -24,8 +24,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         //        const instrumentLog = new InstrumentLog({
+@@ -47,6 +45,8 @@ export default {
+         require('../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmsallshortcutinfotest/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/actsbmsallshortcutinfotest/entry/src/main/js/default/pages/index/index.js
+index f8cda9ef1..784fa9b52 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/actsbmsallshortcutinfotest/entry/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/actsbmsallshortcutinfotest/entry/src/main/js/default/pages/index/index.js
+@@ -23,8 +23,6 @@ export default {
+     },
+     onInit() {
+         this.title = 'Test Shortcut';
+-    },
+-    onShow() {
+         console.info('onReady finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -38,8 +36,10 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+     onBackPress(){
+     }
+-}
+\ No newline at end of file
++}
+diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmscheckpermissiontest/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/actsbmscheckpermissiontest/entry/src/main/js/default/pages/index/index.js
+index f8add8b1b..af2e7f098 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/actsbmscheckpermissiontest/entry/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/actsbmscheckpermissiontest/entry/src/main/js/default/pages/index/index.js
+@@ -24,8 +24,6 @@ export default {
+     },
+     onInit() {
+         this.title = 'Test CheckPermission';
+-    },
+-    onShow() {
+         console.info('onReady finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -38,5 +36,7 @@ export default {
+ 
+         require('../../../test/List.test')
+         core.execute()
++    },
++    onShow() {
+     }
+ }
+diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmshapmoduletest/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/actsbmshapmoduletest/entry/src/main/js/default/pages/index/index.js
+index 96d476a61..56a8d3c0f 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/actsbmshapmoduletest/entry/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/actsbmshapmoduletest/entry/src/main/js/default/pages/index/index.js
+@@ -24,8 +24,6 @@ export default {
+     },
+     onInit() {
+         this.title = 'Test HapModuleInfo';
+-    },
+-    onShow() {
+         console.info('onReady finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -39,6 +37,8 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     }
+-}
+\ No newline at end of file
++}
+diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmskittest/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/actsbmskittest/entry/src/main/js/default/pages/index/index.js
+index f894faacf..362bbb390 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/actsbmskittest/entry/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/actsbmskittest/entry/src/main/js/default/pages/index/index.js
+@@ -23,8 +23,6 @@ export default {
+     },
+     onInit() {
+         this.title = 'Bms Stress Test';
+-    },
+-    onShow() {
+         console.info('onReady finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -38,8 +36,10 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+     onBackPress(){
+     }
+-}
+\ No newline at end of file
++}
+diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmsmetadatatest/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/actsbmsmetadatatest/entry/src/main/js/default/pages/index/index.js
+index 00dea8501..e7fe34258 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/actsbmsmetadatatest/entry/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/actsbmsmetadatatest/entry/src/main/js/default/pages/index/index.js
+@@ -23,8 +23,6 @@ export default {
+     },
+     onInit() {
+         this.title = 'Test MetaData';
+-    },
+-    onShow() {
+         console.info('onReady finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -38,8 +36,10 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+     onBackPress(){
+     }
+-}
+\ No newline at end of file
++}
+diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmsmoduleusagerecordtest/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/actsbmsmoduleusagerecordtest/entry/src/main/js/default/pages/index/index.js
+index 7f77556a7..6bb4ad1c3 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/actsbmsmoduleusagerecordtest/entry/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/actsbmsmoduleusagerecordtest/entry/src/main/js/default/pages/index/index.js
+@@ -23,8 +23,6 @@ export default {
+     },
+     onInit() {
+         this.title = "Test ModuleUsageRecord";
+-    },
+-    onShow() {
+         console.info('onReady finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -38,6 +36,8 @@ export default {
+         require('../../../test/List.test.js')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     }
+-}
+\ No newline at end of file
++}
+diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbundlemanagertest/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/actsbundlemanagertest/entry/src/main/js/default/pages/index/index.js
+index b3620946d..9b47685ef 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/actsbundlemanagertest/entry/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/actsbundlemanagertest/entry/src/main/js/default/pages/index/index.js
+@@ -24,8 +24,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -39,6 +37,8 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbundlemanageruninstall/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/actsbundlemanageruninstall/entry/src/main/js/default/pages/index/index.js
+index f90bb8113..398d8b4d7 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/actsbundlemanageruninstall/entry/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/actsbundlemanageruninstall/entry/src/main/js/default/pages/index/index.js
+@@ -23,8 +23,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -38,6 +36,8 @@ export default {
+         require('../../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssceneeight/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssceneeight/src/main/js/default/pages/index/index.js
+index a2ff58470..97b3d97e7 100644
+--- a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssceneeight/src/main/js/default/pages/index/index.js
++++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssceneeight/src/main/js/default/pages/index/index.js
+@@ -25,8 +25,8 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
++        commonEvent.publish("Third1_Publish_CommonEvent", PublishCallBackOne);
+     },
+     onShow() {
+-        commonEvent.publish("Third1_Publish_CommonEvent", PublishCallBackOne);
+     }
+ }
+diff --git a/communication/wifi_standard/src/main/js/default/pages/index/index.js b/communication/wifi_standard/src/main/js/default/pages/index/index.js
+index 96b91894f..42fac4605 100755
+--- a/communication/wifi_standard/src/main/js/default/pages/index/index.js
++++ b/communication/wifi_standard/src/main/js/default/pages/index/index.js
+@@ -23,8 +23,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         
+@@ -43,6 +41,8 @@ export default {
+         require('../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+diff --git a/distributeddatamgr/appdatamgrjstest/hap/src/main/js/default/pages/index/index.js b/distributeddatamgr/appdatamgrjstest/hap/src/main/js/default/pages/index/index.js
+index c2b247fd0..47850ee1f 100755
+--- a/distributeddatamgr/appdatamgrjstest/hap/src/main/js/default/pages/index/index.js
++++ b/distributeddatamgr/appdatamgrjstest/hap/src/main/js/default/pages/index/index.js
+@@ -25,8 +25,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -40,6 +38,8 @@ export default {
+         require('../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+-}
+\ No newline at end of file
++}
+diff --git a/distributeddatamgr/distributeddatamgrjstest/hap/src/main/js/default/pages/index/index.js b/distributeddatamgr/distributeddatamgrjstest/hap/src/main/js/default/pages/index/index.js
+index 505e12812..e60161c72 100755
+--- a/distributeddatamgr/distributeddatamgrjstest/hap/src/main/js/default/pages/index/index.js
++++ b/distributeddatamgr/distributeddatamgrjstest/hap/src/main/js/default/pages/index/index.js
+@@ -23,14 +23,14 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         core.init()
+         require('../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+-}
+\ No newline at end of file
++}
+diff --git a/hiviewdfx/hiappeventtest/hiappeventjstest/src/main/js/default/pages/index/index.js b/hiviewdfx/hiappeventtest/hiappeventjstest/src/main/js/default/pages/index/index.js
+index d1af64d75..9f3dde425 100755
+--- a/hiviewdfx/hiappeventtest/hiappeventjstest/src/main/js/default/pages/index/index.js
++++ b/hiviewdfx/hiappeventtest/hiappeventjstest/src/main/js/default/pages/index/index.js
+@@ -26,8 +26,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -41,6 +39,8 @@ export default {
+         require('../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+-}
+\ No newline at end of file
++}
+diff --git a/powermgr/powermgrbattery/src/main/js/default/pages/index/index.js b/powermgr/powermgrbattery/src/main/js/default/pages/index/index.js
+index a1ba7d09f..d9f5ed4ff 100755
+--- a/powermgr/powermgrbattery/src/main/js/default/pages/index/index.js
++++ b/powermgr/powermgrbattery/src/main/js/default/pages/index/index.js
+@@ -23,8 +23,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -43,6 +41,8 @@ export default {
+         require('../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+-}
+\ No newline at end of file
++}
+diff --git a/startup/startup_standard/src/main/js/default/pages/index/index.js b/startup/startup_standard/src/main/js/default/pages/index/index.js
+index 173f299a3..8a0dc339c 100644
+--- a/startup/startup_standard/src/main/js/default/pages/index/index.js
++++ b/startup/startup_standard/src/main/js/default/pages/index/index.js
+@@ -24,8 +24,6 @@ export default {
+     },
+     onInit() {
+         this.title = this.$t('strings.world');
+-    },
+-    onShow() {
+         console.info('onShow finish')
+         const core = Core.getInstance()
+         const expectExtend = new ExpectExtend({
+@@ -41,6 +39,8 @@ export default {
+         require('../../test/List.test')
+         core.execute()
+     },
++    onShow() {
++    },
+     onReady() {
+     },
+ }
+-- 
+2.25.1
+
diff --git a/recipes-openharmony/openharmony/openharmony-standard-3.0/xf86drm.c-Add-drmWaitVBlank-hack.patch b/recipes-openharmony/openharmony/openharmony-standard-3.0/xf86drm.c-Add-drmWaitVBlank-hack.patch
index f32503729048b85da98813a4d01fb37f12cb4ab2..9714e3e4919f4d76021129d0029b743a7061ff13 100644
--- a/recipes-openharmony/openharmony/openharmony-standard-3.0/xf86drm.c-Add-drmWaitVBlank-hack.patch
+++ b/recipes-openharmony/openharmony/openharmony-standard-3.0/xf86drm.c-Add-drmWaitVBlank-hack.patch
@@ -35,9 +35,10 @@ index b49d42f..0e2805a 100644
             if (cur.tv_sec > timeout.tv_sec + 1 ||
                 (cur.tv_sec == timeout.tv_sec && cur.tv_nsec >=
                  timeout.tv_nsec)) {
-@@ -2187,9 +2188,11 @@ drm_public int drmWaitVBlank(int fd, drmVBlankPtr vbl)
+@@ -2187,9 +2188,12 @@ drm_public int drmWaitVBlank(int fd, drmVBlankPtr vbl)
                     break;
             }
++           usleep(10000);
         }
 -    } while (ret && errno == EINTR);
 +    } while (ret && (errno == EINTR || errno == ENOTSUP));
diff --git a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb
index c3d8b2fd47183aebc44706b179514c17d388ec0b..6f99180a926b6e2a1d978b956565c9b9fb8bc742 100644
--- a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb
+++ b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb
@@ -70,6 +70,10 @@ SRC_URI += "file://base_hiviewdfx_hiview-libfaultlogger-static.patch;patchdir=${
 # Patch to allow /system/profile and /system/usr to be symlinks to /usr/lib/openharmony
 SRC_URI += "file://foundation_distributedschedule_safwk-slash-system-symlink.patch;patchdir=${S}/foundation/distributedschedule/safwk"
 
+SRC_URI += "file://test-xts-acts-Start-tests-from-onInit.patch;patchdir=${S}/test/xts/acts"
+SRC_URI += "file://RenderText-PerformLayout-remove-sigsegv-code.patch;patchdir=${S}/foundation/ace/ace_engine"
+SRC_URI += "file://remove-root-uid-check.patch;patchdir=${S}/foundation/aafwk/standard"
+
 inherit python3native gn_base ptest
 
 B = "${S}/out/ohos-arm-release"
@@ -309,7 +313,9 @@ OPENHARMONY_PARTS += "communication:ipc"
 OPENHARMONY_PARTS += "communication:ipc_js"
 OPENHARMONY_PARTS += "developtools:bytrace_standard"
 OPENHARMONY_PARTS += "developtools:hdc_standard"
+OPENHARMONY_PARTS += "distributeddatamgr:appdatamgr_jskits"
 OPENHARMONY_PARTS += "distributeddatamgr:distributeddatamgr"
+OPENHARMONY_PARTS += "distributeddatamgr:distributedfilejs"
 OPENHARMONY_PARTS += "distributeddatamgr:native_appdatamgr"
 OPENHARMONY_PARTS += "distributedhardware:device_manager_base"
 OPENHARMONY_PARTS += "distributedschedule:dmsfwk_standard"
@@ -816,9 +822,14 @@ FILES:${PN}-appdatamgr = " \
     ${libdir}/libnative_preferences*${SOLIBS} \
     ${libdir}/libnative_dataability*${SOLIBS} \
     ${libdir}/libnative_appdatafwk*${SOLIBS} \
+    ${libdir}/module/libfileio*${SOLIBS} \
+    ${libdir}/module/libfile*${SOLIBS} \
+    ${libdir}/module/data/librdb*${SOLIBS} \
+    ${libdir}/module/data/libstorage*${SOLIBS} \
+    ${libdir}/module/data/libdataability*${SOLIBS} \
 "
 RDEPENDS:${PN}-appdatamgr += "musl libcxx libcrypto"
-RDEPENDS:${PN}-appdatamgr += "${PN}-libutils ${PN}-ipc ${PN}-hilog ${PN}-thirdparty-libxml2 ${PN}-thirdparty-icu ${PN}-thirdparty-sqlite"
+RDEPENDS:${PN}-appdatamgr += "${PN}-libutils ${PN}-ipc ${PN}-hilog ${PN}-thirdparty-libxml2 ${PN}-thirdparty-icu ${PN}-thirdparty-sqlite ${PN}-ace-napi ${PN}-appexecfwk ${PN}-dmsfwk"
 RDEPENDS:${PN} += "${PN}-appdatamgr"
 
 PACKAGES =+ "${PN}-appdatamgr-ptest"