Bienvenidos a un nuevo capítulo de este Curso Gratis de Hardware para Hackers. Guía de Flipper Zero: Firmware, Actualizaciones y Mejoras. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis.

Este curso está en un ciclo de crecimiento y mejora constante. Tendrá revisiones y actualizaciones anuales y correcciones y mejoras mensuales. Agradecemos su apoyo difundiendo, compartiendo, comentando o simplemente leyéndolo.

Para saber más comente a continuación, respondemos todos y cada uno de los comentarios. Las recomendaciones y solicitudes de tutoriales siempre son bienvenidas.

Nos esforzamos por proporcionar artículos informativos; sin embargo, es importante que los lectores se aseguren de que su investigación sea ética y responsable. Además, es su responsabilidad asegurarse de cumplir con todas las leyes y regulaciones aplicables en su región. La información proporcionada en este artículo está destinada únicamente a fines educativos.

Índice

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Aplicación móvil Flipper

Con la aplicación móvil Flipper , puede controlar y actualizar de forma remota su Flipper Zero, compartir claves guardadas, administrar y editar datos, y más. La aplicación móvil Flipper mejora la funcionalidad de su Flipper Zero, haciéndolo aún más cómodo de usar. La aplicación está disponible en iOS y Android.

Ahora aprenderá a conectar la aplicación móvil a su Flipper Zero y qué hacer si el procedimiento falla. También encontrará una descripción general de la aplicación e instrucciones sobre cómo agregar el widget de la aplicación en la pantalla de inicio de su teléfono inteligente. En este artículo también encontrará una breve guía para actualizar su Flipper Zero a través de la aplicación móvil Flipper.

Firmware desactualizado

Es posible que veas este mensaje porque:

Posibles razonesSoluciones
Esta aplicación fue creada para el firmware más reciente y no es compatible con su versión de firmware anterior.Actualice el firmware de su Flipper Zero al último firmware oficial desde el canal de lanzamiento.
Esta aplicación fue creada para una versión de firmware o una bifurcación de firmware diferente.Instale la versión de firmware o la bifurcación de firmware para la cual fue creada la aplicación.

Conexión a Flipper Zero

Después de descargar la aplicación móvil Flipper y activar el Bluetooth en su teléfono, debe conectar la aplicación móvil a su Flipper Zero:

1 Activa el Bluetooth en tu Flipper Zero siguiendo estos pasos:

  • Vaya al Menú principal -> Configuración -> Bluetooth .
  • Configure Bluetooth en ON .

2 En la aplicación móvil Flipper, toque Conectar .

3 En la página siguiente, junto al nombre del Flipper Zero detectado, toque Conectar .

4 En la aplicación móvil Flipper, ingrese el código de emparejamiento que se muestra en la pantalla de Flipper Zero.

5 Toque Emparejar para finalizar el emparejamiento.

6 Espere hasta que la aplicación móvil Flipper termine de sincronizarse con su Flipper Zero.

Si no se detecta su Flipper Zero

  • Asegúrate de que Bluetooth esté activado en tu Flipper Zero. -> Cómo activar Bluetooth en Flipper Zero .
  • Comprueba la conexión Bluetooth en tu teléfono.
  • Desconectar Flipper Zero de otros dispositivos. -> Cómo olvidar todos los dispositivos emparejados en Flipper Zero .
  • Actualice Flipper Zero a la última versión de firmware. Es importante actualizar su Flipper Zero periódicamente. -> Cómo actualizar el firmware en Flipper Zero .
  • Comprueba si la última versión de la aplicación móvil Flipper está instalada en tu teléfono. -> App Store o Google Play .
  • Reinicie su Flipper Zero presionando y manteniendo presionados los botones IZQUIERDO y ATRÁS durante 5 segundos.

Si la aplicación móvil Flipper no se sincroniza con su Flipper Zero

  • Desvincule los dispositivos y luego vuelva a vincularlos. -> Para desvincular los dispositivos, vaya a Menú principal -> Configuración -> Bluetooth -> Olvidar todos los dispositivos emparejados .
  • Reinicia tu Flipper Zero. -> Mantén presionados los botones IZQUIERDA y ATRÁS .
  • Reinicia tu teléfono.
  • Desactive el modo de suspensión en su Flipper Zero. -> Vaya al Menú principal -> Configuración -> Sistema y configure el Método de suspensión en Legacy .

Descripción general de la aplicación móvil Flipper

Una vez que Flipper Zero esté conectado a la aplicación móvil Flipper, verá la pestaña Menú principal . En esta pestaña, puede actualizar su Flipper Zero a través de Bluetooth, ver opciones adicionales, sincronizar manualmente, reproducir sonido en su Flipper Zero y más.

