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.
MENCIÓN ESPECIAL esta https://github.com/yangh/sevensquare el cual usa QT4/QT5 ideal para versiones viejas de Debian aunque eso implique usar ADB como un binario bajado desde google o provisto desde el scrscpy.
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 permitirlo por cualquier medio sea cable o red ya que para depurar se debe ver todo). La recepción 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:
- 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.
- 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.
- Luego, ve a Ajustes > Desarrollador > o Ajustes > Sistema > Opciones Desarrollador y actívala.
- 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.
apt-get install -t $(lsb_release -sc)-backports adb
Esto servira para Debian desde debian 10, ya que ADB sirve desde la version 20 para cualquier dispositivo.
Si esta en debian 12 o superior debera instalar un paquete extra y el comando entonces cambia asi:
apt-get install -t $(lsb_release -sc)-backports adb adbd
Esto servira para Debian desde debian 12, ya que ADB ahora separa tanto el clinete como el servicio e incluye un emulador de telefono por defecto.
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 (recordemos que debemos usar general como username en buen estándar):
usermod -a -G adbusers,input,storage,power,wheel general
Lastimosamente debera salir y volver entrar en la sesión 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
adb start-server
PASO 3 CONECTAR EL TELEFONO
Despues conectar el telefono, este la mayoria de las veces no ajusta automatico a MTP el protocolo asi:
- Debe ir a Configuracion > Dispositivos conectados o Settings > Conected Devices
- y en la parte que dice Dispositivos USB
- cambiar a protocolo de transferencia de archivos o sino Protocolo MTP para que se pueda comunicar.
- Una vez realizado esto pedira que se confie siempre en este dispositivo debe marcar el check box y aceptar la firma de emparejamiento.
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 dira unauthorized, y entonces hay que en ese telefono volver repetir el proceso de coneccion MTP y despues permitir USB debugging por emparejado como muestra la pantalla de Siempre aceptar en el paso 5 anterior.
Si todo sale bien dira "device" y ya esta listo para usarse. Obviamente los comandos de ADB no los vamos usar esto es el siglo 21 asi que vamos a herramientas como scrcpy o qtscrcpy
ACCEDER Y MANEJAR AL TELEFONO
Una vez listado podemos ejecutar la unica herramienta que importa a un linuxero, una terminal en el OS del dispositivo:
adb -s 0123456789ABCDEF shel
Notese que la parte importante aqui es "-s 0123456789ABCDEF" que indica que dispositivo se usara de los conectados. Sin esto solo resulta en un error si hay mas de uno, el resultado es una shell linux del dispositivo:
Configurar para que siempre se conecte como MTP y al mismo tiempo cargue
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 telefono tendra el modo USB MTP y al mismo tiempo cargara la bateria.
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. Como root ejecuta lo siguiente:
wget https://github.com/Genymobile/scrcpy/releases/download/v3.3.1/scrcpy-linux-x86_64-v3.3.1.tar.gz
tar -xvzf scrcpy-linux-x86_64-v3.3.1.tar.gz
mv scrcpy-linux-x86_64-v3.3.1 /opt/scrcpy
rm /opt/scrcpy/adb*
tar -xvzf scrcpy-linux-x86_64-v3.3.1.tar.gz
mv scrcpy-linux-x86_64-v3.3.1 /opt/scrcpy
rm /opt/scrcpy/adb*
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:
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:
ADB=/usr/bin/adb /opt/scrcpy/scrcpy -m800 -s 0123456789ABCDEF
Esto iniciara en 800 pixeles la altura, y selecciona el telefono usando el serial, recordemso el paso de instalacion y use de ADB de porque se usa este parametro si hay mas de un telefono. Esto no es la mejor calidad de video y audio pero no es para nada la peor y la rotacion de la pantalla es automatica segun coloques el telefono:
Esto iniciara en 800 pixeles la altura, y selecciona el telefono usando el serial, recordemso el paso de instalacion y use de ADB de porque se usa este parametro si hay mas de un telefono. Esto no es la mejor calidad de video y audio pero no es para nada la peor 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 adbmanager interfaz grafica
Este simplemnente es una interfaz avanzada de el otro. Este programa no es para manejarlo graficamente remoto, es para administrar el dispositivo y esta hecho en el gran GTK2 y funcinoa muy bien. Ejecutar como root asi:
wget https://github.com/AKotov-dev/adbmanager/releases/download/v3.4/adbmanager_3.4-0.mrx9_amd64.deb
dpkg -i adbmanager_3.4-0.mrx9_amd64.deb
dpkg -i adbmanager_3.4-0.mrx9_amd64.deb
El problema con este es que si usa USB solo puede tener un solo dispositivo, caso contrario debe especificar la conexcion por modo WIfi y configurar para usarlo por ip+puerto en la interfaz. No tiene ayuda ni parametros que configuren y su binario esta mal empaquetado. Sin embargo su interfaz es la mas avanzada graficamente.
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.
Comentarios
Publicar un comentario