Integritet och kakor
Det här meddelandet omfattar två separata saker: FoxSDR-programmet som du installerar, och den här webbplatsen. De samlar in olika data av olika skäl och beskrivs var för sig nedan – programmet först, eftersom det är den del som körs på din egen dator. Det är skrivet för att vara fullständigt snarare än kort: varje fält som någon av dem sparar listas, även de som de flesta meddelanden utelämnar.
Programmet: vad det skickar
Det finns inget konto, ingen licensnyckel och ingen aktivering, och FoxSDR rapporterar aldrig något om vad du lyssnar på. Programmet gör på eget initiativ exakt fyra slags nätverksförfrågningar: en uppdateringskontroll; en anonym användningsrapport, med ett litet ”körs fortfarande”-slag medan programmet är öppet; en krasch- eller hängningsrapport efter ett fel; och – bara när du öppnar tilläggsbutiken eller trycker på KONTROLLERA NU i den – en förfrågan till tilläggskatalogen. Var och en beskrivs nedan, fält för fält, och var och en kan stängas av. Tre inställningar styr dem: SYSTEM → Uppdateringar, SYSTEM → Användningsrapportering och SYSTEM → Diagnostik. Ingen funktion är beroende av att någon av dem är på, och ingenting tjatar på dig för att du stänger av en.
Vad som stannar på din dator
Dina inspelningar, både ljud och rå I/Q, bilderna som SSTV- och vädersatellitavkodarna bygger, allt som avkodarna avkodar, dina bokmärken, bandplaner, inställningar, din mottagarposition och dina installerade tillägg är filer på din egen disk. Ingenting laddar upp dem, och ingen frekvens du ställer in lämnar din dator.
Uppdateringskontrollen
En gång per start frågar programmet den här webbplatsen om det finns en nyare version. Hela förfrågan är GET /api/update?v= följt av den version du kör – ingen identifierare, inget installations-id, ingen kaka och inget som kan kopplas till en senare förfrågan. Den här servern skriver ingen statistikpost för den: bara sidvisningar och filnedladdningar registreras, och uppdateringsadressen är ingetdera. Stäng av den under SYSTEM → Uppdateringar, så kontaktar programmet aldrig tjänsten igen.
Svaret kan också innehålla ett kort meddelande från oss till dem som kör en äldre version – till exempel att en utgåva åtgärdar något som gör det värt att uppdatera – som visas i samma uppdateringsbanderoll som versionsnotiserna. Inget extra skickas eller sparas för att detta ska vara möjligt: det följer med i samma förfrågan som ovan, enligt samma schema och under samma reglage.
Ingenting laddas ned eller installeras om du inte trycker på knappen. Om du gör det hämtas installationsprogrammet från den här webbplatsen över HTTPS, och dess SHA-256 kontrolleras mot den kontrollsumma servern publicerade innan filen får ett namn som något skulle kunna köra – och den hämtningen är en vanlig nedladdning från den här webbplatsen, så den registreras som alla andra, med IP-adress, ungefärlig plats, webbläsare och operativsystem enligt beskrivningen i webbplatsdelen av detta meddelande.
En kopia som installerats från Microsoft Store frågar i stället Microsoft Store, aldrig den här webbplatsen (sedan FoxSDR 0.99.53). Vid varje start, när SYSTEM → Uppdateringar → Fråga Microsoft Store efter uppdateringar vid start är ibockat, frågar FoxSDR Windows egen Store-tjänst om det finns ett nyare paket för den här kopian. Inget från FoxSDR skickas i den förfrågan – ingen version, ingen identifierare: Windows identifierar appen för Microsoft med den paketidentitet som redan finns, på samma sätt som för Stores egna bakgrundsuppdateringar. Svaret stannar i programmet. Inget hämtas eller installeras om du inte trycker på Installera från Microsoft Store och bekräftar dialogrutan som Windows visar; hämtningen och installationen sköts då av Microsoft, enligt Microsofts integritetspolicy. Bocka ur rutan så frågas inte Store.
Användningsrapportering
Från version 0.53.0 finns en anonym användningsrapport, under SYSTEM → Användningsrapportering. Den är på som standard, och du kan stänga av den – kryssa ur den rutan så slutar rapporteringen omedelbart. En rapport skickas per start och beskriver sessionen som just avslutades, och detta är allt den innehåller:
| Skickas | Exempel | Varför |
|---|---|---|
| Installationsidentifierare | 32 slumpmässiga hexadecimala tecken | Skiljer 100 användare från en användare som startar 100 gånger. Genereras slumpmässigt på din dator vid första körningen, raderas när du stänger av rapporteringen och härleds aldrig från din hårdvara, ditt nätverk eller ditt namn. |
| Programversion | 0.99.42 | Om folk uppdaterar. Android-alfan rapporterar sin egen version som 0.98.1-android.4 – ett -android.N-suffix på det versionsnummer den byggdes från, så att dess rapporter aldrig förväxlas med Windows-installationsprogrammets. |
| Operativsystem | Windows 10.0.22631, Linux 6.8.0 eller Android 14 | Vilka plattformar som faktiskt används. Operativsystemet och dess bygg-, kärn- eller versionsnummer, aldrig din dators namn eller ditt användarkonto. Linux-versionen (0.99.42) och Android-alfan (0.98.1-android.4) skickar samma fält under samma inställning. |
| Arkitektur | x64 eller arm64 | Som ovan. |
| Hur den installerades | installer | En av store (Microsoft Store), installer (Windows-installationsprogrammet), appimage eller tarball (Linux- och Raspberry Pi-nedladdningarna), eller android. Läses från det körande programmet, registreras aldrig vid installation. Kan inte skilja foxsdr.com från GitHub, eftersom båda tjänar samma filer. |
| Första körningen | 2026-09-29 | Dagen — aldrig klockslaget — då din installations-ID skapades, i UTC. Raderas tillsammans med ID:t när du stänger av rapportering. Skiljer nya användare från långvariga. Tomt för kopior vars ID är äldre än FoxSDR 0.99.47. |
| Första versionen | 0.99.47 | Versionen som skapade ID:t — vilken nedladdning du startade från. Raderas tillsammans med det, precis som första körningen. |
| Antal starter | 12 | Om programmet används mer än en gång. |
| Antal krascher | 1 | Hur ofta det fallerar. |
| Orena avslut efter orsak, från FoxSDR 0.99.69 | 1, 0, 0, 0 | Kraschräknaren ovan räknar varje session som avslutades utan att stängas normalt – en krasch, men också ett fönster som avslutats från Aktivitetshanteraren, eller ett strömavbrott. Dessa fyra tal anger vilket: dog (FoxSDR havererade: det kraschade, eller så hade fönstret slutat ritas och avslutades sedan), dödades (avslutades utifrån medan det fungerade normalt – Aktivitetshanteraren, taskkill, ett installationsprogram, ett stängt konsolfönster), avslutades av systemet (en utloggning eller avstängning) och okänt (inget registrerades: Diagnostik av, eller ett strömavbrott). Varje orent avslut ingår i exakt en av dem. Det är rena tal som aldrig nollställs, precis som kraschräknaren: ingen rapporttext, ingen avslutskod, inget modulnamn och ingen tidpunkt läggs till. FoxSDR avgör detta på din dator, vid nästa start, utifrån de rapporter som Diagnostik redan skriver där; med Diagnostik av läses inget och varje orent avslut räknas som okänt. Tidpunkten då föregående session började sparas i din inställningsfil, så att bara rapporter skrivna sedan dess granskas; den skickas aldrig. |
| Skärmstopp, från FoxSDR 0.99.62 | 0 | Hur många gånger fönstret hängde sig för att bildskärmsdrivrutinen väntade, inte FoxSDR – en avstängd bildskärm, en återställning av grafikdrivrutinen, en fjärrskrivbordssession som ansluter igen. Det är ett rent tal, utan stack, utan drivrutinsnamn och utan tid på dygnet: rapporten om en sådan hängning stannar på din dator och skickas aldrig. Det räknas bara medan både Användningsrapportering och Diagnostik är påslagna. För att en hängning som du avslutar från aktivitetsfältet ändå ska räknas sparas talet i en liten fil som heter telemetry-stalls bredvid din inställningsfil, tillsammans med din installationsidentifierare, tills servern har godkänt en rapport som innehåller det; att stänga av användningsrapportering tar bort filen. |
| Felräkning, från FoxSDR 0.99.64 | radio_fail.rtlsdr.busy=2 | Hur många gånger något tyst inte fungerade, som räknare ur en fast lista över slag: en radio som inte gick att öppna (drivrutinen och en av åtta orsaker), ingen ljudutgång, en uppdatering eller installation av tillägg som misslyckades, ett tillägg som nekades vid inläsning, en inspelning som inte kunde starta — och hur många radioapparater och ljudutgångar som faktiskt öppnades, så att ett misslyckande har något att jämföras med. Ord ur den listan och siffror, aldrig ett enhetsnamn, ett serienummer, en sökväg, en frekvens eller någon meddelandetext. De räknas bara medan både Användningsrapportering och Diagnostik är påslagna, och fältet är tomt för de flesta. |
| Långsamma bilder och återhämtningar, från FoxSDR 0.99.65 | slow.rail.250ms=3,recovered.audio=1 | Samma fält innehåller också hur många gånger fönstret var långsamt med att rita en bild, i vilken del av ritningen (en av arton delar i en fast lista) och hur långsamt (en av tre längder: en kvarts sekund, en sekund eller fem sekunder), samt hur många gånger FoxSDR stötte på ett fel och fortsatte på egen hand, på en av tretton platser i en fast lista: ljudutgången startades om, en radio öppnades på nytt efter ett drivrutinsfel, en sparning av inställningarna som misslyckades och så vidare. Ord ur de listorna och siffror, aldrig ett enhetsnamn, ett serienummer, en sökväg, en frekvens eller någon meddelandetext. De räknas bara medan både Användningsrapportering och Diagnostik är påslagna, och fältet är tomt för de flesta. |
| Sessionslängd | 3600 sekunder | Om sessionerna varar minuter eller timmar. |
| SDR-modell | uhd b200 | Vilka radioapparater som ska prioriteras. Serienummer tas bort innan något skickas. |
| Använda demodulatorer, och hur länge | WFM: 3000s | Vilka moder som motiverar mer arbete. |
| Öppnade paneler | map, decoded | Vilka funktioner som används. |
| Installerade tillägg | ADS-B 1.0.0 | Vilka avkodare som motiverar mer arbete. Ett tillägg som du har installerat från en tilläggssajt som du har lagt till (från och med FoxSDR 0.99.74) är ett monterat tillägg som alla andra: dess namn och version visas här, men sajtens adress gör det inte. |
Det är hela listan. Den levereras med programmet som PRIVACY.md, och ett automatiskt test kontrollerar innehållet fält för fält, så att ett nytt fält inte kan läggas till utan att testet fallerar och båda dokumenten uppdateras. Att stänga av rapporteringen raderar installationsidentifieraren, så om du någon gång slår på den igen får du en ny som inte kan kopplas till den gamla.
Rapporten skickas vid start, och beskriver sessionen som redan har avslutats, och aldrig vid avslut – ett nätverksanrop på vägen ut kan få ett program som någon försöker stänga att hänga sig, och en rapport som skrivs vid avslut skulle gå förlorad vid just den händelse som är mest värd att räkna. Ingenting i svaret läses eller används.
Felräkningen i detalj (från FoxSDR 0.99.64). Fältet är en kort text med kind=count-par, till exempel radio_fail.rtlsdr.busy=2 — en RTL-SDR som inte gick att öppna, två gånger, för att ett annat program hade den. FoxSDR bygger varje slag ur en fast tabell och skickar inget som inte finns i den, och den mottagande servern kastar allt som inte finns i samma tabell. När en orsak läses ut ur vad en drivrutin sagt väljer FoxSDR ett ord ur en fast lista och kastar meningen. För att ett fel i en session som sedan kraschar ändå ska rapporteras väntar räknarna i en liten fil som heter telemetry-health bredvid din inställningsfil, tillsammans med din installationsidentifierare, tills servern har godkänt en rapport som innehåller dem; att stänga av användningsrapportering tar bort filen.
Långsamma bilder och återhämtningar i detalj (från FoxSDR 0.99.65). De finns i samma fält och i samma kind=count-form. slow.rail.250ms=3 är tre bilder i fönstret som var och en tog en kvarts sekund eller mer, i den del av ritningen som är menykolumnen. Delen är ett av arton ord, events, frame-start, pre-draw, plugin-panels, toolbar, rail, spectrum, patch, status, dialogs, polls, saves, render, present, recorder, plugins-reload, startup, other, och hur långsamt det gick är ett av tre: 250ms för en kvarts sekund till under en sekund, 1s för en sekund till under fem sekunder och 5s för fem sekunder eller mer. Tid som du ägnade åt att svara på en dialogruta i Windows, eller åt att dra i fönstret eller ändra dess storlek, räknas bort och räknas aldrig med. recovered.audio=1 är en gång då FoxSDR stötte på ett fel och fortsatte på egen hand. Ordet är en av tretton platser, audio, reopen, srcthread, vendorcall, ringdrop, dspexc, cfgsave, enumchild, pluginapi, webroute, patchload, sdrenum, sdrlost, i den här ordningen: ljudutgången stannade och vakten startade om den; en SoapySDR-radiodrivrutin gick sönder och FoxSDR öppnade radion på nytt av sig själv; en radiodrivrutin återvände aldrig från en läsning när mottagaren stoppades och FoxSDR släppte tråden; ett anrop till en SoapySDR-leverantörsmodul återvände inte i tid och släpptes; radion levererade sampel snabbare än de togs ut och några kastades; signalbehandlingstråden kastade ett fel som fångades och mottagaren stoppades; inställningsfilen kunde inte skrivas; hjälpprogrammet som listar SoapySDR-radioapparater dog och inneslöts; ett tilläggsanrop in i FoxSDR kastade ett fel och besvarades med ett standardvärde; en hanterare i webbgränssnittet kastade ett fel och servern svarade med ett misslyckande; en sparad patch lästes in med utelämnade kopplingar; SDRplay-tjänsten svarade inte på en skanning och skanningen släpptes; SDRplay-sessionen förlorades och SDRplay är stängt under resten av sessionen. FoxSDR bygger var och en ur en fast tabell och skickar inget som inte finns i den, och den mottagande servern kastar allt som inte finns i samma tabell, så det finns aldrig ett enhetsnamn, ett serienummer, en sökväg, en frekvens eller någon meddelandetext; en rapport bär högst de åtta värsta slagen av långsamma bilder och åtta slag av återhämtning. De räknas under samma två reglage som felräkningen, bara medan både Användningsrapportering och Diagnostik är påslagna, de väntar i samma lilla fil som heter telemetry-health bredvid din inställningsfil tills servern har godkänt en rapport som innehåller dem, och att stänga av användningsrapportering tar bort filen.
”Körs fortfarande”-slaget
En rapport som kommer när programmet startar kan säga vem som startade det men aldrig vem som fortfarande har det öppet. Därför skickar FoxSDR också, medan det körs – och bara medan användningsrapporteringen är på – ett mycket litet meddelande var femte minut, med tre fält och inget annat:
| Skickas | Exempel | Varför |
|---|---|---|
| Installationsidentifierare | samma 32 hexadecimala tecken som ovan | Så att tolv slag från en kopia räknas som en körande kopia, inte tolv. |
| Programversion | 0.99.42 | Så att ”körs nu” kan delas upp per version. |
| Slagmarkör | 1 | Talar om för mottagaren att det här är ett slag och inte en sessionsrapport. |
Ingenting från sessionen följer med: inga moder, inga paneler, ingen radiomodell, inga tidslängder, inga räknare. Slagen skrivs till en egen datamängd, åtskild från sessionsrapporterna, så att ingen användningssiffra ändrar betydelse. Samma inställning stoppar båda: avsändaren vägrar att aktiveras utan en giltig installationsidentifierare, och att stänga av användningsrapporteringen raderar den, så av betyder inga slag alls. Ett slag som fortfarande är på väg när nästa ska skickas hoppas över i stället för att köas.
Vart användningsrapporterna går
Till en Cloudflare Worker som drivs av det här projektet på https://telemetry.foxsdr.com, som skriver räknarna ovan till en datamängd i Cloudflare Workers Analytics Engine. Cloudflare behandlar den för vår räkning och lagrar den i tre månader, varefter den är borta. Ingen annan tar emot den, den säljs, hyrs ut eller delas inte, och det enda som läses ut ur den är sammanställda antal, via samma lösenordsskyddade instrumentpanel som beskrivs längre ned. Källkoden till Workern publiceras med programmet, så att du kan läsa vad mottagarsidan gör. Kraschrapporter går inte hit – de går till den här webbplatsens egen server, som beskrivs härnäst.
Krasch- och hängningsrapporter
Om FoxSDR kraschar eller slutar svara skriver det en rapport som beskriver felet till %LOCALAPPDATA%\FoxSDR\crashes\ på din egen dator, och skickar rapportens text vid nästa start – aldrig inifrån själva felet, eftersom ett program som just har fallerat inte säkert kan öppna en nätverksanslutning. Den går till POST /api/crash på den här webbplatsen – inte till Cloudflare och inte till någon tredje part – och den är anonym: det finns inget konto, ingen licensnyckel och inget att logga in med.
Inställningen är SYSTEM → Diagnostik, och den styr både skrivandet och sändandet: när den är av skrivs ingen rapport, ingen mapp skapas och ingen anslutning görs någonsin. Det är en annan inställning än användningsrapporteringen. Att stänga av användningsrapporteringen stoppar inte en kraschrapport – det tömmer fältet för installationsidentifierare i den, eftersom det då inte finns någon identifierare och en kraschrapport aldrig skapar en (se sista raden i tabellen nedan). Fram till den här versionen angav meddelandet ovan fel inställning; programmet har alltid använt Diagnostik, och de två säger nu samma sak.
Det här är allt en rapport innehåller:
| Skickas | Exempel | Varför |
|---|---|---|
| Vad som hände | crash eller hang | En hängning och en krasch är olika fel. |
| Felsignatur | cascade.exe+0x1a2b/adsb.dll | Grupperar samma fel som rapporterats av många personer till en post, så att hundra rapporter om ett fel är en sak att åtgärda och inte hundra. |
| Programversion, commit och bygg-id | 0.61.0, 28fa1c2 | Vilken version det hände i, och vilka symboler som hör till den. |
| Felande modul och offset | cascade.exe, 0x1a2b | Var i programmet det gick fel. |
| Operativsystem och arkitektur | Windows 11, Linux eller Android 14, x64 eller arm64 | Fel är ofta specifika för en plattform. En Linux- eller Android-rapport innehåller samma fält; stackramarna anger det felande bibliotekets GNU-bygg-id i stället för ett PDB-id, eftersom ingen av plattformarna byggs med MSVC. |
| Vilket slags fel det var | access violation, 0xC0000005 | Rapportens egen orsaksrad och Windows undantagskod. Det är i synnerhet detta som säger att ett fel absorberades – att programmet överlevde det – snarare än var en krasch; utan det ser de två likadana ut. En kod och en fast mening, aldrig innehåll. |
| Vilken del av fönsterritningen en hängning befann sig i, från FoxSDR 0.99.64 | rail | Bara i en hängningsrapport: vilken del av fönsterritningen som pågick när det stannade, som ett ord ur en fast lista med nitton: events, frame-start, pre-draw, plugin-panels, toolbar, rail, spectrum, patch, status, dialogs, polls, saves, render, present, recorder, plugins-reload, startup, user-wait, other. Det namnger en del av programmet, aldrig ett tillägg, en fil, en radio eller en frekvens. Samma ord skickas i rapportens orsak, som den fasta meningen freeze: the frame was in rail; ett ord som inte finns i listan släpps och skickas inte. En hängningsrapport skickade tidigare ingen orsak alls. |
| Inlästa tillägg och deras versioner | ADS-B 1.1.0 | ”Kraschar bara när ADS-B-tillägget är inläst” är en felbeskrivning; ”kraschar ibland” är det inte. |
| Trådstackar | cascade.exe+0x1a2b per ram | Stacken är felet. Den består enbart av modulnamn, bygg-id och numeriska offset – inga källsökvägar, inga variabler, inget minnesinnehåll. Från FoxSDR 0.99.63 skickas en ram i en hängningsrapport som ligger inne i en modul som lästes in efter att FoxSDR startat (en grafikdrivrutin som systemet har läst in på nytt, en tillverkar-DLL, ett skaltillägg) som den filens namn (aldrig en mappsökväg) och ett offset, där den tidigare skickades som en ren adress. Ett filnamn kan visa vilken programvara som är installerad på din dator; det är samma sorts namn som de här rapporterna redan innehöll för en drivrutin som lästes in vid start. |
| Slutet av sessionsloggen | opened rtlsdr | De sista raderna programmet loggade, vilket oftast är vad det höll på med när det fallerade. Det är programmets egen logg: den registrerar tillståndsändringar – källa öppnad, takt inställd, tillägg startat – aldrig signalinnehåll, och aldrig namnet eller sökvägen till en fil du öppnade. Den innehåller också vad radiodrivrutinen sa och vad dess bibliotek skrev till standardfelströmmen. Innan någon rad av den lämnar din dator, både programmets egna rader och drivrutinens, rensas den: serienummer och den enhetsspecifika delen av USB-enheters identifierare ersätts av <stripped>, kontonamnet i en filsökväg av <user>, och allt inom enkla citattecken, till exempel namnen du ger patchnoder och högtalare, av '<name>'; från FoxSDR 0.99.59 ersätts varje nätverksadress och varje dator- eller värdnamn av <host>, med portnumret kvar efter det, och numret på en seriell port av # (COM#, /dev/ttyUSB#); på varje rad som nämner hertz, en frekvens, avstämning, en mitt, ett område, en offset, en bärvåg, ett förval eller sändning ersätts varje tal av #, om det inte är markerat som en samplingstakt, en tid, en nivå, en storlek eller ett antal, är en version, en identifierare eller en felkod, eller ingår i ett namn som R820T; och rader där USB-drivrutinen listar enheterna som är anslutna till din dator utelämnas, med en rad som anger hur många de var. Från och med version 0.99.59 skriver programmet aldrig ett ljudkorts namn i sin logg alls, eftersom det namnet ofta är något som en person har valt. Från och med version 0.99.61 skriver programmet också i sin logg när en ljudutgång öppnas eller avvisas: ljuddrivrutinens modell, kanalernas uppsättning och samplingsfrekvensen, men aldrig ljudenhetens namn. |
| Kontextanteckningar | mode: WFM, sampleRate: 2400000 | Några nyckel/värde-anteckningar som programmet bifogar: läget, källan (generator, I/Q-fil eller en riktig radio), samplingstakten, om en enhet var öppen, SDR-modellen med serienummer borttagna, hur många sekunder programmet hade körts och om den felande tråden körde FoxSDR:s egen kod eller en radiodrivrutins. sampleRate är samplingstakten, inte en inställd frekvens. |
| Frekvenskorrigering, från FoxSDR 0.99.56 | ppm: +1.5 by retuning | Om radions kristallkorrigering är påslagen, dess värde i miljondelar och hur den tillämpas (in the radio eller by retuning), eller off. Den beskriver radions kristall, inte en frekvens: den säger ingenting om vad du lyssnade på. |
| Annan programvaras DLL-filer i processen, från FoxSDR 0.99.69 | foreignModules: NahimicOSD.dll, RTSSHooks64.dll | Filnamnen – aldrig mapp, version eller något annat om filen – på andra programs komponenter som lästs in i FoxSDR: varje inläst modul som varken är Windows egen, en del av FoxSDR (dess programmapp, tillägg, C++-körmiljön) eller en SDR-tillverkares drivrutinsfiler som FoxSDR läser in med avsikt. Detta avslöjar namnen på annan programvaras DLL-filer – en ljuddrivrutins överlägg på skärmen, en bildfrekvensräknare, en antivirus- eller inmatningsverktygskrok – och ett filnamn kan visa vilken programvara som är installerad på din dator, därför anges det här. Filer i Windows-mappen utelämnas, så att listan blir kort och meningsfull. Den finns eftersom rapporter om att FoxSDR avslutades i grafikdrivrutinens överlämning, där program som lägger sig i varje process hakar in, inte gav något sätt att se vad mer som fanns i processen. Samma namn skrivs till programmets logg (modules: 2 foreign - ... en gång vid start, module arrived: ... när en läses in senare), så de raderna kan synas i slutet av sessionsloggen ovan. Värdet är tomt när en rapport inte anger något, och högst 520 tecken av det sparas här. |
| The window’s start-up and the graphics adapter, from FoxSDR 0.99.78 | window: GL vendor NVIDIA Corporation; renderer NVIDIA GeForce RTX 4090/PCIe/SSE2; version 4.6.0 NVIDIA 610.88 | Lines the application writes to its log while its window is being created, each beginning window:, which therefore ride in the tail of the session log above: which window systems this build of the window library supports; on Linux, whether DISPLAY and WAYLAND_DISPLAY are set (set or not set — never their values, which can name a computer or a session), the session type when it is one of a fixed list of words, and which window system was chosen; the window library’s own error messages, with the display’s name left out; and the graphics driver’s own vendor, renderer and version strings, which name the make and model of your graphics adapter and its driver — a graphics fault cannot be told apart without them, and they say nothing about you. On Linux, a report of a process that ended before its window appeared now also says how it ended: an exit status, or a signal number whose name comes from a list of twelve (exit code 3 (the process ended itself), killed by signal 11 (SIGSEGV)), written down by FoxSDR itself as it ends, as a number behind a fixed tag; unknown when nothing was written, which is what an ending by SIGKILL leaves. |
| Installationsidentifierare | 32 slumpmässiga hexadecimala tecken, eller tomt | Används för att begränsa sändningstakten och kastas sedan: installationsidentifieraren lagras inte. En dator som fastnat i en kraschslinga får inte kunna översvämma servern, och att skilja en dator från hundra är det enda den någonsin läses för. Den skrivs aldrig till disk här. Om användningsrapporteringen är av skickas den tom – då finns ingen identifierare, och en kraschrapport skapar aldrig en. |
Rättat i FoxSDR 0.99.33. Före 0.99.33 tillämpades rensningen som beskrivs ovan bara på radiodrivrutinens rader, inte på programmets egna, och några av programmets egna rader kunde därför hamna i en krasch- eller hängningsrapport med frekvensen du hade begärt eller sände på, en patchradios etikett (som kan innehålla dess serienummer), namnen du gav patchdelar, första textraden som en avkodare på patchsidan hade producerat och listan över USB-enheter som USB-drivrutinen skrev ut, inklusive deras serienummer. Det stred mot detta meddelande. Från 0.99.33 rensas varje rad innan den lämnar din dator, och dessa loggrader innehåller inte längre dessa värden över huvud taget.
Rättat i FoxSDR 0.99.59. Det här meddelandet har alltid sagt att en kraschrapport inte innehåller något datornamn och att programmet aldrig skickar din IP-adress, men fram till version 0.99.59 letade rensningen inte efter nätverksadresser eller värdnamn. Några loggrader kunde därför hamna i en kraschrapport eller hängningsrapport, eller i diagnostikloggen i en felrapport, med den adress eller det värdnamn du angav för en nätverksradio som en ADALM-Pluto, eller en adress eller webbadress som en drivrutin för nätverksradio loggade; de kunde också innehålla numret på en seriell port och, på några felrader, namnet på ett ljudkort. Det stred mot det här meddelandet. Från och med version 0.99.59 ersätts adresser och värdnamn och serieportsnummer maskeras som beskrivits ovan, ADALM-Plutos egna rader skriver inte längre ut dess adress, och ingen loggrad nämner något ljudkort.
En kraschrapport innehåller ingen frekvens, inget avkodat, ingen filsökväg, inget användarnamn, inget datornamn, ingen nätverksadress och ingen plats. Rapporterna förvaras på den här webbplatsens egen server, bakom samma lösenordsskyddade instrumentpanel som allt annat, och sparas i 90 dagar efter att felet senast sågs, och raderas sedan – samma tre månader som användningsrapporterna sparas. Den första rapporten om ett visst fel sparas i sin helhet, tillsammans med ytterligare en rapport per version som felet överlever in i, upp till tre; alla andra rapporter om samma fel räknas i stället för att lagras. Ett automatiskt test binder både vad adressen tar emot och vad den skriver till disk till tabellen ovan, i båda riktningarna, så att ett fält inte kan läggas till i någon av dem utan att den här tabellen också ändras.
En fullständig minnesdump skickas aldrig, oavsett inställning. En minnesdump är en kopia av programmets minne och kan innehålla filnamn, fönstertitlar och mottagna signaldata. Den är av som standard; om du slår på den under SYSTEM → Diagnostik skrivs en .dmp bredvid textrapporten, enbart lokalt, och uppladdaren öppnar filer med namnen crash-*.txt och hang-*.txt och inget annat.
En vaktpostrapport, från FoxSDR 0.99.64. Vissa slut kan inget inuti FoxSDR rapportera: en krasch som hoppar över alla hanterare, ett stackspill, ett fönster som hänger sig så hårt att även hängningsvakten har fastnat. Därför startar FoxSDR, i en interaktiv session med Diagnostik påslagen, en andra kopia av sitt eget program, utan fönster, som bara väntar på att den första ska ta slut — vaktposten. Den kan läsa hur FoxSDR tog slut (slutkoden, och när det startade och stannade), en liten delad sida med siffror som FoxSDR håller aktuell (vilket skede det är i, hur många bilder det har ritat och när det senast ritade en, vilken del av fönsterritningen som pågår, om en meny är öppen eller fönstret dras) och slutet av sessionsloggen, rensad som varje annan rapports. Den läser inget av FoxSDR:s minne och gör ingen dump, och sidan med siffror har inte plats för text, så den kan inte innehålla ett namn, en sökväg, en frekvens eller en adress. När FoxSDR tar slut skriver vaktposten en rapport i samma mapp och format som de andra — ingen om FoxSDR tog slut normalt eller redan hade skrivit en — vars orsak bara består av fasta ord och hela sekunder, med mottagarraderna ersatta av en fast mening som säger att den inte kan läsa dem. Den skickar inget själv: rapporten går iväg vid nästa start, under samma brytare och samma gränser som alla andra, och bara om FoxSDR kraschade, om fönstret hade slutat rita eller om det tog slut före första bilden. Ett slut utifrån (Aktivitetshanteraren eller ett skript) och ett slut för att Windows stängde din session stannar på din dator och skickas aldrig. Med Diagnostik avstängd startas inte vaktposten.
Hur ofta. Högst fem rapporter per dag från en dator, och samma fel bara en gång per dag hur många gånger det än inträffar – båda gränserna hålls i din egen inställningsfil, så att en dator i en kraschslinga slutar skicka av sig själv i stället för att behöva bli tillsagd, och en rapport som misslyckas försöks igen vid senare starter högst tre gånger och lämnas sedan. Att översätta en offset i en rapport till ett funktionsnamn kräver felsökningsdatabasen från exakt den versionen, som stannar på våra egna datorer och aldrig laddas upp någonstans: översättningen sker lokalt, inte på servern.
Vad programmet aldrig skickar
- Frekvenser du ställer in. Vad någon lyssnar på är det känsligaste denna programvara vet, och det samlas aldrig in. I Storbritannien är det ett brott enligt avsnitt 48 i Wireless Telegraphy Act 2006 att avlyssna ett meddelande som du inte har behörighet att ta emot, eller att röja dess innehåll.
- Namnen på eller sökvägarna till filer du öppnar. En inspelnings filnamn är dina egna data – det kan namnge en tjänst, en plats eller en frekvens. När en I/Q-fil inte går att öppna igen registrerar loggen att den inte öppnades igen; namnet stannar på skärmen, där du redan känner till det.
- Något avkodat – personsökarmeddelanden, flygplan, fartyg, bilder, satellittrafik.
- Din position, eller positionen för något du tar emot – inklusive den mottagarposition du angett, som aldrig skickas i någon rapport. Se nedan.
- Din IP-adress, eller någon plats härledd ur den. En förfrågan når med nödvändighet en server från en adress, eftersom det är så internet fungerar; användningsadressen läser ingen anslutningsinformation och skriver inga förfrågningsloggar. Från och med FoxSDR 0.99.59 ersätts även en nätverksadress eller ett värdnamn i de loggrader som en rapport innehåller med
<host>. - Hårdvarans serienummer. Radiomodellen är användbar; serienumret identifierar just din radio och tas bort innan något skickas.
- Ditt namn, din dators namn, ditt användarkonto, någon filsökväg eller namnet på ett ljudkort.
- En fullständig minnesdump.
Mottagarpositionen, och GPS:en
FoxSDR behöver veta var mottagaren är, eftersom varje avstånd och bäring på kartan och radarskärmen mäts därifrån. Du kan skriva in den, klicka på den på kartan eller läsa den från en GPS-mottagare på en serieport.
Positionen stannar på din dator. Den lagras i din egen inställningsfil och skickas aldrig – inte i användningsrapporten, inte i slaget, inte i en kraschrapport, inte någonstans. Att läsa den från en GPS är något du startar: du anger porten och trycker på ”Läs position från GPS”. Porten hålls bara tills den första positionen kommer, och i högst 60 sekunder. Diagnostikloggen registrerar portnamnet, överföringshastigheten, antal meningar och satelliter samt eventuella fel – aldrig positionen, och aldrig texten i en NMEA-mening. Ett portfält som innehåller något som inte ser ut som en port loggas som sin typ och längd (”en inskriven enhetssökväg, 27 tecken”), så att en filsökväg med ditt användarnamn i inte kan följa med in i en rapport. Två automatiska tester säkerställer detta: ett mot loggringen och ett mot loggfilen som det riktiga programmet skrev.
Tilläggskatalogen
Katalogen kontaktas när du öppnar tilläggsbutikens fönster (första gången under en session, sedan FoxSDR 0.99.16), varje gång du trycker på KONTROLLERA NU i det och när du väljer att installera något. Ingenting hämtas vid start, fönstret öppnas inte igen av sig självt och inget tillägg uppdaterar sig någonsin självt. Katalogen är en fil som publiceras på GitHub (raw.githubusercontent.com), så den förfrågan når GitHubs servrar, som – likt varje webbförfrågan – ser adressen den kom från. Ingen identifierare av dina skickas med den: inget installations-id, ingen kaka, inget som kan kopplas till en användningsrapport. Varje nedladdning sker över HTTPS, har ett storlekstak, avvisas vid omdirigering till en annan värd och kontrolleras mot den sha256 som publicerats i katalogen innan den får bli en fil. Källan är en inställning: du kan peka den mot en annan katalog, eller mot en index.json på din egen disk, och då görs ingen nätverksförfrågan alls.
Tilläggssajter som du lägger till
Från och med FoxSDR 0.99.74 kan du lägga till andras tilläggskataloger, kallade tilläggssajter, och varje sajt du lägger till är ytterligare en adress som programmet kontaktar. Bara du lägger till en: tryck på SAJTER i tilläggsbutikens övre list, klistra in en adress och kryssa i rutan som säger att FoxSDR inte har granskat sajten. FoxSDR lägger inte till något och kontaktar inget på egen hand. En sajt läses vid samma två tillfällen som den offentliga katalogen — första gången du öppnar butiken under en session och varje gång du trycker på KONTROLLERA NU — och får några sekunder på sig att svara. Förfrågan innehåller adressen du angav och inget annat från FoxSDR: ingen identifierare, ingen kaka och ett klientnamn (cascade-plugin-repo/1.0) som är detsamma för alla kopior. Sajten ser alltså din IP-adress, som vilken webbserver som helst.
En sajts tilläggsfiler och bilder hämtas bara från samma värd som dess katalog, och bara när du trycker på HÄMTA eller UPPDATERA vid ett av dess tillägg eller öppnar dess sida. Varje sajts katalog sparas oförändrad i tilläggsmappen på din egen disk, läses in igen vid start och raderas när du trycker på TA BORT vid sajten; själva adresserna finns i din inställningsfil. Felräknarna för tilläggskatalogen och för installation av tillägg (se avsnittet om användningsrapportering ovan) är den offentliga katalogens: en sajt som inte kan nås, eller ett av dess tillägg som inte går att installera, räknas inte.
Insticksprogram som bara erbjuds i vissa länder
Vissa insticksprogram erbjuds bara till anslutningar från vissa länder. När programmet hämtar katalogen över insticksprogram frågar det också den här webbplatsen efter en kort regional lista, och ett insticksprogram på den listan laddas ner från den här webbplatsen i stället för från GitHub. För att avgöra vad den ska svara läser webbplatsen den landskod med två bokstäver som Cloudflare skickar med förfrågan (CF-IPCountry), och som Cloudflare räknar fram från adressen som förfrågan kommer från. Landskoden och adressen används bara för det enda svaret och sparas inte, ingen identifierare för dig skickas, och de här förfrågningarna registreras inte i den här webbplatsens statistik. En anslutning vars land inte kan fastställas, eller som kommer via Tor, får en tom lista. Ett VPN ändrar vilket land webbplatsen ser. Den regionala listan efterfrågas inte när du har pekat butiken mot en annan katalog.
Ett tillägg som kan sända
Från och med FoxSDR 0.99.74 kan ett tillägg be om att få skicka ljud genom din sändare; tilläggsbutiken och fönstret ”Monterade moduler” visar det då som ”Kan sända via FoxSDR”. Det kan bara slå på sändaren om du har tryckt på TILLÅT SÄNDNING på dess sida och gjort sidan SÄND redo i 5, 15 eller 60 minuter. Tillståndet sparas i din egen inställningsfil under tilläggets filnamn och skickas aldrig någonstans; tidsfönstret för redoläget sparas inte alls. Diagnostikloggen på din maskin registrerar påslaget — tx: armed 15 min, tx: plugin <name> keyed, tx: plugin <name> unkeyed (<why>) och tx: disarmed (<why>) — som tilläggets deklarerade namn, en orsak från en fast lista och ett antal minuter, aldrig en frekvens, och dessa rader rensas som alla andra loggrader när en rapport eller ett diagnostikpaket sätts ihop. FoxSDR:s egna rapporter har inget fält för något av detta.
Banelement för satelliter
Satellittillägget håller sina banelement aktuella genom att hämta dem från källorna som anges i dess satellite.cfg, var tolfte timme medan det är inläst. Den här webbplatsen har en kopia av de banelementen på GET /tle/all.tle – CelesTraks grupper för rymdstationer, amatörsatelliter och vädersatelliter samt NOAA 15, 18 och 19, uppdaterade här var tolfte timme – och Satelliter 1.0.4 och senare faller tillbaka på den här filen av sig själva när alla källor i satellite.cfg misslyckas, så att en dator som CelesTrak avvisar ändå kan spåra dem. Filen behöver inte nämna den här webbplatsen för att det ska ske; en rad med fallback-url none i den stänger av reservlösningen, och refresh-hours 0 stänger av all hämtning. Förfrågan innehåller ingen identifierare, inget installations-id och ingen kaka, och den här servern skriver ingen statistikpost för den – liksom för uppdateringskontrollen registreras bara sidvisningar och filnedladdningar, och speglingen är ingetdera. Själva banelementen är CelesTraks (celestrak.org) och varje svar säger det.
Uppslag i flygplansregistret
Det valfria tillägget Flygplansinfo visar vem varje flygplan på kartan är – dess registrering, typ och operatör. Programmet gör aldrig den här förfrågan; det är installationen av tillägget som möjliggör den. Från version 1.1.0 frågar tillägget först den här webbplatsen, på GET /api/aircraft/<address>, och skickar bara flygplanets sexsiffriga hexadecimala ICAO-adress – numret som flygplanet självt sänder ut – utan identifierare, installations-id eller kaka. Varje flygplan efterfrågas en gång och svaret sparas på din egen dator, så att det inte efterfrågas igen. Bara när den här webbplatsen inte känner till ett flygplan, eller inte går att nå, frågar tillägget api.adsbdb.com, en kostnadsfri tredjepartstjänst, som tidigare versioner alltid gjorde. Uppsättningen flygplan som en mottagare hör är en grov indikation på var den är, och därför är tillägget valfritt och säger det innan du installerar det.
Vad den här servern sparar om ett uppslag: ingenting per förfrågan. Ingen statistikpost skrivs, och varken flygplanets adress eller adressen som förfrågan kom från loggas. Det enda som registreras är fem löpande summor sedan servern senast startade – uppslag, hittade, ej hittade, felformade och hastighetsbegränsade – som instrumentpanelen visar. För att hindra att någon kopierar hela tabellen har varje anslutande adress en uppslagskvot som hålls i minnet, precis som för de andra adresserna här, och som aldrig skrivs till disk; den glöms när servern startas om eller när fler än tiotusen adresser följs, vilket som än inträffar först.
Svaren kommer från OpenSky Networks flygplansdatabas (opensky-network.org): för varje flygplan dess registrering, typbeteckning, tillverkare, modell och, där det finns registrerat, dess operatör. OpenSky tillhandahåller databasen i befintligt skick och ber användare att citera: Matthias Schäfer, Martin Strohmeier, Vincent Lenders, Ivan Martinovic och Matthias Wilhelm, ”Bringing Up OpenSky: A Large-scale ADS-B Sensor Network for Research”, i Proceedings of the 13th IEEE/ACM International Symposium on Information Processing in Sensor Networks (IPSN), april 2014. Den registrerade ägare som finns angiven där kopieras inte till den här webbplatsen och serveras inte av den, eftersom det för ett privat flygplan är en persons namn; bara operatören, som är ett flygbolag, ett flygvapen eller ett företag, gör det.
Webbläsargränssnittet
FoxSDR kan servera sitt gränssnitt över HTTP till andra datorer i ditt eget nätverk. Det är av som standard och bundet till din egen dator tills du ändrar det; ett lösenord krävs för all bindning utöver det, och utan ett avvisas den bredare bindningen i stället för att öppnas. Lösenord lagras hashade (PBKDF2-HMAC-SHA256) och sessioner återkallas när inställningarna ändras. Det finns medvetet ingen TLS, eftersom programmet inte länkar något kryptobibliotek och inte gör anspråk på en transportsäkerhet det inte kan ge – sätt en omvänd proxy eller en privat tunnel framför det, och vidarebefordra aldrig en port direkt till det. Alla du ger åtkomst kan se och styra vad mottagaren gör.
Funktionsönskemål som skickas från programmet
Programmet har en ruta ”Önska en funktion” på sin huvudsida, där du kan skriva vad du vill att det ska göra och trycka på Skicka. Ingenting skickas förrän du trycker på den knappen, det sker aldrig automatiskt, och ett önskemål som inte når fram till oss köas inte och försöks inte igen i bakgrunden – det du skrev stannar i rutan, enbart i minnet, så att du kan trycka på Skicka igen, och det skrivs aldrig till konfigurationsfilen eller loggen. Det här är allt ett önskemål innehåller:
| Skickas | Exempel | Varför |
|---|---|---|
| Det du skrev | Please add a squelch control to the FLEX decoder | Själva önskemålet: 10 till 100000 tecken. Styrtecken tas bort innan det lagras; radbrytningar behålls. |
| Kontaktuppgift, om du angav en | [email protected] eller en anropssignal | Valfritt, upp till 120 tecken, så att vi kan ställa en följdfråga. Lämna den tom så innehåller önskemålet inget som kan identifiera dig. |
| Programversion | 0.99.42 | Vilken version önskemålet kom från. |
| Operativsystem | windows, linux eller android | Vilken plattform som skickade det. |
| Arkitektur | x64 eller arm64 | Som ovan. |
| Schemanummer | 1 | Versionen av överföringsformatet, så att en framtida ändring av formatet inte kan förväxlas med något av fälten ovan. |
Det går till POST /api/feature-request på den här webbplatsen. Din IP-adress används bara för att hålla sändningstakten på en rimlig nivå, och den skrivs aldrig till disk – posten som faktiskt sparas är ditt meddelande, din kontaktadress om du angav en, programversionen, plattformen, arkitekturen och ditt ungefärliga land när vår uppslagning kan ta fram det från anslutningen, och inget annat. Det läses av projektets underhållare på administratörspanelen bakom samma lösenord som allt annat här, och sparas tills det raderas från den panelen, eller tills du ber om det. Ett önskemål som har hanterats – lagts till i FoxSDR eller besvarats på annat sätt – kan arkiveras där i stället för att raderas, så att projektet kan hålla reda på vad som efterfrågats och vad som byggts; ett arkiverat önskemål finns fortfarande kvar, med allt som anges ovan. Om du angav en kontaktadress och vill att önskemålet raderas, skriv till adressen nedan och citera tillräckligt av det du skickade för att det ska kunna hittas.
Felrapporter och ogillanden som skickas från programmet
Direkt under ”Önska en funktion” har programmet en ruta ”Rapportera fel / ogillar”, där du säger antingen att något är trasigt eller att något finns där som du inte tycker om, och trycker på Skicka. Den fungerar precis som rutan för funktionsönskemål: ingenting skickas förrän du trycker på den knappen, ingenting köas eller försöks igen i bakgrunden, och det du skrev stannar enbart i minnet – aldrig i konfigurationsfilen, aldrig i loggen. Det är inte en kraschrapport, även om diagnostikloggen som beskrivs nedan går igenom samma filter och kan innehålla en del av det en kraschrapport innehåller. Det här är allt en rapport innehåller:
| Skickas | Exempel | Varför |
|---|---|---|
| Om det är ett fel eller ett ogillande | bug eller dislike | Valet du gjorde överst i rutan: något som inte fungerar, eller något som fungerar som det är tänkt men som du hellre skulle vilja inte gjorde det. |
| Det du skrev | The waterfall freezes when I change the sample rate | Själva rapporten: 10 till 100000 tecken. Styrtecken tas bort innan den lagras; radbrytningar behålls. |
| Kontaktuppgift, om du angav en | [email protected] eller en anropssignal | Valfritt, upp till 120 tecken, så att vi kan ställa en följdfråga. Lämna den tom så innehåller rapporten inget som kan identifiera dig. |
| Programversion | 0.99.42 | Vilken version rapporten kom från, så att ett fel som redan är åtgärdat inte jagas igen. |
| Operativsystem | windows, linux eller android | Vilken plattform som skickade det. |
| Arkitektur | x64 eller arm64 | Som ovan. |
| Schemanummer | 1 | Versionen av överföringsformatet, så att en framtida ändring av formatet inte kan förväxlas med något av fälten ovan. |
| Diagnostikloggen, från FoxSDR 0.99.43 | 0.99.43 windows x64, Ettus B200 — recent log lines, serials/frequencies/paths scrubbed | Ikryssad som standard när du rapporterar ett fel, och inte ikryssad som standard vid ogillande – du kan ändra båda innan du trycker på Skicka. Den innehåller programversionen, ditt operativsystem, vilken radio som användes, en kort sammanfattning av dina inställningar, och de senaste raderna i programmets egen logg, körda genom samma filter som svansen på en kraschrapports logg: serienummer och USB-id:n ersätts, varje frekvensrelaterat tal ersätts, allt inom enkla citattecken ersätts, nätverksadresser och värdnamn ersätts och serieportsnummer maskeras (från FoxSDR 0.99.59), och kontonamnet i en filsökväg tas bort. Den här servern upprepar den sista av dessa kontroller ifall något ändå missades. Den sparas, och raderas, tillsammans med resten av rapporten, på samma villkor som allt ovan. Från och med FoxSDR 0.99.61 anger sammanfattningen av dina inställningar också om en ljudutgång är öppen och via vilken ljuddrivrutinsmodell, volymen, om ljudet är avstängt och av vem (dig, ett avkodartillägg eller sändknappen; ett tillägg beskrivs men namnges aldrig), och brusspärrens nivå, om den är öppen och vilken signalnivå den bedömer, vilket är en nivå och inte en frekvens. Den innehåller aldrig namnet på din ljudenhet eller frekvensen du är inställd på. Från och med FoxSDR 0.99.62 innehåller den också tre saker till: de sista raderna (högst 80) i föregående sessions logg, eller ord som säger att det inte finns någon att läsa; en rad för var och en av de tio senaste krasch- eller hängningsrapporterna på din dator, som anger om det var en krasch, en hängning eller ett skärmstopp, hur länge sedan den skrevs, den version som skrev den, hur länge den sessionen hade körts, hur länge fönstret stod still eller orsaken till och koden för kraschen, dess felsignatur och vad som blev av sändandet av den, utan stack, utan loggrader, utan modullista och utan filnamn eller sökvägar hämtade från de rapporterna; och en rad som anger hur många radioapparater patchsidan kör och drivrutinstypen för var och en, aldrig en radios namn, serienummer eller adress, namnet på en inspelning eller en frekvens. Varje rad i den föregående loggen och i listan över rapporter går igenom samma filter. Med Diagnostik avstängt innehåller diagnostikloggen varken föregående sessions logg eller listan över rapporter, och inget av detta ingår i den krasch- eller hängningsrapport som FoxSDR skickar av sig själv. |
| En rapport du klistrade in, från FoxSDR 0.99.69 | sentinel:outside, written by 0.99.66, and the report | Endast när det är aktuellt. Om meddelandet du skrev eller klistrade in innehåller en FoxSDR-krasch-, hängnings- eller sentinelrapport – texten i en rapportfil i rapportmappen, som man ibland klistrar in för hand – känner programmet igen den, talar om det på sidan innan du trycker på Skicka (”En rapport identifierades och bifogades som …”), och skickar den en gång till vid sidan av meddelandet, med tre uppgifter: vilken typ av rapport det är (en krasch, en hängning, ett bildstopp eller ett av de fem avslut som sentinelen registrerar), den version som skrev den (versionsraden i rapportens eget kontextblock, som kanske inte är den du kör nu) och själva rapporten. Det är inget du inte redan skickar: det är orden i ditt meddelande, arkiverade under sin typ så att administratörssidan kan namnge den. Bara texten i rutan granskas; ingen fil läses. Den rensas här på samma sätt som diagnostikloggen (kontonamnet i en filsökväg och alla e-postadresser tas bort), begränsas till 64 KiB och sparas tillsammans med resten av rapporten, på samma villkor som allt ovan. |
Från FoxSDR 0.99.69 innehåller diagnostikloggen också ytterligare en rad som endast med filnamn (aldrig mapp eller version) anger de andra programs komponenter som lästs in i FoxSDR – ett överlägg eller en krok som ett annat program lagt dit; det är samma lista som kraschrapporttabellen ovan beskriver, och den ingår också i den krasch- eller hängningsrapport som FoxSDR skickar av sig självt.
Den går till POST /api/problem-report på den här webbplatsen. Din IP-adress används bara för att hålla sändningstakten rimlig och skrivs aldrig till disk – det som faktiskt sparas är om det gällde ett fel eller ett missnöje, ditt meddelande, din kontaktadress om du angav någon, programversionen, plattformen, arkitekturen, ditt ungefärliga land när vår uppslagning kan ange ett utifrån anslutningen, samt diagnostikloggen om du lämnade den bifogad, typen av eventuell rapport som identifierats i ditt meddelande (ovan), och inget annat. Den läses av projektets underhållare på administratörspanelen bakom samma lösenord som allt annat här, och en rapport sparas tills den raderas från den panelen, eller tills du ber om det. En rapport som är hanterad – åtgärdad i FoxSDR eller besvarad på annat sätt – kan arkiveras där i stället för att raderas; en arkiverad rapport sparas fortfarande, med allt som anges ovan. Om du angav en kontaktadress och vill att rapporten raderas, skriv till adressen nedan och citera tillräckligt av det du skickade för att den ska kunna hittas.
Webbplatsen: vad som registreras när du besöker den
En post skrivs för varje sidvisning och varje nedladdning oavsett om du godkänner kakor eller inte. Det här är förstapartsstatistik: uppgifterna stannar på servern som serverar den här webbplatsen, de delas inte med något reklamnätverk, och det finns inget tredjepartsskript på sidan.
| Registreras | Var det kommer ifrån | Kräver samtycke |
|---|---|---|
| Datum och tid, begärd sida, HTTP-metod och protokoll | Förfrågan | Nej |
| Din IP-adress, och en saltad hash av den | Anslutningen | Nej |
| Ungefärlig plats: land, region, stad, postnummerområde, tidszon och koordinaterna för den staden – inte för dig | IP-adress, uppslagen via ip-api.com | Nej |
| Ditt nätverk: internetleverantör, organisation, AS-nummer och om adressen är ett känt VPN-, datacenter- eller mobilnät | Samma uppslagning | Nej |
| Webbläsare och version, operativsystem och version, enhetstyp och om förfrågan ser ut att komma från en robot | User-Agent-huvudet | Nej |
Vilken sida som skickade dig hit, och eventuella kampanjtaggar på länken (utm_source med flera) | Referer-huvudet och URL:en | Nej |
| Föredragna språk | Accept-Language-huvudet | Nej |
| Vilken fil du laddade ned, dess version, hur många byte som skickades och om överföringen slutfördes | Själva nedladdningen | Nej |
| Skärm- och fönsterstorlek, pixelförhållande, färgdjup | Din webbläsare, rapporterat av den här sidans skript | Ja |
| Antal processorkärnor och ungefärligt enhetsminne | Samma skript | Ja |
| Tidszon, språklista, inställning för mörkt läge, pekstöd, plattform | Samma skript | Ja |
| Anslutningstyp, uppskattad nedladdningshastighet och tur-och-retur-tid | Samma skript | Ja |
| Hur länge sidan var synlig, hur långt du scrollade, hur många klick och vilka knappar du tryckte på | Samma skript | Ja |
Vad som medvetet inte görs
- Ingen fingeravtrycksidentifiering av webbläsaren: ingen avläsning av canvas, ljud, typsnitt eller WebGL, och inget som försöker identifiera dig igen efter att du har avböjt.
- Inga spårare från tredje part, reklampixlar, sociala widgetar eller statistiktjänster. Ingenting på den här sidan laddas från en annan domän.
- Inga försök att läsa ditt urklipp, ditt batteri, din kamera, din mikrofon, dina sparade lösenord eller din webbhistorik – inget av vilket en nedladdningssida har något med att göra.
- Dina uppgifter säljs, hyrs ut eller delas inte med någon. Den enda utgående förfrågan servern gör om dig är uppslagningen från IP-adress till plats som beskrivs ovan.
Gränssnittsdesigner som du publicerar
Den här webbplatsen kan spara en FoxSDR-gränssnittsdesign — ett .foxui-paket — som du väljer att publicera. Ingenting skickas förrän du trycker på Publish, och det skickas till POST /api/gui/publish. Det som sparas är det paketet innehåller: själva designen, namnet, versionen och beskrivningen du skrev, ett upphovsnamn om du skrev ett, tidpunkten då det publicerades och en slumpmässig identifierare. Din IP-adress används bara för att hålla publiceringstakten på en rimlig nivå, och den skrivs aldrig till disk. Ett publicerat paket listas ingenstans; den som har länken kan ladda ned det. Det sparas tills det tas bort från administrationspanelen, eller tills du ber om det — skriv till adressen nedan och ange länken.
Om du anmäler dig som betatestare
Betaformuläret och anmälan till nyheterna är de enda ställen där den här webbplatsen ber dig om något, bortsett från när du publicerar en gränssnittsdesign (se ovan). När du skickar in formuläret lagras din e-postadress, och det du valde att uppge av följande: ett namn eller en anropssignal, din plattform, radion du tänker använda, dina anteckningar och listan över funktioner du anmält dig att testa. Tillsammans med det sparar vi samma besökskontext som beskrivs ovan – ungefärlig plats, nätverk, webbläsare och operativsystem – eftersom en felrapport läses helt olika beroende på vilken uppsättning den kom från.
- Adressen används till en sak: att kontakta dig om betaversioner och vad som ska testas. Inget nyhetsbrev, ingen marknadsföring, och den lämnas aldrig vidare till någon annan.
- Ingenting händer förrän du bekräftar. Anmälan skickar ett mejl med en sexsiffrig kod, som du skriver in på sidan för att bekräfta att adressen är din. Koden gäller i 30 minuter och avvisas efter fem felaktiga försök. Tills den har angetts är posten vilande: du finns inte på testarlistan, du räknas inte, och ingenting mer skickas någonsin. Om någon annan skrev in din adress, strunta i mejlet så blir posten aldrig verklig – det finns inget att avregistrera sig från och inget du behöver göra. Det meddelandet är den enda automatiska post som en anmälan kan ge upphov till.
- Om du har skrivit till oss kan vi bjuda in dig. Den som har skrivit till oss och lämnat en adress – till exempel via programmets förslagsruta – kan få en personlig inbjudan från oss, med en engångslänk som öppnar den här webbplatsens Bekräfta-knapp. Den inbjudan hålls som en väntande post precis som en obekräftad anmälan: du är inte testare och räknas inte om du inte trycker på Bekräfta, och om du struntar i den skriver vi inte till dig igen. En väntande post upphör inte av sig själv; den raderas när vi tar bort den från listan eller när du ber om det, med ett mejl till adressen nedan.
- När du har bekräftat får du din privata hanteringslänk, och vi skriver när en version kommer som behöver det du erbjöd dig att testa. Det är en person som skriver till dig, inte en e-postlista. Om du tappar bort länken kan vi utfärda en ny: den gamla slutar fungera direkt, den nya skickas till dig med e-post, och vi sparar när det gjordes och om e-postmeddelandet skickades.
- Det mejlet går via Apple. Post för
foxsdr.comhanteras av Apples tjänst iCloud Mail, så din adress och meddelandet passerar deras servrar på vägen till dig, enligt deras villkor som vår e-postleverantör. Inget annat om dig skickas till dem. - Den hålls åtskild från statistiken. Anmälningar ligger i en egen fil, som bara kan läsas av kontot som kör servern; statistikloggen registrerar att en anmälan skedde och hur många funktioner som valdes, aldrig vem. Ett automatiskt test får bygget att misslyckas om en adress någonsin når statistikloggen.
- Om du anmäler dig igen med en adress som redan finns på listan ändras inte den posten. Ändringar görs från din egen testarsida. I stället skickas ett e-postmeddelande till adressen: dess privata länk om den är bekräftad, eller en ny kod om den inte är det, och aldrig oftare än en gång per 15 minuter.
- Vi sparar en kopia av det vi skickat till dig. Varje meddelande den här webbplatsen skickar till en testare – bekräftelsen och varje meddelande om en version – sparas med sin text, så att vi kan se vad som sades och om det kom fram. Kopian arkiveras under ditt interna id, inte din adress, och de personliga delarna av den (bekräftelsekoden eller -länken, och din egen hanteringslänk) tas bort innan den lagras, så att ett sparat meddelande aldrig kan användas för att uppträda som du. Kopiorna raderas tillsammans med resten av din post när du lämnar.
- Meddelanden mellan dig och oss sparas. Rutan Meddelanden i din testarportal är ett samtal med personen som bygger FoxSDR: det vi skriver till dig och det du svarar, vart och ett med tiden då det skrevs och, om du valde en, vilken av dina rapporter det gäller. Det sparas under ditt interna id, inte under din adress, och bara du (med din privata länk) och vi kan läsa det. Vi noterar också när du har haft våra meddelanden på skärmen, så att vi vet att de har kommit fram. Medan din sida är öppen frågar den efter nya meddelanden med några sekunders mellanrum, så att de visas så snart de skrivs, och den talar om hur länge sedan du senast använde den; så länge den fortsätter fråga, och en halv minut efteråt, och bara om du har använt den de senaste fem minuterna, vet servern att du är där. Det finns bara i dess minne och skrivs aldrig ner. Vi skickar inte e-post för varje meddelande: när vi skriver medan du är borta får du ett enda kort e-postmeddelande om att ett meddelande väntar, med din länk och utan själva meddelandet. Så länge det meddelandet är oläst kommer inget annat sådant e-postmeddelande på upp till 12 timmar, och aldrig inom en halvtimme efter det förra; och om du var på sidan när vi skrev men inte har sett meddelandet tio minuter senare, skickas e-posten då. En kopia av det sparas enligt beskrivningen ovan; när du skriver skickas ingen e-post alls. Samtalet sparas tills du lämnar eller ber oss radera det, och att lämna raderar allt.
- Sparas tills betaprogrammet avslutas, eller tills du ber om det. Ett mejl till adressen nedan tar bort dig och raderar posten – du behöver inte ange något skäl.
- Den rättsliga grunden här är ditt samtycke, som du ger genom att kryssa i rutan; formuläret skickas inte utan det.
Om du är betatestare och anger din testarkod i FoxSDR
Din testarsida (ovan) ger dig en privat hanteringslänk och, från den, en testarkod som du kan ange i själva FoxSDR, under SYSTEM → Testarkod. Det skiljer sig från den anonyma användningsrapporteringen som beskrivs ovan: användningsrapportering kan avsiktligt inte spåras till dig, medan en session som rapporteras med din testarkod är avsiktligt kopplad till din testarpost — det är precis poängen, så att vi kan se vilka funktioner och plugin de som faktiskt testar dem har provat. Den är avstängd om du inte anger en kod, och fältet är tomt som standard.
Koppla FoxSDR på din testarsida ger FoxSDR en separat appkod, så att din privata länk aldrig behöver skrivas in i programmet. Appkoden kan bara två saker: skicka de sessionsrapporter som beskrivs nedan, och skicka och läsa meddelandena i din meddelanderuta. Den kan inte se din adress, ändra din anmälan eller ta bort dig. Den sparas tillsammans med din testaranmälan; ett tryck på Ny länk upphäver den, varefter FoxSDR måste kopplas på nytt, och om du lämnar programmet raderas den tillsammans med resten av din anmälan.
Så länge en kod är angiven skickar FoxSDR ungefär en gång per session detta, och inget annat:
| Skickas | Exempel | Varför |
|---|---|---|
| Din testkod | appkoden från Koppla FoxSDR, eller token från din testarsida | Anger vilken testarpost den här sessionen tillhör. Den slås upp till ditt interna testar-id och lagras aldrig själv – samma regel som den här webbplatsen tillämpar på en kraschrapports installationsidentifierare. |
| Programversion | 0.99.42 | Vilken version du testar. |
| Plattform och arkitektur | windows, x64 | Som ovan. |
| När sessionen startade | 2026-09-25T14:32:00Z | Anger hur nyligen en funktion eller ett plugin faktiskt användes, och hur länge en rapport sparas — inte när rapporten nådde den här servern, vilket kan vara senare om FoxSDR väntar till nästa uppstart med att skicka den. Avvisas direkt om den påstås vara mer än några minuter in i framtiden, eller äldre än det ettåriga lagringsfönstret nedan. |
| Sessionslängd | 42 minuter | Hur länge sessionen varade, upp till ett dygn. |
| Använda funktioner | spectrum, adsb | Vilka av områdena på din testarsidas rutnät du faktiskt använde under sessionen – endast id:n som den här webbplatsen redan publicerar; allt annat avvisas direkt. |
| Använda tillägg, deras version och hur länge | adsb-decoder 1.8.0, 30 min | Vilka poster och versioner i tilläggskatalogen som verkligen används. Ett tillägg som installerats från en tilläggswebbplats du lagt till (från FoxSDR 0.99.74) rapporteras med sitt id och sin version som alla andra installerade tillägg; webbplatsens adress rapporteras inte. |
| Använda radioapparater | rtlsdr | Vilka drivrutinstyper, inte serienummer eller andra identifierande uppgifter. |
- Vad som sparas är ditt testar-ID (aldrig din kod eller adress), tidpunkten då rapporten godkändes, sessionsstarten som anges ovan, versionen, plattformen, sessionens längd samt de funktioner, plugin och radiomottagare som nämns ovan — en rad per godkänd session, sparad i upp till ett år och sedan automatiskt borttagen, räknat från när sessionen faktiskt startade, inte från när rapporten nådde den här servern.
- Det som visas publikt är ett antal, aldrig ett namn. Ett plugins kort på startsidan får en liten anteckning ”testad av N betatestare” när dess aktuella publicerade version har använts av minst två olika testare i sammanlagt minst tio minuter — därunder visas inget alls, och ingen sida anger vilka dessa testare är. Antalen på din egen testarsida och i adminpanelen är samma siffror, sedda mer i detalj; testare namnges aldrig för varandra.
- Din IP-adress används endast för att hålla sändningshastigheten på en rimlig nivå, och den skrivs aldrig till disk.
- Så stoppar du det: ta bort testarkoden från FoxSDR:s inställningar, så skickas inget mer. Du behöver inte lämna betaprogrammet för att göra det.
- Att lämna programmet raderar det. Att ta bort din post, från din testarsida eller genom att be oss, raderar varje sessionsrapport som redan finns registrerad för dig tillsammans med resten av din post — samma radering som resten av detta avsnitt beskriver, tillämpad även på dessa data.
- Den lagliga grunden är samma samtycke som täcker resten av din testarpost: att ange koden är en handling du själv utför, och inget skickas utan den.
Om du anmäler dig till nyheter via e-post
Nyhetssidan ber om en sak: din e-postadress. Den sparas så att vi kan mejla dig när det finns en ny version av FoxSDR, och då och då om vad som byggs. Den används inte till något annat och lämnas aldrig vidare till någon.
- Ingenting händer förrän du bekräftar. Anmälan skickar ett mejl med en sexsiffrig kod att skriva in på sidan. Tills den har angetts skickas inget annat, och en adress som inte har bekräftats inom en vecka raderas – av kod som körs på servern varje dag. Om någon annan skrev in din adress, strunta i mejlet.
- Varje mejl har en länk som tar bort dig från listan med ett enda tryck. När du lämnar raderas adressen från serverns fil, tillsammans med de kopior vi sparat av det som skickats till den; ingenting om den sparas.
- Det är en egen lista. En nyhetsprenumerant är inte betatestare: adressen sparas i en separat fil, som bara kan läsas av kontot som kör servern, och räknas inte och visas inte som testare. Om du också är testare får du varje meddelande en gång.
- Vi sparar en kopia av det vi skickat till dig, arkiverad under ett internt id i stället för din adress, med bekräftelsekoden och avregistreringslänken borttagna, precis som för testare.
- Det mejlet går via Apple, som beskrivs för testare ovan.
- Statistikloggen registrerar att en anmälan skedde, aldrig vem.
- Den rättsliga grunden är ditt samtycke, som du ger genom att kryssa i rutan; formuläret skickas inte utan det.
Kakor
| Kaka | Syfte | Livslängd |
|---|---|---|
fox_consent | Kommer ihåg om du godkände eller avböjde, så att du bara tillfrågas en gång | 1 år (godkänt) / 6 månader (avböjt) |
fox_vid | En slumpmässig identifierare så att ett återbesök känns igen som samma webbläsare. Sätts bara om du godkänner. | 400 dagar |
fox_sid | Grupperar ett besökstillfälle till en session. Sätts bara om du godkänner. | 30 minuters inaktivitet |
fox_beta | Håller din betatestarlänk så att du kan komma tillbaka till din egen post. Sätts bara om du anmäler dig som testare, och bara för att det är det du bad om – den mäter ingenting, så den ingår inte i statistikvalet ovan. Om du tar bort dig själv rensas den. | 400 dagar |
foxsdr_lang | Kommer ihåg språket du valde för den här webbplatsen, så att nästa sida också visas på det. Sätts bara när du själv väljer ett språk – med språkväljaren eller en länk som innehåller ?lang= – och innehåller inget annat än språkets kod, till exempel es. Den mäter ingenting, så den ingår inte i statistikvalet ovan. | 1 år |
fox_news_joined | Ingen kaka: en flagga i webbläsarens egen lagring, som aldrig skickas till oss. Efter en nedladdning frågar webbplatsen om du vill ha nyheterna via e-post; när du har anmält dig och bekräftat från den här webbläsaren slutar den fråga. Den innehåller inget annat än 1, och bara om du anmälde dig. | Tills du rensar den här webbplatsens data |
Om du avböjer sätts ingen identifierande kaka. Besök grupperas då med en dagligen roterande hash av din adress och webbläsare, som skiljer besökare åt för räkning och inte kan användas för att följa dig mellan dagar eller mellan webbplatser. Du kan ändra dig genom att rensa den här webbplatsens kakor och läsa in sidan igen.
Vilket språk du ser
Sidorna kan visas på andra språk än engelska. Vilket du får avgörs på servern för varje sida du begär, i den här ordningen: ett språk du själv valt (kakan foxsdr_lang ovan, eller ?lang= i länken); annars de språk din webbläsare säger att du föredrar, från dess Accept-Language-huvud; annars huvudspråket i det land din anslutning kommer från, som Cloudflare, nätverket framför den här webbplatsen, skickar med förfrågan som en landskod med två bokstäver (CF-IPCountry); annars engelska. Ingenting lagras för att göra det valet: huvudet och landskoden läses för det enda svaret och sparas inte för det. De är samma två saker som tabellen ovan redan anger som registrerade vid varje sidvisning, där landskoden används när vår egen adressuppslagning inte har något svar. Översättningarna är maskinöversättningar, och i detta meddelande och licenserna är det den engelska texten som är bindande.
Varför, och på vilken grund
Syftet är snävt: att veta hur många som hittar det här projektet, ungefär var de är, vad de kör det på och hur många som går vidare och laddar ned det. Det är vad som avgör om arbetet fortsätter och vad som byggs härnäst.
Serverns poster sparas på grundval av berättigat intresse av att förstå och skydda webbplatsen. De uppgifter som webbläsaren rapporterar och de identifierande kakorna sparas på grundval av ditt samtycke, vilket är varför de ligger bakom bannern och varför det inte kostar dig något på den här webbplatsen att avböja.
Hur länge det sparas, och vem som ser det
Poster sparas i 24 månader och raderas sedan. De ligger i en fil på servern bakom en lösenordsskyddad instrumentpanel som bara projektets underhållare kan öppna. Det finns inga andra mottagare och ingen överföring till tredjeland utöver den IP-uppslagning som redan beskrivits.
Två saker sparas kortare tid. Krasch- och hängningsrapporter raderas 90 dagar efter att felet de beskriver senast sågs, och användningsrapporterna som Cloudflare behandlar raderas efter tre månader. Var och en av de perioderna upprätthålls av kod som körs på servern varje dag, inte av att någon kommer ihåg att göra det.
Dina rättigheter
Om du befinner dig i Storbritannien eller EU kan du begära en kopia av det som finns om dig, begära att det rättas eller raderas, eller invända mot att det samlas in över huvud taget – inklusive de serverposter som inte är beroende av samtycke. Den praktiska identifieraren för att hitta dina poster är din IP-adress vid tiden för ditt besök, så ange den och ungefär när du besökte webbplatsen.
För programmet finns kontrollerna i själva programvaran, och de är tre:
- SYSTEM → Användningsrapportering stoppar användningsrapporten och femminutersslaget, och raderar installationsidentifieraren. Slår du på den igen senare får du en ny identifierare som inte kan kopplas till den gamla.
- SYSTEM → Diagnostik hindrar att krasch- och hängningsrapporter skrivs eller skickas.
- SYSTEM → Uppdateringar stoppar uppdateringskontrollen (i en Microsoft Store-kopia, frågan till Microsoft Store).
Rapporterna innehåller inget som kan kopplas till dig, så det finns inget att begära tillgång till; om du vill att en installationsidentifierare tas bort från rapporter som redan skickats, skriv till adressen nedan och ange den, så raderas den.
Barn. FoxSDR är ett tekniskt instrument för radiohobbyister. Det riktar sig inte till barn, det samlar inte in några personuppgifter från någon och samlar därför inte in några från barn.
Skriv till [email protected]. Du kan också klaga hos Information Commissioner's Office (ico.org.uk) om du anser att detta har hanterats dåligt.
Senast uppdaterad 28 september 2026, mot FoxSDR 0.99.42 – den version som den här webbplatsen för närvarande erbjuder, och den som varje påstående ovan kontrollerades mot i källkoden. FoxSDR ges ut av Steven Fox; skriv till adressen ovan med frågor om detta meddelande eller för att få en installationsidentifierare raderad från rapporter som redan skickats. Om detta meddelande någon gång slutar stämma med vad programvaran gör är det programvaran som har fel – webbplatsens insamling är implementerad i store.go och app.js, båda läsbara i webbplatsens egen källkod, och programmets egen lista levereras med det som PRIVACY.md med ett test som binder innehållet till den.