Ir al contenido principal

Conectar el telefono o smarttv y manejarlo remoto con ADB y linux en 2025

 En los inicios la mierda de google daba todo a windos, IRONICO QUE ANDROIT SIENDO LINUX NO TUVIERA COMO ADMINISTRARLO DESDE LINUX

.. pero gracias a la comunidad Y RECALCO QUE NO IMPORTA SI EL CODIGO ES ASQUEROSO (ya que muchos critican a Xlibre o X11libre) muchos de las soluciones para ADB y manejar androit remoto son codigo fuente asqueroso pero funciona! Funciona para Telefonos y Televisores.



Hay muchas opciones, la mas famosa es scrcpy puesto es la mas simple y la mas eficiente, sin embargo es sin interfaz gráfica, la segunda mas famosa es qtscrcpy la cual es basada en la primera pero es mas pesada obviamente aunque llena de muchos mas características como manejar al mismo tiempo varios teléfonos.




MENCION ESPECIAL esta https://github.com/yangh/sevensquare el cual usa QT4/QT5 ideal para distribuciones viejas o distros estables.

ADVERTENCIA PARA TODOS TUS TELEFONOS


Siempre siempre debes activar el adb en tu telefono, gastara mas bateria pero es imprescindible activar esto desde el inicio, ya que ayudara a manejarlo aun si tu telfono se bloquea o se pierde su modo de acceso.

El modo ADB en los telefono lo que hace ADB es permitir enviar el video y el audio (y permitorlo por cualquier medio sea cable o red). La recepcion de teclado y raton (emular que manejas el telefono) esta activada por defecto y se puede usar con scrscpy sin tener que activar el modo ADB o el modo USB de depuracion del telefono.

Es decir un telefono se puede controlar remoto si no se quiere ver el video en la pc Linux. Por lo tanto, es posible ejecutar scrcpy solo con la simulación física del teclado, mouse y gamepad, como si el teclado, mouse y gamepad de la computadora estuvieran conectados directamente al dispositivo a través de un cable OTG. Este modo OTG es solo funcional usando cable USB.

PARTE 1 TENER ADB en ambas partes telefono y linux

PASO 0 ACTIVAR ADB en el telefono


Para conectarte a un dispositivo o teléfono real mediante adb, debes activarlo en el telefono asi:

  1. Ve a Ajustes > Acerca del teléfono, sino ve a Ajustes > Sistema> Acerca del dispositivo, LA idea es buscar la parte donde esta el numero de compilacion o Build number o Build release.
  2. Alli pulsa Número de compilación siete veces hasta que aparezca una ventana emergente indicando que te has convertido en desarrollador. El número de compilación puede estar en el menú "Información del software" en las versiones más recientes del sistema operativo Android.
  3. Luego, ve a Ajustes > Desarrollador >  o Ajustes > Sistema > Opciones Desarrollador y actívala.
  4. Alli en el modo desarrollador debes navegar hasta encontrar la opcion de Depuración USB. Antes de activarla mostrara una advertencia. Esto obviamente implicara un mayor desgaste de bateria y mayor consumo de recursos por lo que en telefonos viejos implicara una carga severa.


ADVERTENCIA ADICIONAL:  una opción adicional USB debugging (Security Settings) (diferente de USB debugging) es necesaria para controlarlo con el teclado y el ratón. Una vez activada esta opción, deberá reiniciar el dispositivo. Esto ocurre especialmente en dispositivos nuevos y los telefonos Xiaomi.

PASO 1 INSTALANDO Y ACTIVANDO ADB en el linux


En arch esto es sin cuidado, ya que arch es distro de modas estupidas estara 100% actualizado el ADB.

pacman -S android-tools android-udev

Se puede notar que elegimos el udev y esto segun para que automaticamente active el modo MTP en el dispositivo aunque casi nunca lo hace y hay que hacerlo a mano (el cual se aborda en la siguiente seccion de "conectar el telefono" mas abajo).



PASO 2 INICIANDO Y DEJANDOLO ACTIVO ADB

Antes de seguir los dos pasos previos deben estar, especialmente en el teléfono dejar activo el ADB mediante el developer mode.

ADB es un ejecutable como servicio, inicia a demanda por el usuario, lo que significa que si este no esta en el grupo correcto (USB, adbusers) este programa no permitirá acceder al dispositivo si ejecuta como root. El programa puede arrancar (de hecho lo hace) como usuario y se queda ejecutando una vez se pide algún proceso a este.

NOTA se propuso crear un archivo unidad de servicio pero los usuarios de arch falsamente creen en un minimalismo que no existe, y fue rechazado.. https://bugs.archlinux.org/task/46121 aunque ciertamente con solo agregarse al grupo basta y sobra ya que el programa se ejecuta en el espacio de usuario si este puede acceder al teléfono de manejar normal según los grupos.