En Información del dispositivo , puedes ver información detallada sobre el hardware y el firmware de Flipper Zero.

En Opciones , dependiendo del sistema operativo, puede encontrar la función de copia de seguridad, registros guardados, administrador de archivos, función de reinicio y función de informe de errores.

La pestaña Archivo muestra todos los controles remotos, llaves y tarjetas guardados. En esta pestaña, puede ver los favoritos, buscar en la lista y restaurar controles remotos, llaves y tarjetas eliminados.

Para ver información detallada, toque un elemento de la lista. En Información de claves , puede emular o reproducir claves guardadas, agregarlas a favoritos, cambiar el nombre, agregar notas, revisar información técnica, eliminar y compartir claves con otros.

En la pestaña Aplicaciones , puedes acceder al catálogo de aplicaciones desarrolladas por la comunidad e instalarlas en tu Flipper Zero a través de Bluetooth LE.

En la pestaña Herramientas , puedes encontrar una herramienta que amplía la funcionalidad de Flipper Zero.

Cómo añadir el widget de la aplicación móvil Flipper

Con el widget de la aplicación móvil Flipper, puedes emular rápidamente controles remotos y tarjetas guardados en tu Flipper Zero sin abrir la aplicación móvil Flipper en tu teléfono.

Cómo añadir el widget en iOS

En los dispositivos iOS, debes agregar el widget de la aplicación móvil Flipper a la pantalla Vista Hoy haciendo lo siguiente:

1 En la pantalla de inicio , deslícese hacia la derecha para abrir la pantalla Vista de hoy .

2 Desplácese hasta la parte inferior y toque Editar .

3 Toque el botón Personalizar al final de la lista de widgets.

4 Busque y agregue la aplicación móvil Flipper a la lista de widgets, luego toque Listo .

5 Pulsa Listo en la esquina superior derecha después de agregar el widget a la pantalla.

Ahora, puedes agregar controles remotos y tarjetas guardados al widget de la aplicación móvil Flipper personalizando el widget en sí o yendo a Menú principal -> Opciones -> Configuración del widget en la aplicación móvil Flipper.

Cómo añadir el widget en Android

En dispositivos Android, agregue el widget en la pantalla de inicio y luego toque el widget agregado para personalizarlo.

Actualización de Flipper Zero

Puede actualizar su Flipper Zero con la aplicación móvil Flipper a través de Bluetooth. Al igual que qFlipper , la aplicación móvil Flipper tiene tres canales de actualización de firmware:

  • DESARROLLO (Dev): El desarrollo en curso consiste en crear constantemente una nueva versión del firmware con cada nueva confirmación, a menudo varias veces al día. Esta versión de desarrollo incluye todas las funciones más recientes, pero puede ser inestable, provocar el bloqueo o la corrupción de los datos o dejar de funcionar por completo.
  • CANDIDATO A LA VERSIÓN (RC): La versión enviada para pruebas de validación al departamento de control de calidad. Si se detectan errores durante la fase de prueba, se revisa la versión y se emite un nuevo candidato a la versión de lanzamiento. Una vez que el candidato a la versión de lanzamiento pasa todas las pruebas con éxito, se convierte en la versión de lanzamiento.
  • LANZAMIENTO: La versión estable del firmware ha sido ampliamente probada para garantizar su confiabilidad y, por lo tanto, se recomienda para uso general.

Inserte una tarjeta microSD antes de actualizar su Flipper ZeroPara actualizar correctamente el firmware, se debe insertar una tarjeta microSD en el Flipper Zero. Las bases de datos del Flipper Zero se almacenan en la tarjeta microSD. Para actualizar su Flipper Zero a través de la aplicación móvil Flipper, haga lo siguiente:

1 En la pestaña Menú principal, toque Actualizar canal y seleccione un firmware.

2 Toque el botón Actualizar .

3 Toque el botón Actualizar para confirmar la acción.

La actualización a través de la aplicación móvil Flipper puede tardar hasta aproximadamente 10 minutos .

Si la actualización de Flipper Zero falló

  • Comprueba la conexión Bluetooth con tu Flipper Zero.
  • Asegúrese de que su Flipper Zero esté encendido.
  • Si su Flipper Zero no responde, reinícielo. -> Cómo reiniciar Flipper Zero .
  • Reiniciar la actualización del firmware.
  • Si aún no puedes actualizar tu Flipper Zero con la aplicación móvil Flipper, es posible que el problema sea que el almacenamiento interno esté lleno o dañado. Para resolver este problema, sigue los pasos que se describen en la página de reparación del almacenamiento interno .

Sistema de actualización de firmware

