]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - IMG/cpio/ventoy/hook/ventoy-os-lib.sh
Merge branch 'master' of https://github.com/Ventoy/Ventoy
[Ventoy.git] / IMG / cpio / ventoy / hook / ventoy-os-lib.sh
index dbd015f877e91228d2f636e9c1587e77448fc054..a52cd746722a14550c6963b79b6233322f3aa1bf 100644 (file)
@@ -121,3 +121,53 @@ ventoy_check_mount() {
         $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 ]
+}