- L’auteur de l’article s’est heurté à un problème : le volume de ses écouteurs Bluetooth Tozo T6 était trop élevé.
- Il a décidé de résoudre le problème en modifiant directement le firmware de l’appareil.
- Son plan initial consistait à trouver le fichier binaire de son appareil, à comprendre la structure du binaire, à localiser les fichiers audio qu’il contenait, à rendre l’audio moins fort, puis à flasher le firmware modifié sur l’appareil.
- Il a découvert que certaines hypothèses étaient erronées et qu’il fallait davantage de rétro-ingénierie que prévu au départ.
- Il a identifié que le chipset de son appareil était un Airoha AB1562, basé sur l’ISA Tensilica Xtensa et incluant un "Cadence HiFi DSP coprocessor".
- Il a trouvé une application Android appelée "AirReps156X", qui fournit des informations de diagnostic sur les appareils Airoha et permet de flasher un nouveau firmware.
- Il a constaté que l’application Tozo affichait la version du firmware et l’état actuel, ce qui indiquait qu’elle communiquait avec un serveur pour vérifier les mises à jour.
- En utilisant un proxy d’interception pour surveiller le trafic réseau de l’application, il a découvert que la réponse à la requête vers /api/v1/getOtaVersionV3 contenait le lien vers les binaires du firmware qu’il cherchait.
- Il a découvert que les fichiers du firmware étaient chiffrés ou compressés, et que les fichiers binaires FotaPackage gauche et droit présentaient de légères différences.
- Il a trouvé en ligne une copie du SDK du chipset et a confirmé que les fichiers mp3 du SDK étaient inclus tels quels dans l’image du système de fichiers.
- Il a pu modifier le volume des fichiers audio dans l’image du firmware sans les réencoder ni en changer la longueur.
- Il a réussi à flasher le firmware modifié sur l’appareil et à obtenir un son nettement moins fort.
- Il en a conclu que le réglage du volume des sons système devrait être une fonctionnalité de premier ordre sur tout appareil qui lit de l’audio.
1 commentaires
Commentaires sur Hacker News