diff --git a/general/package/all-patches/busybox/0102-add-onvif-dir-support.patch b/general/package/all-patches/busybox/0102-add-onvif-dir-support.patch
new file mode 100644
index 00000000..dd76701c
--- /dev/null
+++ b/general/package/all-patches/busybox/0102-add-onvif-dir-support.patch
@@ -0,0 +1,17 @@
+diff -Naur a/networking/httpd.c b/networking/httpd.c
+--- a/networking/httpd.c	2023-07-19 20:00:29.413569385 +0200
++++ b/networking/httpd.c	2023-07-19 20:02:07.024333868 +0200
+@@ -2390,6 +2390,13 @@
+ 		}
+ 		cgi_type = CGI_NORMAL;
+ 	}
++	else if (is_prefixed_with(tptr, "onvif/")) {
++		if (tptr[6] == '\0') {
++			/* protect listing "cgi-bin/" */
++			send_headers_and_exit(HTTP_FORBIDDEN);
++		}
++		cgi_type = CGI_NORMAL;
++	}
+ #endif
+ 
+ 	if (urlp[-1] == '/') {
diff --git a/general/package/onvif-simple-server/files/onvif.conf b/general/package/onvif-simple-server/files/onvif.conf
index 56a1947c..ce6ec750 100644
--- a/general/package/onvif-simple-server/files/onvif.conf
+++ b/general/package/onvif-simple-server/files/onvif.conf
@@ -5,7 +5,7 @@ firmware_ver=2.3.7.x
 hardware_id=HI5518EV200_OV9732_NOR16M
 serial_num=OPENIPC.ORG
 ifs=wlan0
-port=8899
+port=85
 scope=onvif://www.onvif.org/Profile/Streaming
 user=admin
 password=123456
diff --git a/general/package/onvif-simple-server/onvif-simple-server.mk b/general/package/onvif-simple-server/onvif-simple-server.mk
index ab14c440..b80dcd4d 100644
--- a/general/package/onvif-simple-server/onvif-simple-server.mk
+++ b/general/package/onvif-simple-server/onvif-simple-server.mk
@@ -6,7 +6,7 @@
 
 ONVIF_SIMPLE_SERVER_SITE_METHOD = git
 ONVIF_SIMPLE_SERVER_SITE = https://github.com/roleoroleo/onvif_simple_server
-ONVIF_SIMPLE_SERVER_VERSION = 7dc083fdd2a3cf3465945616c6d8d15e200a5707
+ONVIF_SIMPLE_SERVER_VERSION = 74d4959684341328a5f7467590e1b139332d3497
 
 ONVIF_SIMPLE_SERVER_DEPENDENCIES = mbedtls-openipc
 ONVIF_SIMPLE_SERVER_LICENSE = MIT
@@ -22,6 +22,19 @@ define ONVIF_SIMPLE_SERVER_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 0755 -t $(TARGET_DIR)/usr/sbin $(@D)/wsd_simple_server
 	$(INSTALL) -m 0755 -d $(TARGET_DIR)/etc
 	$(INSTALL) -m 0644 -t $(TARGET_DIR)/etc $(ONVIF_SIMPLE_SERVER_PKGDIR)/files/onvif.conf
+	$(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/onvif/device_service_files
+	$(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/onvif/device_service_files $(@D)/device_service_files/*
+	$(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/onvif/generic_files
+	$(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/onvif/generic_files $(@D)/generic_files/*
+	$(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/onvif/media_service_files
+	$(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/onvif/media_service_files $(@D)/media_service_files/*
+	$(INSTALL) -m 0755 -d $(TARGET_DIR)/var/www/onvif/ptz_service_files
+	$(INSTALL) -m 0644 -t $(TARGET_DIR)/var/www/onvif/ptz_service_files $(@D)/ptz_service_files/*
+
+	ln -s /usr/sbin/onvif_simple_server $(TARGET_DIR)/var/www/onvif/device_service
+	ln -s /usr/sbin/onvif_simple_server $(TARGET_DIR)/var/www/onvif/events_service
+	ln -s /usr/sbin/onvif_simple_server $(TARGET_DIR)/var/www/onvif/media_service
+	ln -s /usr/sbin/onvif_simple_server $(TARGET_DIR)/var/www/onvif/ptz_service
 endef
 
 $(eval $(generic-package))