Una vez instalado agregarse al grupo de usuarios de ADB asi como al de input y usb asi:

usermod -a -G adbusers,input,storage,power,wheel general

Lastimosamente debera salir y volver entrar en la sesion grafica no importa si usa Wayshit o Xlibre, para que esto tenga efecto.

Una vez reiniciada la sesion activar el servicio de ADB asi:

adb kill-server
adb start-server

PASO 3 CONECTAR EL TELEFONO


Después conectar el teléfono, este la mayoría de las veces no ajusta automático a MTP el protocolo así:

  1. Debe ir a Configuracion > Dispositivos conectados o Settings > Conected Devices 
  2. y en la parte que dice Dispositivos USB 
  3. cambiar a protocolo de transferencia de archivos o sino Protocolo MTP para que se pueda comunicar. 
  4. Una vez realizado esto pedirá que se confié siempre en este dispositivo debe marcar el check box y aceptar la firma de emparejamiento.
  5. Cada vez lo conectes a una pc o por cada teléfono este recuadro de confiar saldrá!



Una vez emparejado ya se puede realizar siempre este proceso sin tanto pasos, solo conectar el cable y listar, para ello ya has iniciado previamente el programa de ADB y puedes listar si detecta el dispositivo asi:

adb devices

Si el dispositivo no esta emparejado mostrara una palabra que dirá unauthorized, y entonces hay que en ese teléfono volver repetir el proceso de coneccion MTP y después permitir USB debugging por emparejado como muestra la pantalla de Siempre aceptar en el paso 5 anterior.

Si todo sale bien dirá "device" y ya esta listo para usarse. Importante, la lista mostrara cada telefono como un serial, este serial es el que se usara para conectarse. Obviamente los comandos de ADB no los vamos usar esto es el siglo 21 así que vamos a herramientas como  scrcpy o qtscrcpy


CONFIGURAR LA CONEXION USB Y EL MODO MTP


Una contrariedad que siempre debamos ir al telefono y configurar modo USB MTP de la conexcion, para ello podemos forzarla desde el ADB con un comando de shell:

adb -s 9090018019002951 shell svc usb setFunction mtp

Ahora cada vez que se conecte el teléfono ya siempre tendrá el modo USB MTP y al mismo tiempo cargara la batería. Ojo: Recuerda que el numero del comando es el serial del telefono

PARTE 2 USAR UNA HERRAMIENTA CON EL ADB

Hay muchas opciones, la mas famosa es scrcpy puesto es la mas simple y la mas eficiente, sin embargo es sin interfaz gráfica, la segunda mas famosa es qtscrcpy la cual es basada en la primera pero es mas pesada obviamente aunque llena de muchos mas características como manejar al mismo tiempo varios teléfonos. La otra mas simpel y super compatible es androidscreencast-bin en AUR de Arch linux.

PASO 4 instalar scrcpy

Esta es la mas madura, desarrollada y completa, pero solo se usa con linea de comandos su configuracion, eso si una vez iniciada tienes total control del telefono. En arch esto es sin cuidado, ya que arch es distro de modas estupidas estara 100% actualizado.

pacman -S libmtp scrcpy

El telefono debe ser minimo Androit 5.0 en adelante. Si tienes un televisor Smartv tambien te funcionara.

Una vez activado el ADB como se indico en todos los pasos y conectado el telefono con USB iniciamos el progama con estos parametros (asumiendo tu pantalla linux es minimo 1024x768 o mayor) asi:

scrcpy -m800 -b 4M --keyboard=sdk --mouse=sdk --select-usb --video-codec=h264

Esto iniciara en 800 pixeles la altura, escalado para que no salga de la pantalla si es chica, con una tasa de transferencia de 4 megas y con teclado y raton configurados como dispositivos adjuntados al telefono asumiendo el codec mas comun que es h254 presente desde androit 5. Esto no es la mejor calidad de video y audio pero no es para nada la pero y la rotacion de la pantalla es automatica segun coloques el telefono:


Tenga en cuenta que estos parámetros son los mas compatibles respecto los mas avanzados, puede usar h265 para mejor calidad de la pantalla así como activar mayor resolución y mayor tasa de transferencia pero eso pedirá mas recursos de su teléfono y de su tarjeta de video ya que se requiere Opengl y soporte 3d activo en linux.

Ana vez activo y funcionando para los botones del medio es "click medio" o sino "super+h", y para el retornar es "click derecho" o "super + b". Un click derecho activa la tecla de encendido del telefono.

