免 U 盘给安卓电视装应用:用 NAS Samba 服务搭建无线安装方案

2026/06/19 dev android-tv · smb · nas · apk · home-server 3057 字 · 约 9 分钟 阅读 ...

免 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 仓库

  1. 在 NAS 上建一个文件夹专门放 APK
  2. 电视通过 Samba(SMB)协议访问这个文件夹
  3. 点一下 APK 直接下载安装

但安卓电视原生不支持 SMB 协议浏览。文件管理器虽然有 SMB 功能,但只能看文件列表,不能调起安装——因为系统不允许从网络文件直接安装 APK。

所以需要一个中间层:一个能同时干三件事的 App——

  1. 扫描局域网内的 SMB 服务
  2. 连接 NAS 浏览 APK 文件
  3. 下载到本地再调起系统安装

这就是 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 盘:

  1. 在电脑下载 SMB Installer 的 APK
  2. 拷进 U 盘,插到电视上
  3. 电视上打开文件管理器,安装这个 APK
  4. 之后再也不需要 U 盘了

如果连第一次插 U 盘都嫌麻烦,也可以先用 ADB 投送:

adb connect 电视的IP地址
adb install SMBInstaller.apk

4.3 连接 NAS

App 打开后自动扫描局域网内所有开放 445 端口(SMB 标准端口)的设备:

  1. 等待扫描完成(约 5-15 秒),已发现的设备实时展示在列表中
  2. 看到你的 NAS 后点击它
  3. 首次连接输入 SMB 用户名和密码,可以勾选”记住密码”
  4. 连接成功后进入文件列表

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 Installer30 秒仅第一次仅需一次局域网

八、局限性

  • 电视和 NAS 必须在同一局域网,不在同一网段无法工作
  • NAS 必须开启 SMB 服务,大部分 NAS 默认开启,但部分入门级可能默认关闭
  • 首次安装 App 需要 U 盘或 ADB 投送,装好之后才不需要
  • 不支持从 SMB 直接安装,必须经过下载到本地的步骤,大文件(超过 200MB)的 APK 需要等待下载完成

九、总结

这个方案的核心理念很简单:既然电视厂商不给应用商店,那就在家里自己建一个。

NAS 是很多家庭已经有的设备,SMB 是 NAS 默认开启的服务,APK 网上随处可以下载。唯一缺的就是一个能把这三者串起来的 App——这正是 SMB Installer 补上的环节。

搭建一次之后,日常的使用流程就变成了”电视上点两下 → 等下载 → 确认安装”,跟手机装 App 的体验差距已经很小了。


参考来源:

  1. SMB Installer 项目规格书 — TVInstaller/doc/TVInstaller-spec.md
  2. SMB Installer 交互原型 — TVInstaller/doc/TVInstaller-prototype.html
  3. JCIFS-NG 库 — github.com/agNO3/jcifs-ng
  4. AndroidX Leanback — developer.android.com/training/tv

文档信息