FindMy Flipper - emulador de AirTag y SmartTag
(github.com/MatthewKuKanich)- FindMy Flipper es una app que amplía la funcionalidad Bluetooth del FlipperZero para que actúe como un Apple AirTag, Samsung SmartTag o Tile Tracker
- Con los beacons BLE del FlipperZero, transmite señales de SmartTag y puede integrarse con la red Apple FindMy clonando una etiqueta existente o generando un par de claves de OpenHaystack
- El método de clonación de etiquetas existentes permite rastrear desde apps nativas tomando la dirección MAC y el payload de AirTag, Samsung SmartTag y Tile Tracker, pero en AirTag la clave puede rotar al volver a colocar la batería, invalidando la clave actual del Flipper
- El método de generación de claves AirTag puede hacerse sin un AirTag real ni un dispositivo Apple, pero requiere Docker Desktop, Python y Git, y usa una computadora con autenticación de Apple ID para recibir los datos de ubicación
- La app admite ejecución en segundo plano y ajuste del intervalo de beacon y de la potencia de transmisión, y el usuario debe respetar las leyes de privacidad y la propiedad del dispositivo original relacionadas con dispositivos de rastreo
Una app para usar FlipperZero como etiqueta de rastreo
- FindMy Flipper permite que FlipperZero emule Apple AirTag, Samsung SmartTag y Tile Tracker
- Usa los beacons BLE del FlipperZero para transmitir señales de SmartTag que pueden ser detectadas por la red FindMy
- Las funciones objetivo son las siguientes
- Clonar Apple AirTag, Samsung SmartTag y Tile Tracker existentes en FlipperZero
- Generar un par de claves OpenHaystack para la red FindMy sin un AirTag real
- Seguir rastreando la ubicación del FlipperZero
Funciones principales
-
Emulación de etiquetas
- Puede clonar la dirección MAC y el payload de una etiqueta existente
- Puede generar un par de claves para la red FindMy incluso sin tener un AirTag real
-
Ajustes del usuario
- Se puede ajustar el intervalo de transmisión del beacon
- Se puede cambiar la potencia de transmisión para equilibrar visibilidad y duración de batería
-
Funcionamiento en segundo plano
- La app está optimizada para ejecutarse en segundo plano
- Está diseñada para mantener el rastreo con bajo consumo de batería sin detener el uso normal del FlipperZero
Método de instalación
- La instalación puede hacerse de dos maneras
- Usar una FAP firmware release/precompilada adecuada para el dispositivo
- Compilar el firmware directamente con
fbt/ufbt
- Actualmente todo el firmware debería funcionar en la rama main, incluidos los íconos
Cómo obtener los datos de SmartTag
- Hay dos formas de obtener los datos para emular una etiqueta
-
Opción A: clonar una etiqueta existente
- Opción B: generación de claves AirTag
-
-
Opción A: clonar una etiqueta existente
- Clonar una etiqueta existente es el método preferido y permite rastrear sin configuración adicional
- Se pueden usar etiquetas Apple, Samsung y Tile clonando la dirección MAC y el payload de la etiqueta real
- Este método permite rastreo mediante apps nativas como Apple FindMy, Samsung SmartThing y la app de Tile
- El procedimiento básico es el siguiente
- Primero emparejar AirTag, Samsung SmartTag o Tile Tracker con el dispositivo
- Alejar la etiqueta del dispositivo registrado durante unos 15 minutos para que entre en modo Lost
- Usar nrfConnect en Android o un ESP32
- En nrfConnect se indica usar la versión de Android porque la versión de Apple no muestra los datos Raw necesarios
- Si se usa un ESP32-WROOM o ESP32-S3, se pueden obtener los datos necesarios sin Android
- Como herramienta relacionada se puede usar ESP32-AirTag-Scanner
- El procedimiento de escaneo incluye excluir en el filtro todo excepto la marca de la etiqueta y ajustar el RSSI a -40 dBm, luego esperar hasta que el SmartTag aparezca como dispositivo “FindMy”
- Justo después de capturar el payload y la dirección MAC, se debe retirar la batería de la etiqueta
- Si se vuelve a colocar la batería en el AirTag, la clave puede rotar con los servidores de Apple
- Si la clave rota, la clave actual del Flipper queda invalidada
- Para seguir usándolo en el Flipper, el AirTag debe permanecer apagado o sin batería
- No se puede usar el AirTag y el Flipper al mismo tiempo; si hace falta, se puede repetir el proceso para restaurar la función en el Flipper
- El payload y la dirección MAC capturados se ingresan en la app de FlipperZero
-
Opción B: generación de claves AirTag
- La generación de claves AirTag es una forma de emular un AirTag sin un dispositivo Apple ni un AirTag real
- Este método funciona mediante generación de claves, y se necesita una computadora para descargar los datos de ubicación
- Los componentes necesarios son los siguientes
- Docker Desktop
- Python
- Git
- Después de clonar el repositorio, se trabaja en la carpeta
AirTagGeneration
git clone https://github.com/MatthewKuKanich/FindMyFlipper.git cd AirTagGeneration- Después de iniciar Docker Desktop, se configura el servidor con el siguiente comando
docker run -d --restart always --name anisette-v3 -p 6969:6969 dadoum/anisette-v3-server:latest- Este servidor emula un entorno que suplanta al servidor de autenticación de Apple
- Crear y activar un entorno virtual de Python, luego instalar las dependencias
python3 -m venv venv pip3 install -r requirements.txtgenerate_keys.pygenera las claves necesarias para AirTag y las guarda en una nueva carpetakeys- El archivo
.keysgenerado puede transferirse al FlipperZero e importarse desde la app - En el menú config de la app, seleccionar “register tag”
- Elegir el tipo de etiqueta
- Importar
.keyso.txt, o ingresar los datos manualmente - Si se ingresa manualmente, introducir la MAC y luego el payload
- Presionar guardar para registrar
request_reports.pysolicita datos de ubicación en tiempo real usando autenticación con Apple ID y contraseña- La información de inicio de sesión de Apple se guarda en un archivo auth para no tener que volver a ingresarla después
RequestReport&Map.pymuestra en un mapa interactivo los datos de ubicación de las últimas 24 horas- Solicita reportes de ubicación con la clave publicitaria hasheada de la carpeta
keys - Descifra los datos con la clave privada del mismo archivo
.keys - Muestra los datos descifrados en la terminal
- Muestra las coordenadas en el mapa y conecta la ruta de movimiento
- Muestra metadatos de ubicación y los guarda como un archivo HTML con nombre de fecha del reporte
Configuración y ajuste de la app de FlipperZero
- Después de iniciar la app, en el menú config se puede usar
Import Tag From FileoRegister Tag Manually - El flujo incluye colocar el archivo
.keysen la carpetaapps_data->findmyoAppsData/FindMyFlipperde la tarjeta SD del FlipperZero e importarlo desde ahí - Los archivos
.txtguardados desde nrfConnect también pueden colocarse en la misma carpeta para importarlos - Los elementos ajustables son los siguientes
- Beacon Interval: ajusta la frecuencia con la que FlipperZero transmite su presencia
- Transmit Power: ajusta la intensidad de la señal para equilibrar alcance de rastreo y duración de batería
Compatibilidad, alternativas y responsabilidad
- Es compatible con lo siguiente
- Dispositivos Apple para rastreo de AirTag mediante la red FindMy
- Dispositivos y navegadores web compatibles con rastreo de Samsung SmartTag
- Tile Tracker mediante la app de Tile
- Para rastrear con OpenHaystack se requiere una versión de macOS anterior a 14
- En macOS 14 o superior hay problemas de compatibilidad con el plugin de Mail
- Como alternativa se propone macless-haystack
- Incluso al usar este método, solo debe usarse
generate_keys.pyde la carpetaAirTagGeneration - El script de generación de claves de ese repositorio usa un formato distinto de archivo de claves, y el archivo de FindMy Flipper incluye los datos necesarios para una importación correcta en FlipperZero
- Incluso al usar este método, solo debe usarse
- Esta app está pensada para uso personal y educativo
- El usuario debe cumplir las leyes locales de privacidad y regulaciones relacionadas con dispositivos de rastreo
- La clonación y emulación de etiquetas de rastreo debe usarse de forma responsable y respetando la propiedad del dispositivo original
- Este proyecto no está afiliado con Apple Inc. ni con Samsung
1 comentarios
Opiniones en Hacker News
Proyecto interesante, pero una de las dependencias subyacentes que usa no parece segura con la configuración predeterminada:
https://github.com/biemster/FindMy/blob/113ebf4017729b92a381...
Parece ser una biblioteca de autenticación para iCloud, y da la impresión de que hardcodearon un MacBook device agent para vincular la clave generada con el dispositivo.
Como pasa con los servicios centralizados, no la usaría con una cuenta que tenga muchos servicios o activos digitales vinculados. No me sorprendería que Apple bloqueara cuentas usadas así.
Como hay un código
adsidúnico necesario para iniciar sesión, tampoco parece difícil de detectar.En ese caso, no entiendo por qué Apple no lo soporta oficialmente. Me hace pensar que quizá lo hacen para impulsar las ventas de dispositivos iOS.
Tengo unos 5.000 dólares en equipos Apple de escritorio/móviles, y aun así tuve que comprar otro iPhone usado para registrar unos AirTag, así que me da rabia.
https://github.com/biemster/FindMy/blob/113ebf4017729b92a381...
Conscientemente, nunca integraría una biblioteca de terceros. Incluso ahora paso cada release de
VenToypor escáneres antivirus y estoy esperando el momento en que aparezca de verdad alguna vulnerabilidad tipo NZ.No es tanto por el flujo de pagos de Apple, sino por el modelo de suscripción. Si ofreces gratis una función que Apple podría considerar interesante, hay que tener cuidado. Apple puede cerrar el acceso y empezar a cobrarles a los usuarios.
También hay que tener el doble de cuidado con enojar a los geeks. Son gente realmente temible: se duermen enojados un viernes por la noche y pasan todo el fin de semana analizando el producto como una caja negra hasta volver trivial su implementación.
Este concepto parece que también podría usarse para eludir las funciones antiacoso que Apple y otros incorporaron.
Por ejemplo, si tienes N etiquetas donantes y vas alternándolas cada
24/Nhoras, desde la perspectiva de Apple o del seguimiento del dispositivo, no parecería que a la persona rastreada la está siguiendo una sola etiqueta durante mucho tiempo.Si le agregas una batería grande y un circuito temporizador sencillo, y le quitas el beeper, se vuelve un excelente dispositivo de rastreo.
Recuerdo que esto se comentaba en el contexto de rastrear cargamentos con equipos caros. El transporte podía tardar meses, y como el AirTag es muy eficiente energéticamente, con una batería grande duraba mucho; las soluciones GPS existentes no eran suficientes.
O podrías usar una etiqueta GPS que directamente no use la “red” de AirTag, y no habría que rotarla.
Todavía uso Flipper varias veces por semana. Espero con ganas la próxima versión con Wi‑Fi y soporte para otras frecuencias.
¿Alguien probó cómo reacciona la app “Find My” si ve la misma etiqueta en más de una ubicación?
Lo estoy usando y es excelente. Prácticamente no consume energía.
Sería genial que también pudiera comunicarse con la red Find My Device de Google, pero ya funciona muy bien en la red de Apple.
Me gustaría que esto pudiera portarse a dispositivos BLE baratos como el ESP32-C3. Usar un Flipper como AirTag es algo caro.
Lamentablemente necesitas una etiqueta donante para suplantarla, y esa etiqueta no se puede usar mientras usas esto. O si no, tienes que usar OpenHaystack, pero para obtener los datos necesitas una Mac.
Sería bueno que
README.mdtuviera un enlace para saber de qué está hablando: https://flipperzero.one/¿Qué app de Android se necesita para usar esto? Si es posible, preferiría una que no requiera Google Services.
Pero ¿con qué app de Android puedo realmente “encontrarlo”? No tengo iPhone ni dispositivos Samsung.