FoxFix
Application macOS native de dépannage iPhone, honnête et sans abonnement
Un iPhone bloqué sur l'écran de recovery provoque une panique disproportionnée, alors que la sortie est non destructive et tient en une commande. Les logiciels du marché exploitent cette peur en emballant des outils open source gratuits dans un abonnement. Tech Fox a conçu FoxFix, l'application macOS native (SwiftUI, macOS 26 Liquid Glass, Swift 6) qui sort un iPhone de recovery en un clic, le met à jour, le restaure, le fait revenir à une version signée sans perte de données, le sauvegarde et le diagnostique ; en n'exécutant que ce que le protocole de restauration signé d'Apple permet, et en le disant honnêtement.
Contexte & problème résolu

Les logiciels commerciaux (ReiBoot, UltFone, Dr.Fone…) emballent des outils open source gratuits (libimobiledevice, libirecovery, idevicerestore) dans une interface payante à 20-60 €/an, avec un marketing souvent trompeur (car aucun outil au monde ne peut installer une version d'iOS qu'Apple ne signe plus (protocole TSS). FoxFix est l'outil que ces applications prétendent être : natif macOS et soigné, honnête sur ce qui est techniquement possible (statut de signature affiché en direct), et pay-as-you-go sans abonnement) les fonctions de dépannage de base sont gratuites et illimitées, les opérations lourdes coûtent un petit prix fixe à l'usage, et une opération qui échoue n'est jamais facturée.
Anti-objectifs assumés et définitifs : aucun jailbreak, aucun bypass d'iCloud, de verrou d'activation ou de MDM, aucun contournement de signature, aucune manipulation d'IMEI ni déblocage opérateur. FoxFix ne fait que ce que le protocole de restauration d'Apple permet ; mais mieux que le Finder. Contrainte « clean-room » : toute l'application (écrans, textes, icône, illustrations, code) a été conçue à partir d'un cahier des charges maison et des Human Interface Guidelines d'Apple, sans jamais reproduire un élément d'un concurrent.
Architecture en couches

Le cœur métier est isolé dans un package Swift local exposant six bibliothèques consommées par l'app : modèles et taxonomie d'erreurs, une passerelle unique et auditée vers tout sous-processus externe (ToolRunner), un module de détection et classification d'appareils USB, un service firmware (client d'API, téléchargement, cache), les machines à états des opérations, et un contrat de monétisation injectable. L'application SwiftUI, en fenêtre unique Liquid Glass, s'appuie sur des ViewModels observables.
Principe directeur d'UX : « une fenêtre, un appareil, une action principale ». C'est l'état de l'iPhone qui détermine ce que l'app propose, pas une barre latérale fourre-tout. Code couleur strict et omniprésent : vert signifie que les données sont intactes, rouge signifie que l'opération efface tout.
- Détection USB temps réel via IOKit, classification des trois états (normal / recovery / DFU), puis enrichissement asynchrone des informations de l'appareil.
- Une seule porte auditée vers les binaires système (résolution du binaire, liste blanche d'arguments, timeout, streaming ligne à ligne, annulation propre, journal de session) : les secrets passent par l'environnement, jamais par la ligne de commande ni les logs.
- Opérations modélisées comme des machines à états reprenables exposant un flux d'états, présentées dans une feuille modale : préflight → sauvegarde → exécution par phases nommées → vérification → succès ou échec avec étape suivante.
Fonctionnalités phares

Le parcours suit l'état de l'appareil, du dépannage gratuit aux opérations de récupération avancées.
- Sortie / entrée de mode recovery (gratuit, illimité) : la porte d'entrée du produit, avec une copie honnête (jamais « réparé » pour un appareil qu'on ne voit plus) et un guide DFU pas-à-pas animé par famille d'appareil.
- Mise à jour avec IPSW : seules les versions encore signées par Apple sont proposées ; téléchargement repris, vérification de checksum, re-vérification de signature TSS à deux reprises (sélection puis juste avant le flash).
- Downgrade sans perte de données (fonction différenciante) : revenir d'une beta vers la dernière version signée en gardant ses données ; ce que le Finder refuse par politique. La sauvegarde est forcée par construction (le downgrade est inatteignable tant qu'une sauvegarde n'a pas réussi), avec avertissements de risque adaptés selon les versions.
- Sauvegarde et suite de sauvegarde : sauvegarde complète (y compris sur disque externe avec reprise au remontage), bibliothèque de sauvegardes, restauration, et conversion de version par clone APFS instantané qui laisse l'original intact.
- Diagnostic et Centre de santé (lecture seule, gratuit) : score de santé original, santé batterie réelle mesurée (cycles, capacité), triage des kernel panics, analyse de stockage ; les métriques que les outils commerciaux font payer.
Honnêteté par conception

L'honnêteté n'est pas qu'un discours, elle est câblée dans le code. La facturation « au succès uniquement » est structurelle : le débit n'est déclenché que sur succès d'opération, il est donc impossible de facturer un échec. Découverte de recherche déterminante : idevicerestore ne conserve les données que si le manifeste de l'IPSW contient une variante « Upgrade Install » ; sinon il efface silencieusement ; FoxFix lit donc les variantes du manifeste et bloque en préflight tout downgrade « préservant » sur un firmware qui n'en offre pas la garantie.
De même, l'avertissement de perte de données propre à idevicerestore ne se déclenche jamais quand l'outil est piloté par des pipes : d'où la nécessité absolue de la sauvegarde forcée et d'un avertissement maison comme unique filet, doublé d'un chemin de secours intégré en cas de bootloop.
Qualité, validation & compétences

Le produit est couvert par 153 tests unitaires verts en Swift 6 concurrence stricte (jalons M0 à M8 tous livrés), avec des fournisseurs d'appareils simulés et des parseurs testés sur fixtures permettant un développement sans iPhone. Validation matérielle réelle : détection USB en moins d'une seconde, sortie et entrée de recovery confirmées sur un appareil réel. Des revues adversariales ont corrigé deux bugs critiques de sécurité appareil sur le flux de restauration ; le score de santé du code avoisine 9/10, avec une localisation FR/EN complète et une accessibilité soignée. Un audit de licences a par ailleurs établi que l'application est commercialisable en gardant 100 % des revenus, obligations LGPL respectées.
Le projet démontre le développement macOS natif moderne (SwiftUI, Liquid Glass, Swift 6 strict), l'architecture logicielle en couches, la programmation système et USB (IOKit, cycles de vie de sous-processus, kill-safety), l'orchestration d'outils bas niveau, la sécurité et la robustesse, la qualité logicielle (tests, mocks, CI locale), le packaging Apple (bundling de binaires, runtime durci, préparation notarisation) et la direction artistique (système de design maison, illustrations et icône originales).
Galerie du projet
3 illustrations · faites défiler →


Construisons-le.
Présentez le problème, même s'il est encore flou. On transforme le besoin en système clair.