0 votos

¿Puede el dispositivo Android emitir comandos adb a sí mismo?

Hice un simple shell (en realidad lote de Windows) script que automatiza una tarea en el teléfono Android. Se puede ejecutar en cualquier ordenador. He pensado que si convierto el batch a linux sh script, podría emitir los comandos sin adb shell ante ellos.

Así que esto ( .exe añadido para mayor claridad):

adb.exe shell sleep 1

se convierte en esto:

sleep 1

Bueno, funciona con sleep en particular, pero no con sendevent . Hice un script para pulsar y soltar el botón de enfoque:

#!/bin/sh
# Simply send two key events to see if it works (spoiler: it doesn't)
sendevent /dev/input/event0 1 212 1
sendevent /dev/input/event0 0 0 0
sleep 1
sendevent /dev/input/event0 1 212 0
sendevent /dev/input/event0 0 0 0

Pero no puedo ejecutar el sendevent comandos:

image description

Eso es ridículo. Obviamente mi teléfono es capaz de ejecutar los comandos desde una fuente externa, así que ¿por qué demonios no desde sí mismo? ¿Voy a necesitar un ordenador para trabajar con el shell?

¿Qué puedo hacer para emitir comandos adb a mi propio teléfono? ( No estoy usando un dispositivo rooteado. Los desarrolladores de Android lo han hecho demasiado doloroso).

1 votos

Lo que sea que uses para ejecutar ese shell script no tiene los permisos apropiados para abrir el event0 archivo de dispositivo. Esto no tiene nada que ver con la posibilidad de ejecutar un comando o no. Esto es especial para ese único comando y puede ser resuelto solicitando los permisos adecuados (permisos Root en ese caso).

0 votos

@GiantTree Pues no se puede resolver de la forma que propones, porque mi dispositivo no está rooteado. ¿Se ve bien el texto en negrita en tu dispositivo? La solución que busco es conectarme de alguna manera al servicio adb de mi dispositivo para enviar esos comandos allí, ya que como bien dices mi usado no tiene acceso a los recursos necesarios.

0 votos

He visto que no tienes un dispositivo rooteado. Esto no significa que esos permisos no sean necesarios en tu dispositivo. Lo ideal sería un kernel permisivo, porque en mi dispositivo, ese mismo archivo que has publicado se ejecuta perfectamente sin ningún error.

1voto

SteveS Puntos 111

Adb es un sistema de dos partes, el comando "ADB" que se ejecuta en tu ordenador, y un demonio que se ejecuta en el dispositivo para recibir los comandos que le envías.

Para ejecutarlo en el dispositivo se necesita una versión de ADB que esté compilada para ejecutarse en el dispositivo. Hay varias de ellas en la play store (Buscar "Adb Shell") en Google Play, como por ejemplo Shell Adb .

También hay un " ADBLib " por Cameron Guzman en GitHub que puede ser compilado en una aplicación Android y permitir ejecutar comandos Adb Shell desde allí.

0voto

user299771 Puntos 166

En un teléfono rooteado puedes hacerlo descargando linux deploy termius y cualquier aplicación adb sobre wifi en la play store todo lo que tienes que hacer es configurar linux deploy en Debian con Root como nombre de usuario y acceso ssh. conéctate a él con termius ejecuta sudo apt-get install adb cuando termine activa la aplicación adb over wifi vuelve a termius y escribe adb devices debería aparecer el dispositivo emulator-5554 durante este proceso puede pedirle que autentique la clave rsa, simplemente diga que sí y marque la casilla que dice siempre entonces usted puede ejecutar sus comandos adb

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