Privadesa i galetes
Aquest avís cobreix dues coses separades: l'aplicació FoxSDR que instal·leu i aquest lloc web. Recullen dades diferents, per motius diferents, i es descriuen per separat a continuació — primer l'aplicació, perquè és la part que s'executa al vostre propi ordinador. Està escrit per ser complet més que breu: s'hi llisten tots els camps que qualsevol dels dos desa, inclosos els que la majoria d'avisos ometen.
L'aplicació: què envia
No hi ha compte, ni clau de llicència, ni activació, i FoxSDR mai no informa de res sobre el que escolteu. Fa exactament quatre tipus de sol·licitud de xarxa pel seu compte: una comprovació d'actualitzacions; un informe d'ús anònim, amb un petit batec «encara en marxa» mentre l'aplicació està oberta; un informe de fallada o de bloqueig després d'un error; i — només quan vós obriu la botiga de connectors o hi premeu COMPROVA ARA — una sol·licitud al catàleg de connectors. Cadascuna es descriu a continuació, camp per camp, i cadascuna es pot desactivar. Tres interruptors les controlen: SISTEMA → Actualitzacions, SISTEMA → Informes d'ús i SISTEMA → Diagnòstic. Cap funció no depèn que cap d'ells estigui activat, i res no us insisteix si en desactiveu un.
El que es queda al vostre ordinador
Els vostres enregistraments, tant d'àudio com d'I/Q en brut, les imatges que construeixen els descodificadors d'SSTV i de satèl·lits meteorològics, tot el que descodifiquen els descodificadors, els vostres marcadors, plans de bandes, paràmetres, la posició del receptor i els connectors instal·lats són fitxers al vostre propi disc. Res no els puja, i cap freqüència que sintonitzeu no surt del vostre ordinador.
La comprovació d'actualitzacions
Un cop per inici, l'aplicació pregunta a aquest lloc si hi ha una versió més nova. Tota la sol·licitud és GET /api/update?v= seguit de la versió que feu servir — cap identificador, cap id d'instal·lació, cap galeta i res que es pugui relacionar amb una sol·licitud posterior. Aquest servidor no escriu cap registre d'analítica per a aquesta sol·licitud: només es registren les visualitzacions de pàgina i les baixades de fitxers, i el punt d'accés d'actualitzacions no és cap de les dues coses. Desactiveu-la a SISTEMA → Actualitzacions i l'aplicació no tornarà a contactar mai el servei.
No es baixa ni s'instal·la res tret que premeu el botó. Si ho feu, l'instal·lador es baixa d'aquest lloc web per HTTPS i el seu SHA-256 es comprova amb el resum que va publicar el servidor abans que el fitxer rebi un nom que permeti executar-lo — i aquesta baixada és una baixada normal d'aquest lloc, així que es registra com qualsevol altra, amb l'adreça IP, la ubicació aproximada, el navegador i el sistema operatiu que es descriuen a la part d'aquest avís dedicada al lloc web.
Informes d'ús
A partir de la versió 0.53.0 hi ha un informe d'ús anònim, a SISTEMA → Informes d'ús. Està activat per defecte i el podeu desactivar — desmarqueu aquesta casella i els informes s'aturen immediatament. S'envia un informe per inici, que descriu la sessió que acaba de finalitzar, i això és tot el que conté:
| S'envia | Exemple | Per què |
|---|---|---|
| Identificador d'instal·lació | 32 caràcters hexadecimals aleatoris | Distingeix 100 usuaris d'un sol usuari que inicia l'aplicació 100 vegades. Es genera a l'atzar al vostre ordinador la primera vegada que s'executa, se suprimeix quan desactiveu els informes i mai no es deriva del vostre maquinari, la vostra xarxa ni el vostre nom. |
| Versió de l'aplicació | 0.99.39 | Si la gent actualitza. L'alfa d'Android informa de la seva pròpia compilació com a 0.98.1-android.4 — un sufix -android.N al número de versió a partir del qual es va compilar, perquè els seus informes no es confonguin mai amb els de l'instal·lador de Windows. |
| Sistema operatiu | Windows 10.0.22631, Linux 6.8.0 o Android 14 | Quines plataformes es fan servir realment. El sistema operatiu i el seu número de compilació, de nucli o de versió, mai el nom del vostre ordinador ni el vostre compte d'usuari. La compilació Linux (0.99.39) i l'alfa d'Android (0.98.1-android.4) envien els mateixos camps sota el mateix interruptor. |
| Arquitectura | x64 o arm64 | Com l'anterior. |
| Nombre d'inicis | 12 | Si el programari es fa servir més d'una vegada. |
| Nombre de fallades | 1 | Cada quant falla. |
| Durada de la sessió | 3600 segons | Si les sessions duren minuts o hores. |
| Model d'SDR | uhd b200 | Quines ràdios cal prioritzar. Els números de sèrie s'eliminen abans d'enviar-ho. |
| Desmoduladors utilitzats, i durant quant de temps | WFM: 3000s | Quins modes justifiquen més feina. |
| Taulers oberts | map, decoded | Quines funcions es fan servir. |
| Connectors instal·lats | ADS-B 1.0.0 | Quins descodificadors justifiquen més feina. |
Aquesta és la llista completa. S'inclou amb l'aplicació com a PRIVACY.md, i una prova automatitzada verifica la càrrega útil camp per camp, de manera que no es pot afegir cap camp nou sense que aquesta prova falli i s'actualitzin tots dos documents. Desactivar els informes suprimeix l'identificador d'instal·lació, així que si mai els torneu a activar en rebreu un de nou que no es pot vincular amb l'antic.
L'informe s'envia en iniciar-se i descriu la sessió que ja ha acabat; mai no s'envia en sortir — una crida de xarxa en sortir pot penjar una aplicació que algú intenta tancar, i un informe escrit en sortir es perdria precisament amb l'esdeveniment que més val la pena comptar. No es llegeix ni s'actua sobre res de la resposta.
El batec «encara en marxa»
Un informe que arriba quan l'aplicació s'inicia pot dir qui l'ha iniciada, però mai qui encara la té oberta. Per això, mentre FoxSDR està en marxa — i només mentre els informes d'ús estan activats — també envia un missatge molt petit cada cinc minuts, que porta tres camps i res més:
| S'envia | Exemple | Per què |
|---|---|---|
| Identificador d'instal·lació | els mateixos 32 caràcters hexadecimals d'abans | Així dotze batecs d'una mateixa còpia compten com una còpia en marxa, no com dotze. |
| Versió de l'aplicació | 0.99.39 | Així «en marxa ara» es pot desglossar per versió. |
| Marcador de batec | 1 | Indica a l'extrem receptor que es tracta d'un batec i no d'un informe de sessió. |
No s'hi afegeix res de la sessió: ni modes, ni taulers, ni model de ràdio, ni durades, ni comptadors. Els batecs s'escriuen en un conjunt de dades propi, separat dels informes de sessió, de manera que cap xifra d'ús no canvia de significat. El mateix interruptor atura tots dos: l'emissor es nega a activar-se sense un identificador d'instal·lació vàlid, i desactivar els informes d'ús el suprimeix, així que desactivat vol dir cap batec. Un batec que encara està en curs quan toca el següent s'omet en lloc de posar-se a la cua.
On van els informes d'ús
A un Cloudflare Worker gestionat per aquest projecte a https://telemetry.foxsdr.com, que escriu els comptadors anteriors en un conjunt de dades de Cloudflare Workers Analytics Engine. Cloudflare el tracta en nom nostre i el conserva durant tres mesos, després dels quals desapareix. Ningú més no el rep, no es ven, no es lloga ni es comparteix, i l'únic que se'n llegeix són recomptes agregats, mitjançant el mateix tauler protegit amb contrasenya que es descriu més avall. El codi font del Worker es publica amb l'aplicació, així que podeu llegir què fa l'extrem receptor. Els informes de fallada no van aquí — van al servidor propi d'aquest lloc, que es descriu a continuació.
Informes de fallades i de bloquejos
Si FoxSDR falla, o deixa de respondre, escriu un informe que descriu l'error a %LOCALAPPDATA%\FoxSDR\crashes\ al vostre propi ordinador, i envia el text de l'informe en el següent inici — mai des de dins de la mateixa fallada, perquè un programa que acaba de fallar no pot obrir amb seguretat una connexió de xarxa. Va a POST /api/crash d'aquest lloc web — no a Cloudflare ni a cap tercer — i és anònim: no hi ha compte, ni clau de llicència, ni res amb què iniciar sessió.
L'interruptor és SISTEMA → Diagnòstic, i controla per igual l'escriptura i l'enviament: si està desactivat, no s'escriu cap informe, no es crea cap directori i no es fa mai cap connexió. És un interruptor diferent del dels informes d'ús. Desactivar els informes d'ús no atura un informe de fallada — en buida el camp de l'identificador d'instal·lació, perquè llavors no existeix cap identificador i un informe de fallada mai no en crea cap (vegeu l'última fila de la taula de sota). Fins a aquesta versió, l'avís anterior indicava l'interruptor equivocat; el programari sempre ha fet servir Diagnòstic, i ara tots dos diuen el mateix.
Això és tot el que conté un informe:
| S'envia | Exemple | Per què |
|---|---|---|
| Què ha passat | crash o hang | Un bloqueig i una fallada són errors diferents. |
| Signatura de l'error | cascade.exe+0x1a2b/adsb.dll | Agrupa el mateix error informat per moltes persones en una sola entrada, de manera que cent informes d'un error són una sola cosa per arreglar i no cent. |
| Versió de l'aplicació, commit i id de compilació | 0.61.0, 28fa1c2 | En quina compilació ha passat i quins símbols hi corresponen. |
| Mòdul i desplaçament de l'error | cascade.exe, 0x1a2b | On ha fallat el programa. |
| Sistema operatiu i arquitectura | Windows 11, Linux o Android 14, x64 o arm64 | Els errors sovint són específics d'una plataforma. Un informe de Linux o d'Android porta els mateixos camps; els marcs de la pila indiquen el GNU build id de la biblioteca que falla en lloc d'un id de PDB, ja que cap de les dues plataformes no es compila amb MSVC. |
| Quin tipus d'error ha estat | access violation, 0xC0000005 | La línia de motiu del mateix informe i el codi d'excepció de Windows. En particular, això és el que indica que un error s'ha absorbit — l'aplicació l'ha sobreviscut — en lloc d'una fallada; sense això, tots dos semblen idèntics. Un codi i una frase fixa, mai contingut. |
| Connectors carregats i les seves versions | ADS-B 1.1.0 | «Només falla amb el connector ADS-B carregat» és una descripció d'un error; «falla de vegades» no ho és. |
| Piles dels fils | cascade.exe+0x1a2b per marc | La pila és l'error. Només conté noms de mòduls, id de compilació i desplaçaments numèrics — cap camí de codi font, cap variable, cap contingut de memòria. |
| La cua del registre de la sessió | 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 context | mode: WFM, sampleRate: 2400000 | Unes quantes notes clau/valor que afegeix l'aplicació: el mode, la font (generador, fitxer I/Q o una ràdio real), la taxa de mostratge, si hi havia un dispositiu obert, el model d'SDR sense números de sèrie, quants segons feia que s'executava l'aplicació i si el fil que ha fallat executava codi propi de FoxSDR o el d'un controlador de ràdio. sampleRate és la taxa de mostratge, no una freqüència sintonitzada. |
| Identificador d'instal·lació | 32 caràcters hexadecimals aleatoris, o buit | S'utilitza per limitar la freqüència d'enviament i després es descarta: l'identificador d'instal·lació no es desa. Un ordinador encallat en un bucle de fallades no ha de poder inundar el servidor, i distingir un ordinador de cent és l'únic per a què es llegeix mai. Aquí no s'escriu mai al disc. Si els informes d'ús estan desactivats, s'envia buit — llavors no hi ha cap identificador, i un informe de fallada mai no en crea cap. |
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 informe de fallada no porta cap freqüència, res descodificat, cap camí de fitxer, cap nom d'usuari, cap nom d'ordinador ni cap ubicació. Els informes es guarden al servidor propi d'aquest lloc, darrere del mateix tauler protegit amb contrasenya que tota la resta, i es conserven durant 90 dies des de l'última vegada que es va veure l'error, i després se suprimeixen — els mateixos tres mesos durant els quals es conserven els informes d'ús. El primer informe de cada error es conserva sencer, juntament amb un informe més per cada compilació a la qual l'error sobreviu, fins a tres; tots els altres informes d'aquest mateix error es compten en lloc de desar-se. Una prova automatitzada lliga amb la taula anterior tant el que accepta el punt d'accés com el que escriu al disc, en tots dos sentits, de manera que no es pot afegir un camp a cap dels dos sense que també canviï aquesta taula.
Mai no s'envia un bolcat de memòria complet, sigui quina sigui la configuració. Un bolcat de memòria és una còpia de la memòria del programa i pot contenir noms de fitxers, títols de finestres i dades de senyals rebuts. Està desactivat per defecte; si l'activeu a SISTEMA → Diagnòstic, s'escriu un .dmp al costat de l'informe de text, només localment, i el programa de pujada obre els fitxers anomenats crash-*.txt i hang-*.txt i res més.
Amb quina freqüència. Com a màxim cinc informes al dia des d'un mateix ordinador, i el mateix error només un cop al dia per moltes vegades que passi — tots dos límits es guarden al vostre propi fitxer de configuració, de manera que un ordinador en un bucle de fallades deixa d'enviar pel seu compte en lloc que li ho hagin de dir, i un informe que no es pot enviar es reintenta en inicis posteriors com a màxim tres vegades i després es deixa estar. Convertir un desplaçament d'un informe en el nom d'una funció requereix la base de dades de depuració d'aquella compilació exacta, que es queda als nostres propis ordinadors i no es puja mai enlloc: la resolució es fa localment, no al servidor.
El que l'aplicació no envia mai
- Les freqüències que sintonitzeu. El que algú escolta és el més sensible que sap aquest programari, i no es recull mai. Al Regne Unit, interceptar un missatge que no esteu autoritzat a rebre, o revelar-ne el contingut, és un delicte segons l'article 48 de la Wireless Telegraphy Act 2006.
- Els noms o els camins dels fitxers que obriu. El nom del fitxer d'un enregistrament són dades vostres — pot anomenar un servei, un lloc o una freqüència. Quan un fitxer I/Q no es pot tornar a obrir, el registre anota que no s'ha tornat a obrir; el nom es queda a la pantalla, on ja el coneixeu.
- Res descodificat — missatges de cercapersones, aeronaus, vaixells, imatges, trànsit de satèl·lits.
- La vostra posició, ni la posició de res que rebeu — inclosa la posició del receptor que definiu, que no es transmet mai en cap informe. Vegeu més avall.
- La vostra adreça IP, ni cap ubicació derivada d'ella. Una sol·licitud arriba necessàriament a un servidor des d'una adreça, perquè així funciona internet; el punt d'accés d'ús no llegeix cap informació de connexió ni escriu cap registre de sol·licituds.
- Números de sèrie del maquinari. El model de ràdio és útil; el número de sèrie identifica la vostra ràdio concreta, i s'elimina abans d'enviar.
- El vostre nom, el nom del vostre ordinador, el vostre compte d'usuari ni cap camí de fitxer.
- Un bolcat de memòria complet.
La posició del receptor, i el GPS
FoxSDR necessita saber on és el receptor, perquè tots els abasts i azimuts del mapa i de la pantalla de radar es mesuren a partir d'aquest punt. La podeu escriure, fer-hi clic al mapa o llegir-la d'un receptor GPS en un port sèrie.
La posició es queda al vostre ordinador. Es desa al vostre propi fitxer de configuració i no es transmet mai — ni a l'informe d'ús, ni al batec, ni en un informe de fallada, ni enlloc. Llegir-la d'un GPS és una cosa que inicieu vós: indiqueu el port i premeu «Llegeix la posició del GPS». El port només es reté fins que arriba el primer fix, i com a màxim durant 60 segons. El registre de diagnòstic anota el nom del port, la velocitat en bauds, els recomptes de frases i de satèl·lits i qualsevol error — mai la posició, i mai el text d'una frase NMEA. Un camp de port que contingui alguna cosa que no tingui forma de port es registra pel seu tipus i la seva longitud («a typed device path, 27 chars»), de manera que un camí de fitxer amb el vostre nom d'usuari no es pot colar en un informe. Dues proves automatitzades ho garanteixen: una amb l'anell del registre i una altra amb el fitxer de registre que ha escrit l'aplicació real.
El catàleg de connectors
El catàleg es consulta quan obriu la finestra de la botiga de connectors (la primera vegada en una sessió, des de FoxSDR 0.99.16), cada cop que hi premeu COMPROVA ARA i quan trieu instal·lar alguna cosa. No es baixa res en iniciar-se, la finestra no es torna a obrir sola i cap connector no s'actualitza mai sol. El catàleg és un fitxer publicat a GitHub (raw.githubusercontent.com), així que aquesta sol·licitud arriba als servidors de GitHub, que — com amb qualsevol sol·licitud web — veuen l'adreça d'on prové. No s'hi envia cap identificador vostre: ni id d'instal·lació, ni galeta, ni res que es pugui relacionar amb un informe d'ús. Cada baixada va per HTTPS, té un límit de mida, es rebutja si hi ha una redirecció a un altre servidor i es verifica amb el sha256 publicat al catàleg abans que pugui esdevenir un fitxer. La font és un paràmetre: la podeu apuntar a un altre catàleg, o a un index.json al vostre propi disc, i en aquest cas no es fa cap sol·licitud de xarxa.
Conjunts d'elements dels satèl·lits
El connector de satèl·lits manté al dia els seus conjunts d'elements orbitals baixant-los de les fonts indicades al seu satellite.cfg, cada dotze hores mentre està carregat. Aquest lloc guarda una còpia d'aquests conjunts d'elements a GET /tle/all.tle — els grups d'estacions, d'aficionats i meteorològics de CelesTrak, més els NOAA 15, 18 i 19, actualitzats aquí cada dotze hores — i Satèl·lits 1.0.4 i posteriors recorren a aquest fitxer pel seu compte quan fallen totes les fonts de satellite.cfg, perquè un ordinador que CelesTrak rebutja els pugui continuar seguint. No cal que el fitxer esmenti aquest lloc perquè passi; una línia que digui fallback-url none hi desactiva aquesta alternativa, i refresh-hours 0 desactiva totes les baixades. La sol·licitud no porta cap identificador, cap id d'instal·lació ni cap galeta, i aquest servidor no hi escriu cap registre d'analítica — com amb la comprovació d'actualitzacions, només es registren les visualitzacions de pàgina i les baixades de fitxers, i la rèplica no és cap de les dues coses. Els conjunts d'elements són de CelesTrak (celestrak.org) i cada resposta ho indica.
Consultes al registre d'aeronaus
El connector opcional Aircraft Info mostra qui és cada aeronau del mapa — la matrícula, el tipus i l'operador. L'aplicació no fa mai aquesta sol·licitud; és instal·lar aquest connector el que l'habilita. A partir de la versió 1.1.0, el connector pregunta primer a aquest lloc, a GET /api/aircraft/<address>, i envia només l'adreça OACI de sis dígits hexadecimals de l'aeronau — el número que emet la mateixa aeronau — sense cap identificador, cap id d'instal·lació ni cap galeta. Per cada aeronau es pregunta una sola vegada i la resposta es guarda al vostre propi ordinador, de manera que no es torna a preguntar. Només quan aquest lloc no coneix una aeronau, o no s'hi pot accedir, el connector pregunta a api.adsbdb.com, un servei gratuït de tercers, com feien sempre les versions anteriors. El conjunt d'aeronaus que sent un receptor és una indicació aproximada d'on és, i per això el connector és opcional i ho diu abans que l'instal·leu.
El que aquest servidor guarda d'una consulta: res per sol·licitud. No s'escriu cap registre d'analítica, i no es registra ni l'adreça de l'aeronau ni l'adreça d'on prové la sol·licitud. L'únic registre són cinc totals acumulats des de l'últim inici del servidor — consultes, trobades, no trobades, mal formades i limitades per freqüència — que mostra el tauler. Per evitar que algú copiï la taula sencera, cada adreça que es connecta té un límit de consultes guardat en memòria, exactament com fan els altres punts d'accés d'aquí, i mai no s'escriu al disc; s'oblida quan el servidor es reinicia o quan se segueixen més de deu mil adreces, el que passi primer.
Les respostes provenen de la base de dades d'aeronaus de l'OpenSky Network (opensky-network.org): per a cada aeronau, la matrícula, el designador de tipus, el fabricant, el model i, quan consta, l'operador. OpenSky ofereix aquesta base de dades tal com és i demana als usuaris que la citin: Matthias Schäfer, Martin Strohmeier, Vincent Lenders, Ivan Martinovic i Matthias Wilhelm, «Bringing Up OpenSky: A Large-scale ADS-B Sensor Network for Research», a Proceedings of the 13th IEEE/ACM International Symposium on Information Processing in Sensor Networks (IPSN), abril de 2014. El propietari registrat que hi consta no es copia a aquest lloc ni aquest lloc el serveix, perquè en una aeronau privada és el nom d'una persona; només l'operador, que és una aerolínia, una força aèria o una empresa, sí.
La interfície del navegador
FoxSDR pot servir la seva interfície per HTTP a altres ordinadors de la vostra pròpia xarxa. Està desactivada per defecte i limitada al vostre propi ordinador fins que ho canvieu; per a qualsevol vinculació més enllà cal una contrasenya, i sense contrasenya la vinculació més àmplia es rebutja en lloc d'obrir-se. Les contrasenyes es desen com a hash (PBKDF2-HMAC-SHA256) i les sessions es revoquen cada cop que canvien els paràmetres. Expressament no hi ha TLS, perquè l'aplicació no enllaça cap biblioteca criptogràfica i no pretén oferir una seguretat de transport que no pot proporcionar — poseu-hi al davant un servidor intermediari invers o un túnel privat, i no en redirigiu mai el port directament. Qualsevol persona a qui doneu accés pot veure i controlar el que fa el receptor.
Peticions de funcions enviades des de l'aplicació
L'aplicació té un quadre «Demana una funció», a la pàgina principal, on podeu escriure què voldríeu que fes i prémer Envia. No s'envia res fins que no premeu aquest botó, no passa mai automàticament, i una petició que no ens arriba no es posa a la cua ni es reintenta en segon pla — el que heu escrit es queda al quadre, només en memòria, perquè torneu a prémer Envia, i no s'escriu mai al fitxer de configuració ni al registre. Això és tot el que porta una petició:
| S'envia | Exemple | Per què |
|---|---|---|
| El que heu escrit | Please add a squelch control to the FLEX decoder | La petició en si: de 10 a 100000 caràcters. Els caràcters de control s'eliminen abans de desar-la; els salts de línia es conserven. |
| Contacte, si n'heu donat un | [email protected] o un indicatiu | Opcional, fins a 120 caràcters, perquè us puguem fer alguna pregunta més. Si el deixeu en blanc, la petició no porta res que us pugui identificar. |
| Versió de l'aplicació | 0.99.39 | De quina compilació prové la petició. |
| Sistema operatiu | windows, linux o android | Quina plataforma l'ha enviada. |
| Arquitectura | x64 o arm64 | Com l'anterior. |
| Número d'esquema | 1 | La versió del contracte de format, perquè un canvi futur en el format no es pugui confondre amb un dels camps anteriors. |
Va a POST /api/feature-request d'aquest lloc web. La vostra adreça IP només s'utilitza per mantenir el ritme d'enviament dins d'uns límits raonables, i no s'escriu mai al disc — el registre que es conserva realment és el vostre missatge, la vostra adreça de contacte si n'heu donat una, la versió de l'aplicació, la plataforma, l'arquitectura i el vostre país aproximat quan la nostra consulta el pot obtenir a partir de la connexió, i res més. El llegeix el mantenidor del projecte al tauler d'administració, darrere de la mateixa contrasenya que tota la resta d'aquí, i es conserva fins que se suprimeix d'aquest tauler, o fins que ho demaneu. Una petició que ja s'ha atès — afegida a FoxSDR, o resolta d'una altra manera — es pot arxivar allà en lloc de suprimir-se, perquè el projecte pugui fer el seguiment del que s'ha demanat i del que s'ha construït; una petició arxivada continua guardada, amb tot el que s'ha indicat abans. Si heu donat una adreça de contacte i voleu que se suprimeixi la petició, escriviu a l'adreça de sota i cireu prou del que vau enviar perquè es pugui trobar.
Informes d'errors i queixes enviats des de l'aplicació
Just sota «Demana una funció», l'aplicació té un quadre «Informa error / queixa», on dieu o bé que alguna cosa no funciona o bé que hi ha alguna cosa que no us agrada, i premeu Envia. Funciona exactament igual que el quadre de peticions de funcions: no s'envia res fins que no premeu aquest botó, no es posa res a la cua ni es reintenta en segon pla, i el que heu escrit es queda només en memòria — mai al fitxer de configuració, mai al registre. No és un informe de fallada i no porta res del que porta un informe de fallada. Això és tot el que porta un informe:
| S'envia | Exemple | Per què |
|---|---|---|
| Si és un error o una queixa | bug o dislike | L'opció que heu triat a la part superior del quadre: una cosa que no funciona, o una cosa que funciona tal com s'ha dissenyat però que preferiríeu que no fos així. |
| El que heu escrit | The waterfall freezes when I change the sample rate | L'informe en si: de 10 a 100000 caràcters. Els caràcters de control s'eliminen abans de desar-lo; els salts de línia es conserven. |
| Contacte, si n'heu donat un | [email protected] o un indicatiu | Opcional, fins a 120 caràcters, perquè us puguem fer alguna pregunta més. Si el deixeu en blanc, l'informe no porta res que us pugui identificar. |
| Versió de l'aplicació | 0.99.39 | De quina compilació prové l'informe, perquè no es torni a perseguir un error que ja s'ha corregit. |
| Sistema operatiu | windows, linux o android | Quina plataforma l'ha enviada. |
| Arquitectura | x64 o arm64 | Com l'anterior. |
| Número d'esquema | 1 | La versió del contracte de format, perquè un canvi futur en el format no es pugui confondre amb un dels camps anteriors. |
Va a POST /api/problem-report d'aquest lloc web. La vostra adreça IP només s'utilitza per mantenir el ritme d'enviament dins d'uns límits raonables, i no s'escriu mai al disc — el registre que es conserva realment és si es tractava d'un error o d'una queixa, el vostre missatge, la vostra adreça de contacte si n'heu donat una, la versió de l'aplicació, la plataforma, l'arquitectura i el vostre país aproximat quan la nostra consulta el pot obtenir a partir de la connexió, i res més. El llegeix el mantenidor del projecte al tauler d'administració, darrere de la mateixa contrasenya que tota la resta d'aquí, i un informe es conserva fins que se suprimeix d'aquest tauler, o fins que ho demaneu. Un informe que ja s'ha atès — corregit a FoxSDR, o resolt d'una altra manera — es pot arxivar allà en lloc de suprimir-se; un informe arxivat continua guardat, amb tot el que s'ha indicat abans. Si heu donat una adreça de contacte i voleu que se suprimeixi l'informe, escriviu a l'adreça de sota i cireu prou del que vau enviar perquè es pugui trobar.
El lloc web: què es registra quan el visiteu
Per cada visualització de pàgina i cada baixada s'escriu un registre, tant si accepteu les galetes com si no. És analítica pròpia: les dades es queden al servidor que serveix aquest lloc, no es comparteixen amb cap xarxa publicitària i a la pàgina no hi ha cap script de tercers.
| Què es registra | D'on prové | Cal consentiment |
|---|---|---|
| Data i hora, pàgina sol·licitada, mètode i protocol HTTP | La sol·licitud | No |
| La vostra adreça IP, i un hash amb sal d'aquesta adreça | La connexió | No |
| Ubicació aproximada: país, regió, ciutat, zona del codi postal, zona horària i les coordenades d'aquesta ciutat — no les vostres | Adreça IP, consultada mitjançant ip-api.com | No |
| La vostra xarxa: proveïdor d'internet, organització, número d'AS i si l'adreça és d'una VPN, d'un centre de dades o d'una xarxa mòbil coneguts | La mateixa consulta | No |
| Navegador i versió, sistema operatiu i versió, tipus de dispositiu i si la sol·licitud sembla d'un robot | Capçalera User-Agent | No |
Quina pàgina us ha enviat aquí, i les etiquetes de campanya de l'enllaç (utm_source i similars) | Capçalera Referer i URL | No |
| Llengües preferides | Capçalera Accept-Language | No |
| Quin fitxer heu baixat, la seva versió, quants bytes s'han enviat i si la transferència ha acabat | La mateixa baixada | No |
| Mida de la pantalla i de la finestra, relació de píxels, profunditat de color | El vostre navegador, informat per l'script d'aquesta pàgina | Sí |
| Nombre de nuclis de CPU i memòria aproximada del dispositiu | El mateix script | Sí |
| Zona horària, llista de llengües, preferència de mode fosc, compatibilitat tàctil, plataforma | El mateix script | Sí |
| Tipus de connexió, velocitat de baixada estimada i temps d'anada i tornada | El mateix script | Sí |
| Quant de temps ha estat visible la pàgina, fins on us hi heu desplaçat, quants clics heu fet i quins botons heu premut | El mateix script | Sí |
El que no es fa expressament
- Cap empremta digital del navegador: cap sondeig de canvas, àudio, tipus de lletra ni WebGL, i res que intenti tornar-vos a identificar després que hàgiu rebutjat les galetes.
- Cap rastrejador de tercers, píxel publicitari, giny social ni servei d'analítica. Res d'aquesta pàgina no es carrega des d'un altre domini.
- Cap intent de llegir el vostre porta-retalls, la bateria, la càmera, el micròfon, les contrasenyes desades ni l'historial de navegació — res de tot això no té res a veure amb una pàgina de baixades.
- Les vostres dades no es venen, no es lloguen ni es comparteixen amb ningú. L'única sol·licitud externa que fa el servidor sobre vós és la consulta d'IP a ubicació descrita més amunt.
Dissenys d'interfície que publiqueu
Aquest lloc pot conservar un disseny d'interfície de FoxSDR — un paquet .foxui — que decidiu publicar. No s'envia res fins que no premeu Publish, i va a POST /api/gui/publish. Es conserva el que conté el paquet: el disseny en si, el nom, la versió i la descripció que hàgiu escrit, un nom d'autor si n'hàgiu escrit un, el moment en què es va publicar i un identificador aleatori. La vostra adreça IP només s'utilitza per mantenir el ritme de publicació dins de límits raonables, i mai no s'escriu al disc. Un paquet publicat no apareix en cap llista; qualsevol persona que tingui l'enllaç el pot baixar. Es conserva fins que s'elimina del tauler d'administració, o fins que ho demaneu — escriviu a l'adreça de més avall i indiqueu-ne l'enllaç.
Si us inscriviu com a provador de la beta
El formulari de la beta i la inscripció a les notícies són els únics llocs on aquest lloc us demana alguna cosa, a banda de la publicació d'un disseny d'interfície (vegeu més amunt). En enviar-lo es desa la vostra adreça electrònica i qualsevol d'aquestes dades que hàgiu triat donar: un nom o indicatiu, la vostra plataforma, la ràdio que penseu fer servir, les vostres notes i la llista de funcions que us heu ofert a provar. Al costat, guardem el mateix context de la visita descrit més amunt — ubicació aproximada, xarxa, navegador i sistema operatiu — perquè un informe d'error es llegeix de manera molt diferent segons la configuració d'on prové.
- L'adreça s'utilitza per a una sola cosa: contactar-vos sobre les compilacions beta i sobre què cal provar. Cap butlletí, cap màrqueting, i no es passa mai a ningú més.
- No passa res fins que no confirmeu. En inscriure-us s'envia un correu amb un codi de sis xifres, que escriviu a la pàgina per confirmar que l'adreça és vostra. El codi és vàlid durant 30 minuts i es rebutja després de cinc intents erronis. Fins que no s'introdueix, l'entrada queda inactiva: no sou a la llista de provadors, no se us compta i no s'envia mai res més. Si algú altre ha escrit la vostra adreça, no feu cas d'aquest correu i l'entrada no esdevindrà mai real — no hi ha res de què donar-se de baixa ni cal que feu res. Aquest missatge és l'únic correu automàtic que pot generar una inscripció.
- Si ens heu escrit, és possible que us convidem. Algú que ens ha escrit i ha deixat una adreça — per exemple, mitjançant el quadre de peticions de funcions de l'aplicació — pot rebre una única invitació personal nostra, amb un enllaç d'un sol ús que obre la tecla Confirma d'aquest lloc. Aquesta invitació es guarda com una entrada pendent, exactament igual que una inscripció no confirmada: no sou provador ni se us compta tret que premeu Confirma, i si no en feu cas no us tornarem a escriure. Una entrada pendent no caduca sola; se suprimeix quan l'esborrem de la llista o quan ho demaneu, amb un correu a l'adreça de sota.
- Després de confirmar rebeu el vostre enllaç privat de gestió, i us escrivim quan arriba una compilació que necessita el que us heu ofert a provar. És una persona qui us escriu, no una llista de correu. Si perdeu l'enllaç, us en podem fer un de nou: l'antic deixa de funcionar a l'instant, el nou us arriba per correu, i en guardem l'hora i si el correu es va enviar.
- Aquest correu passa per Apple. El correu de
foxsdr.comel transporta el servei iCloud Mail d'Apple, de manera que la vostra adreça i el missatge passen pels seus servidors de camí cap a vós, sota les seves condicions com a proveïdor del nostre correu. No se'ls envia res més sobre vós. - Es guarda separat de l'analítica. Les inscripcions es guarden en un fitxer propi, que només pot llegir el compte que executa el servidor; el registre d'analítica anota que s'ha produït una inscripció i quantes funcions s'han triat, mai qui. Una prova automatitzada fa fallar la compilació si mai arriba una adreça al registre d'analítica.
- Si us torneu a inscriure amb una adreça que ja és a la llista, aquella entrada no canvia. Els canvis es fan des de la vostra pròpia pàgina de provador. En lloc d'això, s'envia un correu a l'adreça: el seu enllaç privat si ja s'ha confirmat, o un codi nou si no, i mai més d'un cop cada 15 minuts.
- Guardem una còpia del que us enviem. Cada missatge que aquest lloc envia a un provador — la confirmació i cada missatge sobre una compilació — es conserva amb el seu text, perquè puguem veure què s'ha dit i si ha arribat. La còpia s'arxiva amb el vostre id intern, no amb la vostra adreça, i les parts personals (el codi o l'enllaç de confirmació i el vostre propi enllaç de gestió) s'eliminen abans de desar-la, de manera que un missatge conservat no es pot fer servir mai per actuar en nom vostre. Aquestes còpies se suprimeixen amb la resta de la vostra entrada quan us doneu de baixa.
- Els missatges entre vosaltres i nosaltres es conserven. El quadre Missatges del vostre portal de provador és una conversa amb la persona que desenvolupa FoxSDR: el que us escrivim i el que responeu, cadascun amb l'hora en què es va escriure i, si en vau triar un, l'informe a què fa referència. Es desa amb el vostre identificador intern, no amb la vostra adreça, i només vosaltres (amb el vostre enllaç privat) i nosaltres la podem llegir. També anotem quan heu tingut els nostres missatges a la pantalla, per saber que us han arribat. Mentre la vostra pàgina és oberta, demana missatges nous cada pocs segons, de manera que apareixen tan bon punt s'escriuen, i indica quant de temps fa que la vau fer servir per última vegada; mentre ho continua demanant, i mig minut després, i només si l'heu fet servir els darrers cinc minuts, el servidor sap que hi sou. Això només es guarda a la seva memòria i mai no s'escriu enlloc. No us enviem un correu per cada missatge: quan escrivim mentre no hi sou, rebeu un sol correu breu que diu que us espera un missatge, amb el vostre enllaç i sense el missatge. Mentre aquest missatge no s'ha llegit no en segueix cap altre, fins a 12 hores, ni dins de la mitja hora posterior a l'últim; i si éreu a la pàgina quan vam escriure però deu minuts després encara no heu vist el missatge, el correu s'envia llavors. Se'n conserva una còpia tal com es descriu més amunt; quan escriviu vosaltres, no s'envia cap correu. La conversa es conserva fins que marxeu o ens demaneu que l'esborrem, i marxar l'esborra completament.
- Es conserva fins que acabi el programa de beta, o fins que ho demaneu. Un sol correu a l'adreça de sota us dona de baixa i suprimeix l'entrada — no cal que en doneu cap motiu.
- La base legal aquí és el vostre consentiment, donat en marcar la casella; el formulari no s'envia sense aquest consentiment.
Si us inscriviu a les notícies per correu electrònic
La pàgina de notícies demana una sola cosa: la vostra adreça electrònica. Es conserva perquè us puguem enviar un correu quan hi hagi una versió nova de FoxSDR i, de tant en tant, sobre el que s'està construint. No s'utilitza per a res més i no es passa mai a ningú.
- No passa res fins que no confirmeu. En inscriure-us s'envia un correu amb un codi de sis xifres per escriure a la pàgina. Fins que no s'introdueix, no s'envia res més, i una adreça que no s'ha confirmat en una setmana se suprimeix - mitjançant codi que s'executa cada dia al servidor. Si algú altre ha escrit la vostra adreça, no feu cas d'aquest correu.
- Cada correu porta un enllaç que us treu de la llista amb un sol clic. Donar-se de baixa suprimeix l'adreça del fitxer del servidor, juntament amb les còpies que vam guardar del que s'hi va enviar; no se'n conserva res.
- És una llista a part. Un subscriptor de les notícies no és un provador de la beta: l'adreça es guarda en un fitxer separat, que només pot llegir el compte que executa el servidor, i no es compta ni es mostra com a provador. Si també sou provador, rebeu cada missatge una sola vegada.
- Guardem una còpia del que us enviem, arxivada amb un id intern en lloc de la vostra adreça, sense el codi de confirmació ni l'enllaç de baixa, exactament com per als provadors.
- Aquest correu passa per Apple, tal com es descriu més amunt per als provadors.
- El registre d'analítica anota que s'ha produït una inscripció, mai qui.
- La base legal és el vostre consentiment, donat en marcar la casella; el formulari no s'envia sense aquest consentiment.
Galetes
| Galeta | Finalitat | Durada |
|---|---|---|
fox_consent | Recorda si heu acceptat o rebutjat, perquè només se us pregunti una vegada | 1 any (acceptat) / 6 mesos (rebutjat) |
fox_vid | Un identificador aleatori perquè una visita posterior es reconegui com el mateix navegador. Només es desa si accepteu. | 400 dies |
fox_sid | Agrupa una mateixa estona de navegació en una sessió. Només es desa si accepteu. | 30 minuts d'inactivitat |
fox_beta | Guarda el vostre enllaç de provador de la beta perquè pugueu tornar a la vostra entrada. Només es desa si us inscriviu com a provador, i només perquè és el que heu demanat — no mesura res, així que no forma part de l'opció d'analítica anterior. Si us doneu de baixa, s'esborra. | 400 dies |
foxsdr_lang | Recorda la llengua que heu triat per a aquest lloc, perquè la pàgina següent també hi sigui. Només es desa quan trieu una llengua vós mateix — amb el selector de llengua o amb un enllaç que porti ?lang= — i no guarda res més que el codi d'aquesta llengua, com ara es. No mesura res, així que no forma part de l'opció d'analítica anterior. | 1 any |
fox_news_joined | No és una galeta: un indicador a l'emmagatzematge propi del navegador, que no se'ns envia mai. Després d'una baixada, el lloc us pregunta si voleu rebre les notícies per correu electrònic; un cop us hi heu inscrit i ho heu confirmat des d'aquest navegador, deixa de preguntar-ho. No guarda res més que 1, i només si us hi heu inscrit. | Fins que esborreu les dades d'aquest lloc |
Si les rebutgeu, no es desa cap galeta identificadora. Llavors les visites s'agrupen amb un hash de la vostra adreça i del navegador que canvia cada dia, que distingeix els visitants a l'efecte de comptar-los i no es pot utilitzar per seguir-vos d'un dia a l'altre ni d'un lloc a l'altre. Podeu canviar d'opinió esborrant les galetes d'aquest lloc i tornant a carregar la pàgina.
Quina llengua veieu
Les pàgines es poden mostrar en llengües diferents de l'anglès. Quina us toca es decideix al servidor per a cada pàgina que demaneu, en aquest ordre: una llengua que hàgiu triat vós mateix (la galeta foxsdr_lang anterior, o ?lang= a l'enllaç); si no, les llengües que el vostre navegador diu que preferiu, a partir de la seva capçalera Accept-Language; si no, la llengua principal del país d'on prové la vostra connexió, que Cloudflare, la xarxa que hi ha davant d'aquest lloc, passa amb la sol·licitud com un codi de país de dues lletres (CF-IPCountry); si no, l'anglès. No es desa res per fer aquesta tria: la capçalera i el codi de país es llegeixen per a aquella resposta i no es conserven per a aquest fi. Són les mateixes dues coses que la taula anterior ja indica que es registren amb cada visualització de pàgina, on el codi de país s'utilitza quan la nostra pròpia consulta d'adreça no té resposta. Les traduccions són automàtiques, i en aquest avís i en les llicències el text vinculant és l'anglès.
Per què, i amb quina base
La finalitat és limitada: saber quanta gent troba aquest projecte, aproximadament on és, en què l'executa i quants acaben baixant-lo. Això és el que decideix si la feina continua i què es construeix a continuació.
Els registres del servidor es conserven sobre la base de l'interès legítim a entendre i protegir el lloc. Els detalls informats pel navegador i les galetes identificadores es conserven sobre la base del vostre consentiment, i per això són darrere del bàner i per això rebutjar-los no us costa res en aquest lloc.
Quant de temps es conserva, i qui ho veu
Els registres es conserven durant 24 mesos i després se suprimeixen. Són en un fitxer al servidor, darrere d'un tauler protegit amb contrasenya que només pot obrir el mantenidor del projecte. No hi ha cap altre destinatari ni cap transferència a un tercer país més enllà de la consulta d'IP ja descrita.
Hi ha dues coses que es conserven menys temps. Els informes de fallades i de bloquejos se suprimeixen 90 dies després de l'última vegada que es va veure l'error que descriuen, i els informes d'ús que tracta Cloudflare se suprimeixen al cap de tres mesos. Cadascun d'aquests terminis l'aplica codi que s'executa cada dia al servidor, no algú que se'n recordi.
Els vostres drets
Si sou al Regne Unit o a la UE, podeu demanar una còpia del que es guarda sobre vós, demanar que es corregeixi o s'esborri, o oposar-vos que es reculli — inclosos els registres del servidor que no depenen del consentiment. L'identificador pràctic per trobar els vostres registres és la vostra adreça IP en el moment de la visita, així que incloeu-la, si us plau, i també quan va ser la visita aproximadament.
Pel que fa a l'aplicació, els controls són al mateix programari, i n'hi ha tres:
- SISTEMA → Informes d'ús atura l'informe d'ús i el batec de cada cinc minuts, i suprimeix l'identificador d'instal·lació. Si el torneu a activar més endavant, rebreu un identificador nou que no es pot vincular amb l'antic.
- SISTEMA → Diagnòstic impedeix que s'escriguin o s'enviïn informes de fallades i de bloquejos.
- SISTEMA → Actualitzacions atura la comprovació d'actualitzacions.
Els informes no contenen res que es pugui relacionar amb vós, així que no hi ha res a què demanar accés; si voleu que s'elimini un identificador d'instal·lació d'informes ja enviats, escriviu a l'adreça de sota i indiqueu-lo, i se suprimirà.
Infants. FoxSDR és un instrument tècnic per a aficionats a la ràdio. No s'adreça als infants, no recull informació personal de ningú i, per tant, no en recull cap dels infants.
Escriviu a [email protected]. També podeu presentar una queixa a l'Information Commissioner's Office (ico.org.uk) si creieu que això s'ha gestionat malament.
Darrera actualització: 24 de setembre de 2026, amb FoxSDR 0.99.39 — la compilació que ofereix actualment aquest lloc, i aquella amb el codi font de la qual s'ha comprovat cada afirmació anterior. FoxSDR el publica Steven Fox; escriviu a l'adreça anterior amb qualsevol pregunta sobre aquest avís o perquè s'elimini un identificador d'instal·lació d'informes ja enviats. Si mai aquest avís deixa de coincidir amb el que fa el programari, l'equivocat és el programari — la recollida de dades del lloc web s'implementa a store.go i app.js, tots dos llegibles al codi font del mateix lloc, i la llista pròpia de l'aplicació s'hi inclou com a PRIVACY.md, amb una prova que hi lliga la càrrega útil.