Buenas noticias para todos. Hemos estado trabajando en esto durante varios meses y finalmente estamos listos para anunciar un nuevo subsistema de actualización de firmware. ¡Ahora puedes actualizar el firmware y las bases de datos en la tarjeta SD a través de Bluetooth usando nuestra aplicación móvil! Descarga la aplicación móvil para Android e iOS. El nuevo subsistema de actualización de firmware también se agregará a la aplicación de escritorio qFlipper .

Descargue la aplicación móvil Flipper

El problema de la actualización OTA clásica

Todos los dispositivos modernos ofrecen actualizaciones de firmware por aire ( OTA ). No es necesario conectar el teléfono a un ordenador para actualizar el firmware, ya que se actualiza a través de Internet. Todos nos hemos acostumbrado a ello y ahora parece totalmente normal, pero no siempre fue así.

Actualizar el firmware por aire no es en absoluto un proceso trivial. Apple tardó 4 años en desarrollar la OTA desde el lanzamiento del iPhone. El primer iPhone se lanzó en 2007, pero solo se pudo actualizar por aire en 2011 con el lanzamiento de la versión 5.0 de iOS para el iPhone 3G.

La parte difícil de las actualizaciones OTA es que en cualquier momento el dispositivo tiene que ejecutar algún tipo de firmware para supervisar el proceso de actualización. En teoría, nuestro microcontrolador admite actualizaciones OTA. Necesita que el firmware antiguo se ejecute durante el proceso de actualización para controlar la transferencia de datos a través de Bluetooth mientras se carga el nuevo firmware junto con el antiguo.

Según el fabricante debería funcionar así:

  1. El firmware antiguo se está ejecutando y administra la transferencia de datos a través de Bluetooth.
  2. El nuevo firmware se transfiere al espacio disponible en Flash del MCU
  3. Al reiniciar el firmware antiguo se reemplaza por el nuevo

Una actualización OTA clásica es imposible para Flipper ZeroEl firmware de Flipper Zero tiene un tamaño de aproximadamente 700 KB y, junto con el Radio Stack, la memoria está completamente agotada. Como no tenemos espacio libre con el que trabajar, la clásica actualización OTA no funcionará en nuestro caso.

¿Qué hay dentro del procesador Flipper Zero?

El firmware de Flipper Zero se almacena en la memoria Flash del El microcontrolador STM32WB55 RG es el corazón de todo el dispositivo. Hay varios módulos de hardware colocados dentro de un chip:

Según el fabricante debería funcionar así:

  1. El firmware antiguo se está ejecutando y administra la transferencia de datos a través de Bluetooth.
  2. El nuevo firmware se transfiere al espacio disponible en Flash del MCU
  3. Al reiniciar el firmware antiguo se reemplaza por el nuevo

Una actualización OTA clásica es imposible para Flipper ZeroEl firmware de Flipper Zero tiene un tamaño de aproximadamente 700 KB y, junto con el Radio Stack, la memoria está completamente agotada. Como no tenemos espacio libre con el que trabajar, la clásica actualización OTA no funcionará en nuestro caso.

¿Qué hay dentro del procesador Flipper Zero?

El firmware de Flipper Zero se almacena en la memoria Flash del El microcontrolador STM32WB55 RG es el corazón de todo el dispositivo. Hay varios módulos de hardware colocados dentro de un chip:

  • El firmware principal tiene un tamaño aproximado de 670-700 KB. Aquí se encuentran todas las funciones del dispositivo, junto con el menú de la interfaz de usuario, los protocolos, varios controladores, el sistema operativo FreeRTOS , etc. Nos estamos acercando al límite de nuestra memoria Flash disponible, por lo que luchamos con uñas y dientes por cada kilobyte de firmware binario compilado.
  • Little File System : esta área de memoria se utiliza para el sistema de archivos integrado LittleFS. Cada vez que se actualiza el firmware, todo lo que se encuentra entre el firmware principal y la pila de radio se asigna a LittleFS . Todos los archivos del sistema, las configuraciones de usuario y las claves de emparejamiento de Bluetooth se almacenan aquí. Al usar Flipper Zero sin una tarjeta SD, las claves de usuario también se guardarán aquí. Sin embargo, no recomendamos esto ya que sin una tarjeta SD la mitad de las funciones de Flipper Zero no funcionarán. Puede ver el contenido del sistema de archivos usando el administrador de archivos de qFlipper .
  • Radio Stack : el firmware de código cerrado propietario de ST, disponible en el repositorio Co-Processor Wireless Binaries . Este firmware funciona con el módem de radio e implementa el protocolo de radio en software en la frecuencia de 2,4 GHz. Puede elegir el firmware que implementa los protocolos Bluetooth LE, ZigBee o 802.15.4. Estamos usando stm32wb5x_BLE_Stack_light_fw.bin . Solo funciona un protocolo en un momento dado, por lo que si desea usar ZigBee en Flipper Zero, deberá volver a flashear la pila de radio perdiendo el Bluetooth LE en el proceso. ST no permite instalar firmware arbitrario para Radio Stack, todos los archivos de firmware están firmados con una firma digital que se verifica durante la instalación por FUS.
  • FUS ( Firmware Upgrade Services ): un pequeño programa que verifica la firma digital de la pila de radio y controla su proceso de actualización. La protección criptográfica del segundo núcleo se realiza mediante FUS.

