Поверителност и бисквитки
Тази декларация обхваща две отделни неща: приложението FoxSDR, което инсталирате, и този уебсайт. Те събират различни данни, по различни причини, и са описани поотделно по-долу — първо приложението, защото то е частта, която работи на вашия собствен компютър. Написана е така, че да е пълна, а не кратка: изброено е всяко поле, което съхранява което и да е от двете, включително тези, които повечето декларации пропускат.
Приложението: какво изпраща
Няма акаунт, лицензен ключ или активиране и FoxSDR никога не съобщава нищо за това, което слушате. То прави по собствена инициатива точно четири вида мрежови заявки: проверка за актуализации; анонимен отчет за използване, с малък сигнал „още работи“, докато приложението е отворено; доклад за срив или замръзване след повреда; и — само когато вие отворите магазина за плъгини или натиснете ПРОВЕРИ в него — заявка към каталога с плъгини. Всяка от тях е описана по-долу, поле по поле, и всяка може да бъде изключена. Три превключвателя ги управляват: СИСТЕМА → Актуализации, СИСТЕМА → Отчети за използване и СИСТЕМА → Диагностика. Никоя функция не зависи от това някой от тях да е включен и нищо не ви досажда, ако изключите някой.
Какво остава на вашия компютър
Вашите записи — както аудио, така и суров I/Q, — изображенията, които изграждат декодерите за SSTV и метеорологични спътници, всичко, което декодерите декодират, вашите отметки, честотни планове, настройки, позицията на приемника ви и инсталираните ви плъгини са файлове на вашия собствен диск. Нищо не ги качва и никоя честота, на която се настройвате, не напуска компютъра ви.
Проверката за актуализации
Веднъж при всяко стартиране приложението пита този сайт дали съществува по-нова версия. Цялата заявка е GET /api/update?v=, последвано от версията, която използвате — без идентификатор, без ID на инсталацията, без бисквитка и без нищо, което би могло да бъде свързано с по-късна заявка. Този сървър не прави аналитичен запис за нея: записват се само прегледи на страници и изтегляния на файлове, а крайната точка за актуализации не е нито едното, нито другото. Изключете я в СИСТЕМА → Актуализации и приложението никога повече не се свързва с услугата.
Отговорът може да носи и кратко съобщение от нас до хората със стара версия — например че дадена версия поправя нещо, заради което си струва да се актуализира — показано в същия банер за актуализации като бележките за версията. За това не се изпраща и не се записва нищо допълнително: съобщението пътува със същата заявка по-горе, по същия график и при същия превключвател.
Нищо не се изтегля и не се инсталира, освен ако не натиснете бутона. Ако го натиснете, инсталаторът се изтегля от този уебсайт по HTTPS и неговият SHA-256 се проверява спрямо контролната сума, публикувана от сървъра, преди на файла да бъде дадено име, под което нещо би могло да го стартира — а това изтегляне е обикновено изтегляне от този сайт, така че се записва като всяко друго, с IP адреса, приблизителното местоположение, браузъра и операционната система, описани в частта за уебсайта в тази декларация.
Копие, инсталирано от Microsoft Store, пита Microsoft Store вместо този сайт и никога него (от FoxSDR 0.99.53). Веднъж при всяко стартиране, когато е отметнато СИСТЕМА → Актуализации → Питай Microsoft Store за актуализации при стартиране, FoxSDR пита собствената услуга Store на Windows дали има по-нов пакет за това копие. В тази заявка не се изпраща нищо от FoxSDR — нито версия, нито идентификатор: Windows идентифицира приложението пред Microsoft чрез идентичността на пакета, която вече притежава, както при собствените фонови актуализации на Store. Отговорът остава в приложението. Нищо не се изтегля и инсталира, освен ако натиснете Инсталирай от Microsoft Store и потвърдите диалога на Windows; тогава изтеглянето и инсталирането са на Microsoft, съгласно декларацията за поверителност на Microsoft. Махнете отметката и Store не се пита.
Отчети за използване
От версия 0.53.0 има анонимен отчет за използване в СИСТЕМА → Отчети за използване. Той е включен по подразбиране и можете да го изключите — махнете отметката и отчитането спира веднага. При всяко стартиране се изпраща един отчет, описващ току-що приключилата сесия, и ето цялото му съдържание:
| Изпраща се | Пример | Защо |
|---|---|---|
| Идентификатор на инсталацията | 32 случайни шестнадесетични знака | Различава 100 потребители от един потребител, стартирал 100 пъти. Генерира се случайно на вашия компютър при първото стартиране, изтрива се, когато изключите отчитането, и никога не се извлича от вашия хардуер, мрежа или име. |
| Версия на приложението | 0.99.42 | Дали хората актуализират. Android алфата съобщава собствената си компилация като 0.98.1-android.4 — суфикс -android.N към номера на версията, от която е компилирана, така че отчетите ѝ никога не се бъркат с тези на инсталатора за Windows. |
| Операционна система | Windows 10.0.22631, Linux 6.8.0 или Android 14 | Кои платформи реално се използват. Операционната система и нейният номер на компилация, ядро или версия, никога името на компютъра ви или потребителския ви акаунт. Версията за Linux (0.99.42) и Android алфата (0.98.1-android.4) изпращат същите полета под същия превключвател. |
| Архитектура | x64 или arm64 | Както по-горе. |
| Как е бил инсталиран | installer | Едно от store (Microsoft Store), installer (инсталатора за Windows), appimage или tarball (тегленията за Linux и Raspberry Pi), или android. Чете се от работещата програма, никога не се записва при инсталация. Не може да различи foxsdr.com от GitHub, тъй като и двата обслужват едни и същи файлове. |
| Първо стартиране | 2026-09-29 | Денят — никога часът — в който е създаден вашият идентификатор за инсталация, по UTC. Изтрива се заедно с идентификатора, когато изключите отчитането. Показва новите потребители от отдавнашните. Празно за копия, чийто идентификатор е по-стар от FoxSDR 0.99.47. |
| Първа версия | 0.99.47 | Версията, която е създала идентификатора — от кое изтегляне сте започнали. Изтрива се заедно с него, както първото стартиране. |
| Брой стартирания | 12 | Дали софтуерът се използва повече от веднъж. |
| Брой сривове | 1 | Колко често се проваля. |
| Некоректни изходи по причина, от FoxSDR 0.99.69 | 1, 0, 0, 0 | Броячът на сривове по-горе отчита всяка сесия, приключила без нормално затваряне — срив, но също и прозорец, прекратен от Task Manager, или спиране на тока. Тези четири числа показват кое от тях: умрял (FoxSDR се е провалил: сривал е или прозорецът му е спрял да чертае и после е прекратен), убит (прекратен отвън, докато е работел нормално — Task Manager, taskkill, инсталатор, затворен конзолен прозорец), прекратен от системата (изход от профила или изключване) и неизвестен (нищо не е записано: Диагностиката е изключена или е спрял токът). Всеки некоректен изход е точно в една от групите. Това са голи числа, които никога не се нулират, като брояча на сривовете: не се добавя текст на доклад, код на изход, име на модул или час. FoxSDR решава на вашия компютър, при следващото стартиране, по докладите, които Диагностиката вече записва там; при изключена Диагностика нищо не се чете и всеки некоректен изход се брои за неизвестен. Времето на началото на предишната сесия се пази във файла с настройки, за да се разглеждат само докладите, записани след него; то никога не се изпраща. |
| Блокирания на дисплея, от FoxSDR 0.99.62 | 0 | Колко пъти прозорецът е замръзвал, защото драйверът на дисплея е чакал, а не FoxSDR — изключен монитор, нулиране на графичния драйвер, повторно свързване на сесия за отдалечен работен плот. Това е просто число, без стек, без име на драйвер и без час от денонощието: докладът за такова замръзване остава на вашия компютър и никога не се изпраща. Брои се само когато са включени и Отчети за използване, и Диагностика. За да бъде преброено и замръзване, което прекратите от лентата на задачите, числото се съхранява в малък файл с име telemetry-stalls до файла с вашите настройки, заедно с идентификатора на инсталацията ви, докато сървърът не приеме доклад, който го съдържа; изключването на отчетите за използване премахва файла. |
| Броячи на неуспехи, от FoxSDR 0.99.64 | radio_fail.rtlsdr.busy=2 | Колко пъти нещо тихо не е проработило, като броячи от фиксиран списък от видове: радио, което не се е отворило (драйверът и една от осем причини), липса на звуков изход, неуспешна актуализация или инсталиране на плъгин, плъгин, отказан при зареждане, запис, който не е могъл да започне — и колко радиа и звукови изхода са се отворили, за да има неуспехът с какво да се сравни. Думи от този списък и числа, никога име на устройство, сериен номер, път, честота или какъвто и да е текст на съобщение. Броят се само когато са включени и Отчети за използване, и Диагностика, а полето е празно при повечето хора. |
| Бавни кадри и възстановявания, от FoxSDR 0.99.65 | slow.rail.250ms=3,recovered.audio=1 | Същото поле носи още колко пъти прозорецът е бил бавен при чертането на кадър и в коя част от чертането — една от осемнадесет части от фиксиран списък и една от три продължителности: четвърт секунда, една секунда или пет секунди — както и колко пъти FoxSDR е срещнал повреда и е продължил сам, на едно от тринадесет места от фиксиран списък: звуковият изход е рестартиран, радио е отворено отново след повреда на драйвера, неуспешно запазване на настройките и така нататък. Думи от тези списъци и числа, никога име на устройство, сериен номер, път, честота или какъвто и да е текст на съобщение. Броят се само когато са включени и Отчети за използване, и Диагностика, а полето е празно при повечето хора. |
| Продължителност на сесията | 3600 секунди | Дали сесиите траят минути или часове. |
| Модел на SDR | uhd b200 | Кои радиоустройства да бъдат с приоритет. Серийните номера се премахват преди изпращане. |
| Използвани демодулатори и за колко време | WFM: 3000s | Кои режими оправдават по-нататъшна работа. |
| Отворени панели | map, decoded | Кои функции се използват. |
| Инсталирани плъгини | ADS-B 1.0.0 | Кои декодери оправдават по-нататъшна работа. Плъгин, който сте инсталирали от добавен от вас сайт за плъгини (от FoxSDR 0.99.74), е монтиран плъгин като всеки друг: името и версията му се виждат тук, а адресът на сайта — не. |
Това е пълният списък. Той се доставя с приложението като PRIVACY.md, а автоматизиран тест проверява полезния товар поле по поле, така че ново поле не може да бъде добавено, без този тест да се провали и без двата документа да бъдат обновени. Изключването на отчитането изтрива идентификатора на инсталацията, така че ако някога го включите отново, получавате нов, който не може да бъде свързан със стария.
Отчетът се изпраща при стартиране, като описва вече приключилата сесия, и никога при изход — мрежово извикване на излизане може да блокира приложение, което някой се опитва да затвори, а отчет, написан при изход, би се загубил точно при събитието, което най-много си струва да се преброи. Нищо от отговора не се чете и не се използва.
Броячите на неуспехи в пълнота (от FoxSDR 0.99.64). Полето е кратък текст от двойки kind=count, например radio_fail.rtlsdr.busy=2 — RTL-SDR, който два пъти не се е отворил, защото друга програма го е използвала. FoxSDR изгражда всеки вид от фиксирана таблица и не изпраща нищо, което не е в нея, а приемащият сървър отхвърля всичко, което не е в същата таблица. Когато причината се чете от казаното от драйвера, FoxSDR избира една дума от фиксиран списък и изхвърля изречението. За да бъде съобщен и неуспех в сесия, която после се срива, броячите изчакват в малък файл с име telemetry-health до файла с вашите настройки, заедно с идентификатора на инсталацията ви, докато сървърът не приеме доклад, който ги съдържа; изключването на отчетите за използване премахва файла.
Бавните кадри и възстановяванията в пълнота (от FoxSDR 0.99.65). Те са в същото поле и в същата форма kind=count. slow.rail.250ms=3 означава три кадъра на прозореца, всеки от които е отнел четвърт секунда или повече, в частта от чертането, която е колоната с менюто. Частта е една от осемнадесет думи, events, frame-start, pre-draw, plugin-panels, toolbar, rail, spectrum, patch, status, dialogs, polls, saves, render, present, recorder, plugins-reload, startup, other, а колко бавно е било е едно от три: 250ms — от четвърт секунда до под една секунда, 1s — от една секунда до под пет секунди и 5s — пет секунди или повече. Времето, което сте прекарали в отговаряне на запитване на Windows или в плъзгане или преоразмеряване на прозореца, се изважда и никога не се брои. recovered.audio=1 означава един случай, в който FoxSDR е срещнал повреда и е продължил сам. Думата е едно от тринадесет места, audio, reopen, srcthread, vendorcall, ringdrop, dspexc, cfgsave, enumchild, pluginapi, webroute, patchload, sdrenum, sdrlost, в този ред: звуковият изход спря и наблюдаващият таймер го рестартира; драйвер на радио на SoapySDR се повреди и FoxSDR отвори радиото отново сам; драйвер на радио така и не се върна от четене, когато приемникът беше спрян, и FoxSDR изостави нишката; извикване към модул на производител за SoapySDR не се върна навреме и беше изоставено; радиото подаваше извадки по-бързо, отколкото се вземаха, и някои бяха изпуснати; нишката за обработка на сигнала предизвика грешка, която беше прихваната, и приемникът спря; файлът с настройките не можа да бъде записан; помощната програма, която изброява радиата на SoapySDR, се срина и повредата беше ограничена; извикване от плъгин към FoxSDR предизвика грешка и получи отговор по подразбиране; обработчик на уеб интерфейса предизвика грешка и сървърът отговори с неуспех; запазен пач беше зареден с пропуснати връзки; услугата на SDRplay не отговори на сканиране и сканирането беше изоставено; сесията на SDRplay беше загубена и SDRplay е затворен до края на сесията. FoxSDR изгражда всяка от тях от фиксирана таблица и не изпраща нищо, което не е в нея, а приемащият сървър отхвърля всичко, което не е в същата таблица, така че никога няма име на устройство, сериен номер, път, честота или какъвто и да е текст на съобщение; един доклад носи най-много осемте най-лоши вида бавни кадри и осем вида възстановявания. Броят се при същите два превключвателя като броячите на неуспехи, само докато са включени и Отчети за използване, и Диагностика, чакат в същия малък файл с име telemetry-health до файла с вашите настройки, докато сървърът не приеме доклад, който ги съдържа, а изключването на отчетите за използване премахва файла.
Сигналът „още работи“
Отчет, който пристига, когато приложението стартира, може да каже кой го е стартирал, но никога кой все още го държи отворено. Затова, докато FoxSDR работи — и само докато отчитането на използването е включено, — то изпраща и едно много малко съобщение на всеки пет минути, съдържащо три полета и нищо друго:
| Изпраща се | Пример | Защо |
|---|---|---|
| Идентификатор на инсталацията | същите 32 шестнадесетични знака като по-горе | Така дванадесет сигнала от едно копие се броят като едно работещо копие, а не като дванадесет. |
| Версия на приложението | 0.99.42 | Така „работещи в момента“ може да се разбие по версии. |
| Маркер на сигнала | 1 | Казва на приемащата страна, че това е сигнал, а не отчет за сесия. |
Нищо от сесията не се изпраща заедно с него: без режими, без панели, без модел на радиото, без продължителности, без броячи. Сигналите се записват в отделен набор от данни, отделно от отчетите за сесии, така че нито един показател за използване не променя значението си. Същият превключвател спира и двете: изпращачът отказва да се активира без валиден идентификатор на инсталацията, а изключването на отчитането го изтрива, така че „изключено“ означава никакви сигнали. Сигнал, който все още се изпраща, когато е време за следващия, се пропуска, а не се поставя на опашка.
Къде отиват отчетите за използване
До Cloudflare Worker, управляван от този проект на https://telemetry.foxsdr.com, който записва горните броячи в набор от данни на Cloudflare Workers Analytics Engine. Cloudflare го обработва от наше име и го съхранява три месеца, след което той изчезва. Никой друг не го получава, не се продава, не се отдава под наем и не се споделя, а единственото, което се чете от него, са обобщени бройки, чрез същото защитено с парола табло, описано по-долу. Изходният код на Worker се публикува заедно с приложението, така че можете да прочетете какво прави приемащата страна. Докладите за сривове не отиват там — те отиват към собствения сървър на този сайт, описан по-долу.
Доклади за сривове и замръзвания
Ако FoxSDR се срине или спре да отговаря, то записва доклад, описващ повредата, в %LOCALAPPDATA%\FoxSDR\crashes\ на вашия собствен компютър и изпраща текста на доклада при следващото стартиране — никога от самата повреда, защото програма, която току-що се е повредила, не може безопасно да отвори мрежова връзка. Той отива към POST /api/crash на този уебсайт — не към Cloudflare и не към трета страна — и е анонимен: няма акаунт, лицензен ключ или нещо, с което да се влиза.
Превключвателят е СИСТЕМА → Диагностика и той управлява еднакво записването и изпращането: когато е изключен, не се записва доклад, не се създава папка и никога не се осъществява връзка. Това е различен превключвател от този за отчетите за използване. Изключването на отчетите за използване не спира доклада за срив — то изпразва полето за идентификатора на инсталацията в него, защото тогава идентификатор не съществува, а докладът за срив никога не създава такъв (вижте последния ред на таблицата по-долу). До тази версия горната декларация посочваше грешния превключвател; софтуерът винаги е използвал „Диагностика“, а сега двете казват едно и също.
Това е цялото съдържание на един доклад:
| Изпраща се | Пример | Защо |
|---|---|---|
| Какво се случи | crash или hang | Замръзването и сривът са различни повреди. |
| Сигнатура на повредата | cascade.exe+0x1a2b/adsb.dll | Групира една и съща повреда, докладвана от много хора, в един запис, така че сто доклада за един бъг са едно нещо за поправяне, а не сто. |
| Версия на приложението, къмит и ID на компилацията | 0.61.0, 28fa1c2 | В коя компилация се е случило и кои символи ѝ съответстват. |
| Модул и отместване на повредата | cascade.exe, 0x1a2b | Къде в програмата е станала грешката. |
| Операционна система и архитектура | Windows 11, Linux или Android 14, x64 или arm64 | Повредите често са специфични за една платформа. Докладът от Linux или Android съдържа същите полета; стековите рамки назовават GNU build id на повредената библиотека вместо PDB id, тъй като нито една от двете платформи не се компилира с MSVC. |
| Какъв вид повреда е била | access violation, 0xC0000005 | Собственият ред с причина на доклада и кодът на изключението в Windows. По-конкретно, именно това казва, че една повреда е била поета — приложението я е преживяло, — а не срив; без него двете изглеждат еднакво. Код и фиксирано изречение, никога съдържание. |
| В коя част от чертането на прозореца е бил замръзването, от FoxSDR 0.99.64 | rail | Само в доклад за замръзване: коя част от чертането на прозореца е била в ход, когато е спрял, като една дума от фиксиран списък от деветнадесет: events, frame-start, pre-draw, plugin-panels, toolbar, rail, spectrum, patch, status, dialogs, polls, saves, render, present, recorder, plugins-reload, startup, user-wait, other. Тя назовава част от програмата, никога плъгин, файл, радио или честота. Същата дума се изпраща в причината на доклада, като фиксираното изречение freeze: the frame was in rail; дума, която не е в списъка, се отхвърля и не се изпраща. Докладът за замръзване преди не изпращаше никаква причина. |
| Заредени плъгини и техните версии | ADS-B 1.1.0 | „Срива се само когато е зареден плъгинът ADS-B“ е описание на повреда; „понякога се срива“ не е. |
| Стекове на нишките | cascade.exe+0x1a2b за всяка рамка | Стекът е самата повреда. Това са само имена на модули, build id и числови отмествания — без пътища до изходния код, без променливи, без съдържание на паметта. От FoxSDR 0.99.63 рамка в доклад за замръзване, която се намира в модул, зареден след стартирането на FoxSDR (графичен драйвер, който системата е заредила повторно, DLL на производител, разширение на обвивката), се изпраща като името на този файл (никога път до папка) и като отместване, а преди това се изпращаше само като адрес. Името на файл може да покаже какъв софтуер е инсталиран на компютъра ви; това е същият вид име, който тези доклади вече съдържаха за драйвер, зареден при стартиране. |
| Краят на журнала на сесията | opened rtlsdr | Последните редове, които приложението е записало в дневника — обикновено това, което е правило, когато е дало грешка. Това е собственият дневник на приложението: в него се записват промени в състоянието — отворен източник, зададена честота, стартиран плъгин — но никога съдържание на сигнал и никога името или пътят на файл, който сте отворили. Той съдържа и онова, което е съобщил драйверът на радиото, и онова, което библиотеките му са отпечатали в стандартния поток за грешки. Преди която и да е негова линия да напусне компютъра ви — както собствените редове на приложението, така и тези на драйвера — тя се изчиства: серийните номера и специфичната за устройството част на USB идентификаторите се заменят с <stripped>, името на акаунта в път до файл — с <user>, а всичко в единични кавички, като имената, които давате на възлите и на високоговорителите в пача, — с '<name>'; от FoxSDR 0.99.59 всеки мрежов адрес и всяко име на компютър или хост се заменя с <host>, като номерът на порта след него се запазва, а номерът на сериен порт — с # (COM#, /dev/ttyUSB#); във всеки ред, който споменава херц, честота, настройка, център, диапазон, отместване, носеща честота, предварителна настройка или предаване, всяко число се заменя с #, освен ако не е отбелязано като честота на дискретизация, време, ниво, размер или брой, не е версия, идентификатор или код за грешка или не е част от име като R820T; а редовете, в които USB драйверът изброява устройствата, включени към компютъра ви, се пропускат, като остава един ред, който казва колко са били. От версия 0.99.59 приложението изобщо не записва името на звукова карта в дневника си, защото това име често е избрано от човек. От версия 0.99.61 приложението записва в дневника си и кога звуков изход се отваря или бива отказан: модела на аудио драйвера, разположението на каналите и честотата на дискретизация, но никога името на звуковото устройство. |
| Контекстни бележки | mode: WFM, sampleRate: 2400000 | Няколко бележки ключ/стойност, които приложението прикачва: режимът, източникът (генератор, I/Q файл или истинско радио), честотата на дискретизация, дали е било отворено устройство, моделът на SDR с премахнати серийни номера, колко секунди е работило приложението и дали повредената нишка е изпълнявала собствения код на FoxSDR или код на радиодрайвер. sampleRate е честотата на дискретизация, а не честота на настройка. |
| Честотна корекция, от FoxSDR 0.99.56 | ppm: +1.5 by retuning | Дали корекцията на кварца на радиото е включена, стойността ѝ в части на милион и как се прилага (in the radio или by retuning), или off. Тя описва кварца на радиото, а не честота: не казва нищо за това, което сте слушали. |
| DLL файлове на друг софтуер в процеса, от FoxSDR 0.99.69 | foreignModules: NahimicOSD.dll, RTSSHooks64.dll | Имената на файловете — никога папка, версия или друго за файла — на компоненти на други програми, заредени във FoxSDR: всеки зареден модул, който не е на Windows, не е част от FoxSDR (програмната му папка, плъгините, C++ runtime) и не е драйверен файл на производител на SDR, който FoxSDR зарежда нарочно. Това разкрива имената на DLL файлове на друг софтуер — екранна надписка на аудиодрайвър, брояч на кадри, куката на антивирус или инструмент за въвеждане — а името на файл може да покаже какъв софтуер е инсталиран на компютъра ви, затова е посочено тук. Файловете в папката на Windows се изключват, за да е списъкът кратък и смислен. Той съществува, защото докладите за прекратяване на FoxSDR в предаването към графичния драйвер, където се закачат програми, вмъкващи се във всеки процес, не позволяваха да се разбере какво друго има в процеса. Същите имена се записват в дневника на приложението (modules: 2 foreign - ... веднъж при стартиране, module arrived: ... при по-късно зареждане), така че тези редове могат да се появят в края на дневника на сесията по-горе. Стойността е празна, когато докладът не я съдържа, и тук се пазят най-много 520 знака от нея. |
| 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. |
| Идентификатор на инсталацията | 32 случайни шестнадесетични знака, или празно | Използва се за ограничаване на честотата на заявките и след това се изхвърля: идентификаторът на инсталацията не се съхранява. Компютър, заседнал в цикъл от сривове, не бива да може да залее сървъра, а различаването на един компютър от сто е единственото, за което това изобщо се чете. Тук той никога не се записва на диск. Ако отчетите за използване са изключени, се изпраща празно — тогава няма идентификатор, а докладът за срив никога не създава такъв. |
Поправено във FoxSDR 0.99.33. Преди 0.99.33 описаното по-горе почистване се прилагаше само към редовете на драйвера на радиото, не и към собствените на приложението, и затова няколко от собствените редове на приложението можеха да попаднат в доклад за срив или замръзване, носейки честотата, която сте поискали или на която сте предавали, етикета на patch радио (който може да включва серийния му номер), имената, които сте дали на части на patch, първия ред текст, получен от декодер на страницата на patch, и списъка с USB устройства, изведен от USB драйвера, заедно със серийните им номера. Това противоречеше на това известие. От 0.99.33 всеки ред се почиства, преди да напусне компютъра ви, а тези редове в дневника вече изобщо не съдържат тези стойности.
Поправено във FoxSDR 0.99.59. Това известие винаги е казвало, че докладът за срив не съдържа име на компютър и че приложението никога не изпраща вашия IP адрес, но до версия 0.99.59 изчистването не търсеше мрежови адреси или имена на хостове. Затова няколко реда от дневника можеха да попаднат в доклад за срив или замръзване, или в дневника с диагностика на доклад за грешка, носейки адреса или името на хоста, които сте въвели за мрежово радио като ADALM-Pluto, или адрес или уеб адрес, записан от драйвер на мрежово радио; те можеха да носят и номера на сериен порт, а в няколко реда с грешки — името на звукова карта. Това противоречеше на това известие. От версия 0.99.59 адресите и имената на хостове се заменят, а номерата на серийни портове се маскират, както е описано по-горе, собствените редове на ADALM-Pluto вече не отпечатват неговия адрес и нито един ред от дневника не назовава звукова карта.
Докладът за срив не съдържа никаква честота, нищо декодирано, никакъв път до файл, никакво потребителско име, никакво име на компютър, никакъв мрежов адрес и никакво местоположение. Докладите се съхраняват на собствения сървър на този сайт, зад същото защитено с парола табло като всичко останало, и се пазят 90 дни след последната поява на повредата, след което се изтриват — същите три месеца, за които се пазят и отчетите за използване. Първият доклад за всяка повреда се пази изцяло, заедно с още по един доклад за всяка компилация, в която повредата продължава да съществува, до три; всеки друг доклад за същата повреда се преброява, а не се съхранява. Автоматизиран тест обвързва с горната таблица както това, което крайната точка приема, така и това, което записва на диск, в двете посоки, така че поле не може да бъде добавено към нито едното, без да се промени и тази таблица.
Пълен дъмп на паметта никога не се изпраща, при никаква настройка. Дъмпът на паметта е копие на паметта на програмата и може да съдържа имена на файлове, заглавия на прозорци и данни от приетия сигнал. Изключен е по подразбиране; ако го включите в СИСТЕМА → Диагностика, .dmp се записва до текстовия доклад, само локално, а програмата за качване отваря файлове с имена crash-*.txt и hang-*.txt и нищо друго.
Доклад на пазача, от FoxSDR 0.99.64. Някои краища нищо вътре във FoxSDR не може да докладва: срив, който прескача всички обработчици, препълване на стека, прозорец, замръзнал толкова здраво, че и наблюдателят за замръзвания е заседнал. Затова в интерактивна сесия при включена Диагностика FoxSDR стартира второ копие на собствената си програма, без прозорец, което само чака първото да завърши — пазачът. Той може да прочете как е приключил FoxSDR (кода му за изход и кога е стартирал и спрял), малка споделена страница с числа, които FoxSDR поддържа актуални (на какъв етап е, колко кадъра е начертал и кога е начертал последния, коя част от чертането на прозореца е в ход, дали е отворено меню или прозорецът се влачи), и края на журнала на сесията, почистен като при всеки друг доклад. Той не чете нищо от паметта на FoxSDR и не прави дъмп, а страницата с числа няма място за текст, така че не може да съдържа име, път, честота или адрес. Когато FoxSDR приключи, пазачът пише един доклад в същата папка и в същия формат като останалите — никакъв, ако FoxSDR е приключил нормално или вече е написал такъв — чиято причина е съставена само от фиксирани думи и цели секунди, а редовете за приемника са заменени с фиксирано изречение, че не може да ги чете. Той сам не изпраща нищо: докладът му тръгва при следващото стартиране, при същия превключвател и същите ограничения като всеки друг, и само ако FoxSDR се е сринал, прозорецът му е спрял да се чертае или е приключил преди първия кадър. Край отвън (Диспечер на задачите или скрипт) и край, защото Windows е затворил сесията ви, остават на вашия компютър и никога не се изпращат. При изключена Диагностика пазачът не се стартира.
Колко често. Най-много пет доклада на ден от един компютър и една и съща повреда само веднъж на ден, колкото и пъти да се случи — и двете ограничения се пазят във вашия собствен файл с настройки, така че компютър в цикъл от сривове спира да изпраща сам, а не защото му е казано, а доклад, който не успее да се изпрати, се опитва отново при следващите стартирания най-много три пъти и след това се оставя. Превръщането на отместване от доклад обратно в име на функция изисква дебъг базата данни от точно тази компилация, която остава на нашите собствени компютри и никога не се качва никъде: разшифроването става локално, а не на сървъра.
Какво приложението никога не изпраща
- Честотите, на които се настройвате. Това, което някой слуша, е най-чувствителното нещо, което този софтуер знае, и то никога не се събира. В Обединеното кралство прихващането на съобщение, което нямате право да приемате, или разкриването на съдържанието му е престъпление по раздел 48 от Закона за безжичната телеграфия (Wireless Telegraphy Act) от 2006 г.
- Имената или пътищата на файловете, които отваряте. Името на файла на даден запис е ваши данни — то може да назовава услуга, място или честота. Когато I/Q файл не успее да се отвори отново, журналът записва, че не се е отворил; името остава на екрана, където вече го знаете.
- Нищо декодирано — съобщения от пейджъри, самолети, кораби, изображения, спътников трафик.
- Вашата позиция или позицията на каквото и да е, което приемате — включително зададената от вас позиция на приемника, която никога не се изпраща в никакъв отчет. Вижте по-долу.
- Вашият IP адрес или местоположение, извлечено от него. Заявката неизбежно достига до сървъра от някакъв адрес, защото така работи интернет; крайната точка за отчети за използване не чете информация за връзката и не води журнали на заявките. От FoxSDR 0.99.59 мрежов адрес или име на хост в редовете от дневника, които носи един доклад, също се заменя с
<host>. - Серийни номера на хардуера. Моделът на радиото е полезен; серийният номер идентифицира вашето конкретно радио и се премахва преди изпращане.
- Вашето име, името на компютъра ви, потребителския ви акаунт, какъвто и да е път до файл или името на звукова карта.
- Пълен дъмп на паметта.
Позицията на приемника и GPS
FoxSDR трябва да знае къде е приемникът, защото всяко разстояние и азимут на картата и на радарния екран се измерват от него. Можете да въведете позицията ръчно, да я посочите с щракване на картата или да я прочетете от GPS приемник на сериен порт.
Позицията остава на вашия компютър. Тя се съхранява във вашия собствен файл с настройки и никога не се изпраща — нито в отчета за използване, нито в сигнала „още работи“, нито в доклад за срив, никъде. Прочитането ѝ от GPS е нещо, което започвате вие: посочвате порта и натискате „Вземи позицията от GPS“. Портът се държи само докато пристигне първият фикс и най-много 60 секунди. Диагностичният журнал записва името на порта, скоростта в бодове, броя на изреченията и спътниците и евентуални грешки — никога позицията и никога текста на NMEA изречение. Поле за порт, съдържащо нещо, което не прилича на порт, се записва като вид и дължина („въведен път до устройство, 27 знака“), така че път до файл с потребителското ви име в него не може да попадне в доклад. Два автоматизирани теста гарантират това: единият спрямо кръговия буфер на журнала, другият спрямо журналния файл, записан от истинското приложение.
Каталогът с плъгини
Връзка с каталога се осъществява, когато отворите прозореца на магазина за плъгини (първия път в една сесия, от FoxSDR 0.99.16 насам), всеки път, когато натиснете ПРОВЕРИ в него, и когато решите да инсталирате нещо. Нищо не се изтегля при стартиране, прозорецът не се отваря отново сам и нито един плъгин никога не се актуализира сам. Каталогът е файл, публикуван в GitHub (raw.githubusercontent.com), така че тази заявка достига до сървърите на GitHub, които — като при всяка уеб заявка — виждат адреса, от който е дошла. С нея не се изпраща никакъв ваш идентификатор: без ID на инсталацията, без бисквитка, без нищо, което би могло да бъде свързано с отчет за използване. Всяко изтегляне е по HTTPS, с ограничен размер, отхвърля се при пренасочване към друг хост и се проверява спрямо sha256, публикуван в каталога, преди да му бъде позволено да стане файл. Източникът е настройка: можете да го насочите към друг каталог или към index.json на собствения си диск, като в този случай изобщо не се прави мрежова заявка.
Сайтове за плъгини, които добавяте
От FoxSDR 0.99.74 можете да добавяте каталози с плъгини на други хора, наречени сайтове за плъгини, и всеки добавен от вас е още един адрес, с който приложението се свързва. Само вие добавяте такъв: натиснете САЙТОВЕ в горната лента на магазина за плъгини, поставете адрес и отметнете полето, което казва, че FoxSDR не е прегледал сайта. FoxSDR сам не добавя нищо и не се свързва с нищо. Сайтът се чете в същите два момента като обществения каталог — първия път, когато отворите магазина в една сесия, и всеки път, когато натиснете ПРОВЕРИ — и му се дават няколко секунди да отговори. Заявката съдържа адреса, който сте посочили, и нищо друго от FoxSDR: без идентификатор, без бисквитка и с име на клиент (cascade-plugin-repo/1.0), което е еднакво за всяко копие. Така сайтът вижда вашия IP адрес, както всеки уеб сървър.
Файловете и картинките на плъгин от сайт се изтеглят само от същия хост като неговия каталог и само когато натиснете ИЗТЕГЛИ или АКТУАЛИЗ. на някой от неговите плъгини или отворите страницата му. Каталогът на всеки сайт се пази непроменен в папката с плъгини на вашия собствен диск, чете се отново при стартиране и се изтрива, когато натиснете ПРЕМАХНИ до сайта; самите адреси са във вашия файл с настройки. Броячите на неуспехи за каталога с плъгини и за инсталиране на плъгини (вж. раздела за отчета за използване по-горе) са на обществения каталог: сайт, който не може да бъде достигнат, или негов плъгин, който не успее да се инсталира, не се брои.
Приставки, предлагани само в някои държави
Някои приставки се предлагат само на връзки от определени държави. Когато приложението изтегля каталога с приставки, то иска от този уебсайт и кратък регионален списък, а приставка от този списък се изтегля от този уебсайт, а не от GitHub. За да реши какво да отговори, уебсайтът прочита двубуквения код на държавата, който Cloudflare предава заедно със заявката (CF-IPCountry) и който Cloudflare определя по адреса, от който идва заявката. Кодът на държавата и адресът се използват само за този един отговор и не се съхраняват, не се изпраща никакъв ваш идентификатор и тези заявки не се записват в статистиката на този уебсайт. Връзка, чиято държава не може да бъде определена, или такава, която идва през Tor, получава празен списък. VPN променя държавата, която уебсайтът вижда. Регионалният списък не се иска, когато сте насочили магазина към друг каталог.
Плъгин, който може да предава
От FoxSDR 0.99.74 плъгин може да поиска да изпраща звук през вашия предавател; магазинът за плъгини и прозорецът „Монтирани модули“ тогава го показват като „Може да предава чрез FoxSDR“. Той може да включи предавателя само ако сте натиснали РАЗРЕШИ ПРЕДАВАНЕТО на страницата му и сте активирали страницата ПРЕДАВАНЕ за 5, 15 или 60 минути. Разрешението се съхранява във вашия файл с настройки по името на файла на плъгина и никога не се изпраща никъде; прозорецът на активиране изобщо не се съхранява. Диагностичният дневник на вашата машина записва включванията — tx: armed 15 min, tx: plugin <name> keyed, tx: plugin <name> unkeyed (<why>) и tx: disarmed (<why>) — като декларираното име на плъгина, причина от фиксиран списък и брой минути, никога честота, а тези редове се почистват като всеки друг ред от дневника, когато се съставя отчет или диагностичен пакет. Собствените отчети на FoxSDR нямат поле за нищо от това.
Набори орбитални елементи за спътниците
Плъгинът за спътници поддържа наборите си орбитални елементи актуални, като ги изтегля от източниците, посочени в неговия satellite.cfg, на всеки дванадесет часа, докато е зареден. Този сайт пази копие на тези набори елементи на GET /tle/all.tle — групите за станции, любителски и метеорологични спътници на CelesTrak плюс NOAA 15, 18 и 19, обновявани тук на всеки дванадесет часа — и „Спътници“ 1.0.4 и по-новите версии сами преминават към този файл, когато всеки източник в satellite.cfg се провали, така че компютър, който CelesTrak отказва да обслужи, пак може да ги проследява. Не е нужно файлът да посочва този сайт, за да стане това; ред fallback-url none в него изключва резервния вариант, а refresh-hours 0 изключва всяко изтегляне. Заявката не съдържа идентификатор, ID на инсталацията или бисквитка и този сървър не прави аналитичен запис за нея — както при проверката за актуализации, записват се само прегледи на страници и изтегляния на файлове, а огледалното копие не е нито едното, нито другото. Самите набори елементи са на CelesTrak (celestrak.org) и всеки отговор го казва.
Справки в регистъра на самолетите
Незадължителният плъгин Aircraft Info показва кой е всеки самолет на картата — регистрацията, типа и оператора му. Приложението никога не прави тази заявка; именно инсталирането на този плъгин я разрешава. От версия 1.1.0 плъгинът първо пита този сайт на GET /api/aircraft/<address> и изпраща само шестцифрения шестнадесетичен ICAO адрес на самолета — номера, който самият самолет излъчва — без идентификатор, без ID на инсталацията и без бисквитка. За всеки самолет се пита веднъж и отговорът се пази на вашия собствен компютър, така че не се пита отново. Само когато този сайт не познава даден самолет или не е достъпен, плъгинът пита api.adsbdb.com, безплатна услуга на трета страна, както винаги са правили по-ранните версии. Наборът от самолети, които един приемник чува, е грубо указание къде се намира той, затова плъгинът е незадължителен и го казва, преди да го инсталирате.
Какво пази този сървър за една справка: нищо за отделната заявка. Не се прави аналитичен запис и не се записва нито адресът на самолета, нито адресът, от който е дошла заявката. Единственият запис са пет текущи сбора от последното стартиране на сървъра — справки, намерени, ненамерени, невалидни и ограничени по честота, — които таблото показва. За да не може никой да копира таблицата изцяло, всеки свързващ се адрес има квота за справки, пазена в паметта, точно както при другите крайни точки тук, и никога не се записва на диск; тя се забравя при рестартиране на сървъра или когато се следят повече от десет хиляди адреса, което от двете настъпи по-рано.
Отговорите идват от базата данни за самолети на OpenSky Network (opensky-network.org): за всеки самолет — регистрацията, обозначението на типа, производителя, модела и, където е записан, оператора. OpenSky предлага тази база данни такава, каквато е, и моли потребителите да цитират: Matthias Schäfer, Martin Strohmeier, Vincent Lenders, Ivan Martinovic и Matthias Wilhelm, „Bringing Up OpenSky: A Large-scale ADS-B Sensor Network for Research“, в Proceedings of the 13th IEEE/ACM International Symposium on Information Processing in Sensor Networks (IPSN), април 2014. Регистрираният собственик, записан там, не се копира на този сайт и не се предоставя от него, защото за частен самолет това е име на човек; копира се само операторът, който е авиокомпания, военновъздушни сили или фирма.
Интерфейсът в браузъра
FoxSDR може да предоставя интерфейса си по HTTP на други компютри във вашата собствена мрежа. Това е изключено по подразбиране и обвързано с вашия собствен компютър, докато не го промените; за всяко обвързване извън него се изисква парола, а без нея по-широкото обвързване се отказва, вместо да се отвори. Паролите се съхраняват хеширани (PBKDF2-HMAC-SHA256), а сесиите се анулират при всяка промяна на настройките. Съзнателно няма TLS, защото приложението не свързва криптографска библиотека и няма да претендира за транспортна сигурност, която не може да осигури — поставете пред него обратен прокси или частен тунел и никога не го пренасочвайте директно към интернет чрез port forwarding. Всеки, на когото дадете достъп, може да вижда и управлява това, което прави приемникът.
Заявки за функции, изпратени от приложението
Приложението има поле „Заяви функция“ на главната си страница, където можете да напишете какво бихте искали да прави, и да натиснете „Изпрати“. Нищо не се изпраща, докато не натиснете този бутон, това никога не става автоматично, а заявка, която не успее да стигне до нас, не се поставя на опашка и не се опитва отново във фонов режим — написаното остава в полето, само в паметта, за да натиснете „Изпрати“ отново, и никога не се записва в конфигурационния файл или в журнала. Ето цялото съдържание на една заявка:
| Изпраща се | Пример | Защо |
|---|---|---|
| Какво сте написали | Please add a squelch control to the FLEX decoder | Самата заявка: от 10 до 100000 знака. Управляващите знаци се премахват преди съхранение; новите редове се запазват. |
| Контакт, ако сте дали такъв | [email protected] или позивна | По избор, до 120 знака, за да можем да зададем допълнителен въпрос. Оставете го празно и заявката няма да съдържа нищо, което би могло да ви идентифицира. |
| Версия на приложението | 0.99.42 | От коя компилация е дошла заявката. |
| Операционна система | windows, linux или android | Коя платформа я е изпратила. |
| Архитектура | x64 или arm64 | Както по-горе. |
| Номер на схемата | 1 | Версията на договора за формата на данните, така че бъдеща промяна на формата да не може да бъде сбъркана с някое от горните полета. |
Тя отива към POST /api/feature-request на този уебсайт. Вашият IP адрес се използва само за да се ограничи честотата на изпращане до разумна и никога не се записва на диск — действително пазеният запис е вашето съобщение, адресът ви за контакт, ако сте дали такъв, версията на приложението, платформата, архитектурата и приблизителната ви държава, когато нашата справка може да я определи от връзката, и нищо друго. Чете се от поддържащия проекта в административното табло зад същата парола като всичко останало тук и се пази, докато не бъде изтрита от това табло или докато не поискате. Заявка, по която е взето отношение — добавена във FoxSDR или получила отговор по друг начин, — може да бъде архивирана там, вместо изтрита, за да може проектът да следи какво е поискано и какво е изградено; архивираната заявка продължава да се пази, с всичко изброено по-горе. Ако сте дали адрес за контакт и искате заявката да бъде изтрита, пишете на адреса по-долу и цитирайте достатъчна част от изпратеното, за да може да бъде намерена.
Доклади за грешки и недоволство, изпратени от приложението
Точно под „Заяви функция“ приложението има поле „Докладвай грешка / недоволство“, където казвате или че нещо не работи, или че има нещо, което не ви харесва, и натискате „Изпрати“. То работи точно като полето за заявки за функции: нищо не се изпраща, докато не натиснете този бутон, нищо не се поставя на опашка и не се опитва отново във фонов режим, а написаното остава само в паметта — никога в конфигурационния файл, никога в журнала. Това не е доклад за срив, макар дневникът с диагностика, описан по-долу, да преминава през същия филтър за изчистване и може да съдържа част от това, което съдържа докладът за срив. Ето цялото съдържание на един доклад:
| Изпраща се | Пример | Защо |
|---|---|---|
| Дали е грешка или недоволство | bug или dislike | Изборът, който сте направили в горната част на полето: нещо, което не работи, или нещо, което работи както е замислено, но бихте предпочели да не е така. |
| Какво сте написали | The waterfall freezes when I change the sample rate | Самият доклад: от 10 до 100000 знака. Управляващите знаци се премахват преди съхранение; новите редове се запазват. |
| Контакт, ако сте дали такъв | [email protected] или позивна | По избор, до 120 знака, за да можем да зададем допълнителен въпрос. Оставете го празно и докладът няма да съдържа нищо, което би могло да ви идентифицира. |
| Версия на приложението | 0.99.42 | От коя компилация е дошъл докладът, за да не се гони отново вече поправен бъг. |
| Операционна система | windows, linux или android | Коя платформа я е изпратила. |
| Архитектура | x64 или arm64 | Както по-горе. |
| Номер на схемата | 1 | Версията на договора за формата на данните, така че бъдеща промяна на формата да не може да бъде сбъркана с някое от горните полета. |
| Дневник с диагностика, от FoxSDR 0.99.43 | 0.99.43 windows x64, Ettus B200 — recent log lines, serials/frequencies/paths scrubbed | Отметнато по подразбиране, когато докладвате грешка, и без отметка по подразбиране за недоволство — можете да промените всяко от тях, преди да натиснете Изпрати. Той съдържа версията на приложението, вашата операционна система, кой радиоприемник е бил използван, кратко резюме на вашите настройки и най-новите редове от собствения дневник на приложението, преминали през същия филтър за изчистване, през който минава опашката на дневника в доклад за срив: серийни номера и USB идентификатори се заменят, всяко число, свързано с честота, се заменя, всичко в единични кавички се заменя, мрежовите адреси и имената на хостове се заменят и номерата на серийни портове се маскират (от FoxSDR 0.99.59), а името на акаунта в път до файл се премахва. Този сървър повтаря последната от тези проверки, в случай че нещо е пропуснато. Той се пази и изтрива заедно с останалата част от доклада, при същите условия като всичко по-горе. От FoxSDR 0.99.61 резюмето на настройките ви казва също дали е отворен звуков изход и чрез кой модел аудио драйвер, силата на звука, дали звукът е заглушен и от кого (вие, плъгин за декодиране или клавишът за предаване; плъгинът се описва, но никога не се назовава), както и нивото на скуелча, дали е отворен и какво ниво на сигнала оценява, което е ниво, а не честота. То никога не съдържа името на звуковото ви устройство или честотата, на която сте настроени. От FoxSDR 0.99.62 съдържа и още три неща: последните редове (най-много 80) от дневника на предишната сесия или думи, които казват, че няма какво да се прочете; по един ред за всеки от десетте най-нови доклада за срив или замръзване на вашия компютър, с посочване дали е бил срив, замръзване или блокиране на дисплея, преди колко време е бил записан, коя версия го е записала, колко дълго е работила тази сесия, колко дълго прозорецът е бил блокиран или причината и кодът на срива, каква е неговата сигнатура на повредата и какво се е случило с изпращането му, без стек, без редове от дневника, без списък с модули и без имена на файлове или пътища, взети от тези доклади; и ред, който казва колко радиоустройства работят на страницата „Пач“ и какъв вид драйвер има всяко от тях, никога името, серийния номер или адреса на радиото, името на запис или честота. Всеки ред от предишния дневник и от списъка с доклади минава през същия филтър за изчистване. При изключена Диагностика дневникът с диагностика няма нито дневника на предишната сесия, нито списъка с доклади и нищо от това не е част от доклада за срив или замръзване, който FoxSDR изпраща сам. |
| Доклад, който сте поставили, от FoxSDR 0.99.69 | sentinel:outside, written by 0.99.66, and the report | Само когато е приложимо. Ако съобщението, което сте написали или поставили, съдържа доклад на FoxSDR за срив, замръзване или стража — текстът, който държи файл с доклад в папката с доклади и който хората понякога поставят на ръка — приложението го разпознава, казва ви го на страницата, преди да натиснете „Изпрати“ („Докладът беше разпознат и прикачен като …“), и го изпраща отново до съобщението, с три неща: какъв вид е докладът (срив, замръзване, засечка на показването или един от петте края, които записва стражът), компилацията, която го е записала (редът с версията в собствения контекстен блок на доклада, която може да не е тази, която ползвате сега), и самият доклад. Това не е нищо, което вече не изпращате: това са думите на съобщението ви, подредени по вид, за да може администраторската страница да го назове. Разглежда се само текстът в полето; не се чете файл. Тук се почиства като дневника за диагностика (премахват се името на акаунта в пътя до файл и всеки имейл адрес), ограничава се до 64 KiB и се пази заедно с останалата част от доклада, при същите условия като всичко по-горе. |
От FoxSDR 0.99.69 дневникът за диагностика носи и още един ред, който назовава само по име на файл (никога папка или версия) компонентите на други програми, заредени във FoxSDR — надписка или кука, поставена от друга програма; това е същият списък, който описва таблицата за доклада за срив по-горе, и е също част от доклада за срив или замръзване, който FoxSDR изпраща сам.
Отива в POST /api/problem-report на този уебсайт. IP адресът ви се използва само за да се държи честотата на изпращане в разумни граници и никога не се записва на диска — всъщност запазеният запис е дали е бъг или нещо, което не ви харесва, съобщението ви, адресът за контакт, ако сте посочили такъв, версията на приложението, платформата, архитектурата, приблизителната ви държава, когато нашето търсене може да я определи от връзката, и дневникът за диагностика, ако сте го оставили прикачен, видът на всеки доклад, разпознат в съобщението ви (по-горе), и нищо друго. Чете се от поддържащия проекта в административното табло зад същата парола като всичко останало тук, а докладът се пази, докато бъде изтрит от това табло или докато не поискате. Доклад, който е разгледан — поправен във FoxSDR или отговорен по друг начин — може да бъде архивиран там вместо изтрит; архивираният доклад все още се съхранява, с всичко изброено по-горе. Ако сте посочили адрес за контакт и искате докладът да бъде изтрит, пишете на адреса по-долу и цитирайте достатъчно от изпратеното, за да бъде намерен.
Уебсайтът: какво се записва, когато го посетите
За всеки преглед на страница и всяко изтегляне се прави запис, независимо дали приемате бисквитки. Това е аналитика от първа страна: данните остават на сървъра, който обслужва този сайт, не се споделят с рекламна мрежа и на страницата няма скрипт на трета страна.
| Записва се | Откъде идва | Изисква съгласие |
|---|---|---|
| Дата и час, поискана страница, HTTP метод и протокол | Заявката | Не |
| Вашият IP адрес и неговият хеш със сол | Връзката | Не |
| Приблизително местоположение: държава, регион, град, пощенски район, часова зона и координатите на този град — не вашите | IP адресът, проверен чрез ip-api.com | Не |
| Вашата мрежа: интернет доставчик, организация, AS номер и дали адресът е на известна VPN, център за данни или мобилна мрежа | Същата справка | Не |
| Браузър и версия, операционна система и версия, тип устройство и дали заявката изглежда като от бот | Заглавката User-Agent | Не |
Коя страница ви е изпратила тук и евентуални маркери за кампания във връзката (utm_source и подобни) | Заглавката Referer и URL адресът | Не |
| Предпочитани езици | Заглавката Accept-Language | Не |
| Кой файл сте изтеглили, неговата версия, колко байта са изпратени и дали прехвърлянето е завършило | Самото изтегляне | Не |
| Размер на екрана и прозореца, съотношение на пикселите, дълбочина на цвета | Вашият браузър, съобщено от скрипта на тази страница | Да |
| Брой процесорни ядра и приблизителна памет на устройството | Същият скрипт | Да |
| Часова зона, списък с езици, предпочитание за тъмен режим, поддръжка на докосване, платформа | Същият скрипт | Да |
| Тип на връзката, приблизителна скорост на изтегляне и време за двупосочно предаване | Същият скрипт | Да |
| Колко дълго страницата е била видима, докъде сте превъртели, колко щраквания и кои бутони сте натиснали | Същият скрипт | Да |
Какво съзнателно не се прави
- Никакво снемане на отпечатък на браузъра: никакво изследване на canvas, аудио, шрифтове или WebGL и нищо, което се опитва да ви идентифицира отново, след като сте отказали.
- Никакви проследяващи програми на трети страни, рекламни пиксели, социални уиджети или аналитични услуги. Нищо на тази страница не се зарежда от друг домейн.
- Никакъв опит да се четат клипбордът, батерията, камерата, микрофонът, запазените пароли или историята на сърфирането ви — нито едно от тези неща не засяга страница за изтегляне.
- Данните ви не се продават, не се отдават под наем и не се споделят с никого. Единствената изходяща заявка, която сървърът прави за вас, е описаната по-горе справка за местоположение по IP.
Дизайни на интерфейса, които публикувате
Този сайт може да съхранява дизайн на интерфейса на FoxSDR — пакет .foxui — който изберете да публикувате. Нищо не се изпраща, докато не натиснете Publish, и то отива към POST /api/gui/publish. Съхранява се това, което съдържа пакетът: самият дизайн, името, версията и описанието, които сте въвели, име на автор, ако сте въвели такова, времето на публикуване и случаен идентификатор. Вашият IP адрес се използва само за да се държи честотата на публикуване в разумни граници, и никога не се записва на диск. Публикуваният пакет не е изброен никъде; всеки, който има връзката към него, може да го изтегли. Той се пази, докато не бъде изтрит от администраторското табло или докато не поискате — пишете на адреса по-долу и посочете връзката му.
Ако се запишете като бета тестер
Бета формулярът и записването за новини са единствените места, където този сайт ви пита за нещо, освен при публикуване на дизайн на интерфейса (вижте по-горе). Изпращането му съхранява вашия имейл адрес и каквото от следното сте избрали да дадете: име или позивна, вашата платформа, радиото, което планирате да използвате, вашите бележки и списъка с функции, които сте се съгласили да тествате. Заедно с това пазим същия контекст на посещението, описан по-горе — приблизително местоположение, мрежа, браузър и операционна система, — защото един доклад за грешка се чете съвсем различно в зависимост от конфигурацията, от която е дошъл.
- Адресът се използва за едно нещо: да се свързваме с вас относно бета компилациите и какво да тествате. Без бюлетин, без маркетинг и никога не се предава на никого другиго.
- Нищо не се случва, докато не потвърдите. Записването изпраща един имейл с шестцифрен код, който въвеждате в страницата, за да потвърдите, че адресът е ваш. Кодът е валиден 30 минути и се отказва след пет грешни опита. Докато не бъде въведен, записът е неактивен: не сте в списъка с тестери, не се броите и никога не се изпраща нищо повече. Ако някой друг е въвел вашия адрес, игнорирайте този имейл и записът никога няма да стане истински — няма от какво да се отписвате и не е нужно да предприемате нищо. Това едно съобщение е единствената автоматична поща, която записването може да предизвика.
- Ако сте ни писали, може да ви поканим. Някой, който ни е писал и е оставил адрес — например чрез полето за заявки в приложението, — може да получи от нас една лична покана с еднократна връзка, която отваря клавиша „Потвърди“ на този сайт. Тази покана се пази като чакащ запис, точно като непотвърдено записване: не сте тестер и не се броите, освен ако не натиснете „Потвърди“, а ако я игнорирате, няма да ви пишем отново. Чакащият запис не изтича сам; той се изтрива, когато го премахнем от списъка или когато поискате, с един имейл до адреса по-долу.
- След като потвърдите, получавате личната си връзка за управление и ви пишем, когато излезе компилация, която има нужда от това, което сте предложили да тествате. Пише ви човек, а не пощенски списък. Ако загубите връзката, можем да ви издадем нова: старата спира да работи веднага, новата ви се изпраща по имейл, а ние пазим часа, в който е направено, и дали имейлът е изпратен.
- Този имейл минава през Apple. Пощата за
foxsdr.comсе пренася от услугата iCloud Mail на Apple, така че адресът ви и съобщението минават през техните сървъри по пътя към вас, при техните условия като наш доставчик на поща. Нищо друго за вас не им се изпраща. - Той се пази отделно от аналитиката. Записванията се съхраняват в собствен файл, достъпен за четене само от акаунта, под който работи сървърът; аналитичният журнал записва, че е станало някакво записване и колко функции са избрани, никога кой. Автоматизиран тест проваля компилацията, ако някога адрес попадне в аналитичния журнал.
- Повторното записване с адрес, който вече е в списъка, не променя този запис. Промените се правят от вашата собствена страница за тестери. Вместо това на адреса се изпраща един имейл: личната му връзка, ако е потвърден, или нов код, ако не е, и никога повече от веднъж на 15 минути.
- Пазим копие от това, което сме ви изпратили. Всяко съобщение, което този сайт изпраща на тестер — потвърждението и всяко съобщение за компилация, — се пази с текста си, за да можем да видим какво е казано и дали е пристигнало. Копието се завежда под вашия вътрешен идентификатор, а не под адреса ви, а личните части в него (кодът или връзката за потвърждение и собствената ви връзка за управление) се премахват преди съхранение, така че запазено съобщение никога не може да бъде използвано, за да се действа от ваше име. Тези копия се изтриват заедно с останалата част от записа ви, когато напуснете.
- Съобщенията между вас и нас се пазят. Полето „Съобщения“ във вашия портал на тестер е разговор с човека, който създава FoxSDR: какво ви пишем и какво отговаряте, всяко с часа, в който е написано, и – ако сте избрали такъв – доклада, за който се отнася. То се съхранява под вашия вътрешен идентификатор, не под адреса ви, и само вие (с вашата лична връзка) и ние можем да го четем. Отбелязваме също кога сте видели нашите съобщения на екрана, за да знаем, че са стигнали до вас. Докато страницата ви е отворена, тя проверява за нови съобщения на всеки няколко секунди, така че те се появяват веднага щом бъдат написани, и съобщава преди колко време сте я използвали за последно; докато проверява, и половин минута след това, и само ако сте я използвали през последните пет минути, сървърът знае, че сте там. Това се пази само в паметта му и никога не се записва. Не ви пишем имейл за всяко съобщение: когато пишем, докато не сте на страницата, получавате един кратък имейл, че ви чака съобщение, с вашата връзка и без самото съобщение. Докато това съобщение е непрочетено, до 12 часа не следва друг такъв имейл, нито в рамките на половин час след последния; а ако сте били на страницата, когато сме писали, но десет минути по-късно още не сте видели съобщението, имейлът тръгва тогава. Копие от този имейл се пази, както е описано по-горе; когато пишете вие, не се изпраща никакъв имейл. Разговорът се пази, докато не напуснете или не ни помолите да го изтрием, а напускането го изтрива изцяло.
- Пази се до края на бета програмата или докато не поискате. Един имейл до адреса по-долу ви премахва и изтрива записа — не е нужно да посочвате причина.
- Правното основание тук е вашето съгласие, дадено чрез отмятане на полето; формулярът не се изпраща без него.
Ако си бета тестер и въведеш своя тестерски код в FoxSDR
Твоята тестерска страница (по-горе) ти дава личен линк за управление, а от него — тестерски код, който можеш да въведеш пряко в FoxSDR, в СИСТЕМА → Тестерски код. Това е различно от описаното по-горе анонимно докладване за използване: докладването за използване наумишлено не може да бъде проследено до теб, докато сесия, докладвана с твоя тестерски код, е наумишлено свързана с твоя тестерски запис — именно това е смисълът, за да видим кои функции и плъгини са били действително изпробвани от тези, които ги тестват наистина. Това е изключено, докато не въведеш код, а полето по подразбиране е празно.
Свързване на FoxSDR на вашата страница за тестери дава на FoxSDR отделен код за приложението, така че личната ви връзка никога да не се въвежда в приложението. Кодът за приложението може да прави само две неща: да изпраща описаните по-долу отчети за сесии и да изпраща и чете съобщенията в полето ви „Съобщения“. Той не може да вижда адреса ви, да променя записа ви или да ви премахне. Пази се заедно с записа ви като тестер; натискането на Нова връзка го отменя, след което FoxSDR трябва да бъде свързан отново, а напускането на програмата го изтрива заедно с останалата част от записа ви.
Докато е въведен код, приблизително веднъж на сесия FoxSDR изпраща това и нищо друго:
| Изпраща се | Пример | Защо |
|---|---|---|
| Вашият код на тестер | кодът за приложението от „Свързване на FoxSDR“ или токенът от вашата страница за тестери | Показва към кой запис на тестер принадлежи тази сесия. Превежда се във вътрешния ви идентификатор на тестер и самият той никога не се съхранява — същото правило, което този сайт прилага към инсталационния идентификатор в доклад за срив. |
| Версия на приложението | 0.99.42 | Коя компилация тествате. |
| Платформа и архитектура | windows, x64 | Както по-горе. |
| Кога е започнала сесията | 2026-09-25T14:32:00Z | Показва колко скоро дадена функция или добавка е била действително използвана и колко дълго се пази отчетът — а не кога отчетът е стигнал до сървъра, което може да е по-късно, ако FoxSDR изчака следващото стартиране, за да го изпрати. Отказва се направо, ако се твърди, че е повече от няколко минути в бъдещето или по-старо от едногодишния период на съхранение по-долу. |
| Продължителност на сесията | 42 минути | Колко е продължила сесията, до един ден. |
| Използвани функции | spectrum, adsb | Кои от областите в таблото с плочки на страницата ви на тестер сте използвали реално в тази сесия — само идентификатори, които този сайт вече публикува; всичко друго се отхвърля изцяло. |
| Използвани плъгини, версията им и колко дълго | adsb-decoder 1.8.0, 30 min | Кои записи от каталога с плъгини и кои версии се ползват реално. Плъгин, инсталиран от добавен от вас сайт с плъгини (от FoxSDR 0.99.74), се отчита по идентификатор и версия като всеки друг монтиран плъгин; адресът на сайта не се отчита. |
| Използвани радиа | rtlsdr | Кои видове драйвери, не серийни номера или други идентифициращи подробности. |
- Какво се съхранява е вашият tester ID (никога кодът или адресът ви), времето на приемане на отчета, началото на сесията, посочено по-горе, версията, платформата, продължителността на сесията, както и функциите, добавките и радиостанциите, посочени по-горе — по един ред за всяка приета сесия, съхраняван до една година и след това автоматично премахван, като се брои от действителното начало на сесията, а не от момента, в който отчетът е достигнал този сървър.
- Какво се показва публично е брой, никога име. Картата на плъгин на главната страница получава малка бележка „тестван от N бета тестери“, веднага щом текущата публикувана версия е била използвана от най-малко два различни тестера общо най-малко десет минути — под това нищо не се показва и никоя страница не посочва кои са тези тестери. Бройките в твоята собствена тестерска страница и в админ панела са същите данни, видени по-подробно; тестерите никога не се именуват един на друг.
- Вашият IP адрес се използва само, за да се поддържа разумна скорост на изпращане, и никога не се записва на диск.
- Как да го спреш: премахни тестерския код от настройките на FoxSDR и нищо повече няма да се изпраща. Не е нужно да напускаш бета програмата за това.
- Напускането на програмата го изтрива. Премахването на твоя запис, от твоята тестерска страница или чрез заявка към нас, изтрива всеки вече записан доклад за сесия за теб, заедно с останалата част от записа ти — същото изтриване, описано в останалата част на този раздел, приложено и към тези данни.
- Правното основание е същото съгласие, което покрива останалата част от твоя тестерски запис: въвеждането на кода е действие, което ти извършваш, и без него нищо не се изпраща.
Ако се запишете за новини по имейл
Страницата за новини иска едно нещо: вашия имейл адрес. Той се пази, за да можем да ви пишем, когато има нова версия на FoxSDR, и от време на време за това какво се разработва. Не се използва за нищо друго и никога не се предава на никого.
- Нищо не се случва, докато не потвърдите. Записването изпраща един имейл с шестцифрен код, който да въведете в страницата. Докато не бъде въведен, нищо друго не се изпраща, а адрес, който не е потвърден в рамките на една седмица, се изтрива - от код, който се изпълнява на сървъра всеки ден. Ако някой друг е въвел вашия адрес, игнорирайте този имейл.
- Всеки имейл съдържа връзка, която ви премахва от списъка с едно натискане. Напускането изтрива адреса от файла на сървъра, заедно с копията, които сме запазили от изпратеното до него; нищо за него не се пази.
- Това е отделен списък. Абонатът за новини не е бета тестер: адресът се пази в отделен файл, достъпен за четене само от акаунта, под който работи сървърът, и не се брои и не се показва като тестер. Ако сте и тестер, получавате всяко съобщение по веднъж.
- Пазим копие от това, което сме ви изпратили, заведено под вътрешен идентификатор, а не под адреса ви, с премахнати код за потвърждение и връзка за отписване, точно както при тестерите.
- Този имейл минава през Apple, както е описано за тестерите по-горе.
- Аналитичният журнал записва, че е станало някакво записване, никога кой.
- Правното основание е вашето съгласие, дадено чрез отмятане на полето; формулярът не се изпраща без него.
Бисквитки
| Бисквитка | Предназначение | Срок |
|---|---|---|
fox_consent | Запомня дали сте приели или отказали, така че да бъдете питани само веднъж | 1 година (при приемане) / 6 месеца (при отказ) |
fox_vid | Случаен идентификатор, така че повторно посещение да се разпознае като от същия браузър. Задава се само ако приемете. | 400 дни |
fox_sid | Групира едно посещение в сесия. Задава се само ако приемете. | 30 минути бездействие |
fox_beta | Пази връзката ви на бета тестер, за да можете да се върнете към собствения си запис. Задава се само ако се запишете като тестер и само защото това е нещото, което сте поискали — тя не измерва нищо, така че не е част от горния избор за аналитика. Премахването ви от списъка я изчиства. | 400 дни |
foxsdr_lang | Запомня езика, който сте избрали за този сайт, така че следващата страница също да е на него. Задава се само когато сами изберете език — с превключвателя на езици или с връзка, съдържаща ?lang=, — и не съдържа нищо освен кода на този език, например es. Тя не измерва нищо, така че не е част от горния избор за аналитика. | 1 година |
fox_news_joined | Не е бисквитка: флаг в собственото хранилище на браузъра ви, който никога не ни се изпраща. След изтегляне сайтът пита дали искате новините по имейл; след като сте се записали и потвърдили от този браузър, спира да пита. Той не съдържа нищо освен 1 и то само ако сте се записали. | Докато не изчистите данните на този сайт |
Ако откажете, не се задава идентифицираща бисквитка. Тогава посещенията се групират по ежедневно сменящ се хеш на вашия адрес и браузър, който различава посетителите за целите на преброяването и не може да се използва, за да ви следи между дните или между сайтовете. Можете да промените решението си, като изчистите бисквитките на този сайт и презаредите страницата.
Кой език виждате
Страниците могат да се показват и на езици, различни от английски. Кой получавате, се решава на сървъра за всяка поискана страница, в следния ред: език, който сте избрали сами (бисквитката foxsdr_lang по-горе или ?lang= във връзката); в противен случай езиците, които браузърът ви казва, че предпочитате, от неговата заглавка Accept-Language; в противен случай основният език на държавата, от която идва връзката ви, която Cloudflare — мрежата пред този сайт — предава заедно със заявката като двубуквен код на държава (CF-IPCountry); в противен случай английски. Нищо не се съхранява, за да се направи този избор: заглавката и кодът на държавата се четат за този един отговор и не се пазят за него. Това са същите две неща, които таблицата по-горе вече посочва като записвани при всеки преглед на страница, където кодът на държавата се използва, когато собствената ни справка за адреса няма отговор. Преводите са направени машинно и за тази декларация и лицензите обвързващ е английският текст.
Защо и на какво основание
Целта е тясна: да знаем колко хора намират този проект, приблизително къде са, на какво го използват и колко от тях продължават нататък и го изтеглят. Това решава дали работата продължава и какво ще се разработва след това.
Записите от страна на сървъра се пазят на основание легитимен интерес за разбиране и защита на сайта. Подробностите, съобщени от браузъра, и идентифициращите бисквитки се пазят на основание вашето съгласие, затова те са зад банера и затова отказът не ви коства нищо на този сайт.
Колко дълго се пази и кой го вижда
Записите се пазят 24 месеца и след това се изтриват. Те се намират във файл на сървъра зад защитено с парола табло, което може да отвори само поддържащият проекта. Няма други получатели и няма предаване към трета държава освен вече описаната справка по IP.
Две неща се пазят за по-кратко. Докладите за сривове и замръзвания се изтриват 90 дни след последната поява на повредата, която описват, а отчетите за използване, които обработва Cloudflare, се изтриват след три месеца. Всеки от тези срокове се спазва чрез код, който се изпълнява на сървъра всеки ден, а не чрез нечия памет.
Вашите права
Ако сте в Обединеното кралство или ЕС, можете да поискате копие от това, което се пази за вас, да поискате то да бъде коригирано или изтрито, или да възразите срещу събирането му изобщо — включително записите от страна на сървъра, които не зависят от съгласие. Практическият идентификатор за намиране на записите ви е вашият IP адрес към момента на посещението, затова, моля, посочете го, както и приблизително кога сте посетили сайта.
За приложението управлението е в самия софтуер и се състои от три превключвателя:
- СИСТЕМА → Отчети за използване спира отчета за използване и петминутния сигнал и изтрива идентификатора на инсталацията. Включете го отново по-късно и ще получите нов идентификатор, който не може да бъде свързан със стария.
- СИСТЕМА → Диагностика спира записването и изпращането на доклади за сривове и замръзвания.
- СИСТЕМА → Актуализации спира проверката за актуализации (в копие от Microsoft Store — въпроса към Microsoft Store).
Отчетите не съдържат нищо, което може да бъде свързано с вас, така че няма до какво да искате достъп; ако искате идентификатор на инсталация да бъде премахнат от вече изпратени отчети, пишете на адреса по-долу, като го посочите, и той ще бъде изтрит.
Деца. FoxSDR е технически уред за радиолюбители. Той не е насочен към деца, не събира лична информация от никого и следователно не събира такава и от деца.
Пишете на [email protected]. Можете също да подадете жалба до Службата на комисаря по информацията (Information Commissioner's Office, ico.org.uk), ако смятате, че това е било обработено лошо.
Последна актуализация: 28 септември 2026, спрямо FoxSDR 0.99.42 — компилацията, която този сайт предлага в момента, и тази, спрямо чийто изходен код е проверено всяко твърдение по-горе. FoxSDR се публикува от Steven Fox; пишете на адреса по-горе с всякакви въпроси относно тази декларация или за да бъде изтрит идентификатор на инсталация от вече изпратени отчети. Ако тази декларация някога спре да съответства на това, което прави софтуерът, грешен е софтуерът — събирането на данни от уебсайта е реализирано в store.go и app.js, които могат да бъдат прочетени в собствения изходен код на сайта, а собственият списък на приложението се доставя с него като PRIVACY.md, с тест, който обвързва полезния товар с него.