📱 ADB en Linux Mint (Parte 2) — Debloating de Tablets, Restricciones & Scrcpy

Procedimiento Táctico de Liberación de Software y Control Remoto

Esta segunda parte aborda la auditoría de políticas MDM (Mobile Device Management), eliminación de restricciones escolares/institucionales (bloqueos MINEDU / programas educativos), desinstalación segura de bloatware sin riesgo de brick y control remoto por pantalla de baja latencia con Scrcpy en dispositivos Android y tablets con procesadores Unisoc / Spreadtrum.

  • 📱 Entorno: Tablets educativas / Alldocube T1021T con Android 10/11/12
  • 🛠️ Herramientas: ADB Shell + Package Manager (pm) + Scrcpy + Aurora Store
  • 🔗 Prerrequisito: Parte 1: Configuración ADB y Reglas udev

🧭 Diagnóstico de Restricciones MDM y Paquetes Bloqueadores

flowchart TD
    Inspect["🔍 1. Auditoría de Restricciones\n(dumpsys user 0 / device_policy)"] --> Detect["📦 2. Identificación de Paquetes\n(pm list packages -3)"]
    Detect --> Bypass["🔓 3. Bypass de Restricción APK\n(settings put secure install_non_market_apps 1)"]
    Bypass --> Action{"¿Eliminar o Desactivar?"}
    Action -->|"Modo Seguro (Recomendado)"| Disable["pm disable-user --user 0 <pkg>"]
    Action -->|"Modo Limpieza Total"| Uninstall["pm uninstall -k --user 0 <pkg>"]
    Disable & Uninstall --> Scrcpy["🖥️ Control Fluido con Scrcpy\n(Espejado de pantalla, audio y portapapeles)"]

🔍 1. Auditoría del Sistema: Descubrir qué está Bloqueando

Cuando intentas instalar un archivo APK y la terminal devuelve el error:

Failure [INSTALL_FAILED_USER_RESTRICTION]

Significa que un paquete de administración o política institucional tiene activo el flag no_install_unknown_sources. Ejecuta en terminal los 3 comandos de diagnóstico:

# 1. Listar todas las aplicaciones de terceros instaladas
adb shell pm list packages -3
 
# 2. Verificar si existe un Administrador de Dispositivo (Device Owner / MDM)
adb shell dumpsys device_policy
 
# 3. Extraer la lista de restricciones activas para el usuario principal (User 0)
adb shell dumpsys user 0 | grep -i -A 10 "User restrictions"

Palabras clave a buscar en los paquetes de terceros (-3):

Busca identificadores que contengan: edu, policy, mdm, kids, safe, guardian, school, launcher, minedu, aprendoencasa, perueduca.


🔓 2. Habilitar la Instalación de Orígenes Desconocidos

Fuerza al subsistema de ajustes de Android a permitir instalaciones fuera de Google Play:

# Activar instalación de fuentes no verificadas en settings seguros
adb shell settings put secure install_non_market_apps 1
adb shell settings put global install_non_market_apps 1
 
# Reintentar la instalación del APK
adb install -r -d ./aurora-store.apk

🧹 3. Desactivación y Desinstalación de Bloatware sin Root

Android permite deshabilitar o desinstalar aplicaciones a nivel del usuario local (--user 0) sin necesidad de desbloquear el bootloader ni rootear el dispositivo, manteniendo el sistema operativo estable:

Reglas Inviolables de Debloating

  • NUNCA toques paquetes esenciales del núcleo como com.android.systemui, com.android.settings, com.android.providers.* ni paquetes de telefonía/radio si usas SIM.
  • Prioriza pm disable-user antes de desinstalar: si algo sale mal, se reactiva al instante con un solo comando.

Método A: Deshabilitar el paquete (Recomendado y Seguro)

Oculta la aplicación del lanzador, apaga sus procesos en segundo plano y anula sus políticas activas:

adb shell pm disable-user --user 0 com.nombre.bloqueador

Método B: Desinstalar solo para el Usuario 0

Elimina los datos y binarios del entorno de usuario, pero conserva el APK en la partición /system para permitir su recuperación futura:

adb shell pm uninstall -k --user 0 com.nombre.bloqueador

Método C: Cómo Revertir y Restaurar si cometiste un error

Si necesitas restaurar un paquete desinstalado o devolver la tablet a su estado original:

# Para restaurar un paquete desinstalado con --user 0:
adb shell cmd package install-existing com.nombre.bloqueador
 
# Para reactivar un paquete deshabilitado:
adb shell pm enable com.nombre.bloqueador

🏪 4. Instalación del Ecosistema de Tiendas Libres

Una vez liberadas las restricciones, instala tiendas de software independientes para descargar herramientas sin vincular una cuenta personal de Google:

  1. Aurora Store (Cliente libre de Google Play Store):
    • Permite descargar cualquier app gratuita de la Play Store con sesión anónima.
    adb install -r -d AuroraStore.apk
  2. F-Droid (Repositorio de Software Libre FOSS):
    • Catálogo de herramientas de código abierto como editores, visores de PDF y utilidades de red.
    adb install -r -d F-Droid.apk

🖥️ 5. Control Remoto y Espejado con Scrcpy en Linux Mint

Scrcpy es la mejor herramienta de código abierto para mostrar y controlar la tablet desde la pantalla de tu laptop Linux con latencia casi nula (< 35 ms):

Instalación en Linux Mint:

sudo apt install scrcpy -y

Comandos de Ejecución Optimizados:

Presets de Lanzamiento de Scrcpy

# 1. Lanzamiento estándar con pantalla encendida y reenvío de audio
scrcpy --always-on-top
 
# 2. Modo Ultra Fluido para tablets con resolución 2K (como la Alldocube T1021T):
# Limita la resolución a 1080p y fija el bitrate a 8 Mbps para evitar tirones
scrcpy --max-size 1920 --video-bit-rate 8M --max-fps 60
 
# 3. Mantener la pantalla física de la tablet APAGADA mientras la usas en la laptop
scrcpy --turn-screen-off --stay-awake
 
# 4. Conexión inalámbrica directa (si configuraste ADB por Wi-Fi):
scrcpy --tcpip=192.168.1.50:5555

Atajos Útiles dentro de Scrcpy:

  • Alt + F: Pantalla completa.
  • Alt + H: Botón Inicio (Home).
  • Alt + B: Botón Atrás (Back).
  • Alt + S: Selector de aplicaciones recientes.
  • Ctrl + C y Ctrl + V: Copiar y pegar sincronizado entre Linux Mint y Android.
  • Arrastrar y soltar un archivo .apk sobre la ventana de Scrcpy: Instalación automática.

🔗 Conexiones en la Bóveda