4 votos

Huawei bootloader: ¿qué es "FB Lock" y cómo desbloquearlo?

Estaba jugando con mi teléfono Huawei de repuesto tratando de saltar la seguridad sin borrar los datos y encontré este artículo: https://blog.salvationdata.com/2018/09/07/case-study-mobile-forensics-a-practical-solution-to-unlock-huawei-bootloader/

En el paso 3, deberías "desactivar temporalmente el bloqueo de FB". ¿Qué significa esto y cómo lo desbloqueo usando fastboot? Supongo que no puedo hacer eso usando el comando estándar fastboot oem unlock, pero no encontré nada más en la documentación de fastboot. entrar descripción de la imagen aquí

EDITAR: Resultado del comando fastboot help como se solicitó: https://pastebin.com/2rhr1PTT

platform-tools$ ./fastboot help
uso: fastboot [OPCIÓN...] COMANDO...

flashing:
 update ZIP                 Flash todas las particiones desde un paquete update.zip.
 flashall                   Flash todas las particiones de $ANDROID_PRODUCT_OUT.
                            En dispositivos A/B, la ranura flasheada se establece como activa.
                            Las imágenes secundarias pueden ser flasheadas en la ranura inactiva.
 flash PARTITION [FILENAME] Flash de la partición dada, utilizando la imagen de
                            $ANDROID_PRODUCT_OUT si no se proporciona un nombre de archivo.

conceptos básicos:
 dispositivos [-l]               Lista los dispositivos en el cargador de arranque (-l: con rutas de dispositivos).
 getvar NAME                Muestra la variable de cargador de arranque dada.
 reiniciar [bootloader]        Reiniciar dispositivo.

bloqueo/desbloqueo:
 flashing lock|unlock       Bloquea/desbloquea particiones para flashear
 flashing lock_critical|unlock_critical
                            Bloquea/desbloquea particiones 'críticas' del cargador de arranque.
 flashing get_unlock_ability
                            Verifica si el desbloqueo está permitido (1) o no (0).

avanzado:
 borrar PARTITION            Borra una partición flash.
 formato[:FS_TYPE[:SIZE]] PARTITION
                            Formatea una partición flash.
 set_active SLOT            Establece la ranura activa.
 oem [COMMAND...]           Ejecuta un comando específico del OEM.

imagen de arranque:
 boot KERNEL [RAMDISK [SECOND]]
                            Descarga y arranca el kernel desde la RAM.
 flash:raw PARTITION KERNEL [RAMDISK [SECOND]]
                            Crea una imagen de arranque y la flashea.
 --cmdline CMDLINE          Sobrescribe la línea de comandos del kernel.
 --base ADDRESS             Establece la dirección base del kernel (predeterminado: 0x10000000).
 --kernel-offset            Establece el desplazamiento del kernel (predeterminado: 0x00008000).
 --ramdisk-offset           Establece el desplazamiento del ramdisk (predeterminado: 0x01000000).
 --tags-offset              Establece el desplazamiento de las etiquetas (predeterminado: 0x00000100).
 --page-size BYTES          Establece el tamaño de página de flash (predeterminado: 2048).
 --header-version VERSION   Establece la versión del encabezado de la imagen de arranque.
 --os-version MAJOR[.MINOR[.PATCH]]
                            Establece la versión del sistema operativo de la imagen de arranque (predeterminado: 0.0.0).
 --os-patch-level AAAA-MM-DD
                            Establece el nivel de parche de seguridad del sistema operativo de la imagen de arranque.

Android Things:
 stage IN_FILE              Envia el archivo dado para la siguiente instrucción.
 get_staged OUT_FILE        Escribe los datos puestos en cola por la última instrucción en un archivo.