Como puedes ver, un tercio de la memoria Flash de Flipper Zero está ocupada por entidades adicionales que son necesarias para que el dispositivo funcione. Solo tenemos unos 860 KB de memoria con los que trabajar. Es difícil creer que todas las funciones de Flipper Zero quepan en una cantidad tan pequeña de espacio de almacenamiento. Por lo tanto, simplemente no tenemos el espacio que se puede utilizar para la clásica actualización OTA, por lo que tuvimos que inventar nuestro propio subsistema de actualización de firmware Over-the-Air.

El servidor de actualización

El firmware de Flipper Zero se compila automáticamente desde la fuente mediante scripts de CI de Github y los binarios se cargan en el servidor de actualización update.flipperzero.one. Todas las versiones de firmware compiladas se enumeran en el archivo directory.json , este archivo se utiliza para obtener información sobre las actualizaciones disponibles. Puede descargar todos los archivos binarios de los firmwares disponibles aquí update.flipperzero.one/builds/firmware/ .

De manera similar, todas las ramas dentro del repositorio de firmware se compilan y se cargan al servidor de actualización después de cada confirmación. Allí puedes encontrar diferentes carpetas con nombres de ramas separados. Es conveniente cuando el desarrollador está trabajando en una característica y pide a los usuarios que prueben su código.

El paquete de actualización consta de varios archivos diferentes:

Además del firmware en sí, el paquete de actualización contiene la pila de radio con la que es compatible esta versión de firmware, bases de datos para la tarjeta SD, un pequeño firmware actualizador, la versión actual de los scripts de compilación y depuración, así como metadatos para los programas de actualización.

Ciclo de lanzamiento de firmware

El firmware de Flipper Zero se puede actualizar a través de la aplicación móvil Flipper y la aplicación de escritorio qFlipper . Puede seleccionar uno de los tres canales de actualización de firmware en la configuración: DevRC (Candidato de versión) y Release. Puede seleccionar el canal de actualización en la configuración del actualizador:

Hasta hace poco, la única forma de actualizar el firmware de Flipper Zero era mediante un cable USB, un ordenador y la aplicación de escritorio qFlipper . Este proceso consta de varios pasos, durante los cuales Flipper se reinicia varias veces y se vuelve a conectar al ordenador en diferentes modos como dispositivos diferentes. Después de cada reinicio, Flipper se desconecta a nivel lógico y el ordenador y qFlipper lo vuelven a descubrir una y otra vez.

Paso 1: Descargar la copia de seguridad a la PC

En el primer paso, Flipper se conecta a qFlipper en modo de puerto COM y descarga todos los datos de LittleFS (configuración del usuario y archivos de clave de emparejamiento de Bluetooth), ya que toda la memoria flash se borrará en los siguientes pasos y estos archivos se perderán. Después de completar este paso, Flipper se reinicia en modo DFU.

Paso 2 (opcional): actualización de la pila de radio

Las actualizaciones de la pila de radio las publica ST. Normalmente, se actualiza cada pocos meses. qFlipper comprueba la versión de la pila de radio instalada en Flipper y, si hay una actualización, instala la nueva versión. Por lo tanto, este proceso ocurre con poca frecuencia, en relación con nuestras publicaciones de actualizaciones. La actualización de la pila de radio está controlada por FUS , por lo que no tenemos mucho poder sobre el proceso.

La pantalla puede estar en blanco durante la actualización de la pila de radio. La imagen en la pantalla de Flipper Zero puede desaparecer por completo cuando se actualiza la pila de radio, esto es normal. No te preocupes, espera a que finalice la actualización.

Paso 3: Instalación del firmware principal

La actualización principal del firmware también se instala en modo DFU. Hay indicadores especiales del sistema en la memoria que pueden configurarse con valores incorrectos después de una actualización de la pila de radio; se denominan option bytes. Si se ha realizado una actualización de la pila de radio, se comprobarán los bytes de opción y se sobrescribirán si es necesario.

Paso 4: Instalación de bases de datos en la tarjeta SD

Después de instalar el firmware principal, Flipper se reinicia nuevamente al modo básico y se conecta como un puerto COM. Comienza a cargar bases de datos a la tarjeta SD. El contenido de las bases de datos se puede ver en este repositorio: flipperzero-firmware/assets/resources/. La versión de las bases de datos está vinculada a la versión del firmware y se encuentra en la misma carpeta en el servidor de actualización. El archivo con las bases de datos se llamaflipper-z-any-resources-X.XX.X.tgz