USO GENERAL Y REDES La siguiente linea de comandos es mejor para manejar redes sociales que no impliquen alta demanda de video manejándolas en tu telefono desde la pc, lo mantiene activo que este siempre conectado:

adb shell settings put global stay_on_while_plugged_in 7

scrcpy -m1024 -w 
--audio-codec=flac --audio-bit-rate=96K  --audio-buffer=80 --audio-output-buffer=7 --video-codec=h264 --video-bit-rate=6M --keyboard=uhid --mouse=sdk --max-fps=30

VIDEOJUEGOS: estos necesitan que tengas coneccion por USB buena en puerto 3.0, ademas tu pc debe tener la tarjeta de video decente ya que si es integrada el sonido se vera afectado. Ademas el telefono debe tener minimo androit 9 para que active los codecs mejorados.

scrcpy -m1024 -Sw --audio-codec=aac --audio-bit-rate=128K  --audio-buffer=70 --audio-output-buffer=7 --video-codec=h264 --video-bit-rate=10M --keyboard=uhid --mouse= --no-key-repeat --max-fps=60

PASO 5 instalar qtscrcpy interfaz grafica

Este simplemnente es una interfaz avanzada de el otro. Obviamente necesita de tener activado todo lo anterior, ojo ver el articulo anterior de como activar yay o los repositorios AUR.

yay -Suy qtscrcpy

El problema con este es que no permite bajas configuraciones, ejemplo exige mucho de un dispositivo asi que no lo recomiendo al que desee configurar para sacar buen rendimiento. Es mas para el que no sabe usar mucho el anterior. Es recomendable para conecciones WIFI pero no para USB porque las asume seriales. Comodamente coloca una barra lateral que envia las teclas mas usadas del telefono. No tiene mucho de diferente respecto el anterior.




CONCLUSION


En los primeros dispositivos la pantalla de aceptar el fingerprint para el modo usb no existia, por lo que en la mayoria de las distros asi como los telefonos viejos esto no servira. Si tiene un telefono viejo debera usar una distro Debian que aun tenga en Debian 9 o 10 o 11 el antiguo ADB desde los repos, este permite conectar hacia los androit que no use el ADB con aceptacion de firgerprint (la pregunta al conectar por primera vez el telefono en modo ADB.).

Adicional el programa hecho en qt no es tan impresionante mas que enviar por simples botones lo que hacemos en la linea de commandos la cual no es tan difícil incluso con solo invokar el comando del program original se levanta la sesion del telefono sin tanto que ver.

Pero lo mas estupido y que da ma rabia es que Androit esta hecho en linux y que nunca se le dio herramientas para conectarlo, solo en windos y la comunidad tivo que hacer lo de siempre.. hackearlos y despues se quejan las empresa porque las joden.

Entradas anteriores - historico de articulos (click para ver)

Articulos mas leidos aqui:

informandose de arch vs lo que se de debian

  Lo primero es informarme, si vale la pena, ya que yo analize que a mayor lineas de codigo y features mayor necesidad de computo.. asi que como arch es siempre lo ultimo de la moda debo ver si vale la pena ya que el equipo adquirido es un DELL Optiplex 5050 de 7ma ..

instalando Archlinux parte 4 - el error de efi y el siglo pasado

  La cagada esta hecha para disociados sociales que solo ven el monitor y no tienen vida sexual fallo por un misero detalle, no se especifico la particion porque solo se le indica es ESP (EFI).. 

Arch linux instalado, apreciaciones y analisis inicial

  Después de sufrir con el instalador mas miserable de el planeta (incluso el de Alpine linux que esta atrasado en una era moderna de interfaces graficas es mucho mas moderno que este) .. el sistema instalo correctamente (habia fallado solo porque el json generado esta mal formateado, ver dos artículos atras) Hoy veremos que trae de bueno.. (que solo fue una sola cosa) después de tener el escritorio trabando decente (ver articulo anterior)

arch multimedia 2 ampliando - instalando audio video y mas

 ... después de la comparativa anterior en multimedia  aquí listare que hay que hacer para tener el mismo set multimedia que uso para cuando hago multimedia , grabo mis canciones, practico la música y juego minecraft .. umm esto ultimo lo dejo para después..   

Instalando ARCH linux parte 2 - preparando el disco duro

  En este post vamos a preparar todo antes de instalar , porque hay operaciones que solo se pueden hacer antes de tener datos importantes en el pc!  Ejemplo, las particiones, o el tamaño de sector, o el tipo de sistemas de ficheros!  OJO leer la entrada anterior sobe los discos NVME! aquí yo asumo un disco NVME M.2 2280 PCIe x4 es decir el mas rápido, no discos mixtos SATA+NVME