8 votos

Bootloader/BIOS, flasheo de ROMs y riesgos relacionados. ¿Por qué los dispositivos Android son más susceptibles a quedar inservibles que las PC?

Tengo amplia experiencia en la instalación de diferentes sistemas operativos (Linux, Windows, ...) en PCs. Me gustaría probar solo por diversión instalar Linux en una tablet Android de bajo costo sin marca adquirida en 2015. Pasé algún tiempo navegando por la web y hasta donde entiendo, existe un riesgo de que durante el procedimiento de flash el dispositivo podría dañarse potencialmente. Por lo tanto, leí extensamente sobre cómo hacer una copia de seguridad de la ROM usando TWRP y todos los temas relacionados. Me gustaría tener algunas explicaciones sobre el siguiente tema:

Escenario #1:
Tengo una PC, si quiero probar otro sistema operativo simplemente puedo formatear el disco duro e instalarlo, de ninguna manera hay riesgo de dañar la BIOS o la placa base. La placa base y el disco duro están separados, por lo que no pueden surgir problemas.

Escenario #2:
Tengo una tablet, quiero eliminar Android e instalar una versión mejorada de Android o una distribución de Linux adecuada para dispositivos móviles.

  • ¿Por qué en este escenario existe el riesgo de terminar con un dispositivo inutilizable?
  • ¿Es porque en este caso la placa base y la memoria del dispositivo están unidas? ¿Por lo que borrar la memoria también borraría la configuración de la placa base?
  • ¿Tenemos aquí el equivalente de la configuración de la BIOS?

12voto

Jack Wade Puntos 231

RESPUESTA BREVE:

Los teléfonos Android son más propensos a ser 'brickados' que las PCs porque apenas pueden comunicarse con nosotros si se borra el bootloader. Y el(los) bootloader(s) residen en particiones de memoria flash (eMMC) que son propensas a ser borradas con facilidad (incluso durante un proceso de actualización). Si desafortunadamente dañas estas particiones o se desgastan, hay una gran posibilidad de que no puedas comunicarte con el dispositivo nunca más.
Ver Proceso de Arranque: Android vs. Linux y Particiones y Sistemas de Archivos de Dispositivos Android para más detalles.

RESPUESTA DETALLADA:

Un dispositivo se considera 'brickeado' si no podemos comunicarnos con él. Ahora veamos cómo nos comunicamos con dispositivos a un nivel muy bajo, digamos, cuando no hay un Sistema Operativo instalado o se corrompe/borra accidentalmente.

COMPUTADORAS PERSONALES:

Existe una estandarización en el mundo de las PCs. El BIOS es un firmware maduro que proporciona una plataforma bien desarrollada para comunicarse con el sistema. Tiene la capacidad de enumerar el hardware, es decir, cargar el hardware básico incluyendo la placa base, CMOS/NVRAM, RAM, disco duro, unidad óptica, tarjeta gráfica y pantalla, teclado, ratón, tarjeta de red y otros periféricos conectados a USB.
Durante la Prueba Automática de Encendido (POST), el BIOS identifica todo el hardware mencionado anteriormente comunicándose con todos los buses internos y externos cuyas rutas están codificadas en el BIOS, enviándoles una señal como ¿quién está dónde?
UEFI - una evolución del BIOS - supera las limitaciones del modo de operación de 16 bits y el uso máximo de 1MB de RAM. Es un sistema operativo mínimo en sí mismo que incluso puede reconocer y utilizar sistemas de archivos, proporcionando una interfaz de usuario mejor, opciones de arranque más configurables y soporte para discos duros más grandes.

Después de esta inicialización del sistema, el BIOS/UEFI lee sectores de arranque/cargadores de arranque desde medios de arranque como discos duros, almacenamiento USB o incluso de red. Significa que una PC es capaz de comunicarse con nosotros incluso si no hay un disco duro instalado; nos informará: No se detecta ningún medio de arranque. Es porque el BIOS/UEFI está almacenado en Memoria de Solo Lectura Programable Eléctricamente (EEPROM que evolucionó de ROM, PROM y EPROM) conectada a la placa base. Si de alguna manera logras borrar o dañar esta EEPROM, sí, tu PC también se 'brickearía', pero eso es raro.

DISPOSITIVOS ANDROID:

Ahora hablando de dispositivos Android, los componentes de hardware no están conectados a la placa base a través de buses, en su lugar los componentes principales que incluyen CPUs, GPU, RAM, Flash/eMMC (equivalente a un disco duro o SSD), módulo de Wifi y Bluetooth, conectividad USB, UART (puertos seriales), JTAG (un protocolo de comunicación serial de nivel muy bajo), GPS, módems (para conectividad celular) están todos construidos en un solo System on Chip (SoC). La mayoría de estos componentes no son descubribles por el firmware del SoC (aproximadamente equivalente a BIOS/UEFI) a no ser que un Árbol de Dispositivo sea cargado por el bootloader final (por ejemplo, ABOOT) en la memoria del dispositivo, justo antes de que se cargue el kernel (SO). Y si no tienes un SO en el dispositivo, dependes solo de los protocolos mínimos de comunicación proporcionados por el(los) bootloader(s). En esta etapa, solo unos pocos componentes de hardware (generalmente gráficos, NAND y algún método de comunicación serial) están trabajando, y aún así con funcionalidad limitada.

Los fabricantes pueden proporcionar protocolos a nivel de pre-arranque o bootloader, por ejemplo Modo de Descarga (modos QFIL / QPST / Qualcomm HS-USB QDloader 9006 y 9008; PD: No sé mucho sobre MTK u otros proveedores de SoC), Fastboot, Odin, etc. Pero estos - Modos de Servicio; como los llaman - están deshabilitados por los OEMs por razones de seguridad y como parte de sus estrategias empresariales. Algunos fabricantes permiten desbloquear estos modos de servicio bajo el riesgo del usuario después de aprobaciones especiales. Algunos hacks también pueden ser usados como encontrar algunos puntos de prueba en la placa principal, acortar los cables USB, usar JIGs, etc.
Los protocolos de comunicación de nivel inferior como JTAG son solo para propósitos de desarrollo y son casi imposibles de ser descubiertos y usados con propósitos de reparación, aunque los mismos podrían haber sido posiblemente usados para la escritura inicial de firmware (incluyendo bootloaders) en la memoria flash. Algunas herramientas de hackeo como cajas/adaptadores de flasheo de eMMC también pueden usar protocolos similares para desbloquear IMEI y otras cosas "negras" ;)
También ha habido intentos exitosos de arrancar Android desde puertos USB / UART pero eso es muy raro en la actualidad y requiere mucho conocimiento técnico y habilidades de hackeo.

Todos estos métodos utilizados para desbrickear dispositivos no son oficialmente soportados por la mayoría de los vendedores, varían de vendedor a vendedor (no estandarizados) y están pobremente documentados para el uso del usuario final.
Por eso los dispositivos Android (o en general dispositivos con componentes integrados) son más propensos a ser 'brickados' que las PCs.


RELACIONADOS:

FUENTES:

Ver También:

0 votos

¿Cómo supiste esta información? ¿Dónde puedo aprender más en detalle sobre lo que acabas de escribir? ¿Hay libros que describan cómo reescribir la eMMC?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X