0 votos

¿Cómo hacer que `adb reboot` funcione como `/system/bin/reboot`?

Tengo un problema con mi dispositivo. Cuando hago adb reboot entonces se atascó en el arranque en un bucle.

Pero, cuando lo hago adb shell y luego reboot funciona bien.

He buscado en internet y entiendo que ambos tienen un comportamiento diferente:

  • adb reboot funciona como si conectaras la batería del teléfono. Es decir, no se cerrará ninguna aplicación, ni se mostrará ninguna pantalla de inicio de reinicio bonita.
  • adb shell reboot utiliza /system/bin/reboot ejecutable y hace un reinicio suave con el cierre de la aplicación abierta, mostrando la pantalla de inicio, etc.

Para verificar que adb shell reboot ejecutar /system/bin/reboot He movido el /system/bin/reboot a otro lugar y como era de esperar el reboot El comando ya no funciona, así que lo volví a poner después de la confirmación.

Quiero adb reboot para usar /system/bin/reboot ejecutable.

Quiero hacerlo desde el dispositivo Android que lo convierte en una solución general para todos los usuarios del dispositivo. Sé que puedo ejecutar adb shell reboot pero otros usuarios no lo harán.

¿Hay alguna forma de hacerlo?

0 votos

Me temo que usted está buscando una solución en el dispositivo, no para el PC?

0 votos

Tienes razón en que estoy buscando una solución para el dispositivo.

0 votos

Ambos adb reboot y /system/bin/reboot hacer lo mismo, es decir, establecer sys.powerctl propiedad a reboot (con argumentos opcionales), que también puede hacer manualmente. Ambos deberían hacer un apagado/reinicio con gracia. No estoy seguro de si el comportamiento era diferente con el antiguo adb binarios.

2voto

Firelord Puntos 161

Escribe un script en tu PC, busca el argumento 'reboot', y ejecuta tu propio comando en su lugar.

No sé cómo se vería un script compatible con Window, pero así es como se vería un simple script de bash.

#!/bin/bash
ADB="PATH\_TO\_RENAMED\_ADB\_BINARY"

if \[\[ "$1" == "reboot" \]\] && \[\[ -z ${2} \]\]; then         # $1 is the first argument received by adb
    "$ADB" shell '/system/bin/reboot'    
else
    "$ADB" "$@"                            # $@ contains all the arguments received by adb
fi

Guarde la secuencia de comandos como adb y darle permiso de ejecución, renombrar el binario adb con el nombre adb_orig y luego guardar este script como adb donde se encuentra originalmente adb.

0 votos

Necesito una solución general. Para ello tengo que colocar este script en la máquina de una persona que va a utilizar este dispositivo. Esto no es posible para mí. Por lo tanto, quiero hacerlo desde un dispositivo Android. ¿Es posible escribir dicho script en el Android?

0 votos

Oye, si voy a usar tu script en ./system/bin/adbd y cambiar el nombre de la antigua adbd a orig_adbd y editar el script con ADB="orig_adbd". ¿Funcionará?

0 votos

Tendrías que reconstruir el adb donde en el código fuente el comando de reinicio apunte a tu elección de binario. En cualquier caso, no puede existir una solución universal. Tendrías que colocar un script de shell en el PC o un binario adb especialmente diseñado. Ninguna de las dos cosas sería una solución universal.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X