Confidentialité et cookies
Cette politique couvre deux choses distinctes : l'application FoxSDR que vous installez, et ce site web. Elles collectent des données différentes, pour des raisons différentes, et sont décrites séparément ci-dessous — l'application d'abord, parce que c'est la partie qui s'exécute sur votre propre machine. Elle est rédigée pour être complète plutôt que courte : chaque champ que l'une ou l'autre stocke est listé, y compris ceux que la plupart des politiques omettent.
L'application : ce qu'elle envoie
Il n'y a pas de compte, pas de clé de licence ni d'activation, et FoxSDR ne transmet jamais rien sur ce que vous écoutez. Il effectue exactement quatre types de requêtes réseau de sa propre initiative : une vérification des mises à jour ; un rapport d'utilisation anonyme, accompagné d'un petit battement « toujours en marche » tant que l'application est ouverte ; un rapport de plantage ou de blocage après un défaut ; et — seulement quand vous ouvrez la boutique de plugins ou y appuyez sur VÉRIFIER — une requête vers le catalogue des plugins. Chacune est décrite ci-dessous, champ par champ, et chacune peut être désactivée. Trois interrupteurs les commandent : SYSTÈME → Mises à jour, SYSTÈME → Rapports d'utilisation et SYSTÈME → Diagnostic. Aucune fonction ne dépend de l'activation de l'un d'eux, et rien ne vous harcèle si vous en désactivez un.
Ce qui reste sur votre machine
Vos enregistrements, audio comme I/Q brut, les images que construisent les décodeurs SSTV et de satellites météo, tout ce que les décodeurs décodent, vos signets, plans de bandes, paramètres, la position de votre récepteur et vos plugins installés sont des fichiers sur votre propre disque. Rien ne les envoie en ligne, et aucune fréquence sur laquelle vous vous accordez ne quitte votre machine.
La vérification des mises à jour
Une fois par lancement, l'application demande à ce site s'il existe une version plus récente. La requête tout entière est GET /api/update?v= suivi de la version que vous utilisez — pas d'identifiant, pas d'identifiant d'installation, pas de cookie, et rien qui puisse être relié à une requête ultérieure. Ce serveur n'écrit aucun enregistrement de mesure d'audience pour elle : seuls les affichages de pages et les téléchargements de fichiers sont enregistrés, et le point d'accès des mises à jour n'est ni l'un ni l'autre. Désactivez-la dans SYSTÈME → Mises à jour, et l'application ne contacte plus jamais le service.
Rien n'est téléchargé ni installé tant que vous n'appuyez pas sur le bouton. Si vous le faites, l'installateur est récupéré depuis ce site en HTTPS et son SHA-256 est comparé à l'empreinte publiée par le serveur avant que le fichier reçoive un nom sous lequel quoi que ce soit pourrait l'exécuter — et ce téléchargement est un téléchargement ordinaire depuis ce site, il est donc enregistré comme n'importe quel autre, avec l'adresse IP, la localisation approximative, le navigateur et le système d'exploitation décrits dans la partie de cette politique consacrée au site web.
Rapports d'utilisation
Depuis la version 0.53.0, il existe un rapport d'utilisation anonyme, sous SYSTÈME → Rapports d'utilisation. Il est activé par défaut, et vous pouvez le désactiver — décochez cette case et les rapports s'arrêtent immédiatement. Un rapport est envoyé par lancement, décrivant la session qui vient de se terminer, et voici son contenu intégral :
| Envoyé | Exemple | Pourquoi |
|---|---|---|
| Identifiant d'installation | 32 caractères hexadécimaux aléatoires | Distingue 100 utilisateurs d'un seul utilisateur qui lance l'application 100 fois. Généré au hasard sur votre machine au premier lancement, supprimé quand vous désactivez les rapports, et jamais dérivé de votre matériel, de votre réseau ou de votre nom. |
| Version de l'application | 0.99.39 | Savoir si les gens mettent à jour. L'alpha Android indique sa propre version sous la forme 0.98.1-android.4 — un suffixe -android.N ajouté au numéro de la version dont elle est issue, pour que ses rapports ne soient jamais confondus avec ceux de l'installateur Windows. |
| Système d'exploitation | Windows 10.0.22631, Linux 6.8.0 ou Android 14 | Quelles plates-formes sont réellement utilisées. Le système d'exploitation et son numéro de build, de noyau ou de version, jamais le nom de votre machine ni votre compte utilisateur. La version Linux (0.99.39) et l'alpha Android (0.98.1-android.4) envoient les mêmes champs sous le même interrupteur. |
| Architecture | x64 ou arm64 | Même raison que ci-dessus. |
| Nombre de lancements | 12 | Savoir si le logiciel est utilisé plus d'une fois. |
| Nombre de plantages | 1 | Savoir à quelle fréquence il échoue. |
| Durée de session | 3600 secondes | Savoir si les sessions durent des minutes ou des heures. |
| Modèle de SDR | uhd b200 | Savoir quelles radios privilégier. Les numéros de série sont supprimés avant l'envoi. |
| Démodulateurs utilisés, et pendant combien de temps | WFM: 3000s | Savoir quels modes justifient un travail supplémentaire. |
| Panneaux ouverts | map, decoded | Savoir quelles fonctions sont utilisées. |
| Plugins installés | ADS-B 1.0.0 | Savoir quels décodeurs justifient un travail supplémentaire. |
C'est la liste complète. Elle est livrée avec l'application sous le nom PRIVACY.md, et un test automatisé vérifie le contenu envoyé champ par champ, si bien qu'aucun nouveau champ ne peut être ajouté sans que ce test échoue et que les deux documents soient mis à jour. Désactiver les rapports supprime l'identifiant d'installation : si vous les réactivez un jour, vous en obtenez un nouveau qui ne peut pas être relié à l'ancien.
Le rapport est envoyé au démarrage, décrivant la session déjà terminée, et jamais à la fermeture — un appel réseau au moment de quitter peut bloquer une application que quelqu'un essaie de fermer, et un rapport écrit à la fermeture serait perdu lors de l'événement qui mérite le plus d'être compté. Rien dans la réponse n'est lu ni pris en compte.
Le battement « toujours en marche »
Un rapport qui arrive au démarrage de l'application peut dire qui l'a lancée, jamais qui l'a encore ouverte. Donc, pendant que FoxSDR tourne — et seulement tant que les rapports d'utilisation sont activés — il envoie aussi un tout petit message toutes les cinq minutes, contenant trois champs et rien d'autre :
| Envoyé | Exemple | Pourquoi |
|---|---|---|
| Identifiant d'installation | les mêmes 32 caractères hexadécimaux que ci-dessus | Pour que douze battements d'une même copie comptent pour une copie en marche, et non douze. |
| Version de l'application | 0.99.39 | Pour que « en marche en ce moment » puisse être ventilé par version. |
| Marqueur de battement | 1 | Indique au destinataire qu'il s'agit d'un battement et non d'un rapport de session. |
Rien de la session ne l'accompagne : pas de modes, pas de panneaux, pas de modèle de radio, pas de durées, pas de compteurs. Les battements sont écrits dans un jeu de données qui leur est propre, séparé des rapports de session, si bien qu'aucun chiffre d'utilisation ne change de sens. Le même interrupteur arrête les deux : l'émetteur refuse de s'armer sans identifiant d'installation valide, et désactiver les rapports d'utilisation le supprime, donc désactivé signifie aucun battement du tout. Un battement encore en cours d'envoi quand le suivant est dû est sauté plutôt que mis en file d'attente.
Où vont les rapports d'utilisation
À un Cloudflare Worker exploité par ce projet à l'adresse https://telemetry.foxsdr.com, qui écrit les compteurs ci-dessus dans un jeu de données Cloudflare Workers Analytics Engine. Cloudflare les traite pour notre compte et les conserve trois mois, après quoi ils disparaissent. Personne d'autre ne les reçoit, ils ne sont ni vendus, ni loués, ni partagés, et la seule chose qui en est extraite, ce sont des comptages agrégés, via le même tableau de bord protégé par mot de passe décrit plus loin. Le code source du Worker est publié avec l'application, vous pouvez donc lire ce que fait le destinataire. Les rapports de plantage ne vont pas là — ils vont au propre serveur de ce site, décrit ensuite.
Rapports de plantage et de blocage
Si FoxSDR plante, ou cesse de répondre, il écrit un rapport décrivant le défaut dans %LOCALAPPDATA%\FoxSDR\crashes\ sur votre propre machine, et envoie le texte du rapport au lancement suivant — jamais depuis l'intérieur de la défaillance elle-même, parce qu'un programme qui vient de planter ne peut pas ouvrir une connexion réseau en toute sécurité. Il va à POST /api/crash sur ce site — pas à Cloudflare, ni à aucun tiers — et il est anonyme : il n'y a pas de compte, pas de clé de licence et rien avec quoi se connecter.
L'interrupteur est SYSTÈME → Diagnostic, et il commande autant l'écriture que l'envoi : désactivé, aucun rapport n'est écrit, aucun répertoire n'est créé, et aucune connexion n'est jamais établie. C'est un interrupteur différent de celui des rapports d'utilisation. Désactiver les rapports d'utilisation n'empêche pas un rapport de plantage — cela vide le champ d'identifiant d'installation de celui-ci, parce qu'aucun identifiant n'existe alors et qu'un rapport de plantage n'en crée jamais (voir la dernière ligne du tableau ci-dessous). Jusqu'à cette version, la politique ci-dessus nommait le mauvais interrupteur ; le logiciel a toujours utilisé Diagnostic, et les deux disent désormais la même chose.
Voici l'intégralité de ce que contient un rapport :
| Envoyé | Exemple | Pourquoi |
|---|---|---|
| Ce qui s'est passé | crash ou hang | Un blocage et un plantage sont des défauts différents. |
| Signature du défaut | cascade.exe+0x1a2b/adsb.dll | Regroupe en une seule entrée le même défaut signalé par de nombreuses personnes, pour que cent rapports d'un même bug soient une seule chose à corriger et non cent. |
| Version de l'application, commit et identifiant de build | 0.61.0, 28fa1c2 | Dans quelle build c'est arrivé, et quels symboles y correspondent. |
| Module fautif et décalage | cascade.exe, 0x1a2b | L'endroit du programme où ça s'est mal passé. |
| Système d'exploitation et architecture | Windows 11, Linux ou Android 14, x64 ou arm64 | Les défauts sont souvent propres à une plate-forme. Un rapport Linux ou Android contient les mêmes champs ; les trames de pile nomment l'identifiant de build GNU de la bibliothèque fautive au lieu d'un identifiant PDB, puisque aucune de ces deux plates-formes ne compile avec MSVC. |
| Le type de défaillance | access violation, 0xC0000005 | La ligne de motif propre au rapport et le code d'exception Windows. C'est notamment ce qui indique qu'un défaut a été absorbé — l'application y a survécu — plutôt qu'un plantage ; sans cela, les deux se ressemblent en tous points. Un code et une phrase fixe, jamais du contenu. |
| Plugins chargés et leurs versions | ADS-B 1.1.0 | « Ne plante qu'avec le plugin ADS-B chargé » est une description de défaut ; « plante parfois » n'en est pas une. |
| Piles des threads | cascade.exe+0x1a2b par trame | La pile, c'est le défaut. Elle ne contient que des noms de modules, des identifiants de build et des décalages numériques — pas de chemins de sources, pas de variables, pas de contenu mémoire. |
| La fin du journal de session | opened rtlsdr | The last lines the application logged, which is usually what it was doing when it failed. It is the application's own log: it records state changes — source opened, rate set, plugin started — never signal content, and never the name or path of a file you opened. It also carries what the radio driver said and what its libraries printed to the standard error stream. Before any line of it leaves your computer, the application's own lines as well as the driver's, it is scrubbed: serial numbers and the device-specific part of USB device identifiers are replaced by <stripped>, the account name in a file path by <user>, and anything in single quotes, such as the names you give patch nodes and speakers, by '<name>'; on any line that mentions hertz, a frequency, tuning, a centre, a range, an offset, a carrier, a preset or transmitting, every number is replaced by # unless it is marked as a sample rate, a time, a level, a size or a count, is a version, an identifier or an error code, or is part of a name such as R820T; and lines in which the USB driver lists the devices plugged into your computer are left out, with one line saying how many. |
| Notes de contexte | mode: WFM, sampleRate: 2400000 | Quelques notes clé/valeur que l'application ajoute : le mode, la source (générateur, fichier I/Q ou vraie radio), le taux d'échantillonnage, si un périphérique était ouvert, le modèle de SDR sans ses numéros de série, depuis combien de secondes l'application tournait, et si le thread fautif exécutait le propre code de FoxSDR ou celui d'un pilote radio. sampleRate est le taux d'échantillonnage, pas une fréquence d'accord. |
| Identifiant d'installation | 32 caractères hexadécimaux aléatoires, ou vide | Utilisé pour limiter le débit, puis jeté : l'identifiant d'installation n'est pas stocké. Une machine coincée dans une boucle de plantages ne doit pas pouvoir inonder le serveur, et distinguer une machine de cent est la seule chose pour laquelle il est jamais lu. Il n'est jamais écrit sur disque ici. Si les rapports d'utilisation sont désactivés, il est envoyé vide — il n'existe alors aucun identifiant, et un rapport de plantage n'en crée jamais. |
Corrected in FoxSDR 0.99.33. Before 0.99.33 the scrubbing described above was applied only to the radio driver's lines, not to the application's own, and a few of the application's own lines could therefore reach a crash or freeze report carrying the frequency you had asked for or were transmitting on, a patch radio's label (which can include its serial number), the names you gave patch parts, the first line of text a decoder on the patch page had produced, and the list of USB devices the USB driver printed, including their serial numbers. That contradicted this notice. From 0.99.33 every line is scrubbed before it leaves your computer, and those log lines no longer contain those values in the first place.
Un rapport de plantage ne contient aucune fréquence, rien de décodé, aucun chemin de fichier, aucun nom d'utilisateur, aucun nom de machine et aucune localisation. Les rapports sont conservés sur le propre serveur de ce site, derrière le même tableau de bord protégé par mot de passe que tout le reste, et sont conservés 90 jours après la dernière apparition du défaut, puis supprimés — les mêmes trois mois que les rapports d'utilisation. Le premier rapport de chaque défaut est conservé en entier, ainsi qu'un rapport supplémentaire par build dans laquelle le défaut persiste, jusqu'à trois ; tous les autres rapports de ce même défaut sont comptés au lieu d'être stockés. Un test automatisé aligne à la fois ce que le point d'accès accepte et ce qu'il écrit sur disque sur le tableau ci-dessus, dans les deux sens, si bien qu'aucun champ ne peut être ajouté à l'un ou à l'autre sans que ce tableau change aussi.
Un vidage mémoire complet n'est jamais envoyé, quel que soit le réglage. Un vidage mémoire est une copie de la mémoire du programme et peut contenir des noms de fichiers, des titres de fenêtres et des données de signal reçues. Il est désactivé par défaut ; si vous l'activez dans SYSTÈME → Diagnostic, un .dmp est écrit à côté du rapport texte, en local uniquement, et l'outil d'envoi ouvre les fichiers nommés crash-*.txt et hang-*.txt et rien d'autre.
À quelle fréquence. Au plus cinq rapports par jour depuis une même machine, et le même défaut une seule fois par jour, quel que soit le nombre de fois où il se produit — les deux limites sont conservées dans votre propre fichier de paramètres, si bien qu'une machine en boucle de plantages cesse d'envoyer d'elle-même au lieu qu'on le lui ordonne, et un rapport dont l'envoi échoue est retenté aux lancements suivants trois fois au plus, puis abandonné. Retrouver un nom de fonction à partir d'un décalage dans un rapport nécessite la base de données de débogage de cette build exacte, qui reste sur nos propres machines et n'est jamais envoyée nulle part : la résolution se fait en local, pas sur le serveur.
Ce que l'application n'envoie jamais
- Les fréquences sur lesquelles vous vous accordez. Ce qu'une personne écoute est l'information la plus sensible que connaît ce logiciel, et elle n'est jamais collectée. Au Royaume-Uni, intercepter un message que vous n'êtes pas autorisé à recevoir, ou en divulguer le contenu, est une infraction au titre de la section 48 du Wireless Telegraphy Act 2006.
- Les noms ou chemins des fichiers que vous ouvrez. Le nom de fichier d'un enregistrement vous appartient — il peut nommer un service, un lieu ou une fréquence. Quand un fichier I/Q ne se rouvre pas, le journal enregistre qu'il ne s'est pas rouvert ; le nom reste à l'écran, où vous le connaissez déjà.
- Tout ce qui est décodé — messages de pagers, avions, navires, images, trafic satellite.
- Votre position, ni celle de quoi que ce soit que vous recevez — y compris la position du récepteur que vous définissez, qui n'est transmise dans aucun rapport. Voir ci-dessous.
- Votre adresse IP, ni aucune localisation qui en serait déduite. Une requête atteint forcément un serveur depuis une adresse, parce que c'est ainsi que fonctionne Internet ; le point d'accès des rapports d'utilisation ne lit aucune information de connexion et n'écrit aucun journal de requêtes.
- Les numéros de série du matériel. Le modèle de radio est utile ; le numéro de série identifie votre radio en particulier, et il est retiré avant l'envoi.
- Votre nom, le nom de votre machine, votre compte utilisateur, ni aucun chemin de fichier.
- Un vidage mémoire complet.
La position du récepteur, et le GPS
FoxSDR a besoin de savoir où se trouve le récepteur, parce que chaque distance et chaque azimut sur la carte et sur l'écran radar sont mesurés à partir de lui. Vous pouvez la saisir, cliquer dessus sur la carte, ou la lire depuis un récepteur GPS sur un port série.
La position reste sur votre machine. Elle est stockée dans votre propre fichier de paramètres et n'est jamais transmise — ni dans le rapport d'utilisation, ni dans le battement, ni dans un rapport de plantage, ni nulle part ailleurs. La lire depuis un GPS est une action que vous lancez : vous indiquez le port et appuyez sur « Lire la position depuis le GPS ». Le port n'est tenu que jusqu'à l'arrivée du premier fix, et pendant 60 secondes au plus. Le journal de diagnostic enregistre le nom du port, le débit en bauds, le nombre de phrases et de satellites et toute erreur — jamais la position, et jamais le texte d'une phrase NMEA. Un champ de port contenant quelque chose qui n'a pas la forme d'un port est journalisé par sa nature et sa longueur (« un chemin de périphérique saisi, 27 caractères »), de sorte qu'un chemin de fichier contenant votre nom d'utilisateur ne puisse pas se glisser dans un rapport. Deux tests automatisés le garantissent : l'un sur l'anneau du journal, l'autre sur le fichier journal écrit par la vraie application.
Le catalogue des plugins
Le catalogue est contacté quand vous ouvrez la fenêtre de la boutique de plugins (la première fois dans une session, depuis FoxSDR 0.99.16), chaque fois que vous y appuyez sur VÉRIFIER, et quand vous choisissez d'installer quelque chose. Rien n'est récupéré au démarrage, la fenêtre ne se rouvre pas d'elle-même, et aucun plugin ne se met jamais à jour tout seul. Le catalogue est un fichier publié sur GitHub (raw.githubusercontent.com), cette requête atteint donc les serveurs de GitHub, qui — comme pour toute requête web — voient l'adresse d'où elle vient. Aucun identifiant vous concernant n'est envoyé avec : pas d'identifiant d'installation, pas de cookie, rien qui puisse être relié à un rapport d'utilisation. Chaque téléchargement se fait en HTTPS, avec une taille plafonnée, est refusé en cas de redirection vers un autre hôte, et vérifié contre le sha256 publié dans le catalogue avant d'avoir le droit de devenir un fichier. La source est un paramètre : vous pouvez la pointer vers un autre catalogue, ou vers un index.json sur votre propre disque, auquel cas aucune requête réseau n'est effectuée.
Jeux d'éléments orbitaux des satellites
Le plugin satellites tient ses jeux d'éléments orbitaux à jour en les récupérant auprès des sources nommées dans son satellite.cfg, toutes les douze heures tant qu'il est chargé. Ce site conserve une copie de ces jeux d'éléments à l'adresse GET /tle/all.tle — les groupes stations, amateurs et météo de CelesTrak ainsi que NOAA 15, 18 et 19, rafraîchis ici toutes les douze heures — et Satellites 1.0.4 et les versions ultérieures se rabattent d'eux-mêmes sur ce fichier chaque fois que toutes les sources de satellite.cfg échouent, afin qu'une machine que CelesTrak refuse puisse quand même les suivre. Le fichier n'a pas besoin de nommer ce site pour cela ; une ligne fallback-url none dans ce fichier désactive ce repli, et refresh-hours 0 désactive toute récupération. La requête ne contient aucun identifiant, aucun identifiant d'installation ni aucun cookie, et ce serveur n'écrit aucun enregistrement de mesure d'audience pour elle — comme pour la vérification des mises à jour, seuls les affichages de pages et les téléchargements de fichiers sont enregistrés, et le miroir n'est ni l'un ni l'autre. Les jeux d'éléments eux-mêmes appartiennent à CelesTrak (celestrak.org) et chaque réponse le mentionne.
Recherches dans le registre des avions
Le plugin facultatif Aircraft Info montre qui est chaque avion sur la carte — son immatriculation, son type et son exploitant. L'application ne fait jamais cette requête ; c'est l'installation de ce plugin qui l'active. Depuis la version 1.1.0, le plugin interroge d'abord ce site, à l'adresse GET /api/aircraft/<address>, et n'envoie que l'adresse OACI de l'avion, à six chiffres hexadécimaux — le numéro que l'avion diffuse lui-même — sans identifiant, sans identifiant d'installation et sans cookie. Chaque appareil n'est demandé qu'une fois et la réponse est conservée sur votre propre machine, si bien qu'il n'est pas redemandé. Ce n'est que lorsque ce site ne connaît pas un avion, ou ne peut pas être joint, que le plugin interroge api.adsbdb.com, un service tiers gratuit, comme le faisaient toujours les versions précédentes. L'ensemble des avions qu'entend un récepteur donne une indication approximative de l'endroit où il se trouve, c'est pourquoi le plugin est facultatif et le dit avant que vous ne l'installiez.
Ce que ce serveur conserve d'une recherche : rien par requête. Aucun enregistrement de mesure d'audience n'est écrit, et ni l'adresse de l'avion ni l'adresse d'où vient la requête ne sont journalisées. Le seul enregistrement est constitué de cinq totaux cumulés depuis le dernier démarrage du serveur — recherches, trouvés, non trouvés, mal formés et limités en débit — que le tableau de bord affiche. Pour empêcher quiconque de copier la table en bloc, chaque adresse qui se connecte dispose d'un quota de recherches tenu en mémoire, exactement comme pour les autres points d'accès de ce site, et jamais écrit sur disque ; il est oublié au redémarrage du serveur ou dès que plus de dix mille adresses sont suivies, selon ce qui arrive en premier.
Les réponses proviennent de la base de données d'avions de l'OpenSky Network (opensky-network.org) : pour chaque appareil, son immatriculation, son indicatif de type, son constructeur, son modèle et, lorsqu'il est renseigné, son exploitant. OpenSky fournit cette base de données en l'état et demande à ses utilisateurs de citer : Matthias Schäfer, Martin Strohmeier, Vincent Lenders, Ivan Martinovic et Matthias Wilhelm, « Bringing Up OpenSky: A Large-scale ADS-B Sensor Network for Research », dans Proceedings of the 13th IEEE/ACM International Symposium on Information Processing in Sensor Networks (IPSN), avril 2014. Le propriétaire enregistré qui y figure n'est pas copié sur ce site ni servi par lui, parce que pour un avion privé il s'agit du nom d'une personne ; seul l'exploitant, qui est une compagnie aérienne, une armée de l'air ou une entreprise, l'est.
L'interface dans le navigateur
FoxSDR peut servir son interface en HTTP à d'autres machines de votre propre réseau. Elle est désactivée par défaut et liée à votre propre machine tant que vous ne changez rien ; un mot de passe est exigé pour toute liaison au-delà, et sans mot de passe la liaison élargie est refusée plutôt qu'ouverte. Les mots de passe sont stockés sous forme hachée (PBKDF2-HMAC-SHA256) et les sessions sont révoquées dès que les paramètres changent. Il n'y a délibérément pas de TLS, parce que l'application n'intègre aucune bibliothèque cryptographique et ne prétendra pas à une sécurité de transport qu'elle ne peut pas fournir — placez un proxy inverse ou un tunnel privé devant, et ne la redirigez jamais directement par un port de votre box. Toute personne à qui vous donnez accès peut voir et commander ce que fait le récepteur.
Demandes de fonctions envoyées depuis l'application
L'application dispose d'une boîte « Demander une fonction », sur sa page principale, où vous pouvez taper ce que vous aimeriez qu'elle fasse et appuyer sur Envoyer. Rien n'est envoyé tant que vous n'appuyez pas sur ce bouton, cela ne se produit jamais automatiquement, et une demande qui ne nous parvient pas n'est ni mise en file d'attente ni retentée en arrière-plan — ce que vous avez tapé reste dans la boîte, en mémoire uniquement, pour que vous appuyiez à nouveau sur Envoyer, et n'est jamais écrit dans le fichier de configuration ni dans le journal. Voici l'intégralité de ce que contient une demande :
| Envoyé | Exemple | Pourquoi |
|---|---|---|
| Ce que vous avez tapé | Please add a squelch control to the FLEX decoder | La demande elle-même : de 10 à 100000 caractères. Les caractères de contrôle sont retirés avant le stockage ; les sauts de ligne sont conservés. |
| Un contact, si vous en avez donné un | [email protected] ou un indicatif | Facultatif, jusqu'à 120 caractères, pour que nous puissions vous poser une question complémentaire. Laissez-le vide et la demande ne contient rien qui puisse vous identifier. |
| Version de l'application | 0.99.39 | La build d'où vient la demande. |
| Système d'exploitation | windows, linux ou android | La plate-forme qui l'a envoyée. |
| Architecture | x64 ou arm64 | Même raison que ci-dessus. |
| Numéro de schéma | 1 | La version du contrat de format, pour qu'une future modification du format ne puisse pas être confondue avec l'un des champs ci-dessus. |
Elle va à POST /api/feature-request sur ce site. Votre adresse IP ne sert qu'à maintenir le rythme d'envoi dans des limites raisonnables, et elle n'est jamais écrite sur disque — l'enregistrement réellement conservé contient votre message, votre adresse de contact si vous en avez donné une, la version de l'application, la plate-forme, l'architecture, et votre pays approximatif lorsque notre recherche peut le déduire de la connexion, et rien d'autre. Il est lu par le mainteneur du projet sur le tableau de bord d'administration, derrière le même mot de passe que tout le reste ici, et est conservé jusqu'à sa suppression de ce tableau de bord, ou jusqu'à ce que vous le demandiez. Une demande traitée — ajoutée à FoxSDR, ou réglée d'une autre manière — peut y être archivée plutôt que supprimée, pour que le projet garde trace de ce qui a été demandé et de ce qui a été construit ; une demande archivée est toujours conservée, avec tout ce qui est listé ci-dessus. Si vous avez donné une adresse de contact et souhaitez que la demande soit supprimée, écrivez à l'adresse ci-dessous en citant suffisamment de ce que vous avez envoyé pour qu'elle puisse être retrouvée.
Rapports de bugs et critiques envoyés depuis l'application
Juste sous « Demander une fonction », l'application dispose d'une boîte « Signaler un bug / une critique », où vous indiquez soit que quelque chose est cassé, soit que quelque chose vous déplaît, et appuyez sur Envoyer. Elle fonctionne exactement comme la boîte de demande de fonctions : rien n'est envoyé tant que vous n'appuyez pas sur ce bouton, rien n'est mis en file d'attente ni retenté en arrière-plan, et ce que vous avez tapé reste en mémoire uniquement — jamais dans le fichier de configuration, jamais dans le journal. Ce n'est pas un rapport de plantage et il ne contient rien de ce que contient un rapport de plantage. Voici l'intégralité de ce que contient un rapport :
| Envoyé | Exemple | Pourquoi |
|---|---|---|
| S'il s'agit d'un bug ou d'une critique | bug ou dislike | Le choix que vous avez fait en haut de la boîte : quelque chose qui ne fonctionne pas, ou quelque chose qui fonctionne comme prévu mais que vous préféreriez voir autrement. |
| Ce que vous avez tapé | The waterfall freezes when I change the sample rate | Le rapport lui-même : de 10 à 100000 caractères. Les caractères de contrôle sont retirés avant le stockage ; les sauts de ligne sont conservés. |
| Un contact, si vous en avez donné un | [email protected] ou un indicatif | Facultatif, jusqu'à 120 caractères, pour que nous puissions vous poser une question complémentaire. Laissez-le vide et le rapport ne contient rien qui puisse vous identifier. |
| Version de l'application | 0.99.39 | La build d'où vient le rapport, pour qu'un bug déjà corrigé ne soit pas pourchassé à nouveau. |
| Système d'exploitation | windows, linux ou android | La plate-forme qui l'a envoyée. |
| Architecture | x64 ou arm64 | Même raison que ci-dessus. |
| Numéro de schéma | 1 | La version du contrat de format, pour qu'une future modification du format ne puisse pas être confondue avec l'un des champs ci-dessus. |
Il va à POST /api/problem-report sur ce site. Votre adresse IP ne sert qu'à maintenir le rythme d'envoi dans des limites raisonnables, et elle n'est jamais écrite sur disque — l'enregistrement réellement conservé indique s'il s'agit d'un bug ou d'une critique, et contient votre message, votre adresse de contact si vous en avez donné une, la version de l'application, la plate-forme, l'architecture, et votre pays approximatif lorsque notre recherche peut le déduire de la connexion, et rien d'autre. Il est lu par le mainteneur du projet sur le tableau de bord d'administration, derrière le même mot de passe que tout le reste ici, et un rapport est conservé jusqu'à sa suppression de ce tableau de bord, ou jusqu'à ce que vous le demandiez. Un rapport traité — corrigé dans FoxSDR, ou réglé d'une autre manière — peut y être archivé plutôt que supprimé ; un rapport archivé est toujours conservé, avec tout ce qui est listé ci-dessus. Si vous avez donné une adresse de contact et souhaitez que le rapport soit supprimé, écrivez à l'adresse ci-dessous en citant suffisamment de ce que vous avez envoyé pour qu'il puisse être retrouvé.
Le site web : ce qui est enregistré lors de votre visite
Un enregistrement est écrit pour chaque affichage de page et chaque téléchargement, que vous acceptiez les cookies ou non. Il s'agit d'une mesure d'audience interne : les données restent sur le serveur qui sert ce site, elles ne sont pas partagées avec un réseau publicitaire, et il n'y a aucun script tiers sur la page.
| Enregistré | Provenance | Consentement requis |
|---|---|---|
| Date et heure, page demandée, méthode et protocole HTTP | La requête | Non |
| Votre adresse IP, et une empreinte salée de celle-ci | La connexion | Non |
| Localisation approximative : pays, région, ville, zone de code postal, fuseau horaire, et les coordonnées de cette ville — pas les vôtres | Adresse IP, recherchée via ip-api.com | Non |
| Votre réseau : fournisseur d'accès, organisation, numéro d'AS, et si l'adresse appartient à un VPN, un centre de données ou un réseau mobile connu | La même recherche | Non |
| Navigateur et version, système d'exploitation et version, type d'appareil, et si la requête ressemble à celle d'un robot | En-tête User-Agent | Non |
La page qui vous a envoyé ici, et les éventuelles balises de campagne du lien (utm_source et consorts) | En-tête Referer et URL | Non |
| Langues préférées | En-tête Accept-Language | Non |
| Le fichier que vous avez téléchargé, sa version, le nombre d'octets envoyés et si le transfert s'est terminé | Le téléchargement lui-même | Non |
| Taille de l'écran et de la fenêtre, rapport de pixels, profondeur de couleur | Votre navigateur, transmis par le script de cette page | Oui |
| Nombre de cœurs du processeur et mémoire approximative de l'appareil | Le même script | Oui |
| Fuseau horaire, liste des langues, préférence de mode sombre, prise en charge du tactile, plate-forme | Le même script | Oui |
| Type de connexion, débit descendant estimé et temps aller-retour | Le même script | Oui |
| Combien de temps la page a été visible, jusqu'où vous avez fait défiler, combien de clics, et sur quels boutons vous avez appuyé | Le même script | Oui |
Ce qui n'est délibérément pas fait
- Aucune empreinte de navigateur : pas de sondage du canvas, de l'audio, des polices ou de WebGL, et rien qui tente de vous ré-identifier après votre refus.
- Aucun traceur tiers, pixel publicitaire, widget de réseau social ni service de mesure d'audience. Rien sur cette page n'est chargé depuis un autre domaine.
- Aucune tentative de lire votre presse-papiers, votre batterie, votre caméra, votre microphone, vos mots de passe enregistrés ou votre historique de navigation — rien de tout cela ne regarde une page de téléchargement.
- Vos données ne sont ni vendues, ni louées, ni partagées avec qui que ce soit. La seule requête sortante que le serveur effectue à votre sujet est la recherche de localisation à partir de l'IP décrite ci-dessus.
Les designs d'interface que vous publiez
Ce site peut conserver un design d'interface FoxSDR — un paquet .foxui — que vous choisissez de publier. Rien n'est envoyé avant que vous appuyiez sur Publish, et l'envoi se fait vers POST /api/gui/publish. Ce qui est conservé est ce que contient le paquet : le design lui-même, le nom, la version et la description que vous avez saisis, un nom d'auteur si vous en avez saisi un, l'heure de publication et un identifiant aléatoire. Votre adresse IP sert uniquement à maintenir le rythme des publications dans des limites raisonnables, et elle n'est jamais écrite sur le disque. Un paquet publié n'est répertorié nulle part ; toute personne qui en possède le lien peut le télécharger. Il est conservé jusqu'à ce qu'il soit supprimé depuis le tableau de bord d'administration, ou jusqu'à ce que vous le demandiez — écrivez à l'adresse ci-dessous en indiquant son lien.
Si vous vous inscrivez comme bêta-testeur
Le formulaire bêta et l'inscription aux nouvelles sont les seuls endroits où ce site vous demande quoi que ce soit, en dehors de la publication d'un design d'interface (voir plus haut). L'envoyer enregistre votre adresse e-mail, ainsi que ce que vous avez choisi de fournir parmi les éléments suivants : un nom ou un indicatif, votre plate-forme, la radio que vous comptez utiliser, vos notes, et la liste des fonctions que vous vous êtes porté volontaire pour tester. Nous conservons en plus le même contexte de visite que celui décrit ci-dessus — localisation approximative, réseau, navigateur et système d'exploitation — parce qu'un rapport de bug se lit très différemment selon la configuration dont il provient.
- L'adresse sert à une seule chose : vous contacter au sujet des versions bêta et de ce qu'il faut tester. Pas de lettre d'information, pas de marketing, et elle n'est jamais transmise à qui que ce soit.
- Rien ne se passe tant que vous n'avez pas confirmé. L'inscription envoie un seul e-mail contenant un code à six chiffres, que vous saisissez dans la page pour confirmer que l'adresse est bien la vôtre. Le code est valable 30 minutes et est refusé après cinq essais erronés. Tant qu'il n'a pas été saisi, l'inscription reste inactive : vous n'êtes pas sur la liste des testeurs, vous n'êtes pas compté, et rien d'autre ne vous est jamais envoyé. Si quelqu'un d'autre a saisi votre adresse, ignorez cet e-mail et l'inscription ne deviendra jamais réelle — il n'y a rien dont se désabonner et aucune démarche à faire. Ce message unique est le seul courrier automatique qu'une inscription puisse produire.
- Si vous nous avez écrit, nous pouvons vous inviter. Une personne qui nous a écrit en laissant une adresse — par la boîte de suggestions de l'application, par exemple — peut recevoir de notre part une invitation personnelle, avec un lien à usage unique qui ouvre la touche Confirmer de ce site. Cette invitation est conservée comme une inscription en attente, exactement comme une inscription non confirmée : vous n'êtes pas testeur et n'êtes pas compté tant que vous n'appuyez pas sur Confirmer, et si vous l'ignorez nous ne vous écrivons plus. Une inscription en attente n'expire pas d'elle-même ; elle est supprimée quand nous la retirons de la liste ou quand vous le demandez, par un simple e-mail à l'adresse ci-dessous.
- Une fois que vous avez confirmé, vous recevez votre lien de gestion privé, et nous vous écrivons quand sort une version qui a besoin de ce que vous vous êtes proposé de tester. C'est une personne qui vous écrit, pas une liste de diffusion. Si vous perdez ce lien, nous pouvons vous en délivrer un nouveau : l'ancien cesse aussitôt de fonctionner, le nouveau vous est envoyé par e-mail, et nous conservons le moment de l'opération et si l'e-mail est parti.
- Cet e-mail passe par Apple. Le courrier de
foxsdr.comest acheminé par le service iCloud Mail d'Apple, si bien que votre adresse et le message transitent par leurs serveurs avant de vous parvenir, selon leurs conditions en tant que fournisseur de messagerie. Rien d'autre vous concernant ne leur est envoyé. - C'est tenu à l'écart de la mesure d'audience. Les inscriptions sont stockées dans leur propre fichier, lisible uniquement par le compte qui fait tourner le serveur ; le journal de mesure d'audience enregistre qu'une inscription a eu lieu et combien de fonctions ont été choisies, jamais par qui. Un test automatisé fait échouer la compilation si une adresse atteint un jour le journal de mesure d'audience.
- Vous réinscrire avec une adresse déjà sur la liste ne modifie pas cette inscription. Les modifications se font depuis votre propre page de testeur. À la place, un e-mail est envoyé à l'adresse : son lien privé si elle est confirmée, ou un nouveau code sinon, et jamais plus d'une fois toutes les 15 minutes.
- Nous conservons une copie de ce que nous vous avons envoyé. Chaque message que ce site envoie à un testeur — la confirmation, et chaque message concernant une version — est conservé avec son texte, pour que nous puissions voir ce qui a été dit et s'il est arrivé. La copie est classée sous votre identifiant interne, pas sous votre adresse, et ses parties personnelles (le code ou le lien de confirmation, et votre propre lien de gestion) en sont retirées avant stockage, si bien qu'un message conservé ne peut jamais servir à agir en votre nom. Ces copies sont supprimées avec le reste de votre inscription quand vous partez.
- Les messages échangés entre vous et nous sont conservés. La zone Messages de votre espace testeur est une conversation avec la personne qui développe FoxSDR : ce que nous vous écrivons et ce que vous répondez, chaque message avec l'heure à laquelle il a été écrit et, si vous en avez choisi un, le rapport qu'il concerne. Elle est classée sous votre identifiant interne, pas sous votre adresse, et seuls vous (avec votre lien privé) et nous pouvons la lire. Nous notons aussi quand vous avez eu nos messages à l'écran, pour savoir qu'ils vous sont parvenus. Tant que votre page est ouverte, elle demande les nouveaux messages toutes les quelques secondes, de sorte qu'ils apparaissent dès qu'ils sont écrits, et elle indique depuis combien de temps vous ne l'avez pas utilisée ; tant qu'elle continue de demander, et une demi-minute après, et seulement si vous l'avez utilisée dans les cinq dernières minutes, le serveur sait que vous êtes là. Cette information n'est gardée que dans sa mémoire et n'est jamais enregistrée. Nous ne vous envoyons pas d'e-mail pour chaque message : quand nous écrivons pendant votre absence, vous recevez un seul court e-mail indiquant qu'un message vous attend, avec votre lien et sans le message lui-même. Tant que ce message n'est pas lu, aucun autre e-mail de ce genre ne suit pendant au plus 12 heures, ni dans la demi-heure qui suit le précédent ; et si vous étiez sur la page quand nous avons écrit mais n'avez pas vu le message dix minutes plus tard, l'e-mail part à ce moment-là. Une copie de cet e-mail est conservée comme décrit ci-dessus ; quand vous écrivez, aucun e-mail n'est envoyé. La conversation est conservée jusqu'à ce que vous quittiez le programme ou nous demandiez de la supprimer, et quitter le programme la supprime entièrement.
- Conservé jusqu'à la fin du programme bêta, ou jusqu'à ce que vous le demandiez. Un seul e-mail à l'adresse ci-dessous vous retire et supprime l'inscription — vous n'avez pas à donner de raison.
- La base légale est ici votre consentement, donné en cochant la case ; le formulaire ne s'envoie pas sans lui.
Si vous vous inscrivez aux nouvelles par e-mail
La page des nouvelles ne demande qu'une chose : votre adresse e-mail. Elle est conservée pour que nous puissions vous écrire quand une nouvelle version de FoxSDR sort, et de temps en temps au sujet de ce qui est en préparation. Elle ne sert à rien d'autre et n'est jamais transmise à qui que ce soit.
- Rien ne se passe tant que vous n'avez pas confirmé. L'inscription envoie un seul e-mail avec un code à six chiffres à saisir dans la page. Tant qu'il n'a pas été saisi, rien d'autre n'est envoyé, et une adresse non confirmée dans la semaine est supprimée - par du code qui s'exécute chaque jour sur le serveur. Si quelqu'un d'autre a saisi votre adresse, ignorez cet e-mail.
- Chaque e-mail contient un lien qui vous retire de la liste en un clic. Partir supprime l'adresse du fichier du serveur, avec les copies que nous avions gardées de ce qui lui a été envoyé ; rien n'en est conservé.
- C'est une liste à part. Un abonné aux nouvelles n'est pas un bêta-testeur : l'adresse est conservée dans un fichier séparé, lisible uniquement par le compte qui fait tourner le serveur, et n'est ni comptée ni affichée comme testeur. Si vous êtes aussi testeur, vous recevez chaque message une seule fois.
- Nous conservons une copie de ce que nous vous avons envoyé, classée sous un identifiant interne plutôt que sous votre adresse, sans le code de confirmation ni le lien de désabonnement, exactement comme pour les testeurs.
- Cet e-mail passe par Apple, comme décrit plus haut pour les testeurs.
- Le journal de mesure d'audience enregistre qu'une inscription a eu lieu, jamais par qui.
- La base légale est votre consentement, donné en cochant la case ; le formulaire ne s'envoie pas sans lui.
Cookies
| Cookie | Finalité | Durée |
|---|---|---|
fox_consent | Mémorise si vous avez accepté ou refusé, pour qu'on ne vous le demande qu'une fois | 1 an (acceptés) / 6 mois (refusés) |
fox_vid | Un identifiant aléatoire pour qu'une visite ultérieure soit reconnue comme venant du même navigateur. Déposé uniquement si vous acceptez. | 400 jours |
fox_sid | Regroupe une visite continue en une session. Déposé uniquement si vous acceptez. | 30 minutes d'inactivité |
fox_beta | Conserve votre lien de bêta-testeur pour que vous puissiez revenir à votre propre inscription. Déposé uniquement si vous vous inscrivez comme testeur, et seulement parce que c'est ce que vous avez demandé — il ne mesure rien, il ne fait donc pas partie du choix de mesure d'audience ci-dessus. Vous retirer de la liste l'efface. | 400 jours |
foxsdr_lang | Mémorise la langue que vous avez choisie pour ce site, afin que la page suivante s'affiche aussi dans cette langue. Déposé uniquement quand vous choisissez vous-même une langue — avec le sélecteur de langue ou un lien contenant ?lang= — et il ne contient rien d'autre que le code de cette langue, par exemple es. Il ne mesure rien, il ne fait donc pas partie du choix de mesure d'audience ci-dessus. | 1 an |
fox_news_joined | Pas un cookie : un indicateur dans le stockage propre de votre navigateur, jamais envoyé chez nous. Après un téléchargement, le site vous demande si vous souhaitez recevoir les nouvelles par e-mail ; une fois que vous vous êtes inscrit et avez confirmé depuis ce navigateur, il cesse de le demander. Il ne contient rien d'autre que 1, et seulement si vous vous êtes inscrit. | Jusqu'à ce que vous effaciez les données de ce site |
Si vous refusez, aucun cookie d'identification n'est déposé. Les visites sont alors regroupées par une empreinte, renouvelée chaque jour, de votre adresse et de votre navigateur, qui distingue les visiteurs à des fins de comptage et ne permet pas de vous suivre d'un jour à l'autre ni d'un site à l'autre. Vous pouvez changer d'avis en effaçant les cookies de ce site et en rechargeant la page.
Quelle langue vous voyez
Les pages peuvent s'afficher dans d'autres langues que l'anglais. Celle que vous obtenez est décidée sur le serveur pour chaque page demandée, dans cet ordre : une langue que vous avez choisie vous-même (le cookie foxsdr_lang ci-dessus, ou ?lang= dans le lien) ; à défaut, les langues que votre navigateur déclare préférer, via son en-tête Accept-Language ; à défaut, la langue principale du pays d'où vient votre connexion, que Cloudflare, le réseau placé devant ce site, transmet avec la requête sous la forme d'un code pays à deux lettres (CF-IPCountry) ; à défaut, l'anglais. Rien n'est stocké pour faire ce choix : l'en-tête et le code pays sont lus pour cette seule réponse et ne sont pas conservés à cette fin. Ce sont les deux mêmes éléments que le tableau ci-dessus liste déjà comme enregistrés à chaque affichage de page, où le code pays sert lorsque notre propre recherche d'adresse n'a pas de réponse. Les traductions sont faites par machine, et pour cette politique et les licences, c'est le texte anglais qui fait foi.
Pourquoi, et sur quelle base
La finalité est étroite : savoir combien de personnes trouvent ce projet, où elles se trouvent à peu près, sur quoi elles le font tourner, et combien vont jusqu'à le télécharger. C'est ce qui décide si le travail continue et ce qui sera construit ensuite.
Les enregistrements côté serveur sont conservés sur la base de l'intérêt légitime à comprendre et à sécuriser le site. Les détails transmis par le navigateur et les cookies d'identification sont conservés sur la base de votre consentement, c'est pourquoi ils se trouvent derrière le bandeau et pourquoi refuser ne vous coûte rien sur ce site.
Durée de conservation, et qui y a accès
Les enregistrements sont conservés 24 mois puis supprimés. Ils se trouvent dans un fichier sur le serveur, derrière un tableau de bord protégé par mot de passe que seul le mainteneur du projet peut ouvrir. Il n'y a pas d'autres destinataires ni de transfert vers un pays tiers au-delà de la recherche IP déjà décrite.
Deux choses sont conservées moins longtemps. Les rapports de plantage et de blocage sont supprimés 90 jours après la dernière apparition du défaut qu'ils décrivent, et les rapports d'utilisation que traite Cloudflare sont supprimés au bout de trois mois. Chacune de ces durées est appliquée par du code qui s'exécute chaque jour sur le serveur, et non par quelqu'un qui penserait à le faire.
Vos droits
Si vous êtes au Royaume-Uni ou dans l'UE, vous pouvez demander une copie de ce qui est détenu à votre sujet, demander sa rectification ou son effacement, ou vous opposer à sa collecte — y compris pour les enregistrements côté serveur qui ne dépendent pas du consentement. L'identifiant pratique pour retrouver vos enregistrements est votre adresse IP au moment de votre visite ; merci donc de l'indiquer, ainsi que la date approximative de votre visite.
Pour l'application, les commandes se trouvent dans le logiciel lui-même, et il y en a trois :
- SYSTÈME → Rapports d'utilisation arrête le rapport d'utilisation et le battement toutes les cinq minutes, et supprime l'identifiant d'installation. Réactivez-le plus tard et vous obtenez un nouvel identifiant qui ne peut pas être relié à l'ancien.
- SYSTÈME → Diagnostic empêche l'écriture et l'envoi des rapports de plantage et de blocage.
- SYSTÈME → Mises à jour arrête la vérification des mises à jour.
Les rapports ne contiennent rien qui puisse être relié à vous, il n'y a donc rien dont demander l'accès ; si vous souhaitez qu'un identifiant d'installation soit retiré des rapports déjà envoyés, écrivez à l'adresse ci-dessous en le citant, et il sera supprimé.
Enfants. FoxSDR est un instrument technique destiné aux amateurs de radio. Il ne s'adresse pas aux enfants, il ne collecte aucune information personnelle auprès de qui que ce soit, et il n'en collecte donc aucune auprès d'enfants.
Écrivez à [email protected]. Vous pouvez aussi déposer une plainte auprès de l'Information Commissioner's Office (ico.org.uk) si vous estimez que cela a été mal géré.
Dernière mise à jour le 24 septembre 2026, pour FoxSDR 0.99.39 — la build que ce site propose actuellement, et celle dans le code source de laquelle chaque affirmation ci-dessus a été vérifiée. FoxSDR est publié par Steven Fox ; écrivez à l'adresse ci-dessus pour toute question sur cette politique ou pour faire supprimer un identifiant d'installation des rapports déjà envoyés. Si cette politique cesse un jour de correspondre à ce que fait le logiciel, c'est le logiciel qui a tort — la collecte du site web est implémentée dans store.go et app.js, tous deux lisibles dans le code source du site, et la liste propre à l'application est livrée avec elle sous le nom PRIVACY.md, avec un test qui aligne le contenu envoyé sur elle.