diff --git a/palera1n.sh b/palera1n.sh index 89e300c..da93be4 100755 --- a/palera1n.sh +++ b/palera1n.sh @@ -41,10 +41,15 @@ remote_cp() { } step() { + rm -f .entered_dfu for i in $(seq "$1" -1 0); do - if [[ $(get_device_mode) == "dfu" || ($1 == "10" && $(get_device_mode) != "none") ]]; then + if [[ -e .entered_dfu ]]; then + rm -f .entered_dfu break fi + if [[ $(get_device_mode) == "dfu" || ($1 == "10" && $(get_device_mode) != "none") ]]; then + touch .entered_dfu + fi & printf '\r\e[K\e[1;36m%s (%d)' "$2" "$i" sleep 1 done @@ -200,7 +205,8 @@ _reset() { get_device_mode() { if [ "$os" = "Darwin" ]; then - apples="$(system_profiler SPUSBDataType 2> /dev/null | grep -B1 'Vendor ID: 0x05ac' | grep 'Product ID:' | cut -dx -f2 | cut -d' ' -f1 | tail -r)" + sp="$(system_profiler SPUSBDataType 2> /dev/null)" + apples="$(printf '%s' "$sp" | grep -B1 'Vendor ID: 0x05ac' | grep 'Product ID:' | cut -dx -f2 | cut -d' ' -f1 | tail -r)" elif [ "$os" = "Linux" ]; then apples="$(lsusb | cut -d' ' -f6 | grep '05ac:' | cut -d: -f2)" fi @@ -244,7 +250,7 @@ get_device_mode() { if [ "$os" = "Linux" ]; then usbserials=$(cat /sys/bus/usb/devices/*/serial) elif [ "$os" = "Darwin" ]; then - usbserials=$(system_profiler SPUSBDataType 2> /dev/null | grep 'Serial Number' | cut -d: -f2- | sed 's/ //') + usbserials=$(printf '%s' "$sp" | grep 'Serial Number' | cut -d: -f2- | sed 's/ //') fi if grep -qE '(ramdisk tool|SSHRD_Script) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{1,2} [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}' <<< "$usbserials"; then device_mode=ramdisk