2 votos

Leer la ubicación GPS desde la línea de comandos a través de SSH

Me pregunto si hay una manera de leer las coordenadas GPS actuales a través de SSH usando SSHelper como servidor SSH.

Me encontré con algunos hilos similares:

He conseguido ejecutar el servidor SSH y conectarme a él. Hasta ahora, he tratado de ejecutar el dumpsys location a través de ssh, que me da lo siguiente:

Permission Denial: can't dump LocationManagerService from from pid=27381, uid=10192 due to missing android.permission.DUMP permission

¿Ese comando sólo funciona con adb? Si es así, ¿hay otra manera de recuperar las coordenadas GPS a través de ssh, es decir, utilizando algunos comandos de shell?

No tengo Root y no soy desarrollador de aplicaciones. Gracias.

1 votos

Ah, ¡perdón! estás ejecutando el comando desde la aplicación SSHHelper, y para hacer esto tu APK debe tener el permiso DUMP por supuesto, lo cual no es posible sin Root en tu caso, has probado con la línea de comandos desde tu PC, yo no tengo problemas con dispositivos no Root usando "adb shell dumpsys location | find "Last Known Locations"

1 votos

Ah, vale, entonces el permiso DUMP sólo es posible para las aplicaciones del sistema o las aplicaciones firmadas con la clave de la plataforma, ¿no? Así que la aplicación SSHelper no puede tenerlo, a menos que rootee mi teléfono y lo mueva a la partición del sistema, ¿es eso correcto? En ese caso, me pregunto si hay otras maneras de recuperar los datos del GPS a través de SSH en entornos no Root. Como quiero usar SSH como protocolo inalámbrico, adb vía USB no es una opción para mí en este caso.

1voto

soelderer Puntos 31

Aunque no he encontrado ninguna solución usando SSHelper, sí es posible usando Termux y la Termux-API. No se requiere Root.

Después de instalar la aplicación Termux, hay que instalar los paquetes Termux openssh y termux-api :

$ pkg install openssh
$ pkg install termux-api

También tuve que instalar la aplicación Termux-API desde Playstore o F-Droid para que funcionara.

La configuración de sshd se puede editar como se desee y se puede encontrar en $PREFIX/etc/ssh/sshd_config .

Establezca una contraseña para la autenticación SSH (o, alternativamente y aún mejor, la autenticación de clave pública con ssh-keygen y ssh-copy-id ):

$ passwd

A continuación, inicie el servidor ssh:

$ sshd

Para detener el servidor:

$ pkill sshd

En mi caso está en el puerto 8022 por defecto. Ahora uno debería tener acceso a los comandos de Termux-API a través de ssh. termux-location recupera los datos del GPS como JSON. Por ejemplo:

$ ssh u0_a202@192.168.0.7 -p 8022 termux-location
{
   "latitude": xx.xxxxxxxxxxxxxxxx,
   "longitude": yy.yyyyyyyyyyyyyyyy,
   "altitude": zzz.zzzzzzzzzzzz,
   "accuracy": 64.31999969482422,
   "vertical_accuracy": 192.0,
   "bearing": 301.9921875,
   "speed": 0.4399999976158142,
   "elapsedMs": 8,
   "provider": "gps"
}

Fuentes:

https://wiki.termux.com/wiki/Remote_Access

https://wiki.termux.com/wiki/Termux:API

https://wiki.termux.com/wiki/Termux-location

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