La forma correcta de hacerlo
Desactivar el roto VOLUME DOWN clave mediante la edición de /system/usr/keylayout/gpio-keys.kl
y /system/usr/keylayout/Generic.kl
como root
y comentando esa clave. Instrucciones más largas en esta respuesta .
Enfoque tonto y difícil que más o menos me ha funcionado
Esta es una solución fea pero a mí me funciona. Es una solución "atada" que requiere adb
para hacer repetidos "reinicios suaves" (reiniciar el Proceso del cigoto en Android ).
Este bash
script reinicia repetidamente el proceso de Android Zygote hasta que detecta que el dispositivo no está en modo seguro. Tarda unos 20-50 reinicios hasta que mi dispositivo tiene suerte al azar y no se reinicia en modo seguro
#!/bin/sh
n=0
g=0
while true; do
safe_mode=$(adb shell dumpsys display | egrep -o 'mSafeMode=\w+' | cut -d= -f2)
case "$safe_mode" in
true)
n=$(( $n + 1 ))
g=0
echo "In safe mode, rebooting (try #${n}) ..."
adb shell "su root -- killall zygote"
;;
false)
g=$(( $g + 1 ))
[[ $g -gt 2 ]] && break;
echo "Appears not to be in safe mode, will check again ..."
;;
*)
echo "adb shell dumpsys display failed" ;;
esac
sleep 15
done
adb shell dumpsys power | grep -q 'mScreenOn=false' && \
adb shell input keyevent = POWER
echo "Escaped from safe mode after ${n} reboots. Whew."
Esta pregunta relacionada y esta respuesta me dio lo que necesitaba para resolverlo.