Todos se quejan de los gestores de arranque bloqueados en los teléfonos. Al leer el cargador de arranque, parece haber un código almacenado en la partición en la que está montado /boot. Una vez que el teléfono está rooteado, ¿por qué no se puede simplemente eliminar lo que está en /boot y poner sus propias cosas allí? Cuando realiza una OTA y actualiza el cargador de arranque, asumo que solo escribe archivos en esta partición.
En una distribución de Linux, puedo reemplazar grub que está almacenado en el arranque con LILO o lo que sea, simplemente reemplazando los archivos en /boot y escribiendo el PBR en el encabezado de esa partición para luego arrancar en LILO. Cuando la PC arranca, mira el MBR que le dice que mire la partición activa (supuestamente la que tiene /boot), encadene eso y lea el código LILO en el encabezado que luego hace cosas con todos los otros archivos en /boot .
¿Cómo se inician los dispositivos Android de manera diferente que evita eso?
El cargador de arranque generalmente no está en la /boot
partición, está en una separada, aunque ese no es realmente el quid de la cuestión.
El problema ocurre cuando el cargador de arranque está firmado criptográficamente, lo que tiene como objetivo evitar que lo reemplaces por el tuyo. El dispositivo verificará la firma del gestor de arranque al inicio y se negará a iniciar uno con una firma no válida. Después de eso, el cargador de arranque verifica la firma de lo que sea que esté en /boot
, negándose a arrancar si no está firmado de manera válida. Por lo tanto, no puede sobrescribir ninguna partición sin hacer que el dispositivo no se pueda iniciar.
Cuando un cargador de arranque está desbloqueado, no verificará la firma de las otras imágenes de partición, razón por la cual puede instalar ROM personalizadas. Esto significa que no necesita reemplazar el gestor de arranque para modificar /boot
, solo necesita desbloquearlo para que omita la verificación de firma en /boot
. Si el gestor de arranque está bloqueado y firmado, entonces básicamente está atascado, a menos que se produzca un exploit que le permita omitir uno de los pasos de verificación de la firma.
Esto también significa que los cargadores de arranque bloqueados, en sí mismos, no son necesariamente un problema. El verdadero problema son los gestores de arranque firmados que no proporcionan un mecanismo de desbloqueo.
El proceso es (más o menos) análogo al arranque seguro de UEFI , aunque probablemente no sea exactamente la misma implementación arquitectónica. Por cierto, siguiendo con su ejemplo de Linux, una de las principales críticas del arranque seguro UEFI es que podría usarse para evitar la instalación de sistemas operativos alternativos en PC tradicionales a través del mismo esquema de verificación de firmas.
Karan Raj Baruah
anunciosfasdfasdf