¿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.
Respuesta
¿Demasiados anuncios?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.
@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.
Debes tener razón. el post de reddit dice que está usando setprop pero a mi me parece el dilema del huevo de gallina
0 votos
Ver Android.stackexchange.com/q/142533/96277
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.