Paso 5: Restaurar la copia de seguridad

La copia de seguridad realizada en el paso 1 se carga en el área LittleFS. La configuración del usuario no se aplicará hasta el reinicio final.

Paso 6: Reinicio final

Después de restaurar la copia de seguridad, se realiza el último reinicio y se aplican las configuraciones del usuario. En total, Flipper puede reiniciarse unas 5 veces durante todo el proceso de actualización y se vuelve a conectar a la PC una y otra vez como un dispositivo diferente. ¡Qué pasada!

Modos de conexión USB de Flipper Zero

Para entender el proceso de actualización, es importante distinguir entre los modos en los que puede estar Flipper Zero cuando está conectado a una computadora:

  • COM Port— dispositivo serial USB básico
  • DFU mode— modo de actualización y recuperación

Durante el proceso de actualización, Flipper cambia entre estos modos varias veces. En las imágenes de arriba, que describen el antiguo proceso de actualización, la flecha verde muestra cuándo se utiliza el modo de puerto COM y la roja muestra cuándo está en modo DFU.

Modo normal: puerto serie

En este modo, Flipper Zero se conecta a la PC como un puerto COM, mientras nuestro firmware está en ejecución. El código responsable del funcionamiento de CDC Serial se puede encontrar en las fuentes furi_hal_usb_cdc . Flipper en este modo tiene USB Product ID: 0x5740Vendor ID: 0x0483.

Estos son los identificadores de puerto serie predeterminados de ST, y muchos otros dispositivos tienen los mismos identificadores USB. Tal vez obtengan nuestro propio identificador de proveedor de USB.org en el futuro para que Flipper Zero no interfiera con otros dispositivos. Pero $5000/año por un identificador de proveedor personalizado realmente vale la pena y es un costo extra poco necesario para los desarrolladore.

En este modo, todas las funciones del dispositivo están operativas y, lo más importante, se puede acceder a la tarjeta SD porque nuestro firmware está en ejecución. Por lo tanto, se pueden cargar bases de datos en la tarjeta SD y todas las operaciones con archivos durante una actualización se realizan en este modo.

Modo DFU

En el modo DFU, el cargador de arranque integrado del microcontrolador se activa y Flipper se conecta al PC como un dispositivo DFU. El código del cargador de arranque se encuentra fuera de la zona de memoria flash principal y está protegido contra escritura o borrado. No se puede dañar al actualizar el firmware, la desventaja de esto es que no tenemos la oportunidad de modificarlo.

En el modo DFU, Flipper tiene Product ID: 0xDF11, al igual que muchos otros dispositivos en este modo. No hay forma de entender a partir de las propiedades del dispositivo USB DFU que en realidad es Flipper Zero, porque en este modo no se diferencia en nada de otros dispositivos basados ​​en chips ST.

El modo DFU se activa automáticamente cuando se actualiza el firmware, pero también se puede activar manualmente, consulte Modos de reinicio . Si el firmware de Flipper está dañado, también se puede activar el modo DFU, pero la imagen del delfín no se mostrará en la pantalla: Cómo restaurar un Flipper Zero bloqueado.

Además, el modo DFU se complica por el hecho de que en Windows necesitas instalar controladores para él 🤮. Y aunque en realidad no se necesitan controladores, Windows impide que los programas accedan al dispositivo hasta que se instale algún controlador para él. En Windows, el asistente de instalación de qFlipper instala este controlador DFU. Aquí es donde surgen la mayoría de los problemas: hemos creado una instrucción separada del modo Debug DFU en Windows . Todo sería mucho más fácil si ST agregara un Descriptor de características del sistema operativo USB al código del cargador de arranque DFU de hardware integrado, que le diga a Windows que el dispositivo es compatible con el controlador WinUSB estándar, entonces no habría necesidad de instalar el controlador.

En el modo DFU, se actualizan la pila de radio y el firmware principal de Flipper Zero, así como se restauran en caso de que se produzcan daños en el firmware. Desde el principio del desarrollo de Flipper Zero, hemos estado buscando una forma de actualizar el firmware sin cambiar a DFU y, finalmente, ¡este trabajo ha finalizado!


El NUEVO Sistema de Actualización

Como casi no tenemos espacio libre en la memoria Flash, la única posibilidad de actualización OTA en nuestro caso es descargar los archivos de actualización a la tarjeta SD y luego instalar las actualizaciones desde allí. Hemos creado un pequeño firmware independiente que se carga en la RAM, se ejecuta directamente desde allí y no depende de los datos de la memoria Flash para controlar el proceso de actualización.

