📱 ADB en Linux Mint (Parte 1) — Configuración, Reglas udev & Conexión
Protocolo de Enlace USB y Servidor ADB para Dispositivos Android en Linux Mint
Esta guía detalla el procedimiento para configurar Android Debug Bridge (ADB) en Linux Mint (Cinnamon / Ubuntu-based). Resuelve los bloqueos típicos de permisos mediante reglas udev personalizadas (enfocadas en chipsets Spreadtrum / Unisoc y fabricantes genéricos como tablets Alldocube T1021T), explica el flujo de autorización de claves RSA y habilita la depuración tanto por cable USB como de forma inalámbrica vía Wi-Fi.
🐧 Sistema Operativo: Linux Mint 21 / 22 (X11 / Cinnamon)
📱 Dispositivo de Referencia: Tablet Alldocube iPlay 40 / Unisoc T1021T (Vendor ID 1782:4003)
flowchart LR
subgraph PC["💻 Laptop (Linux Mint)"]
CLI["⌨️ ADB Client\n(adb shell, adb install)"] <--> Server["⚙️ ADB Server (Daemon)\n(Puerto TCP 5037)"]
Server <--> USB["🔌 Subsistema USB / udev\n(/etc/udev/rules.d/51-android.rules)"]
end
USB <-->|"Cable USB (Datos) o Wi-Fi TCP:5555"| adbd["🤖 adbd Daemon\n(Tablet / Android OS)"]
adbd --> OS["📱 Android Framework & Package Manager"]
🛠️ 1. Instalación de Herramientas ADB en Linux Mint
En Linux Mint no es necesario instalar el paquete completo y pesado de Android Studio. Las herramientas de consola oficiales se obtienen directamente de los repositorios del sistema:
# Actualizar lista de paquetes e instalar ADB y Fastbootsudo apt updatesudo apt install android-tools-adb android-tools-fastboot -y# Verificar versión instaladaadb version
📱 2. Preparación del Dispositivo Android
Antes de conectar el cable, es indispensable activar la interfaz de depuración en el sistema operativo del teléfono o tablet:
Desbloquear Opciones de Desarrollador:
Ve a Ajustes → Acerca de la tablet (o Acerca del dispositivo).
Localiza el campo “Número de compilación” y púlsalo 7 veces consecutivas hasta ver la notificación: “¡Ya eres desarrollador!“.
Activar Depuración USB:
Regresa a Ajustes → Sistema → Opciones de desarrollador.
Activa el interruptor “Depuración USB” (y “Depuración USB en modo seguro” si aparece).
Configuración USB Predeterminada:
En el menú de desarrollador, establece la “Configuración USB predeterminada” en Transferencia de archivos (MTP).
Verificación de Cable Físico:
Utiliza obligatoriamente un cable USB-C con líneas de datos conectadas (4 o más hilos). Los cables baratos de carga rápida solo conectan las líneas de alimentación eléctrica (Vbus y GND), impidiendo cualquier comunicación en el bus de datos.
🔍 3. Detección de Hardware y Solución de Permisos con udev
Conecta el dispositivo a un puerto USB directo de la laptop (evitando concentradores USB no alimentados) y ejecuta en terminal:
lsusb
En la salida de lsusb, identifica la línea correspondiente al chipset del dispositivo:
Bus 001 Device 008: ID 1782:4003 Spreadtrum Communications Inc. Unisoc Phone
idVendor: 1782 (Spreadtrum / Unisoc)
idProduct: 4003
Diagnóstico de Estados en adb devices:
adb kill-server && adb start-serveradb devices
Estado en adb devices
Causa Raíz
Solución Inmediata
T1021T... device
✅ Conexión exitosa. Claves RSA aceptadas.
Dispositivo listo para comandos shell o instalación.
T1021T... unauthorized
⚠️ Falta autorización manual en pantalla.
Enciende la pantalla de la tablet, marca “Permitir siempre desde este equipo” y pulsa Aceptar.
1782:4003 no permissions (udev)
🚨 Tu usuario Linux no tiene permisos de lectura/escritura en el nodo USB.
Configurar reglas udev con grupo plugdev (ver paso siguiente).
Lista vacía (0 dispositivos)
🫥 Falla física de cable o puerto.
Cambia de cable USB por uno de datos, cambia de puerto y verifica que la tablet esté en modo MTP.
⚙️ 4. Configuración Definitiva de Reglas udev
Para no tener que ejecutar ADB con permisos de superusuario (sudo adb) cada vez que conectas el dispositivo, configura la regla del subsistema:
Script de Registro de Reglas udev para Unisoc / Tablets Genéricas
# 1. Asegurar que tu usuario pertenece al grupo plugdevsudo usermod -aG plugdev $USER# 2. Crear archivo de reglas para Androidsudo tee /etc/udev/rules.d/51-android.rules << 'EOF'# Spreadtrum / Unisoc Devices (Alldocube, tablets educativas)SUBSYSTEM=="usb", ATTR{idVendor}=="1782", ATTR{idProduct}=="4003", MODE="0666", GROUP="plugdev"# Regla genérica para dispositivos Android en modo depuraciónSUBSYSTEM=="usb", ATTR{idVendor}=="1782", MODE="0666", GROUP="plugdev"SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666", GROUP="plugdev"EOF# 3. Recargar y aplicar las reglas del kernelsudo udevadm control --reload-rulessudo udevadm trigger# 4. Reiniciar servidor ADB para limpiar descriptores antiguosadb kill-serveradb start-serveradb devices
📶 5. Conexión Inalámbrica (ADB over Wi-Fi / TCP-IP)
Una vez autorizado por USB, puedes desconectar el cable y trabajar cómodamente por red local (ambos dispositivos conectados a la misma red Wi-Fi):
# 1. Averiguar la dirección IP local de la tabletadb shell ip route | awk '{print $9}'# 2. Abrir el puerto de escucha TCP en la tabletadb tcpip 5555# 3. Desconectar el cable USB y conectar por IPadb connect 192.168.1.50:5555# 4. Verificar estadoadb devices# Salida esperada: 192.168.1.50:5555 device
🚀 6. Comandos de Verificación Inicial
# Obtener modelo de hardware exactoadb shell getprop ro.product.model# Retorna: T1021T# Obtener versión de Android y nivel de APIadb shell getprop ro.build.version.releaseadb shell getprop ro.build.version.sdk# Instalar un archivo APK desde la laptopadb install -r -d mi-aplicacion.apk