Cómo descubrir comandos ocultos de arranque rápido

En mi búsqueda por descubrir todo lo que pude sobre la personalización de Android, he hecho muchos descubrimientos oscuros pero interesantes. Le mostré cómo acceder a menús ocultos en su dispositivo revisando todas las actividades de aplicaciones ocultas en su teléfono. Más recientemente, le mostré cómo acceder a la herramienta de diagnóstico de hardware oculta en ciertos teléfonos inteligentes. Ahora, me doy cuenta de que algunos de ustedes estaban decepcionados por el hecho de que su teléfono inteligente no estaba cubierto en el artículo anterior, y me disculpo por eso.

Para compensarlo, voy a guiarlo a través de algo mucho más avanzado y emocionante: descargar el cargador de arranque de su dispositivo para descubrir comandos ocultos de arranque rápido . Esta guía, aunque está hecha en mi Nexus 6P, es definitivamente replicable en la mayoría de los teléfonos inteligentes. Sin embargo, los comandos a los que tendrá acceso variarán significativamente entre dispositivos. La mayoría de los comandos realmente no lo ayudarán en una situación real, pero sin embargo es bastante interesante sumergirse tan profundamente en la configuración de su teléfono. Empecemos.

Descargo de responsabilidad: siempre y cuando sepa lo que está haciendo y pueda seguir las instrucciones de manera adecuada, no debe sucederle nada malo a su dispositivo. Pero, todavía estamos jugando con nuestras particiones de dispositivo y el cargador de arranque, por lo que no se sabe qué podría suceder si ingresa el comando incorrecto. ¡Asegúrese de tener una copia de seguridad fuera del dispositivo lista!


Preparación

Antes de comenzar, hay una cosa muy, muy importante a tener en cuenta. Para extraer el cargador de arranque de su dispositivo, necesitará acceso de root en su teléfono. Si no tiene acceso de root, puede continuar leyendo esta guía con fines educativos, pero no podrá ejecutar ninguno de los comandos necesarios. ¿Lo tengo? Bueno. Otro requisito previo que deberá cumplir es asegurarse de que su computadora tenga todos los controladores ADB / fastboot adecuados . Si no tiene los binarios ADB / fastboot, le recomiendo instalar Minimal ADB y Fastboot desde nuestros foros. En cuanto a los controladores, puede obtener los controladores necesarios para los dispositivos Google Nexus aquí y para todos los demás dispositivos desde aquí. ¿Cómo sabes si eres bueno para ir? Conecte su dispositivo, habilite la depuración USB en Configuración del desarrollador, abra un símbolo del sistema y escriba:

 adb devices 

Si ve aparecer el número de serie de su dispositivo, entonces tiene los controladores correctos.


Volcar el gestor de arranque

Nuestro primer paso es abrir un shell en nuestro dispositivo para que podamos ejecutar comandos a través de ADB. Es mejor que ejecutemos comandos sobre ADB porque somos mucho más propensos a cometer errores al escribir en un teclado virtual, y cometer errores no es algo que desee hacer aquí. El primer comando que debe ejecutar en su símbolo del sistema es:

 adb shell 

Si ve que el símbolo del sistema cambia de mostrar el directorio binario ADB a mostrar el nombre en código de su dispositivo Android, ha ingresado con éxito el shell de línea de comando local de su dispositivo. Ahora, para acceder a las particiones que necesitamos volcar, necesitará acceso de superusuario. Para hacerlo, escriba lo siguiente:

 su 

El símbolo delante del nombre en código de su dispositivo debe cambiar de $ a #, lo que indica que ahora puede ejecutar comandos con privilegios elevados. ¡Ten cuidado ahora!

A continuación, descubriremos la ubicación exacta de la imagen del cargador de arranque de su dispositivo. Para encontrar el directorio exacto, imprimiremos una lista de todas las particiones y sus directorios por nombre, y buscaremos uno en particular llamado ' aboot'. Deberá ingresar dos comandos de la siguiente manera:

 cd /dev/block/bootdevice/by-name ls -all 

Como puede ver arriba, se imprime una lista gigante de directorios de partición. Estas particiones se ordenan por nombre, por lo que podemos discernir fácilmente la ubicación de nuestra partición del cargador de arranque. En mi caso, el gestor de arranque, que está 'aboot' en la imagen de arriba, se puede encontrar en / dev / block / mmcblk0p10. Esto variará dependiendo de su dispositivo, por lo que es importante que siga estas instrucciones para descubrir el verdadero directorio donde se encuentra su gestor de arranque. Sin embargo, tome nota de este directorio, ya que lo haremos referencia en el siguiente comando para volcar el gestor de arranque:

 dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img 

