X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/d72bb15956ccf039a03702bc47c984f42d7df960..feea11e2bb2bc5f42ceca64255900e3917d87f98:/IMG/cpio/ventoy/ventoy_chain.sh diff --git a/IMG/cpio/ventoy/ventoy_chain.sh b/IMG/cpio/ventoy/ventoy_chain.sh index 7bed6d7..cae7c4f 100644 --- a/IMG/cpio/ventoy/ventoy_chain.sh +++ b/IMG/cpio/ventoy/ventoy_chain.sh @@ -52,8 +52,24 @@ ventoy_get_os_type() { fi fi + # PrimeOS : + if $GREP -q 'PrimeOS' /proc/version; then + echo 'primeos'; return + + # Debian : + elif $GREP -q '[Dd]ebian' /proc/version; then + echo 'debian'; return + + # Ubuntu : do the same process with debian + elif $GREP -q '[Uu]buntu' /proc/version; then + echo 'debian'; return + + # Deepin : + elif $GREP -q '[Dd]eepin' /proc/version; then + echo 'deepin'; return + # rhel5/CentOS5 and all other distributions based on them - if $GREP -q 'el5' /proc/version; then + elif $GREP -q 'el5' /proc/version; then echo 'rhel5'; return # rhel6/CentOS6 and all other distributions based on them @@ -77,18 +93,9 @@ ventoy_get_os_type() { # Fedora : do the same process with rhel7 elif $GREP -q '\.fc[0-9][0-9]\.' /proc/version; then echo 'rhel7'; return - - # Debian : - elif $GREP -q '[Dd]ebian' /proc/version; then - echo 'debian'; return - - # Ubuntu : do the same process with debian - elif $GREP -q '[Uu]buntu' /proc/version; then - echo 'debian'; return - - # Deepin : do the same process with debian - elif $GREP -q '[Dd]eepin' /proc/version; then - echo 'debian'; return + + elif $GREP -q 'euleros' /proc/version; then + echo 'rhel7'; return # SUSE elif $GREP -q 'SUSE' /proc/version; then @@ -162,9 +169,9 @@ ventoy_get_os_type() { elif $GREP -q 'fuyu' /etc/os-release; then echo 'openEuler'; return elif $GREP -q 'deepin' /etc/os-release; then - echo 'debian'; return + echo 'deepin'; return elif $GREP -q 'chinauos' /etc/os-release; then - echo 'debian'; return + echo 'deepin'; return fi fi @@ -222,6 +229,10 @@ ventoy_get_os_type() { echo 'android'; return fi + if $GREP -q 'android.google' /proc/version; then + echo 'android'; return + fi + if $GREP -q 'adelielinux' /proc/version; then echo 'adelie'; return fi @@ -338,6 +349,34 @@ ventoy_get_os_type() { echo "openEuler"; return fi + + #special arch based iso file check + if [ -f /init ]; then + if $GREP -q 'mount_handler' /init; then + if [ -d /hooks ]; then + if $BUSYBOX_PATH/ls -1 /hooks/ | $GREP -q '.*iso$'; then + echo "arch"; return + fi + elif [ -d /hook ]; then + if $BUSYBOX_PATH/ls -1 /hook/ | $GREP -q '.*iso$'; then + echo "arch"; return + fi + fi + fi + fi + + + #Kylin V10 Server + if [ -f /usr/sbin/dhclient ]; then + if $BUSYBOX_PATH/strings /usr/sbin/dhclient | $GREP -i -q -m1 openeuler; then + echo 'openEuler'; return + fi + fi + + if $GREP -q 'chimera' /proc/version; then + echo 'chimera'; return + fi + echo "default" } @@ -348,6 +387,23 @@ if [ -e "$VTOY_PATH/hook/$VTOS/ventoy-hook.sh" ]; then fi + +if $GREP -q -i Untangle /proc/version; then + for vtPara in $($CAT /proc/cmdline); do + vtItemkey=$(echo $vtPara | $AWK -F= '{print $1}') + vtItemVal=$(echo $vtPara | $AWK -F= '{print $2}') + if $GREP -q -m1 "^$vtItemkey\$" $VTOY_PATH/hook/default/export.list; then + vtEnvExport="$vtEnvExport $vtItemkey=$vtItemVal" + fi + done + + echo "================ env export ================" >> $VTLOG + echo $vtEnvExport >> $VTLOG + echo "============================================" >> $VTLOG +fi + + + #################################################################### # # # Step 3 : Run LiveInjection Hook # @@ -406,7 +462,12 @@ for vtinit in $user_rdinit /init /sbin/init /linuxrc; do if [ -f "$VTOY_PATH/hook/$VTOS/ventoy-before-init.sh" ]; then $BUSYBOX_PATH/sh "$VTOY_PATH/hook/$VTOS/ventoy-before-init.sh" fi - exec "$vtinit" + + if [ -z "$vtEnvExport" ]; then + exec "$vtinit" + else + exec env $vtEnvExport "$vtinit" + fi fi fi done