]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - IMG/cpio/ventoy/hook/ventoy-os-lib.sh
1.1.01
[Ventoy.git] / IMG / cpio / ventoy / hook / ventoy-os-lib.sh
index fb36ac25f0d5405c10103f13caf4b52cfa950472..a52cd746722a14550c6963b79b6233322f3aa1bf 100644 (file)
@@ -110,4 +110,64 @@ ventoy_set_loop_inotify_script() {
     echo $VTOY_PATH/loop/$1 > $VTOY_PATH/inotifyd-loop-script.txt
 }
 
+ventoy_check_insmod() {
+    if [ -e $1 ]; then
+        $BUSYBOX_PATH/insmod $1
+    fi
+}
 
+ventoy_check_mount() {
+    if [ -e $1 ]; then
+        $BUSYBOX_PATH/mount $1 $2
+    fi
+}
+
+ventoy_has_exfat_ko() {
+    vtExfat=''
+    vtKerVer=$($BUSYBOX_PATH/uname -r)
+    if [ -d /lib/modules/$vtKerVer/kernel/fs/exfat ]; then
+        vtExfat=$(ls /lib/modules/$vtKerVer/kernel/fs/exfat/)
+    fi
+    [ -n "$vtExfat" ]
+}
+
+ventoy_is_exfat_part() {
+    $VTOY_PATH/tool/vtoydump -s /ventoy/ventoy_os_param | $GREP -q exfat
+}
+
+ventoy_iso_scan_path() {
+    if [ -f /sbin/iso-scan ]; then
+        echo -n '/sbin/iso-scan'
+    elif [ -f /bin/iso-scan ]; then
+        echo -n '/bin/iso-scan'
+    else
+        echo -n ''
+    fi
+}
+
+ventoy_has_iso_scan() {
+    vtScanPath=$(ventoy_iso_scan_path)
+    [ -n "$vtScanPath" ]
+}
+
+ventoy_rw_iso_scan() {
+    vtScanPath=$(ventoy_iso_scan_path)
+    if [ -n "$vtScanPath" ]; then
+        if $GREP -q 'mount.* ro .*isoscan' $vtScanPath; then
+            $SED -i 's/\(mount.*-o.*\) ro /\1 rw /' $vtScanPath
+        fi
+    fi
+}
+
+ventoy_iso_scan_check() {
+    vtCheckOk=0
+    if ventoy_is_exfat_part; then
+        if ventoy_has_exfat_ko; then
+            if ventoy_has_iso_scan; then
+                vtCheckOk=1
+            fi
+        fi
+    fi
+    
+    [ $vtCheckOk -eq 1 ]
+}