隐私政策
最后更新:2026 年 9 月 25 日
简要说明
SpotFlight 没有账号、没有数据统计、也没有任何形式的追踪。你的设置留在你的 iPhone 上。应用中任何地方都没有广告——只有一个例外,而且由你自己选择,见第 3 节。
我确实为这个应用运行着服务器——五台,它们在内存中保存一份全球空中交通的快照,并回答下面这个问题。它们不做的事,是保留任何关于你的信息:既不记录你的位置,也不记录你的网络地址,而且它们的代码中根本没有能把二者联系起来的东西。
有一样东西会离开你的设备:你的位置。SpotFlight 把你的纬度和经度发送到我的中继——如果它无法访问,则发送到公共服务 api.adsb.lol——因为要问的问题字面上就是这个:“这个点附近有哪些飞机?”不说出这个点在哪儿,就无法回答它。关于数据,全部就是这些;本页余下的部分把它讲清楚。
本网站(包括实时地球)不设置 Cookie,不做数据统计,其页面也不从其他网站加载任何内容——详见第 13 节。
1. 谁负责
SpotFlight 由独立开发者 Mourad Toumi 制作。联系方式见第 10 节。
我为这个应用运行五台中继服务器,租用自欧洲几家普通的主机服务商(Hetzner、Scaleway 和 OVH)。它们的存在只有一个理由:每台每隔几秒下载一份全球空中交通快照,保存在内存中,并据此回答“这个点附近有什么?”它们没有任何数据库,也不会把谁请求了什么写入磁盘。
不存在 SpotFlight 账号系统。我没有办法识别你,也不持有任何关于你的记录——这不是一条请你相信的政策,而是因为软件根本没有这个能力:中继的代码中任何地方都不读取客户端地址,它的 Web 前端也配置成既不记录地址也不记录坐标。第 5 节准确列出确实会写下来的东西。
2. SpotFlight 使用什么,以及为什么
2.1 你的位置
是什么。你设备的纬度和经度,以及它相对 WGS84 椭球体的高度,通过 iOS 的 Core Location 在“使用 App 期间”权限下获取。
为什么。你的位置是应用一切计算的起点:把手机指向哪个方位和仰角、到每架飞机的距离、近距离通过的预测、凌日与凌月预测、你在地图上的位置,以及画在地图上的视场扇形。没有它就没有可算的东西。
去往何处。你的坐标会写进请求地址里,发往公共航班数据服务 api.adsb.lol,形如:
`` https://api.adsb.lol/v2/point/{纬度}/{经度}/{半径} ``
这就是查询该服务的方式。坐标就是查询本身。在应用打开且处于前台期间,这个请求向我的中继大约每秒重复一次,或向公共回退服务每七秒一次。把应用切到后台就会停止:你不在看的时候,什么请求都不会发出。
高度永远不会离开你的设备。来自姿态传感器的任何数据也不会。
后台使用。没有。SpotFlight 只申请“使用 App 期间”的权限。它没有后台定位能力、没有后台模式,也没有“始终”权限。你一离开应用,位置更新就停止。
如果你拒绝。应用照常工作。它会回退到一个固定的演示位置并显示那里的空中交通,让你仍能看出它是怎么工作的——但瞄准、距离和预测都不会对应你真正所在的地方。你随时可以改变主意:iOS 设置 → 隐私与安全性 → 定位服务 → SpotFlight。
2.2 你在搜索框里输入的内容
是什么。航班号、无线电呼号、飞机注册号,或 24 位 ICAO 地址——例如 AF498、AFR498、F-GKXA 或 4CAEE8。
为什么、去往何处。搜索词会发往 api.adsb.lol,去查那架飞机。你的位置不会跟着搜索一起发出去。
SpotFlight 不保留搜索历史。没有历史功能,什么都不写入磁盘,也没有任何东西发送给我。
2.3 飞机呼号,用于航线名称
是什么。一架飞机正在广播的无线电呼号——不是任何属于你的东西。
为什么、去往何处。为了显示“巴黎 → 西雅图”而不是一个光秃秃的航班号,SpotFlight 向公共服务 api.adsbdb.com 询问某个呼号在哪两座城市之间飞行。这些答案只在当前会话里存在内存中,免得同一个呼号查两遍;应用一关就没了。
你可以关闭它。在设置中关掉出发与到达城市。关闭后,SpotFlight 不会向 api.adsbdb.com 发出任何请求。
2.4 相机
相机画面是瞄准视图的实时背景。SpotFlight 还会读取镜头的真实视场,以便标签落在屏幕上正确的位置。
任何图像都绝不会被检查、录制、保存或传输。应用不读取单帧画面,不识别图像中的任何内容,也不使用 ARKit 或任何图像分析。飞机在屏幕上的位置纯粹由几何关系决定——你的位置、手机的朝向,以及飞机广播的位置。图像里的任何东西都没有用上。
如果你拒绝相机权限,应用会改为绘制一片朴素的合成天空,其余一切照常工作。
2.5 运动传感器
SpotFlight 读取你 iPhone 的设备运动数据(罗盘、陀螺仪和加速度计,由 iOS 融合为一个朝向),用来判断手机指向何方。这些数据永不离开设备。
本应用不使用 Motion & Fitness 活动接口,也不使用计步接口,因此看不到你的行动轨迹,也看不到你的活动历史。
2.6 通知
有飞机即将从你头顶近距离经过,或者即将穿过太阳或月亮时,SpotFlight 可以提前提醒你,好让你有时间走到户外抬头看。
它们是本地通知,由应用自身在你的 iPhone 上排定。没有推送服务、没有 APNs 令牌,也不涉及任何服务器。只有当你在设置中按下相应按钮时才会请求权限——绝不会在启动时自动请求。
2.7 你的设置
三项偏好用 iOS 标准的偏好存储保存在你的设备上:
- 地图范围(50、100 或 200 公里),
- 是否显示出发与到达城市,
- 是否启用凌日与凌月预测。
这就是 SpotFlight 写下的全部内容。没有文件、没有数据库、没有钥匙串条目、没有文档。这些设置永不离开你的 iPhone,并在你删除应用时一并消失。
3. SpotFlight 不做的事
为免歧义:
- 没有账号、没有登录、没有电子邮箱、没有密码。根本没有什么可注册的。
- 没有数据统计。没有 Firebase、没有 Google Analytics、没有 Mixpanel、没有 Amplitude,也没有自建的事件记录。没有任何东西统计你的点击。
- 没有不请自来的广告。这个应用中没有任何东西会自行显示广告——启动时不会,切换界面时不会,你抬头看天空时也不会。
唯一的例外,而且完全由你决定要不要。安装后的最初 24 小时内,一切都是开放的,什么都不会向你索取。之后,看一段短视频就能把增强现实视图与凌日、凌月预测再解锁 24 小时——而且只有在你点下那个提供视频的按钮时才会发生。该视频由 Google 的移动广告软件提供,它在你的设备上运行,并按 Google 的政策收集它自己的数据——不是我的政策。我请求的是非个性化广告,这是它所能接受的最低限度,而且我不请求广告标识符(IDFA),因此不会出现 App 跟踪透明度提示。
那个软件做什么,不做什么。它是应用的一部分,并在应用启动时完成自身初始化——这个库就是这么写的,我阻止不了。它不做的,是自行去取或显示广告:在你最初的 24 小时内不会请求任何广告,解锁进行期间不会,在你点下那个按钮之前的任何时刻都不会。免费期结束后,应用只是问它是否有视频可用;如果没有,应用会保持解锁状态,而不是把你挡在门外。地图、列表、搜索和近距离通过提醒从不依赖它。
- 我这边没有追踪。不请求 IDFA、没有 App 跟踪透明度提示、没有设备指纹、没有跨应用或跨站点画像,也没有数据经纪商。你选择观看视频之后,Google 广告软件的行为就受 Google 政策约束,链接见第 4 节——我会向它请求最不侵入的那一档设置,但我不会假装那等于什么都没有。
- 只有一个第三方组件,仅此一个。上文所述的 Google 移动广告库。SpotFlight 的其余部分完全建立在 Apple 的框架之上。
- 我不收集崩溃或性能报告。(如果你在系统层面同意与 Apple 分享统计信息,Apple 可能会向我转交匿名化、聚合后的崩溃报告。那是 Apple 的机制,你可以在 iOS 设置 → 隐私与安全性 → 分析与改进 中自行控制。)
- 不访问照片、通讯录、麦克风、健康、蓝牙、日历或本地网络。应用从不申请这些权限。
- 不出售、不共享任何数据。根本没有可卖的东西。
- 没有关于你的画像。你的坐标从不与任何标识符结合,因为根本不存在标识符。
4. 第三方服务
SpotFlight 与三台主机通信。其中一台是我的——我自己的聚合服务——另外两台是免费的公共服务,我既不拥有、不运营,也和它们没有任何商业关系。每一个请求都走 HTTPS,每一个请求都是简单的 GET,没有任何请求携带 Cookie、登录凭据或设备标识符。唯一发送的自定义标头是一个固定的产品名 SpotFlight/1.0 (iOS),其中不包含任何关于你或你设备的信息。
与任何互联网服务一样,这三台在连接期间都会看到你的 IP 地址——这是发起网络请求所固有的,不经代理无法避免。区别在于接下来会发生什么:在我的中继上,没有任何东西记录它,软件也不会去读它;而那两个公共服务如何处理它,由它们自己决定。
为什么先问我自己的服务器。不是为了我的利益:实测对比下来,它响应更快,不按网络地址限流,并且运行在与公共回退服务不同的网络上——因此某一方出故障或被封锁,不会波及另一方。公共 API 仍是回退,而且即便我的中继哪天消失,它也能独立工作。
| 服务 | 它从 SpotFlight 收到什么 | 它自己的条款 |
|---|---|---|
| 我的聚合服务 —— 实时飞机位置(优先询问) | 你的纬度和经度(在请求地址中),以及你在搜索框里输入的内容。两者都不记录——见第 5 节 | 本页。托管于欧洲(Hetzner、Scaleway、OVH) |
| adsb.lol —— 实时飞机位置(仅作回退) | 你的纬度和经度(在请求地址中),以及你在搜索框里输入的内容 | adsb.lol 隐私与许可 · adsb.lol |
| adsbdb.com —— 出发与到达城市 | 仅飞机呼号。绝不包含你的位置。若你关闭航线,则什么都不发送 | adsbdb.com · 源代码 |
关于 adsbdb.com 的一点如实说明:在撰写本文时,该服务既未发布隐私政策,也未发布使用条款。我无法告诉你它记录了什么、保留多久,我也不会去猜。我能告诉你的,是 SpotFlight 究竟向它发送了什么——一个呼号,别无其他——以及设置中的开关能完全停止这些请求。
发往这些服务的请求可能由位于你所在国家之外的服务器处理,包括欧洲经济区之外。请求一旦到了它们那里,如何处理就取决于它们的做法,而不是我的。
5. 各项数据保留多久
| 数据 | 保留时长 | 由谁保留 |
|---|---|---|
| 你的位置 | 不存储。用于屏幕上的计算,片刻之后即被下一次读数取代 | 无人 |
| 你的搜索 | 不存储。应用中任何地方都不保留历史 | 无人 |
| 航线查询 | 仅在内存中,仅限当前会话;应用关闭时丢弃 | 你的设备 |
| 你的三项设置 | 直到你更改它们或删除应用 | 你的设备 |
| 你的位置,在我的中继上 | 完全不写入。它只从请求地址里读出来算个答案,随请求一起消失 | — |
| 你的 IP 地址,在我的中继上 | 完全不写入,软件也不读取:中继中没有任何代码会查看它 | — |
| 服务器访问日志行 | 14 天。每一行记录请求的类型(“/v2/point”)、状态码、大小和耗时——绝不记录地址,绝不记录坐标 | 我 |
| 服务器错误日志 | 14 天,且仅限严重故障。在该级别下条目很少;我明确说明:这样的条目仍可能带有客户端地址,日志级别之所以设在这里,正是因为如此 | 我 |
| adsb.lol 与 adsbdb.com 的访问日志 | 我不知情——由那些服务自行决定 | 那些服务 |
一个技术细节,为求完整:iOS 为应用维护一个标准的 HTTP 响应缓存。它可能把最近的响应、以及产生这些响应的请求地址,短暂保存在你 iPhone 上 SpotFlight 自己的沙盒缓存目录里。该目录是应用私有的,由 iOS 管理和清理,你删除应用时它也一并消失。
6. 处理的法律依据(欧盟 / 英国 GDPR)
面向欧洲经济区、英国和瑞士的用户:
把你的坐标发送到我的中继,以及在中继无法访问时转而发送到 api.adsb.lol——如果这构成个人数据处理,那么该处理的控制者是 Mourad Toumi。
法律依据是第 6(1)(b) 条——履行合同。你安装的这个应用只有一个目的:把你所在位置上方的飞机指给你看。这项传输不是附带的;它就是这个目的本身,没有它,你装这个应用要做的唯一一件事就做不成。此外,iOS 在读取任何位置之前都会征求你的明确许可,你也可以随时在 iOS 设置中撤回——撤回后处理立即停止。
不会对你作出任何自动化决定,不进行画像,也不处理第 9 条意义上的特殊类别个人数据。
7. 你的权利
如果你在欧洲经济区、英国或瑞士(GDPR)
你有权访问你的数据,要求更正或删除,限制或反对其处理,并以可携带的格式获取它。你也有权向你所在国的数据保护机构提出投诉。
我想直说这些权利在这里的实际含义:我不持有任何关于你的数据。没有账号,也没有数据库,上文所述的中继什么都不保留:不保留你的地址,不保留你的位置,也不保留你的请求历史。如果你写信来要一份你的数据副本,我唯一能给的就是一个准确的答复:没有东西可寄,因为从来就没有收到过。
这些权利在实践中的等效做法,你自己立刻就能做到,不用向任何人申请:
- 停止处理:在 iOS 设置中关闭 SpotFlight 的位置访问权限,或关闭应用。
- 停止航线查询:在应用设置中关闭出发与到达城市。
- 抹除设备上的一切:删除应用。你的设置和系统缓存会一并消失。
至于 adsb.lol 或 adsbdb.com 可能持有的内容,你需要直接联系那些服务;我无权访问它们的系统。
如果你在加利福尼亚(CCPA / CPRA)
在本页顶部日期之前的十二个月内,SpotFlight 披露了加州法律定义下的一类个人信息:地理位置数据(Cal. Civ. Code § 1798.140)。披露对象是我的中继——中继无法访问时则是 api.adsb.lol——唯一的商业目的是把你附近的飞机返回给你。
- 我没有出售你的个人信息,将来也绝不会。
- 我没有为跨情境行为广告共享它。
- 除应用功能所需之外,我不为任何目的使用或披露敏感个人信息。
- 没有任何财务激励与你的数据挂钩。
你有权知情、删除、更正,以及选择退出出售或共享,并有权不因行使这些权利而受到歧视。既然不存在出售和共享,也就没有什么可退出的;既然我什么都不保留,删除请求也没有可作用的记录。删除应用即可移除本地保存的一切。
其他地区
如果你所在地的法律赋予你超出上述的权利——例如巴西的 LGPD、加拿大的 PIPEDA 或澳大利亚的《隐私法》——请写信给我,我会回复,同时请记住,如实的答案通常是:不存在任何关于你的数据可供处理。
8. 儿童隐私
SpotFlight 没有聊天、没有用户账号、没有用户生成内容、没有指向社交网络的链接,我这边也不做任何能识别到人的数据收集。
它确实包含可选的激励视频广告,在安装后的最初 24 小时内绝不显示,此后也仅当用户点下提供它的按钮时才显示。广告内容由 Google 提供,不受我控制,这也是为什么应用的年龄分级反映了广告的存在,而不是声称没有广告。
它并非面向儿童,我也不会在知情的情况下收集 13 岁以下儿童(或你所在地相应最低年龄)的个人信息。由于应用没有账号系统,中继也什么都不存储,儿童没有任何途径可以向我提交个人信息。如果你认为某个儿童的个人信息以某种方式到达了我这里,请联系我,我会调查。
9. 安全
SpotFlight 的每一个网络请求都使用 HTTPS,并采用 iOS 标准的传输安全设置。没有凭据、没有令牌、没有个人记录可供攻击者从我这里窃取,因为它们根本不存在——中继在内存中只保存一样东西,一份对所有用户都相同的公共飞机位置快照,也不会把任何人的任何信息写进磁盘。你的设置存放在你 iPhone 上应用的沙盒中,由 iOS 保护。
10. 联系方式
关于本政策,或关于 SpotFlight 隐私的问题:
Mourad Toumi 61 rue de Lyon, 75012 巴黎,法国。电子邮件:mouradski@icloud.com
我会阅读每一封邮件,并力求在 30 天内答复,这也是 GDPR 规定的期限。
11. 本政策的变更
如果本政策变更,顶部的日期会随之变更。重大变更——任何会改变“哪些数据离开你的设备”或“数据去往何处”的变更——也会在应用的版本说明中注明,这样你无需查看本页也能知晓。
12. 数据来源与致谢
实时飞机位置包含来自 adsb.lol 的信息,这些信息在此依据 Open Database License (ODbL) 提供。adsb.lol 是一个由志愿者自建天线供给数据的开放航班追踪平台。
航班航线信息由 adsbdb.com 提供。这些航线数据出自爱丁堡的 David Taylor 和格拉斯哥的 Jim Mason 之手,未经爱丁堡 David J Taylor 的明确许可,不得复制、发布或并入其他数据库。
飞机位置数据按现状提供,不对其准确性、完整性或可用性作任何保证。SpotFlight 供观察与消遣之用,不得用于导航或任何运行用途。
13. 本网站
以上内容都是关于应用的。本节讲的是 spotflight.eu 本身:这些页面,以及实时地球。
不从任何第三方加载内容。本网站的每个页面——文字、样式、字体、脚本、图片,以及地球上的地图和飞机——都来自 spotflight.eu。没有字体服务,没有内容分发网络,没有地图服务商,没有数据统计,没有广告,没有 Cookie。地球页面还通过一项安全策略(Content-Security-Policy)向你的浏览器声明这一点,禁止它连接任何其他地方。这些页面的早期版本从 Google Fonts 加载字体,因此你的浏览器在打开这些页面时会联系 Google;现在字体由本站提供。
一个例外,在 iPhone 和 iPad 上:Safari 可能会在页面顶部显示本应用的横幅。这个横幅是 Safari 的功能,由本网站每个页面上的一个标签请求;为了显示它,Safari 会从 Apple 获取应用的信息。指向其他网站的链接——App Store、adsb.lol、OpenStreetMap——都是普通链接:除非你点开,否则不会向它们请求任何内容。
地球会请求什么。它的飞机,向 spotflight.eu 请求:根据服务器副本的新旧程度,每 10 到 30 秒请求一次全球数据(视图放得很近时每 10 到 60 秒一次;请求失败后,最早 5 秒后重试);放大之后,每 5 秒请求一次屏幕上每个经纬度 10° 的方格——或你选中或跟随的飞机所在的方格,飞机接近方格边缘时还包括相邻的方格。这样的请求说明的是你正在看地球的哪一部分,精确到十度——而不是你在哪里。地图则在你移动时分块向同一台服务器请求。地球所在的标签页被隐藏时,不会发出任何请求。
飞机数据来自我的中继,也就是第 1 节所述的服务器。网站服务器以自己的名义向它们请求,不转发你的地址:它们收不到任何关于你的信息。
航线,一次只查一架飞机。当你打开一架以航空公司呼号飞行的飞机的信息卡,并且信息卡保持打开半秒之后,地球会向 spotflight.eu 请求它的出发和到达城市。请求只带这个呼号(例如 AFR1234),别无其他。网站服务器把它转给我的中继,由中继以自己的名义向 adsbdb.com 查询:你的地址、你浏览器的任何信息、你的位置都不会到达中继,也不会到达 adsbdb.com;答复描述的是航班,而不是你。已经得到答复的呼号在你这次访问期间不会再次请求;以注册号作为呼号飞行的飞机(大多数私人飞机都是如此)则不会发出任何请求。
搜索留在你的浏览器里。地点在一份列表中查找,这份列表在你第一次使用搜索框时下载;航空公司在一份名称列表中查找,它同时下载,或在你第一次打开飞机信息卡时下载——两份列表都由 spotflight.eu 提供,对所有人都一样;航班则在你的浏览器已经收到的飞机中查找。你输入的内容从不发送出去。
从不询问你的位置。地球不使用浏览器的定位服务。为了决定从哪里打开,它在你的浏览器内读取你的时区——这是你设备上的一项设置,例如 Asia/Shanghai——并在一张对所有人都相同的表中查找。时区本身从不发送;随后,它所对应地区的地图会像你移动到的任何视图一样,从 spotflight.eu 加载。
分享的链接。当前视图——位置、缩放、你跟随的飞机、你搜索的地点——保存在地址中 # 之后的部分。浏览器从不把这一部分发送给服务器:链接本身不会出现在任何请求或任何日志中。打开链接只会请求任何视图都会请求的内容——屏幕上的地图分块,以及上文所述的 10° 方格,包括链接所跟随飞机所在的方格;如果链接指定了地点,还会请求地点列表和国家轮廓,这些对所有人都一样。
保存在你浏览器里的内容。只有一项偏好,而且只在你于地球页面上更改它时才保存:公制或英制单位,保存在浏览器的本地存储中,从不发送。在浏览器中清除本网站的数据即可删除它。其他页面不保存任何内容。
服务器记录什么。和任何网站一样,服务器在连接打开期间能看到你的网络地址。它不会记录下来:它的访问日志保留 14 天,每个请求只记录其类型(页面、全球数据、方格、一块地图、航线)、状态码、大小、是否由缓存提供以及耗时——绝不记录你的地址,也绝不记录你所请求内容的地址,因此也绝不记录航线查询的呼号。它的错误日志仅限严重故障;和中继一样,我明确说明:这样的条目仍可能带有客户端地址,日志级别之所以设在这里,正是因为如此。
本网站托管在欧洲,使用向 Scaleway 租用的服务器。