📱 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)
  • 🔗 Continuación: Unisoc) & Scrcpy · MOC Linux Mint

🧭 Arquitectura de Comunicación ADB

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 Fastboot
sudo apt update
sudo apt install android-tools-adb android-tools-fastboot -y
 
# Verificar versión instalada
adb 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:

  1. 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!“.
  2. 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).
  3. Configuración USB Predeterminada:
    • En el menú de desarrollador, establece la “Configuración USB predeterminada” en Transferencia de archivos (MTP).
  4. 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 ( y ), 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-server
adb devices
Estado en adb devicesCausa RaízSolució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 plugdev
sudo usermod -aG plugdev $USER
 
# 2. Crear archivo de reglas para Android
sudo 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ón
SUBSYSTEM=="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 kernel
sudo udevadm control --reload-rules
sudo udevadm trigger
 
# 4. Reiniciar servidor ADB para limpiar descriptores antiguos
adb kill-server
adb start-server
adb 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 tablet
adb shell ip route | awk '{print $9}'
 
# 2. Abrir el puerto de escucha TCP en la tablet
adb tcpip 5555
 
# 3. Desconectar el cable USB y conectar por IP
adb connect 192.168.1.50:5555
 
# 4. Verificar estado
adb devices
# Salida esperada: 192.168.1.50:5555 device

🚀 6. Comandos de Verificación Inicial

# Obtener modelo de hardware exacto
adb shell getprop ro.product.model
# Retorna: T1021T
 
# Obtener versión de Android y nivel de API
adb shell getprop ro.build.version.release
adb shell getprop ro.build.version.sdk
 
# Instalar un archivo APK desde la laptop
adb install -r -d mi-aplicacion.apk

🔗 Conexiones en la Bóveda