"Después del juego es antes del juego"
Sepp Herberger

lunes, 24 de febrero de 2020

Notas sobre los tablet TECHcomputer F101 y Android en general.


Tengo acumuladas varias notas sobre trabajo con Android, tanto con los tablet TECHcomputer que nos mandaron como de varias Android Box que tengo por el IES para diversas funciones multimedia. Vamos a irlos guardando en este post.

1. Conectar a los dispositivos Andoid desde nuestro PC.

Como ya hemos comentado, lo ideal para bichear es conectar con la shell del dispositivo para escribir comandos.

La primera opción es conectar mediante cable USB, habilitando la depuración USB en el tablet como ya contamos aquí. Una vez configurados e instalados los paquetes, conectamos por USB el dispositivo Android encendido y tecleamos:
# adb shell
La primera vez que lo hacemos seguramente en el dispositivo aparezca una ventana solicitando autorización para permitir la conexión. Le decimos que si y ya no aparecerá más.


Otra opción muy interesante es conectar mediante TCP/IP, sin necesidad de cable USB. Normalmente hay que activar el USB sobre TCP/IP en el dispositivo Android. Antiguamente había que hacerlo mediante comandos, pero en los últimos Android se activa en "Ajustes->Opciones de Desarrollador->Debugging->ADB over network" o similar, reiniciando después.

Una vez activado hacemos:
# adb connect x.y.z.a
# adb shell
Y conectamos al dispositivo Android remotamente, siendo x.y.z.a su dirección IP. Si no conocemos la dirección IP podemos buscarla haciendo un barrido nmap por nuestra red interna buscando abierto el puerto 5555 (que es el usado por la conexion ADB sobre TCP/IP):
# nmap -n -Pn x.y.z.0/24 -p5555 -oG - | grep '/open/' | awk '/Host:/{print $2}'

2. Mas allá del shell: escritorio remoto.

No solo por shell, tambien podemos aprovechar la conexión ADB para contolar remotamente el interface gráfico usando ratón y teclado, como una conexión VNC, el dispositivo Android desde nuestro PC con toda la comodidad del mundo.

El truco está en instalar en nuestro pc la aplicación scrcpy. Luego simplemente con ejecutar:
# adb connect x.y.z.a
# scrcpy
Si la conexión es por cable USB la parte "adb connect x.y.z.a" no es necesaria, claro está. Nos aparecerá el escritorio Android remoto en una ventana:


Cuando usas adb shell y scrcpy todo cambia: ya no quieres volver a configurar un dispositivo Android tocándolo físicamente. Es mucho mas sencillo con estas herramientas.

3. Varios comandos y configuraciones.

Desde la conexión "adb shell" podemos configurar un montón de ajustes finos de Android que no suelen estar muy documentados. Toca buscar en Internet. Voy a poner los que vaya descubriendo:

  • Verificar si está rooteado (es decir, tenemos permisos de superusuario sobre el dispositivo Android): haciendo "su" y viendo si el prompt cambia a "#" sin error.
    KI_PRO_S905D:/ $ su
    KI_PRO_S905D:/ # 
    
  • Ver configuraciones y aplicarlas con "getprop" y "setprop". Por ejemplo, para ver el DNS configurado:
    # getprop | grep dns1
    [net.dns1]: [192.168.0.100]
    
    Al poner getprop/setprop sin parámetros vemos la lista completa de opciones.
  • Impedir el apagado/suspensión del dispositivo Android (útil por ejemplo si lo usamos con un panel informativo)
    # svc power stayon true
    
    Luego podemos comprobar si está activado con:
    # settings get global stay_on_while_plugged_in
    7
    
    El valor "7" significa "activado".
    Con el comando settings se puede acceder/modificar cientos de parámetros del sistema Android, que están escasamente documentados. Aquí hay alguna pista.
    KI_PRO_S905D:/ # settings                                                      
    usage:  settings [--user  | current] get namespace key
            settings [--user  | current] put namespace key value
            settings [--user  | current] delete namespace key
            settings [--user  | current] list namespace
    
    'namespace' is one of {system, secure, global}, case-insensitive
    If '--user  | current' is not given, the operations are performed on the system user.
    
Espero seguir aumentando esta lista de comandos últiles con el tiempo y hacer crecer este apartado.

4. Reinicios hacia recovery y bootloader.

Cuando queremos entrar tanto en el recovery como en el bootloader para hacer copias de seguridad, resetear el dispositivo o cargar una actualización, el método estándar es encender el aparato pulsando una combinación de botones físicos bastante puñetera. A veces tienes que hacer varios encendidos y apagados hasta dar con la tecla, nunca mejor dicho.

Una opción mas limpia es aprovechar que tenemos "adb shell" para reiniciar desde la línea de comandos de forma sencilla. Entramos en "adb shell" por USB y hacemos:
# reboot recovery
o
# reboot bootloader
Y entramos directamente al modo deseado de un manera limpia y directa.

Una método simple para saber en que estado está el dispositivo es usar el comando lsusb (con el aparato conectado por USB, of course). Por ejemplo, para nuestros TECHcomputer F101, con chipset Rockchip RK 3326 el resultado puede ser:
2207:330d Modo download/bootloader/fastboot
2207:0006 Modo normal
2207:0001 Modo recovery
Recordemos que el modo download normalmente muestra la pantalla en negro con un mensaje de texto, esperando órdenes desde el pc.

En cambio el modo recovery suele mostrar un menú con opciones para trastear, manejado por los botones físicos de volumen y power. En nuestras tablets F101 al entrar en el recovery aparece una pantalla con un muñeco de Android y el texto “No Command”. Para llegar al menú pulsamos sin soltar el botón Power y a continuación pulsamos Bajar Volumen una sola vez brevemente y soltamos. En otras ocasiones hace falta conectar un teclado externo para manejarlo.

Out!

No hay comentarios:

Publicar un comentario