-QTAGLEXTRAS = "${@bb.utils.contains("DISTRO_FEATURES", "agl-hmi-framework", " qtaglextras", "",d)}"
-
-# mapviewer and mapviewer-demo are required for AGL cluster demo
-MAPVIEWER = "${@bb.utils.contains("DISTRO_FEATURES", "agl-cluster-demo-support", " mapviewer mapviewer-demo", "",d)}"
-
-# Preload navigation maps and poi API key for demo if requested
-DEMO_MAPS_LOCALE ?= "uk"
-DEMO_PRELOAD = "${@bb.utils.contains("DISTRO_FEATURES", "agl-demo-preload", " navigation-maps-${DEMO_MAPS_LOCALE} poiapp-api-key", "",d)}"
-
-RDEPENDS_${PN}_append = " \
+QTAGLEXTRAS = " libqtappfw"
+
+# add support for websocket in Qt and QML
+QTAGLEXTRAS:append = " qtwebsockets qtwebsockets-qmlplugins"
+#PREFERRED_PROVIDER_virtual/webruntime = "web-runtime"
+
+# Cluster demo support.
+# ATM no cluster map viewer is supported with the older navigation application.
+MAPVIEWER = "${@bb.utils.contains("PREFERRED_RPROVIDER_virtual/navigation", "ondemandnavi", "tbtnavi", "",d)}"
+CLUSTER_SUPPORT_PACKAGES = " \
+ ${MAPVIEWER} \
+ cluster-demo-network-config \
+ cluster-lin-bridging-config \
+ cluster-demo-simulator \
+"
+CLUSTER_SUPPORT = "${@bb.utils.contains("AGL_FEATURES", "agl-cluster-demo-support", "${CLUSTER_SUPPORT_PACKAGES}", "",d)}"
+
+DEMO_UNIT_CONF ?= ""
+# Hook for demo platform configuration
+# ATM used for:
+# 1) Adding udev configuration and scripts for supporting USB attached
+# I2C devices for RTC and HVAC LED support.
+DEMO_UNIT_CONF += " demo-i2c-udev-conf "
+
+# Preload only if agl-demo-preload is set
+DEMO_PRELOAD = "${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", " ${DEMO_UNIT_CONF} poiapp-api-key", "",d)}"
+
+RDEPENDS:${PN}:append = " \
+ weston-ini-conf \