Browse Source

优化调整一些细节实现,例如:网口相机默认IP从192.168.100.1/24变成192.168.100.101/24; ftpuser用户默认密码从ftpuser5678变成ftp123456,兼容之前项目的传统使用习惯等

niujiuru 11 hours ago
parent
commit
a3bfd08119

+ 2 - 11
app-install.service/rpc_handler.go

@@ -477,21 +477,12 @@ func moveFile(src, dst string) error {
 }
 }
 
 
 func validRelativePath(p string) bool {
 func validRelativePath(p string) bool {
-	if p == "" {
-		return false
-	}
-
-	if filepath.IsAbs(p) {
+	if p == "" || filepath.IsAbs(p) {
 		return false
 		return false
 	}
 	}
 
 
 	clean := filepath.Clean(p)
 	clean := filepath.Clean(p)
-
-	if clean != p {
-		return false
-	}
-
-	if clean == ".." ||
+	if clean != p || clean == ".." ||
 		strings.HasPrefix(clean, ".."+string(os.PathSeparator)) {
 		strings.HasPrefix(clean, ".."+string(os.PathSeparator)) {
 		return false
 		return false
 	}
 	}

+ 1 - 1
camera-capture.service/main.go

@@ -25,7 +25,7 @@ var (
 )
 )
 
 
 const (
 const (
-	eth1AddrCIDR = "192.168.100.1/24"
+	eth1AddrCIDR = "192.168.100.101/24"
 	network      = "tcp" // http -> tcp
 	network      = "tcp" // http -> tcp
 	listenAddr   = "127.0.0.1:7003"
 	listenAddr   = "127.0.0.1:7003"
 )
 )

+ 10 - 0
myir-mkupdate-sdcard/build.sh

@@ -20,6 +20,16 @@ tar -xjf "$ROOTFS_TAR" -C "$MY_WORKDIR"
 echo "3, 正在更新 rootfs 根文件系统..."
 echo "3, 正在更新 rootfs 根文件系统..."
 
 
 ROOTFS_OPT="$MY_WORKDIR/opt/yfkj"
 ROOTFS_OPT="$MY_WORKDIR/opt/yfkj"
+
+mkdir -p "$ROOTFS_OPT"
+
+[ -d "./local-startup.service" ] || {
+    echo "❌ missing directory: ./local-startup.service"
+    exit 1
+}
+rm -rf "$ROOTFS_OPT/local-startup.service"
+cp -rf local-startup.service/ "$ROOTFS_OPT/"
+
 MYBINS_DIR="../build"
 MYBINS_DIR="../build"
 
 
 [ -f "$MYBINS_DIR/networkd" ] || {
 [ -f "$MYBINS_DIR/networkd" ] || {

+ 0 - 24
myir-mkupdate-sdcard/local-startup.service/create-ftp-user.sh

@@ -1,24 +0,0 @@
-#!/bin/sh
-# create a dedicated FTP user for vsftpd service
-# 2026-05-08 10:25 created by niujiuru
-
-create_ftpuser_if_not_exists() {
-  FTP_USER="$1"
-  FTP_HOME="$2"
-  PASSWORD="$3"
-
-  if ! /usr/bin/id "$FTP_USER" >/dev/null 2>&1; then
-    /usr/sbin/useradd -m -d "$FTP_HOME" "$FTP_USER"
-    if [ $? -eq 0 ]; then
-      echo "$FTP_USER:$PASSWORD" | /usr/sbin/chpasswd
-    fi
-  fi
-
-  /bin/mkdir -p "$FTP_HOME"
-
-  if /usr/bin/id "$FTP_USER" >/dev/null 2>&1; then
-    /bin/chown "$FTP_USER:$FTP_USER" "$FTP_HOME"
-  fi
-}
-
-create_ftpuser_if_not_exists ftpuser /home/ftpuser ftpuser5678

+ 20 - 0
myir-mkupdate-sdcard/local-startup.service/setup-ftpuser.sh

@@ -0,0 +1,20 @@
+#!/bin/sh
+# Set up a dedicated FTP user for vsftpd
+# 2026-10-13 updated by niujiuru
+
+setup_ftpuser() {
+  FTP_USER="$1"
+  FTP_HOME="$2"
+  PASSWORD="$3"
+
+  if ! /usr/bin/id "$FTP_USER" >/dev/null 2>&1; then
+    /usr/sbin/useradd -m -d "$FTP_HOME" "$FTP_USER" || return 1
+  fi
+
+  echo "$FTP_USER:$PASSWORD" | /usr/sbin/chpasswd || return 1
+
+  /bin/mkdir -p "$FTP_HOME" || return 1
+  /bin/chown "$FTP_USER:$FTP_USER" "$FTP_HOME" || return 1
+}
+
+setup_ftpuser ftpuser /home/ftpuser ftp123456 || exit 1

+ 1 - 1
myir-mkupdate-sdcard/local-startup.service/startup.sh

@@ -14,7 +14,7 @@
   echo 500 > /sys/module/usbcore/parameters/usbfs_memory_mb
   echo 500 > /sys/module/usbcore/parameters/usbfs_memory_mb
 
 
 # FTP:创建用户
 # FTP:创建用户
-[ -x /opt/yfkj/local-startup.service/create-ftp-user.sh ] && /opt/yfkj/local-startup.service/create-ftp-user.sh
+[ -x /opt/yfkj/local-startup.service/setup-ftpuser.sh ] && /opt/yfkj/local-startup.service/setup-ftpuser.sh
 
 
 # 关闭无用服务
 # 关闭无用服务
 disable_service() {
 disable_service() {

+ 1 - 1
myir-mkupdate-sdcard/readme.txt

@@ -18,6 +18,6 @@ make clean && make
 
 
 登录账号和密码:
 登录账号和密码:
 root     root123456
 root     root123456
-ftpuser  ftpuser5678
+ftpuser  ftp123456
 
 
 Written by niujiuru 2026年5月于郑州
 Written by niujiuru 2026年5月于郑州

+ 76 - 0
upgrade.service/upgrade_template.json

@@ -0,0 +1,76 @@
+[
+  {
+    "name": "networkd",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/opt/yfkj/networkd.service",
+    "replaceDirs": []
+  },
+  {
+    "name": "timesyncd",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/opt/yfkj/timesyncd.service",
+    "replaceDirs": []
+  },
+  {
+    "name": "gnss",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/opt/yfkj/gnss.service",
+    "replaceDirs": []
+  },
+  {
+    "name": "camera-capture",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/opt/yfkj/camera-capture.service",
+    "replaceDirs": [
+      "lib"
+    ]
+  },
+  {
+    "name": "app-install",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/opt/yfkj/app-install.service",
+    "replaceDirs": []
+  },
+  {
+    "name": "sshd-mqtt-bridge",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/opt/yfkj/sshd-mqtt-bridge.service",
+    "replaceDirs": []
+  },
+  {
+    "name": "web-ui",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/opt/yfkj/web-ui.service",
+    "replaceDirs": []
+  },
+  {
+    "name": "upgrade",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/opt/yfkj/upgrade.service",
+    "replaceDirs": []
+  },
+  {
+    "name": "user-app",
+    "enable": false,
+    "checkVerURL": "",
+    "clonePkgURL": "",
+    "installPath": "/home/root/yfkj-user-app",
+    "replaceDirs": []
+  }
+]

+ 6 - 16
web-ui.service/page1_handler.go

@@ -173,27 +173,17 @@ func getCPUFreq() string {
 }
 }
 
 
 func getCPUTemperature() string {
 func getCPUTemperature() string {
-	files, _ := filepath.Glob("/sys/class/thermal/thermal_zone*/temp")
-
-	max := 0
-
-	for _, f := range files {
-		data, err := os.ReadFile(f)
-		if err != nil {
-			continue
-		}
-
-		temp, err := strconv.Atoi(strings.TrimSpace(string(data)))
-		if err == nil && temp > max {
-			max = temp
-		}
+	data, err := os.ReadFile("/sys/class/thermal/thermal_zone0/temp")
+	if err != nil {
+		return noValue
 	}
 	}
 
 
-	if max == 0 {
+	temp, err := strconv.Atoi(strings.TrimSpace(string(data)))
+	if err != nil {
 		return noValue
 		return noValue
 	}
 	}
 
 
-	return fmt.Sprintf("%d℃", max/1000)
+	return fmt.Sprintf("%d℃", temp/1000)
 }
 }
 
 
 func getMemInfo() (int, string, string) {
 func getMemInfo() (int, string, string) {