pengchujin / aerial-tv
git clone https://github.com/pengchujin/aerial-tv.git
v1.14 · today
给国产电视的一块干净桌面:参照 tvOS 设计的开源 Android TV 桌面,没有广告,开机自动接管。A tvOS-style launcher for Xiaomi, TCL and other China-market TVs.
+509
stars, 24h · #26
+509
stars, 7 days · #119
+509
stars, 30 days · #552
509
★ total · +509% this week
35
forks · 39 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageKotlin
LicenseMIT
Created2026-10-20 (today)
Last pushtoday
Watchers0
OwnerUser
Links
- GitHub: github.com/pengchujin/aerial-tv
- Homepage: https://aerial.qust.me
- Releases · Issues · Hacker News mentions
README excerpt
# Aerial **给国产电视的一块干净桌面。** 参照 tvOS 设计的 Android TV 桌面:没有广告,没有推荐流,只有你的 App、你的壁纸和 Apple TV 航拍屏保。 为小米、TCL 等国产电视而做,开机自动接管,待机也不会被清理。 **中文** · English | 电视自带的桌面 | 换上 Aerial 之后 | |:---:|:---:| | | | ## 功能 ### 首页 - **时钟**:大号细体时钟压在壁纸上,壁纸底部和左侧自动压暗。往下滚动时,时钟收进状态栏。 - **应用网格**:每行 5 个,聚焦时浮起并显示名字。默认加一圈白色描边,离得远也看得清;在「控制中心 → Aerial 设置」可以改回 tvOS 的原样。 - **图标**:有电视横幅就用横幅;方形图标用自己的底色铺满磁贴;自适应图标拆成两层做视差。 - **全部 App**:小米「应用中心」「高清播放器」「米家」这类没有标准入口的系统 App 也会显示。 - **信号源磁贴**:把 HDMI、AV、电视天线固定到首页,按一下直接切换(控制中心 → 信号源 → 显示在主屏幕)。 - **返回键**:和 tvOS 一样,在网格里按返回回到第一行,在第一行按返回开始屏保。 ### 长按菜单 长按 OK 键:**移动**(其他磁贴自动让位)、**从主屏幕隐藏**、**应用信息**、**卸载**。 ### 控制中心 按遥控器的菜单键(≡)打开,或在第一行按上键。包括信号源(显示 CEC 设备)、网络、设置,音量和亮度滑块,以及壁纸与屏保、隐藏的 App、Aerial 设置。网络和设置会打开电视自己的面板。 ### 屏保 - **航拍**:114 段 Apple TV 航拍影片,从 Apple 的服务器直接播放,镜头移动时显示地名。左右键切换上一段 / 下一段。 - **照片**:每日精选和你的照片缓慢推移。 - **时钟**:每分钟换一个位置,防止烧屏。 在使用 Android 标准屏保的电视(比如 TCL)上,Aerial 就是系统屏保。小米用自家的屏保,Aerial 会在桌面空闲时抢先启动,挡在小米的广告屏保前面。 ### 壁纸与手机设置 - **壁纸**:必应每日精选(国内直连)、8 组内置渐变,或者你自己的照片。 - **用手机设置**:扫描壁纸面板上的二维码,在手机上传照片、选壁纸、换屏保。页面只在面板打开时开放,地址带随机令牌。 ## 安装 不需要 root,**不卸载、不停用任何系统应用**,一条命令就能还原。 ### 第一步:打开电视的 ADB 调试 电脑和电视连同一个网络。先在电视上找到 IP 地址(一般在「设置 → 网络」或「关于」里),再打开 ADB: | 电视 | 怎么打开 | |---|---| | **小米 / Redmi** | 设置 → 关于 → **产品型号**,连续按确认键,直到提示已进入开发者模式。再到 设置 → 账号与安全,打开 **ADB 调试** 和 **安装未知来源的应用** | | **TCL / 雷鸟** | 设置 → 关于 → **本机信息**,依次按遥控器的 **上、下、左、右**(间隔不超过 1 秒),底部会出现「更多」,在里面打开 **ADB** | | **原生 Android TV / Google TV**、海信等 | 设置 → 设备偏好设置 → 关于 → 连续按 **版本号** 7 次;再到 开发者选项 打开 **USB 调试**(也可能叫「网络调试」或「ADB 调试」) | 电脑第一次连接时,电视会问「允许 USB 调试吗?」,选 **允许** 并勾上「始终允许」。 ### 用 Agent 安装(推荐) 把下面这段交给 Claude Code、Codex、Cursor 这类能在你电脑上运行命令的 Agent,把 ` ` 换成你的电视 IP: [code] ### 一行命令(macOS / Linux) [code] 脚本会下载最新版 APK 安装,授予只有 ADB 能给的权限(见下表),预编译让它更流畅,然后接管桌面和屏保、放行开机自启。 - `KEEP_ADB=1`:电视关掉 ADB 调试后(小米待机唤醒时会关),Aerial 立刻重新打开。不需要可以去掉。 - **固件拒绝安装桌面类 App**:在命令最后加 `-s guard`,改装不声明 HOME 的版本。 - **TCL**:TCL 拒绝一切 ADB 安装,脚本会改用电视自带的「多屏互动」推送,你在电视上选一次「同意」即可;没有多屏互动时退回用当贝市场。 还原成原来的桌面: [code] ### 手动安装 到 Releases 下载 `aerial-standard.apk`(固件拒绝安装桌面类 App 时用 `aerial-guard.apk`),然后: [code] Aerial 启动后会自己打开桌面守护。屏保、亮度、TCL 自启等完整步骤见 tools/install.sh。 ## 它怎么接管桌面,又怎么不被杀掉 国产电视大多只认自家桌面,待机时还会清理第三方 App。Aerial 先温和、后强硬: 1. **正常申请**:申请 HOME 角色、设为默认桌面。原生 Android TV 和 Google TV 到这一步就够了。 2. **桌面守护**:固件坚持用自家桌面时(小米、TCL 都是),由一个无障碍服务接管:官方桌面一到前台,就把 Aerial 拉回来。它只看哪个窗口到了前台,不读屏幕内容。 3. **被杀后复活**:小米待机会强制停止所有第三方 App。Aerial 注册了一个通知监听(不读任何通知),系统会在约 0.5 秒内重新绑定它,Aerial 借此复活,并用 `WRITE_SECURE_SETTINGS` 重新打开守护。 4. **开机自启**:开机时系统绑定通知监听,Aerial 随之启动。TCL 的「自启动管理」默认拦截第三方 App,安装脚本会用 `appops` 放行。 5. **ADB 常开**(可选):小米唤醒后会关掉 ADB 调试,开了 `KEEP_ADB` 后 Aerial 会马上打开它,方便以后升级。 ### ADB 授予的权限 | 权限 | 用途 | |---|---| | `WRITE_SECURE_SETTINGS` | 重新打开被系统关掉的守护;保持 Aerial 为系统屏保;`KEEP_ADB`;写入小米的背光值 | | 通知监听 | 被强制停止或开机后由系统拉起,不读取任何通知 | | 悬浮窗(`SYSTEM_ALERT_WINDOW`) | 开机后从后台打开 Aerial | | 修改系统设置 | 用标准接口调节亮度 | | 定位 | 只用来读取 Wi-Fi 名称 | | TCL `APP_AUTO_START` / `APP_ASSOC_START` | 允许开机自启(只有 TCL 有) | ## 已验证的电视 | 机型 | 系统 | 状态 | 笔记 | |---|---|---|---| | 小米 MiTV-MFTR0 | Android 14 / HyperOS TV | 日常使用中 |