diff --git a/ramdisk/rootfs/public/Kconfig b/ramdisk/rootfs/public/Kconfig
index ccda7636e..bb91df8c2 100644
--- a/ramdisk/rootfs/public/Kconfig
+++ b/ramdisk/rootfs/public/Kconfig
@@ -38,3 +38,4 @@ source "../ramdisk/rootfs/public/ntp/Kconfig"
source "../ramdisk/rootfs/public/i2c_tool/Kconfig"
source "../ramdisk/rootfs/public/pinmux/Kconfig"
source "../ramdisk/rootfs/public/envtools/Kconfig"
+source "../ramdisk/rootfs/public/haasui/Kconfig"
diff --git a/ramdisk/rootfs/public/haasui/Kconfig b/ramdisk/rootfs/public/haasui/Kconfig
new file mode 100644
index 000000000..4962af6fd
--- /dev/null
+++ b/ramdisk/rootfs/public/haasui/Kconfig
@@ -0,0 +1,4 @@
+config TARGET_PACKAGE_HAASUI
+ bool "Target package haasui"
+ help
+ target package haasui
diff --git a/ramdisk/rootfs/public/haasui/musl_riscv64/data/miniapp b/ramdisk/rootfs/public/haasui/musl_riscv64/data/miniapp
new file mode 120000
index 000000000..1fcc7255a
--- /dev/null
+++ b/ramdisk/rootfs/public/haasui/musl_riscv64/data/miniapp
@@ -0,0 +1 @@
+../mnt/data/miniapp/
\ No newline at end of file
diff --git a/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/cfg.json b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/cfg.json
new file mode 100644
index 000000000..73a9e0421
--- /dev/null
+++ b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/cfg.json
@@ -0,0 +1,26 @@
+{
+ "screen": {
+ "width": 720,
+ "height": 1280
+ },
+ "device": {
+ "fb": "/dev/fb0",
+ "tp": "/dev/input/event0",
+ "mouse": "/dev/input/mouse0"
+ },
+ "debugger": {
+ "enable": true
+ },
+ "linksdk": {
+ "one_device_one_secret": false,
+ "one_type_one_secret_pre_registration": false,
+ "one_type_one_secret_no_pre_registration": false
+ },
+ "filemanager": {
+ "max_cache_size": 4194304,
+ "big_file_size": 524288
+ },
+ "imageloader": {
+ "image_cache_size": 4194304
+ }
+}
diff --git a/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/env.json b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/env.json
new file mode 100644
index 000000000..2c63c0851
--- /dev/null
+++ b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/env.json
@@ -0,0 +1,2 @@
+{
+}
diff --git a/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/Alibaba-PuHuiTi-Regular.otf b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/Alibaba-PuHuiTi-Regular.otf
new file mode 100644
index 000000000..c40855259
Binary files /dev/null and b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/Alibaba-PuHuiTi-Regular.otf differ
diff --git a/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/falcon-icons.ttf b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/falcon-icons.ttf
new file mode 100644
index 000000000..91b74de36
Binary files /dev/null and b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/falcon-icons.ttf differ
diff --git a/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/fonts.xml b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/fonts.xml
new file mode 100644
index 000000000..0e0013044
--- /dev/null
+++ b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/fonts/fonts.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ Alibaba-PuHuiTi-Regular.otf
+
+
+
+ falcon-icons.ttf
+
+
diff --git a/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/framework/js-framework.min.bin b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/framework/js-framework.min.bin
new file mode 100644
index 000000000..ad06cb095
--- /dev/null
+++ b/ramdisk/rootfs/public/haasui/musl_riscv64/etc/miniapp/resources/framework/js-framework.min.bin
@@ -0,0 +1,439 @@
+processsetTimeoutnativeLogSTART JS FRAMEWORK 0.0.32, Build 2021-10-28 16:11. (Vue: 2.6.12)env4falcon-js-framework.min.jstconsolelogdefineamdenoriscaludfphymg_vb$CASOwkxIEjNTPMFDRLzJVBUHqWGKXZQYttetntotrtitstctatltutdtftpthtytmtgt_tvtbt$tCtAtStOtwtktxtItoff
+errorwarninfo
+debug setTimeoutNative0.29.7framework>=0.1.5 <0.5transformerremoveregisterHooktriggerHookconsume
+closedestroy
+clicklongpresstouchstarttouchmovetouchendpanstartpanmovepanendhorizontalpanverticalpan
+swipeappendChildinsertBeforeinsertAfterremoveChild
+clearsetAttrsetAttrssetStylesetStyles setStylesNoCacheaddEventremoveEventfireEventtoStylecallbackupdateDatadestroyCallbacknormalizesendcallDOMcallComponentcallModulecreateFinishupdateFinishrefreshFinishcreateBodyaddElementremoveElementmoveElementhandleraddActionscallCreateBodycallAddElement"callRemoveElementcallMoveElementcallUpdateAttrsupdateAttrscallUpdateStyleupdateStylecallAddEventcallRemoveEventgetRefopen*createDocumentElementcreateElementcreateComment(getRegisteredModulesrequireModulesupportsimportScriptcreateInstance*createInstanceContextgetRootgetJSFMVersiongetDocumentcallJSDocumentElementCommentListenerTaskCentersendTasksfreezePrototypeinitconfigfreezeassigncreateVueurlscheme
+slashhostportpath
+queryhashgetDlogFunparseQueryparseUriregisterunRegistertriggeronApponLaunchonShowonHideonDestroyonErrorfinishsetViewPortPage setRootComponentonLoadonNewOptionsonUnload
+navTocloseAppclosePageByNameclosePageById__applyTo__modular__NAVIGATOR__JSAPIinitAppContext.useDefaultBasePageClass_registerModule(_dispatchModuleEvent(_performAppLifeCyclelaunchAppshowApphideAppdestroyApponAppError _vueErrorHandlerloadPage__loadKeyFrames__loadPage*_performPageLifeCycleshowPagenewPageOptionshidePageunloadPagegetPageforceUpdatePage2tryForceUpdateCurrentPage*tryForceUpdateAllPagechangeThemedoChangeTheme0__registerThemeBroadcast4__unregisterThemeBroadcast$_Falconcallsubstring[object Object]btoamapfromCharCodehasOwnPropertyWXEnvironmentlogLevel:wxInteractionAnalyzer: [jsfm]__DEBUG[object object]toLowerCasestringifyHCannot assign to read only property of $setTimeoutCallbackforEachWebplatform__ori__indexOf
+__LOG__INFO__WARN__ERROR@#instanceIdlastCallbackIdcallbacks
+hooksh[JS Framework] Override an existing component hook "".V[JS Framework] Invalid hook function type () on "n[JS Framework] Failed to execute the hook function on "r[JS Framework] Failed to execute the callback function:
+ *invalid callback id ""taskCenterdocumentElementpureChildrenparentNodechildrenpushsplicenodeTypebodyroleid
+docIdownerDocumentnodeMapnodeIdrefdomaction
+depth
+_rootnextSiblingpreviousSiblingdivtypeattr
+style
+event[appendChild](,) Move <
+> to
+ of <> ().) Append <> to <[insertBefore]() Insert <), before ([insertAfter](), after ([removeChild]() Remove <> from <[addEvent]() Add "" event on <params[removeEvent]() Remove "[fireEvent]() Fire "stopPropagationl[JS Framework] Failed to invoke the event handler of "
+" on ():
+ currentTarget< attr= style=>callbackManagermodule&updateComponentDatamethod_isVue$el$[[VirtualElement]]UndefinedNulltoISOStringbinary
+@typedataTypebase64buffercomponent[task]() componentHandlermoduleHandlerisArrayb[JS Framework] Failed to receiveTasks, instance (&) is not available.argsfireEventSynccomponentHook_nodeId _documentElementj[JS Framework] Can't find "document" or "taskCenter".L[JS Framework] Failed to trigger the "" hook on .methodscomment
+batchedupdatest[JS Runtime] invalid parameter, handler must be a function-1URLlistenercallNative>[JS Runtime] no default handlerdocumentembed,img,image,input,link,meta$isRuntimeComponentoptionsdirectivescomponents__patchLevel__patch__$mount:__falcon_shared_util_camelizeF__falcon_register_can_observer_hookparseFloat
+floorisFinite
+isNaNreplacetoUpperCasecharAt
+slice-$1_length
+everygetTimecharCodeAttestsubstextelmnscontextfnContextfnOptionsfnScopeIdkey componentOptions"componentInstanceparentisStaticisRootInsertisCommentisClonedisOnceasyncFactoryasyncMeta$isAsyncPlaceholder__ob__depvmCountReflect
+_basemixins$optionspropsData_props$parent$errorCaptured hook_handled (Promise/async)nextTickisFrozen&~!oncecapturepassivefnsv-on handlerhookmerged_isVList__vlist___providedslottemplate $stable$key_normalized$hasNormaliterator$scopedSlots$slots$createElementfiltersdomPropsupdate:_staticTreesstaticRenderFns_renderProxy__static____once___s_l_q_i_m_f_k_b_v_u_g_d_p_uid_original_compiledlistenersinjections
+slotsscopedSlots_scopeId_ccomponentId$virtual-component-_isComponent
+_selflifecycleattachdetach_isMounted_update_vnode$destroy
+_data@renderCtorextendcid
+_init$_virtualComponents_isDestroyedkeepAlive_renderChildren_parentVnode$vnode$attrs$listeners_propKeys _parentListeners$forceUpdate_inactive
+modelfunctionalnativeOnvue-component--errorCompresolvedownersloadingloadingComp$onhook:destroyed
+delaytimeoutclearTimeoutprop_mergedinlineTemplateispreforeignObjectsvgtoStringTag_events_hasHookEvent$off$children
+$root
+$refs_watcher_directInactive"_isBeingDestroyed
+ hook
+$emit
+hook:beforevm_watchersdeepusersynccbactive
+dirtydepsnewDepsdepIdsnewDepIdsexpressiongetter(getter for watcher ",callback for watcher ""_computedWatchersdata()
+cache$watch_componentTagsuperOptionsextendOptionssealedOptions
+_Ctor
+mixinuse[object RegExp]el
+$data$props$set$deleteimmediate@callback for immediate watcher "
+$once&event handler for "__vue__$nextTick_render::parseIntmergeOptionsdefineReactiveutilobservable"_installedPluginsinstallssrContext:@styleScoperefInForoldValueargoldArgdef componentUpdatedinsertedpostpatchmodifiersrawNamedirective &_falcon_classStylesstaticClass(_prevClassStyleNames$falcon
+themethemestrimTWeex do not support event in bubble phase.staticStylenormalizedStyle-enter-enter-to-enter-active-leave-leave-to-leave-active_leaveCbcancelled_enterCbbeforeEnter
+enterafterEnterenterCancelledbeforeAppearafterAppearappearCancelled@TRANSITION_pending$$requireWeexModuleanimationstylestimingFunctionlinearNattrs,class,staticClass,staticStyle,keyappendAsTreependingInserthasChildNodesinnerHTMLfirstChildhasAttributeremoveAttributebeforeLeave
+leaveafterLeaveleaveCancelleddelayLeavenonedisplayeventsspanweex:richtext_leaving__transition-someout-inin-outgetPositionanimate getComponentRectresultsize@failed to get rect for element: prevChildrenkeptremoved
+-move$documentroot@component/$instanceIdapp4refreshInstance: instance not found!$1$2eventMap_uniqueIdfindIndexlaunchOptionsonLaunch:onError:viewPort_component.root component has set!loadOptionsonLoad:,instance:$pageIdnewOptionsonNewOptions: onShow,instance: onHide,instance:$onUnload,instance:startsWithfalcon://navToAppnavToPagex$falcon.navTo(target) error, params target is null or empty!*conflict moduleName: , api:conflict jsapi:native frameworkVersion$transformerVersion
+jsapi$_appInfo^DefauBasePageClass must extend from $falcon.App_pageMap_modules$app__AppClazz
+$metalaunchhide[Error]:,[Vue Error]: Error in &__loadModuleDefault$animationloadKeyframes__KEYFRAMES@please NOTE no $animation module_component_only_instance$pageNameload(beforeVueInstantiate module conflict: _apply_page_mode$_page
+#root
+$page$getConfigpagelifeCycleonPageLifeCyclepageLifeCycle$currentPageIdunloadcustom.system_env_custom_theme Object.prototype __defineGetter__ __defineSetter__ __lookupGetter__ __lookupSetter__isPrototypeOf(propertyIsEnumerablesealError.prototype h ?m ? ? >m > > A 9m L 9 8m A 9 (e]C 8 B $ ) C % 7 8 A 8 )) C m m
+
l` l` !" l`%#'l` )( $+ , .- / 1
+l`30 2l`
759 6l<: ; ? @l`B>DE AF G IH J LK M O P Q R S T NVW Ul`ZX@\l`^]`l`bal`ed Yg hikl ɿʿ˿
+#=+>-?.@0A1D5T:_>`?a@gFhHiImKnLrOsPgiak aj ah af ac a` a_ a\ a[ aW aV aU aM aJ aG aE aD aC a= a9 a8 a4 a/ a, a* a' a&