Présentation du projet

carrier-explode est une plateforme open‑source qui extrait les paramètres réseau (APN, VoLTE, Wi‑Fi Calling, 5G) des firmwares iPhone, Pixel et Galaxy. La version 2.0, annoncée récemment, introduit un backend « much improved », ce qui signifie une réécriture du moteur de décodage et une meilleure prise en charge des nouvelles versions de firmware. Le projet propose une API REST qui délivre les données au format JSON et un jeu de données quotidien sous licence CC0, facilitant l’accès automatisé pour les développeurs et les chercheurs.

Architecture et flux de décodage

Le nouveau backend repose sur un pipeline en deux étapes : d’abord, le téléchargement automatisé des images firmware depuis les serveurs d’Apple, Google et Samsung ; ensuite, un parseur spécialisé qui analyse les structures propriétaires (plist, XML, binaires). Chaque parseur est implémenté comme un module Python isolé, ce qui permet d’ajouter de nouveaux appareils sans perturber les autres. Les résultats sont stockés dans une base de données NoSQL, optimisée pour les requêtes de comparaison entre deux versions ou deux opérateurs. Le flux complet s’enchaîne ainsi : firmware → décodage → normalisation → exposition via API.

curl https://api.carrierexplode.com/v2/settings?carrier=Verizon&device=iphone

Cette requête renvoie un objet JSON contenant les champs apn, volte, wifiCalling et 5g, chaque champ étant lui‑même un tableau d’objets décrivant les paramètres spécifiques (nom, serveur, ports, etc.). La normalisation garantit que les mêmes concepts sont présentés de façon identique quel que soit le fabricant, ce qui simplifie les comparaisons.

Analyse des données et limites

Le jeu de données quotidien couvre plus de 200 opérateurs dans plus de 70 pays, mais la couverture n’est pas exhaustive. Les décoders sont encore en cours de développement ; certaines versions récentes de firmware contiennent des structures chiffrées ou compressées que le parseur ne peut pas encore interpréter. Cette lacune se traduit par des « gaps » dans les champs VoLTE ou 5G pour certains appareils, ce qui doit être indiqué aux utilisateurs de l’API. De plus, la dépendance à l’extraction du firmware implique des contraintes légales : le projet ne distribue pas les images complètes, uniquement les métadonnées dérivées, afin de rester dans le domaine du fair use.

Sur le plan performance, le backend 2.0 utilise le parallélisme natif de Python (multiprocessing) pour décoder plusieurs firmwares simultanément, réduisant le temps moyen de traitement d’une version de 12 minutes à environ 3 minutes. Cette amélioration repose sur une architecture micro‑services où chaque parseur s’exécute dans un conteneur Docker, facilitant le scaling horizontal sur un cluster Kubernetes.

Utilisation et perspectives

Les développeurs peuvent intégrer les données via l’API pour automatiser la configuration de profils réseau sur des appareils Android ou iOS, ou pour alimenter des outils de diagnostic télécom. Les chercheurs en télécommunications peuvent exploiter le dataset CC0 pour analyser l’évolution des déploiements 5G ou la diffusion des fonctionnalités VoLTE à l’échelle mondiale. À moyen terme, le projet prévoit d’ajouter le support des appareils Windows Phone et d’enrichir le wiki avec des schémas de format de firmware, afin de réduire la courbe d’apprentissage des contributeurs.