De hecho, este es el mismo firmware que el nuestro, solo que reducido para que quepa completamente en la RAM. Se eliminan todas las funciones excepto la función de actualización, los controladores de la tarjeta SD, los controladores de pantalla, etc.

Ahora el procedimiento de actualización parece mucho más sencillo para el usuario: los archivos se cargan en Flipper y luego ocurre la magia: Flipper se actualiza completamente sin conexión.

Paso 1: Cargar el paquete de actualización a la tarjeta SD

Durante el primer paso, flipper-z-f7-update-0.XX.X.tgz la aplicación de actualización (qFlipper o la aplicación móvil) descarga el paquete de actualización completo empaquetado en el archivo desde el servidor de actualización y lo descomprime localmente en la aplicación. Luego, el contenido de este archivo se transfiere a través de Bluetooth LE o USB a la tarjeta SD de Flipper.

El protocolo Bluetooth LE es muy lento en comparación con el Bluetooth normal, por lo que cargar un archivo de actualización de aproximadamente 650 KB demora aproximadamente de 2 a 3 minutos, lo que es bastante aceptable en nuestra opinión.

Paso 2 – La Magia (Flipper se actualiza de manera autónoma)

Cuando el paquete de actualización se carga en la tarjeta SD, el actualizador envía un comando UpdateRequest al Flipper y ¡comienza la magia!

Flipper se reinicia y carga un pequeño firmware actualizador en la RAM, que se encuentra en el archivo flipper-z-f7-updater-X.XX.X.bin. De hecho, este es el firmware habitual de Flipper, pero se reduce lo más posible en términos de funciones. Se le quita todo, excepto los controladores necesarios y las funciones de actualización. Es tan pequeño que cabe completamente en la RAM. Y esto significa que el firmware en la memoria Flash no está activo y el actualizador puede sobrescribir datos en toda la memoria Flash sin temor a romper algo.

Updater realiza los mismos pasos que el antiguo proceso de actualización, la única diferencia es que sucede completamente localmente: actualiza la pila de radio si es necesario, instala nuevo firmware, instala bases de datos, carga archivos a LittleFS, etc. En este enfoque, es Flipper el que realiza todos los pasos dentro de sí mismo, por lo que ya no depende de conexiones y programas externos.

Demostración en vivo de actualización

Nuevo proceso vs. antiguo

El nuevo proceso de actualización es más confiable que el anterior porque todos los pasos de actualización están controlados por el firmware y no por la PC del usuario. Debido a que las computadoras de los usuarios tienen diferentes sistemas operativos, controladores y programas instalados, a menudo pueden surgir problemas inesperados durante la actualización. Ahora hay menos posibilidades de que ocurran problemas. Pero, ¡el principal beneficio de esto es que ahora puedes actualizar el firmware a través de una aplicación móvil 

Duración de la batería de 1 mes con actualización de firmware

A partir de la versión de firmware 0.82 , la batería de Flipper Zero durará hasta 1 mes. Nos llevó 2 años resolver todos los problemas de firmware que impedían que Flipper Zero cambiara al modo de ahorro de energía, lo que dio como resultado la misma línea base de consumo de energía tanto en estado inactivo como activo. Como resultado, la batería de Flipper Zero duró aproximadamente 1 semana en lugar del 1 mes previsto.

Nuevo modo de ahorro de energía

La versión de firmware 0.82 ya está disponible. ¡ Actualízala ahora ! Esta versión incluye una nueva función de suspensión profunda que extiende la vida útil de la batería de tu dispositivo hasta 1 mes al reducir drásticamente el consumo de energía cuando no hay aplicaciones en ejecución ni conexiones en tu Flipper Zero.

Cuando Flipper Zero no ejecuta ninguna aplicación de usuario, el dispositivo entra en un estado inactivo (modo de suspensión). Una vez que se inicia una aplicación, el dispositivo pasa a un estado activo: se activa la retroiluminación, comienza el intercambio de datos con la tarjeta microSD, etc. En el estado activo, el consumo de energía puede alcanzar hasta 30 mA con retroiluminación, hasta 400 mA con un transceptor activo e incluso hasta 2 A con un transceptor activo y un módulo externo conectado.

El microcontrolador utilizado en Flipper Zero admite diferentes modos de suspensión que tienen diferentes niveles de eficiencia energética:

  • Antes , utilizábamos un modo que no era un modo de suspensión real. Este modo era más fácil de implementar, pero menos eficiente energéticamente. En este modo de suspensión heredado, Flipper Zero consumía 9 mA de energía en estado inactivo .
  • Después de resolver los problemas de firmware, habilitamos un nuevo modo de suspensión energéticamente eficiente, en el que se apagan varios bloques del microcontrolador y el reloj del núcleo se cambia a un generador de reloj energéticamente más eficiente. En este modo de suspensión profunda, el consumo de energía de referencia en el estado inactivo es de solo 1,5 mA.

