← Toutes les réalisations
Outils & applications

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.

Année2026
StatutmacOS · testé sur appareil réel
Point fort153 tests
Swift 6 (concurrence stricte)SwiftUILiquid Glass (macOS 26)Package Swift « Core » (6 libs)IOKit (détection USB)libimobiledeviceidevicerestoreXcodeGenSwiftLint
153tests unitaires verts (Swift 6 strict)
9/10score de santé du code
sans pertedowngrade vers une version signée
0 €si l'opération échoue ; jamais facturée

Contexte & problème résolu

Icône de l'application FoxFix
Icône de FoxFix : renard et clé dans un squircle verre macOS 26, style Liquid Glass.

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

Écran d'attente de branchement
Écran d'accueil : la mascotte relie un câble à un iPhone (état « branchez un iPhone »).

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

Carte de succès
Carte de succès : opération réussie, données intactes (code couleur vert).

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

Assistant de secours
Assistant de secours : chemin de récupération après un bootloop.

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

Sauvegarde / coffre
Bibliothèque de sauvegardes : le filet de sécurité, sauvegarde forcée avant toute opération risquée.

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).

Sortie et entrée de recovery validées sur l'iPhone réel ; « ça fonctionne hyper bien ». 153 tests verts, audit de licences concluant à une commercialisation à 100 % des revenus.
Journal de validation FoxFix
UN PROJET DU MÊME TYPE ?

Construisons-le.

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

Démarrer un projet