Переглянути джерело

fix: simplify input handling for flash mode selection in AnyKernel3

TheWildJames 3 місяців тому
батько
коміт
198c814a21
1 змінених файлів з 10 додано та 38 видалено
  1. 10 38
      .github/actions/build-kernel/patches/bypass.patch

+ 10 - 38
.github/actions/build-kernel/patches/bypass.patch

@@ -1,42 +1,16 @@
---- a/anykernel.sh	2026-05-23 20:16:58.305522267 -0400
-+++ b/anykernel.sh	2026-05-23 21:32:11.537813431 -0400
-@@ -45,6 +45,72 @@
- ui_print " " "  -> Wild Kernels Supported: $ksu_supported"
+--- a/AnyKernel3/anykernel.sh
++++ b/AnyKernel3/anykernel.sh
+@@ -46,6 +46,48 @@
  $ksu_supported || abort "  -> Non-GKI device, abort."
- 
+
 +handle_input() {
-+    # 1) try picking a node that advertises volume/power keys via /proc
-+    if [ -r /proc/bus/input/devices ]; then
-+        node=$(awk -v RS= '/KEY/ && /KEY_VOLUMEUP|KEY_VOLUMEDOWN|KEY_POWER/ {
-+            if (match($0, /event[0-9]+/)) print "/dev/input/" substr($0, RSTART, RLENGTH)
-+        }' /proc/bus/input/devices | head -n1)
-+        if [ -n "$node" ] && [ -e "$node" ]; then
-+            case $(getevent -lqc "$node" 2>/dev/null | grep -m1 'DOWN' || true) in
-+                *KEY_VOLUMEUP*) echo "bypass"; return 0 ;;
-+                *KEY_VOLUMEDOWN*) echo "normal"; return 0 ;;
-+                *KEY_POWER*) echo "cancel"; return 0 ;;
-+            esac
-+        fi
-+    fi
-+
-+    # 2) fallback: scan a small range of common event nodes
-+    for ev in /dev/input/event{0..12}; do
-+        [ -e "$ev" ] || continue
-+        case $(getevent -lqc "$ev" 2>/dev/null | grep -m1 'DOWN' || true) in
-+            *KEY_VOLUMEUP*) echo "bypass"; return 0 ;;
-+            *KEY_VOLUMEDOWN*) echo "normal"; return 0 ;;
-+            *KEY_POWER*) echo "cancel"; return 0 ;;
++    /system/bin/getevent -lq 2>/dev/null | while IFS= read -r line; do
++        case "$line" in
++            *KEY_VOLUMEUP*DOWN*) echo "bypass"; break ;;
++            *KEY_VOLUMEDOWN*DOWN*) echo "normal"; break ;;
++            *KEY_POWER*DOWN*) echo "cancel"; break ;;
 +        esac
 +    done
-+
-+    # 3) final global attempt (may block on some recoveries)
-+    case $(getevent -lqc 2>/dev/null | grep -m1 'DOWN' || true) in
-+        *KEY_VOLUMEUP*) echo "bypass"; return 0 ;;
-+        *KEY_VOLUMEDOWN*) echo "normal"; return 0 ;;
-+        *KEY_POWER*) echo "cancel"; return 0 ;;
-+    esac
-+
-+    return 1
 +}
 +
 +choose_flash_mode() {
@@ -70,6 +44,4 @@
 +
 +choose_flash_mode
 +
- # boot install
- split_boot
- 
+ # boot install