opciones:
 -w                         Borrar userdata.
 -s SERIAL                  Especifica un dispositivo USB.
 -s tcp|udp:HOST[:PORT]     Especifica un dispositivo de red.
 -S SIZE[K|M|G]             Divide en archivos dispersos no mayores que SIZE.
 --slot SLOT                Utiliza la ranura; 'all' para ambas ranuras, 'other' para
                            ranura no actual (predeterminado: ranura activa actual).
 --set-active[=SLOT]        Establece la ranura activa antes de reinciar.
 --skip-secondary           No flashea ranuras secundarias en flashall/update.
 --skip-reboot              No reinicia el dispositivo después de flashear.
 --disable-verity           Establece deshabilitar-veridad al flashear vbmeta.
 --disable-verification     Establece deshabilitar-verificación al flashear vbmeta.
 --wipe-and-use-fbe         Habilita encriptación basada en archivos, borrando userdata.
 --unbuffered               No almacena en búfer la entrada o salida.
 --verbose, -v              Salida detallada.
 --version                  Muestra la versión.
 --help, -h                 Muestra este mensaje.

5voto

jbjon Puntos 771

Hay dos tipos de bloqueos de bootloader en los dispositivos Huawei: FB Lock y USER Lock.

USER Lock restringe las particiones estándar como system, data, recovery, kernel, etc., pero no las particiones críticas del bootloader, cuyos nombres no recuerdo. (Por lo tanto, no puedes editarlas incluso si realizas un desbloqueo de usuario). El USER Lock es lo que requiere el código de desbloqueo de bootloader para desbloquear. Además, hay algunos comandos de hardware ocultos que se utilizan para la depuración seria como JTAG, los cuales no se pueden acceder con un desbloqueo de usuario.

FB Lock se utiliza para proteger estas funciones restringidas. Un desbloqueo de FB funciona como una llave para todo Fastboot. (Por lo tanto, si realizas un desbloqueo de FB, puedes desbloquear todo lo que hace un desbloqueo de usuario, y otras funciones restringidas) FB Lock está destinado a ser utilizado por el personal de Huawei para reparaciones. NO se supone que los usuarios lo desbloqueen, pero de todas formas es posible, como descubrí después de bastante investigación, aunque no funciona en las versiones de firmware muy nuevas como EMUI 8.2 o el parche de seguridad de julio/agosto. Se ha utilizado durante años en software de pago para realizar desbloqueos de FRP, restauraciones completas del sistema, e incluso se puede utilizar para obtener un código de bootloader para desbloqueo de usuario. Un desbloqueo de FB suele ser temporal.

La metodología del desbloqueo de FB se ha mantenido en secreto durante bastante tiempo, pero recientemente vi que se filtró en XDA. Puedes verlo aquí. Esa guía también cubre un método para extraer la partición NVME para un desbloqueo permanente de FB. Si no deseas un desbloqueo de FB permanente, pero prefieres solo un desbloqueo de usuario normal, puedes omitir los pasos posteriores al 3, pero en su lugar, cuando inicias en TWRP, puedes usar:

su -c "grep -m1 -aoE 'WVLOCK.{14}[0-9]{16}' /dev/block/mmcblk0p7 |grep -aoE '[0-9]{16}'"

Eso te dará el código de desbloqueo de bootloader que puedes utilizar para un desbloqueo de usuario estándar. ¡Buena suerte!

2 votos

¿La activación de FB eliminará los datos del usuario? Según el artículo mencionado en mi publicación, no debería, pero no estoy seguro. Además, si la activación de FB es "más poderosa" que la activación de usuario, ¿por qué si logras activar FB seguirías preocupándote por la activación de usuario?

1 votos

FB Unlock no causaría un borrado de datos del usuario. Añadí esa parte porque FB Unlock es tan poderoso que incluso puedes llegar a bloquear permanentemente tu dispositivo a nivel de hardware, ejecutando un comando incorrecto. Si tienes cuidado con los comandos que elijes ejecutar, entonces desbloquear permanentemente FB no debería ser un problema.

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