Cómo comprobar el nuevo modo de sueño profundo

La implementación de la función de suspensión profunda fue compleja. Existen varios escenarios en los que este modo puede no estar activado, como cuando se está ejecutando una aplicación en segundo plano, cuando hay tareas centrales de procesamiento secundarias activas o cuando hay una sesión de llamada a procedimiento remoto (RPC) en curso a través de Bluetooth LE.

Para verificar si su Flipper Zero está entrando correctamente en el modo de suspensión profunda, vaya a y espere a que se apague la luz de fondo de la pantalla LCD. Debería aparecer un mensaje en el estado de la batería.Settings →  Power → Battery InfoNapping...

Cómo desactivar el modo de sueño profundo

Este modo de suspensión profunda está habilitado de forma predeterminada. No es necesario que lo deshabilites a menos que tengas problemas con tu Flipper Zero. Ten en cuenta que este modo de suspensión profunda aún se encuentra en su fase experimental. Puede generar errores y efectos secundarios impredecibles. Para desactivar el modo de suspensión profunda en su dispositivo, vaya a Settings → Systemy configúrelo Sleep Methoden Legacy.

¿Por qué la función de sueño profundo fue tan desafiante?

Intentamos implementar el modo de suspensión profunda durante mucho tiempo, pero no pudimos entender por qué el sistema fallaba después de salir del modo de suspensión profunda.

Flipper Zero se basa en un microcontrolador de la serie STM32WB . El desarrollo de firmware con este microcontrolador es muy complicado debido a su arquitectura de doble núcleo, los periféricos compartidos y el firmware de código cerrado para el Core 2 sin la posibilidad de depurarlo.

Otro problema fue la documentación deficiente y la compatibilidad incompleta con el sistema operativo en tiempo real (RTOS) en el kit de desarrollo de software (SDK). Tuvieron que agregar compatibilidad con el modo de suspensión profunda dentro del sistema operativo ellos mismos. La función furi_hal_os_sleep() realiza la supresión de ticks dentro del dominio del sistema operativo.

Aunque la arquitectura ARM fue diseñada inicialmente para uso móvil y bajo consumo de energía, la implementación de funciones de ahorro de energía en realidad la llevan a cabo los proveedores de chips. Los proveedores utilizan diversos enfoques para implementar funciones de ahorro de energía y proporcionan ejemplos y SDK para simplificar la vida de los desarrolladores. Pero eso no garantiza el éxito, especialmente en chips multinúcleo con periféricos compartidos.

Desafíos con Core 2

Se utiliza un conjunto de semáforos de hardware y un controlador de comunicación entre procesadores para controlar la propiedad del subsistema y la señalización entre el núcleo 1 y el núcleo 2. El firmware del núcleo 1 debe utilizar explícitamente algunos de ellos para controlar el reloj, la memoria flash y otras etapas críticas.

Combinar el trabajo con un controlador flash y una conexión BLE activa es una tarea excepcionalmente compleja: el uso de un controlador flash detiene la obtención de instrucciones/datos de la memoria, lo que hace que el núcleo 2 no cumpla con los plazos de transmisión. Todo el sistema es bastante sofisticado y lo abordaremos en una publicación aparte.

Desafíos con el reloj y la energía

Casi todos los dispositivos electrónicos tienen osciladores en su interior. El microcontrolador Flipper Zero tiene 7 osciladores. Un oscilador es un circuito que consta de un pequeño cristal de cuarzo y un amplificador que genera pulsos uniformes que proporcionan una sincronización precisa para el núcleo del microcontrolador y los subsistemas. Estos pulsos son cruciales para las operaciones internas del microcontrolador.

Tres de estos osciladores son especialmente importantes:

  • Los osciladores externos de alta velocidad (HSE) y externos de baja velocidad (LSE) proporcionan relojes de referencia que son precisos, pero no energéticamente eficientes.
  • El oscilador interno de alta velocidad (HSI) proporciona un reloj interno que es energéticamente eficiente, pero no preciso.

El oscilador LSE está activo de forma continua, el oscilador HSE se activa cuando se ejecuta una aplicación y el oscilador HSI se activa cuando el dispositivo entra en modo de suspensión profunda. Sin embargo, es imposible utilizar el oscilador HSE durante el modo de suspensión profunda, ya que es necesario cambiar todos los dominios de reloj a HSI antes de entrar en el modo de suspensión profunda. Para superar este desafío, han desarrollado la función furi_hal_clock_switch_to_hsi() que facilita una transición fluida y eficiente al oscilador HSI de bajo consumo energético, lo que permite la funcionalidad de suspensión profunda.

