免 U 盘给安卓电视装应用:用 NAS Samba 服务搭建无线安装方案
一、痛点:给安卓电视装个 App 为什么这么烦?
如果你用过索尼、海信、TCL 等品牌的安卓电视,一定经历过下面这些场景:
- U 盘来回插拔:电脑下载 APK → 拷进 U 盘 → 插电视 → 用文件管理器找到安装。一次两次还行,每周都要来一遍就烦了
- 电视自带商店应用不全:当贝市场、Kodi、VLC 这些第三方 App,电视自带的应用商店里要么没有,要么版本老旧
- 电视文件管理器不给力:自带的文件管理器经常看不到 APK 文件,还得额外装一个 ES 文件浏览器
- U 盘格式兼容问题:NTFS 的 U 盘插上电视不识别,得格式化成 exFAT 或 FAT32。而 FAT32 单文件不能超过 4GB
- 远程安装工具一个接一个挂掉:用过 ADB 投送、局域网文件传输,但很多工具停更或者新系统不兼容
这些问题在 2026 年的今天依然普遍存在,因为电视厂商压根不觉得用户有”自己装 App”的需求。
二、核心思路:NAS + SMB = 无线 APK 仓库
如果你家里有一台 NAS(群晖、威联通、海康智存,甚至是一台开了 SMB 共享的旧电脑),那它天然就是一个无线 APK 仓库:
- 在 NAS 上建一个文件夹专门放 APK
- 电视通过 Samba(SMB)协议访问这个文件夹
- 点一下 APK 直接下载安装
但安卓电视原生不支持 SMB 协议浏览。文件管理器虽然有 SMB 功能,但只能看文件列表,不能调起安装——因为系统不允许从网络文件直接安装 APK。
所以需要一个中间层:一个能同时干三件事的 App——
- 扫描局域网内的 SMB 服务
- 连接 NAS 浏览 APK 文件
- 下载到本地再调起系统安装
这就是 SMB Installer(SMB 安装助手) 要做的事——把 NAS 变成电视的无线应用商店。
三、方案架构
┌─────────────┐ SMB协议 ┌─────────────┐
│ NAS/PC │ ◄──────────────► │ Android TV │
│ (Samba共享) │ │ SMB Installer│
│ /APK/ │ │ (本 App) │
│ ├─ Kodi │ │ │
│ ├─ VLC │ │ 1. 扫SMB服务 │
│ ├─ 当贝 │ │ 2. 浏览APK │
│ └─ ... │ │ 3. 下载→安装 │
└─────────────┘ └─────────────┘
整个流程不外网,纯局域网内完成,不需要任何云服务。
四、搭建步骤
4.1 在 NAS 上准备 APK 共享目录
这是唯一需要在 NAS 上做的配置。
群晖 DSM:
控制面板 → 文件服务 → SMB/ AFP → 启用 SMB 服务
文件站 → 新建共享文件夹 "APK" → 权限设为可读写
把下载好的 .apk 文件丢进去
海康智存 / 其他入门 NAS:
App 中找到文件管理 → 新建共享目录 → 开启 SMB 服务
记下用户名、密码和 IP 地址
没有 NAS?Windows 电脑开 SMB 共享也行:
在 Windows 上新建一个文件夹 "APK"
右键 → 属性 → 共享 → 添加 Everyone 读取权限
控制面板 → 程序和功能 → 启用或关闭 Windows 功能 → 勾选 SMB 1.0/CIFS 文件共享支持
记下电脑的局域网 IP(ipconfig 查看)
4.2 电视端安装 SMB Installer
把这个 App 安装到电视上——因为这就是你第一次也是最后一次用 U 盘:
- 在电脑下载 SMB Installer 的 APK
- 拷进 U 盘,插到电视上
- 电视上打开文件管理器,安装这个 APK
- 之后再也不需要 U 盘了
如果连第一次插 U 盘都嫌麻烦,也可以先用 ADB 投送:
adb connect 电视的IP地址
adb install SMBInstaller.apk
4.3 连接 NAS
App 打开后自动扫描局域网内所有开放 445 端口(SMB 标准端口)的设备:
- 等待扫描完成(约 5-15 秒),已发现的设备实时展示在列表中
- 看到你的 NAS 后点击它
- 首次连接输入 SMB 用户名和密码,可以勾选”记住密码”
- 连接成功后进入文件列表
App 会自动记住这台设备和凭证,下次启动直接显示历史设备,点一下就连上了。
五、使用方法
日常使用流程
电视开机 → 打开 SMB Installer
→ 看到 NAS 设备卡片(或从历史设备中直接点)
→ 自动进入上一次浏览的目录
→ 看到 APK 文件列表
→ 遥控器选中要安装的 App → 按 OK
→ 确认安装 → 等待下载进度条走完
→ 系统弹出安装界面 → 确认安装
→ 搞定,回主页继续选下一个
全程遥控器操作,不需要鼠标或触屏。
找 APK 的途径
- 当贝市场官网:下载最新版当贝市场 APK,装完之后在里面搜索安装其他 App
- APKPure / Aptoide TV:专门提供 Android TV 版 APK 的网站
- 官方 GitHub Releases:Kodi、VLC 等开源项目在 GitHub 提供 APK 下载
- 酷安:国内开发者经常在上面发布 TV 版应用
下载后直接放进 NAS 的 APK 目录,电视上刷新就能看到。
六、技术实现要点
(如果你不关心技术实现,这一节可以跳过。但如果你想了解 App 在背后做了什么,以下是关键点。)
6.1 SMB 协议兼容
安卓系统本身不支持 SMB 协议。App 使用 JCIFS-NG 库(纯 Java 实现,兼容 Android 4.2+),支持 SMB v2/v3。这意味着即使 NAS 关闭了安全性较低的 SMB v1,也能正常连接。
6.2 局域网设备扫描
App 通过获取本机 IP 和子网掩码计算出局域网网段,用多线程并发 Socket 连接探测每个 IP 的 445 端口。20 个线程同时扫描,8-15 秒扫完一个 /24 网段。
6.3 凭证安全存储
SMB 用户名和密码使用 AES-256 加密后存到 SharedPreferences,不会明文存储。每次连接时解密使用。
6.4 下载→安装链路
APK 先通过 SMB 流式下载到电视本地缓存目录,下载完成后调起系统安装界面。兼容 Android 4.2~14:
| 系统版本 | 特殊处理 |
|---|---|
| Android 4.2~6.0 | 直接 Uri.fromFile() |
| Android 7.0+ | 使用 FileProvider 生成 content URI |
| Android 8.0+ | 检查”安装未知应用”权限,不满足则引导设置 |
6.5 TV 端适配
使用 AndroidX Leanback 库,所有控件适配遥控器焦点导航。电视端即使没有鼠标,只用方向键和 OK 键也能完成全流程。
七、效果对比
| 方式 | 每次安装耗时 | 是否需要 U 盘 | 是否需要电脑 | 是否需要网络 |
|---|---|---|---|---|
| U 盘安装 | 5-10 分钟 | ✅ 每次都要 | ✅ | ❌ |
| ADB 投送 | 2-3 分钟 | ❌ | ✅ | 局域网 |
| App 商店 | 1 分钟 | ❌ | ❌ | 互联网 |
| SMB Installer | 30 秒 | 仅第一次 | 仅需一次 | 局域网 |
八、局限性
- 电视和 NAS 必须在同一局域网,不在同一网段无法工作
- NAS 必须开启 SMB 服务,大部分 NAS 默认开启,但部分入门级可能默认关闭
- 首次安装 App 需要 U 盘或 ADB 投送,装好之后才不需要
- 不支持从 SMB 直接安装,必须经过下载到本地的步骤,大文件(超过 200MB)的 APK 需要等待下载完成
九、总结
这个方案的核心理念很简单:既然电视厂商不给应用商店,那就在家里自己建一个。
NAS 是很多家庭已经有的设备,SMB 是 NAS 默认开启的服务,APK 网上随处可以下载。唯一缺的就是一个能把这三者串起来的 App——这正是 SMB Installer 补上的环节。
搭建一次之后,日常的使用流程就变成了”电视上点两下 → 等下载 → 确认安装”,跟手机装 App 的体验差距已经很小了。
参考来源:
- SMB Installer 项目规格书 — TVInstaller/doc/TVInstaller-spec.md
- SMB Installer 交互原型 — TVInstaller/doc/TVInstaller-prototype.html
- JCIFS-NG 库 — github.com/agNO3/jcifs-ng
- AndroidX Leanback — developer.android.com/training/tv
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/dev/tvinstaller-smb-nas-apk.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)