]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - IMG/cpio/ventoy/hook/ventoy-os-lib.sh
1.1.07 release
[Ventoy.git] / IMG / cpio / ventoy / hook / ventoy-os-lib.sh
index 0be5a0a75ad0947495fca5e5dda0b849eca2b318..a52cd746722a14550c6963b79b6233322f3aa1bf 100644 (file)
@@ -80,14 +80,19 @@ ventoy_add_udev_rule() {
 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869719
 #
 ventoy_systemd_udevd_work_around() {
 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869719
 #
 ventoy_systemd_udevd_work_around() {
-    VTSYSTEMUDEV="$VT_RULE_DIR_PREFIX/lib/systemd/system/systemd-udevd.service"
-    if [ -e $VTSYSTEMUDEV ]; then
-        if $GREP -q 'SystemCallArchitectures.*native' $VTSYSTEMUDEV; then
-            $SED "s/.*\(SystemCallArchitectures.*native\)/#\1/g"  -i $VTSYSTEMUDEV
+    for vtdir in 'lib' 'usr/lib'; do
+    
+        VTSYSTEMUDEV="$VT_RULE_DIR_PREFIX/$vtdir/systemd/system/systemd-udevd.service"
+        if [ -e $VTSYSTEMUDEV ]; then
+            if $GREP -q 'SystemCallArchitectures.*native' $VTSYSTEMUDEV; then
+                $SED "s/.*\(SystemCallArchitectures.*native\)/#\1/g"  -i $VTSYSTEMUDEV
+                break
+            fi
         fi
         fi
-    fi
+    done
 }
 
 }
 
+
 ventoy_print_yum_repo() {
     echo "[$1]"
     echo "name=$1"
 ventoy_print_yum_repo() {
     echo "[$1]"
     echo "name=$1"
@@ -96,3 +101,73 @@ ventoy_print_yum_repo() {
     echo "gpgcheck=0"
     echo "priority=0"
 }
     echo "gpgcheck=0"
     echo "priority=0"
 }
+
+ventoy_set_inotify_script() {
+    echo $VTOY_PATH/hook/$1 > $VTOY_PATH/inotifyd-hook-script.txt
+}
+
+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 ]
+}