Dado que al entrar en modo de suspensión se apagan físicamente los subsistemas periféricos, estos deben estar en un estado deshabilitado. Esto lleva el diseño de API a un nuevo nivel de complejidad, especialmente en sistemas operativos multitarea. La función furi_hal_power_deep_sleep() es responsable de la transición al modo de suspensión profunda en el nivel de dominio de energía.

Desafíos con la depuración

Otro problema es la depuración del firmware del Core 1 cuando está en modo de suspensión profunda: el subsistema de depuración de MCU debe estar configurado especialmente para reactivar el sistema desde el modo de suspensión. La depuración también es imposible si el sistema está mal configurado, sale del modo de suspensión profunda o entra en él y algo sale mal. Además, detener la MCU mientras está en suspensión la reactivará en el reloj HSI, que es mucho más lento que HSE y requiere una configuración especial del adaptador de depuración.

Como puedes ver, desarrollar y depurar con el microcontrolador de la serie STM32WB es una tarea desafiante. Pero gracias al equipo de desarrolladores de Flipper, la duración de la batería de tu Flipper Zero durará hasta 1 mes, a partir de la versión de firmware 0.82.

Descargo de responsabilidad: 

Esta publicación de blog tiene fines informativos únicamente. No fomenta ni respalda ninguna actividad ilegal o poco ética relacionada con el hacking o el uso indebido de dispositivos y dispositivos de hacking. La información proporcionada aquí tiene como objetivo promover el uso responsable y legal de la tecnología con fines educativos y de seguridad.

Respete siempre las leyes, regulaciones y pautas éticas locales cuando trabaje con herramientas y dispositivos de hacking. Se desaconseja encarecidamente el uso no autorizado o cualquier acción que viole la privacidad, comprometa la seguridad o cause daño y puede tener consecuencias legales.

Consideraciones legales

Flipper Zero es una poderosa herramienta diseñada para uso educativo y profesional. Se anima a los lectores a cumplir con todas las leyes y directrices éticas aplicables al utilizar dichos dispositivos.

Asegúrese de utilizar estas herramientas de manera ética y dentro de los límites de la ley. Las pruebas de penetración sólo deben realizarse en redes con el permiso explícito del propietario.

No te detengas, sigue avanzando

Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

Universidad Hacking. Todo en Ciberseguridad. Curso Completo

Aprende Hacking Ético y Ciberseguridad sin necesitar conocimientos Previos. Practica Hacking Ético y Ciberseguridad aquí

Calificación: 4,6 de 5 (2.877 calificaciones) 15.284 estudiantes Creado por Alvaro Chirou • 1.800.000+ Enrollments Worldwide

Lo que aprenderás

  • Seguridad informática
  • Hacking Ético en profundidad
  • Redes
  • Programación (Python) (Hacking con Python)
  • Análisis de Malware con laboratorios, practicas y ejecución de Malware para que veas su comportamiento.
  • Cómo reforzar tu Privacidad y Anonimato
  • Uso avanzado de Metasploit
  • Top 10 de Owasp Web, Top 10 de Owasp mobile y Top 10 de Owasp API
  • Seguridad informática para empresas
  • Kali linux de 0 a 100, Veremos su suite de herramientas de hacking y como explotar fallos en sistemas.
  • Termux y como hackear desde el celular
  • Seguridad informática server/web, profundizaremos en WordPress
  • Análisis de trafico en Wireshark
  • Y mucho, pero mucho más

¿Esto que significa?

Hoy más que nunca, se necesitan personas capacitadas en este rubro para trabajar.

Por esa razón cree esta formación profesional para compartirte mis conocimientos y experiencia en la materia y puedas iniciar en este mundo del Hacking Ético y Ciberseguridad.

Te voy a estar acompañando en el proceso de aprendizaje, donde si estas empezando desde 0, sin conocimientos previos, no es un impedimento ya que iniciaremos como si no supieras nada de la materia.

Si sos una persona con conocimientos, podrás iniciar directamente en el nivel más avanzado o en el que tu elijas.

Como en todos mis cursos en udemy, tendrás muchísima practica para que materialices lo que vas aprendiendo.

Empieza a aprender ya mismo!

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

No solo te enseñamos, tambien te guíamos para que puedas conseguir trabajo como desarrollador y hacker…

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Cómo Iniciarse en Hacking y Ciberseguridad en 2024

Curso Gratis de Programación

Curso Gratis Linux – Capitulo 1 – Introducción a Linux

Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios

Como iniciarse en TRY HACK ME – Complete Beginner #1

OSINT #1 Más de 200 Search Tools

Curso Gratis de Java para Hackers

SIGUE APRENDIENDO GRATIS EN NUESTRO BLOG

Saludos amigos y happy hacking!!!