9 votos

¿Cómo ejecutar los comandos adb y fastboot desde Termux?

¿Es posible ejecutar adb y fastboot comandos utilizando el emulador de terminal Termux? Estoy queriendo ejecutar comandos desde un Huawei T3 7 a otro utilizando el cable USB/OTG. Necesito desbloquear el bootloader pero no tengo acceso a un PC o portátil.

0 votos

1 votos

@Firelord Termux es un poco diferente a tu emulador habitual. Es más bien similar a una distribución barebones autocontenida, en su lugar. Además, Google ha eliminado el adb binario de Android a partir de Marshmallow.

5voto

Jack Wade Puntos 231

Esta pregunta es casi un duplicado de este que tiene una respuesta detallada de @ Señor del fuego , excepto la parte de Termux. Como menciona @ DeathMaskSalesman en comentario, Termux es más bien un entorno Linux, pero hasta ahora no tiene adb y fastboot en los repositorios, aunque propuesta . Probablemente porque están pensados para dispositivos rooteados. Pero puedes usar binarios estáticos (por ejemplo este o este ) en Termux como en la aplicación habitual del emulador de Terminal. Asegúrese de establecer las variables de entorno adecuadas ( TMPDIR , HOME o HOMEDIR ).

Sin embargo, no podrá ejecutar cada una de ellas sin Root porque sólo los miembros de AID_USB son capaces de leer los dispositivos en /dev/bus/usb/ ( 1 ) . Además, SELinux restringe el acceso de las aplicaciones sin privilegios a /sys y /dev .

Para adb hay un solución si ambos dispositivos están conectados a la misma red, por ejemplo, Wi-Fi o hotspot. adbd puede ser ejecutado para escuchar en el socket TCP en lugar de USB. Es posible si antes de activar la propiedad "Depuración USB" service.adb.tcp.port ( 2 ) se establece en algún puerto ( primer defecto es 5555 ). Las aplicaciones no pueden establecer propiedades, así que para hacer esto usando setprop en adb shell o simplemente ejecutando adb tcpip 5555 En el caso de que el dispositivo de destino se conecte a un PC a través de un USB, lo único que hay que hacer desde Termux antes de enviar los comandos es Entonces todo lo que tienes que hacer desde Termux antes de enviar los comandos es:

~$ adb connect <IP>:5555

Pero service.adb.tcp.port se resetea al reiniciar y hay que volver a configurarlo. Hay otra propiedad persist.adb.tcp.port que persiste a través de los reinicios, pero está destinado sólo para pruebas y SELinux no le permitirá establecer esto sin Root o alguna aplicación del sistema que se ejecute con UID 1000 .

Algunas ROMs personalizadas tienen un interruptor incorporado para establecer service.adb.tcp.port . Pero para fastboot root es imprescindible. Sin embargo, es posible en Android para acceder a los dispositivos USB OTG a través de android.hardware.usb APIs. fastboot-mobile es una biblioteca no oficial de Google para enviar fastboot comandos a través de OTG. Esta aplicación (no tengo ninguna afiliación) también proporciona una funcionalidad limitada similar.

1 votos

@alecxs Entonces, ¿cómo establece Tasker service.adb.tcp.port a 5555 sin conectarse al PC? En las opciones de Android Dev de stock no tienen ADB en la red . Así que la única manera de establecer service.adb.tcp.port es a través de adb porque las aplicaciones no pueden establecer propiedades. service.adb.tcp.port tiene contexto SELinux shell_prop Así que adbd puede fijarlo. Pero persist.adb.tcp.port no tiene un contexto SELinux definido, por lo que se establece con el contexto default_prop que sólo puede ser fijado por init en user construye. Así que las dos propiedades pueden ser establecidas permanentemente sólo (con Root o) en ROMs con política SELinux modificada.

1 votos

Debes tener razón. el post de reddit dice que está usando setprop pero a mi me parece el dilema del huevo de gallina

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