Una vez exitoso, debe encontrar un archivo llamado ' aboot.img ' ubicado en la raíz de su almacenamiento interno. Ahora que hemos descargado el gestor de arranque, debemos examinarlo para determinar qué comandos ocultos podemos encontrar.


Comandos ocultos de arranque rápido y sus usos

Es posible que esté familiarizado con algunos de los comandos fastboot más comunes, como fastboot flash o fastboot boot. Hay muchos más comandos fastboot como se define en el protocolo fastboot de código abierto. Aquí hay una lista de los comandos de arranque rápido disponibles en cada dispositivo con un gestor de arranque basado en el último código AOSP:

Lo que falta en esta lista son los comandos fastboot oem . Estos comandos son específicos de los fabricantes de dispositivos Android, y no hay una lista completa o documentación en ningún lado sobre qué comandos fastboot oem están disponibles. Ahora, si el fabricante de su dispositivo tuvo la amabilidad de proporcionar un comando fastboot que enumera todos los comandos oem (intente fastboot oem? Y vea si eso funciona), entonces no necesitará hacer nada más. Si no hay ningún comando que imprima una lista de comandos oem de arranque rápido disponibles, deberá imprimir una lista de cadenas desde aboot.img y buscar los comandos oem manualmente.

'cadenas' es un comando de Linux, cuya documentación está disponible aquí. Como puede ver, personalmente estoy usando una máquina Windows, así que en su lugar he estado usando un programa que imita las 'cadenas' de Linux. La salida sin formato del comando 'cadenas' en un archivo aboot.img será bastante desordenada, pero si simplemente CTRL + F para 'oem' debería encontrar lo que necesita. Si desea refinar su búsqueda, puede probar este comando (para la versión de Windows que vinculé):

 strings * | findstr /i oem 

Para el Nexus 6P, compilé la siguiente lista de comandos fastboot oem:

 fastboot oem unlock-go fastboot oem frp-unlock fastboot oem frp-erase fastboot oem enable reduced-version fastboot oem device-info fastboot oem enable-charger-screen fastboot oem disable-charger-screen fastboot oem enable-bp-tools fastboot oem disable-bp-tools fastboot oem enable-hw-factory fastboot oem disable-hw-factory fastboot oem select-display-panel fastboot oem off-mode-charge enable fastboot oem off-mode-charge disable fastboot oem ramdump enable fastboot oem ramdump disable fastboot oem uart enable fastboot oem uart disable fastboot oem hwdog certify begin fastboot oem hwdog certify close fastboot oem get-imei1 fastboot oem get-meid fastboot oem get-sn fastboot oem get-bsn fastboot oem get_verify_boot_status 

Tenga en cuenta que no debe intentar ninguno de los comandos anteriores, ni ninguno de los comandos que descubra en su dispositivo, a menos que esté dispuesto a aceptar los riesgos. Hay una razón por la cual estos comandos están ocultos para el usuario.

Dicho esto, he pensado en algunos usos ingeniosos para algunos de estos comandos de arranque rápido que he encontrado (que pueden o no estar presentes en su dispositivo, ¡así que siga las instrucciones anteriores para verificar!) Que deberían imaginarse el Android más duro entusiasta. Aquí hay dos comandos que podrían tener algún uso práctico.

Primero está el comando fastboot oem (habilitar | deshabilitar) -charger-screen . Lo que esto hace es deshabilitar la pantalla de carga que aparece cuando su dispositivo está apagado. Si no eres fanático del brillo cegador de la pantalla de carga cuando tu teléfono está apagado, ¡puedes desactivarlo mediante este comando oculto de arranque rápido!

A continuación, está el comando fastboot oem off-mode-charge (enable | disable) . Este comando determina si su dispositivo se encenderá automáticamente cuando se detecte una fuente de alimentación. Por defecto, está configurado para 'deshabilitar'. Admitiré que este comando no tiene mucho uso para los teléfonos, pero si planeas montar tu tableta en el tablero de tu auto, encontrarás este comando increíblemente útil. Podrá configurar su dispositivo para que se encienda inmediatamente cuando la tableta reciba energía, como cuando se enciende la batería de su automóvil. Por el contrario, es bastante fácil apagar la tableta cuando se pierde energía usando una aplicación de automatización como Tasker. Este comando, por cierto, funciona exactamente como está escrito en el Nexus 7 (2013).


Eso es todo para esta lección sobre la personalización de Android. ¡Comparte los comandos que descubras (idealmente en un enlace pastebin) en los comentarios a continuación!

¡Gracias al desarrollador reconocido senior Dees_Troy por su ayuda en la elaboración de este artículo!