@bkdgiffug: 别急着扔掉抽屉里积灰的旧安卓手机。安装Termux,然后运行一个开源方案——
摘要
本项目提供脚本,通过Termux将旧安卓手机改造成Linux桌面或智能家居服务器,无需Root权限或电脑。
查看缓存全文
缓存时间: 2026/09/26 23:06
别急着丢掉抽屉里积灰的旧Android手机。只需安装Termux,然后运行一套开源配置——无需Root权限,无需电脑,也不用上传数据到云端——就能把手机变成两个有趣的环境:
- Linux桌面:支持GPU加速,可流畅运行Firefox、VLC、SSH,甚至能折腾Wine
- 家庭服务器:直接部署Home Assistant,控制灯光、智能插座等智能设备
高通骁龙设备兼容性整体更佳,且两个环境可共存。这样复活旧手机,比让它在抽屉里吃灰有趣得多。
🔗 https://github.com/mayukh4/linux-android
🎬 教程视频:—
mayukh4/linux-android
来源:https://github.com/mayukh4/linux-android
改造你的旧Android手机
MIT 许可证
平台:Android (https://termux.dev)
Termux (https://f-droid.org/en/packages/com.termux/)
Stars (https://github.com/mayukh4/linux-android/stargazers)
将任意旧Android手机变为Linux桌面或智能家居服务器——无需电脑、无需Root、无需云端。只需Termux (https://termux.dev)。
本项目配套YouTube视频教程。时间戳标注于视频描述中。
graph LR
A["📱 旧Android手机<br>+ Termux"] --> B["🖥️ Linux桌面<br>termux-linux-setup.sh"]
A --> C["🏠 智能家居服务器<br>setup-homeassistant.sh"]
B --> D["GPU加速桌面环境<br>Firefox/VLC/SSH/Wine"]
C --> E["Home Assistant Core<br>控制灯光与插座"]
选择你的路径
| Linux桌面 | 智能家居服务器 | |
|---|---|---|
| 是什么 | 手机上的完整图形桌面环境 | 控制WiFi设备的Home Assistant中枢 |
| 用途 | 学习Linux、Python开发、SSH服务器、网页浏览、媒体播放 | 控制智能灯/插座、自动化场景、仪表盘 |
| 脚本 | bash termux-linux-setup.sh | bash setup-homeassistant.sh |
| 耗时 | 10–30分钟 | 15–45分钟 |
| 快速跳转 | 桌面安装 | Home Assistant安装 |
两个环境可在同一台手机上运行——互不冲突。
观看完整构建过程
观看视频教程 (https://youtu.be/tYm2rQpkOcg)
▶ 改造你的旧Android手机——完整教程 (https://youtu.be/tYm2rQpkOcg)
——本README中的每个步骤均有视频演示,时间戳标注于视频描述。
系统要求
硬件要求
- arm64 (64位) 处理器的Android手机
- 建议3GB以上内存(KDE Plasma需4GB以上)
- 5–10GB可用存储空间(安装Wine需更多空间)
- 高通骁龙芯片为佳——可获得最佳GPU加速支持(Turnip/Adreno驱动)。
脚本也支持Mali/其他GPU,但性能会较弱。
软件要求
| 应用 | 获取方式 |
|---|---|
| Termux | F-Droid (https://f-droid.org/en/packages/com.termux/) ——勿用Google Play版本(已过时) |
| Termux-X11 | GitHub Releases (https://github.com/termux/termux-x11/releases) ——下载最新.apk文件 |
关于Root/自定义ROM:本脚本同样适用于原生Android系统。视频演示中使用了OnePlus 5T上的LineageOS。脚本本身不要求Root权限。
桌面环境选择指南
| # | 桌面环境 | 最佳适用场景 | 资源占用 |
|---|---|---|---|
| 1 | XFCE4 (默认) | 多数用户。速度快、可定制性强、类似macOS的Dock栏 | 低–中 |
| 2 | LXQt | 老旧或低内存手机(2–3GB) | 极低 |
| 3 | MATE | 经典桌面体验 | 中等 |
| 4 | KDE Plasma | 仅限高性能手机——Windows 11风格 | 高 |
若不确定,请选择XFCE4。
安装步骤
步骤1——安装必要应用
从F-Droid安装Termux,从GitHub安装Termux-X11(链接见上文)。
授予这两个应用请求的所有权限。
步骤2——预升级Termux(重要——请先执行)
打开Termux并运行:
termux-wake-lock
pkg upgrade -y
termux-wake-lock可在屏幕关闭时保持Termux运行——否则Android可能在安装过程中终止进程pkg upgrade在脚本运行前更新基础系统,避免已知的libpcre和libandroid-selinux相关崩溃问题
步骤3——下载并运行脚本
curl -O https://raw.githubusercontent.com/mayukh4/linux-android/main/termux-linux-setup.sh
chmod +x termux-linux-setup.sh
bash termux-linux-setup.sh
脚本会要求选择桌面环境及是否安装Wine。其余步骤全自动完成。
安装耗时10–30分钟(取决于网速)。完整日志保存至~/termux-setup.log。
步骤4——启动桌面
bash ~/start-linux.sh
然后打开Termux-X11应用,Linux桌面将显示在其中。
停止运行:
bash ~/stop-linux.sh
安装组件详情
| 组件 | 说明 |
|---|---|
| Termux-X11 | 显示服务器——将桌面渲染到屏幕 |
| 桌面环境 | 可选:XFCE4、LXQt、MATE或KDE |
| Mesa / Zink | 基于Vulkan的OpenGL——启用GPU加速图形 |
| Turnip驱动 | 高通Adreno开源Vulkan驱动(自动检测) |
| D-Bus | 会话消息总线——桌面环境设置守护进程必需 |
| PulseAudio | 音频服务器 |
| Firefox | 桌面级网页浏览器 |
| VLC | 视频/音频播放器 |
| Git, wget, curl | 标准开发工具 |
| Python 3 + pip | Python运行时与包管理器 |
| OpenSSH | SSH服务器与客户端——支持从PC远程访问 |
| Wine (可选) | 通过Hangover + Box64运行Windows x86应用 |
GPU加速原理
脚本通过硬件属性(非品牌名称——三星部分地区发售搭载Adreno的手机,部分地区为Mali,品牌检测不可靠)自动检测GPU。
高通Adreno(骁龙手机):使用开源Turnip Vulkan驱动 + Zink(基于Vulkan的OpenGL)。接近原生GPU性能。
Mali/其他GPU:回退至Zink + SwRast(软件Vulkan)。功能可用但建议选择较轻量的桌面环境(XFCE4、LXQt)。
Zink来自Termux自带的mesa包($PREFIX/lib/dri/zink_dri.so),自Mesa 23起已包含。仅在Mesa版本缺失Zink或已有第三方mesa-zink时才回退——两套库文件名相同,不可混用。
GPU环境保存于~/.config/linux-gpu.sh,每次运行start-linux.sh时自动加载。可编辑该文件调整Mesa参数。
从桌面终端检查实际使用的驱动:
# 查看加载器选择的Vulkan驱动
vulkaninfo --summary | head -30
# 查看OpenGL渲染器(应显示"zink")
glxinfo -B | grep -i "renderer\|opengl version"
SSH——从PC访问手机
OpenSSH已随脚本自动安装。可通过同一Wi-Fi网络的任意电脑SSH连接至手机——适用于命令操作、文件传输或使用完整键盘开发。
首次SSH设置
在Termux中打开终端(非桌面内终端——使用普通Termux应用):
# 启动SSH服务器
sshd
# 设置Termux密码(SSH登录时使用)
passwd
获取手机IP地址:
ip addr show wlan0 | grep 'inet '
输出形如inet 192.168.1.42/24——IP地址为/前部分。
从PC/笔记本连接
在计算机(Linux、macOS或Windows Terminal)执行:
ssh [email protected] -p 8022
端口8022是Termux默认SSH端口(非标准端口22,后者需要Root权限)。
查询Termux用户名:运行whoami,通常形如u0_a123。
简化登录(SSH配置,可选)
在PC的~/.ssh/config中添加:
Host myphone
HostName 192.168.1.42
User u0_a123
Port 8022
之后可直接连接:
ssh myphone
文件传输(SCP/SFTP)
从PC传输文件至手机:
scp -P 8022 myfile.txt [email protected]:~/
从手机传输文件至PC:
scp -P 8022 [email protected]:~/somefile.txt ./
或使用任意SFTP客户端(如FileZilla/Cyberduck)——连接相同IP与端口8022。
关闭Termux后保持SSH运行
默认情况下sshd会随Termux关闭而停止。要持续运行:
# 添加到~/.bashrc实现Termux启动时自动运行sshd
echo 'sshd 2>/dev/null' >> ~/.bashrc
Windows应用支持(Wine)
若安装Wine,将使用Hangover Wine与Box64将Windows x86调用转译为ARM64。
简单工具通常可运行;大型软件或游戏可能不兼容。
配置Wine:在桌面终端运行winecfg,或点击桌面Wine Config快捷方式。
Home Assistant——智能家居服务器
将旧Android手机变为永不关机的智能家居中枢——控制WiFi智能灯、插座等设备,可通过网络内任意浏览器访问。
Home Assistant Core运行在手机上的轻量级Ubuntu容器(通过proot-distro)。无需Root,本地设备无需云端依赖。
可控设备类型
| 设备类型 | 品牌示例 | 连接方式 |
|---|---|---|
| WiFi智能灯 | TP-Link Kasa、Govee、LIFX | 本地网络直连IP |
| WiFi智能插座 | TP-Link Kasa、Wemo | 本地网络直连IP |
| 云端连接设备 | Tuya/Smart Life、Govee | 通过云端API(全球可用) |
| 其他WiFi设备 | 智能开关、传感器、摄像头 | 通过IP或云端集成 |
Android环境限制
- 无蓝牙——Termux无法访问手机蓝牙协议栈
- 无USB加密狗——Zigbee/Z-Wave USB加密狗需Root与内核支持
- 无自动发现(mDNS)——Android 10+封锁
/proc/net/dev,破坏Zeroconf功能。必须通过IP或云端API手动添加设备 - 无Docker/插件——此为HA Core,非HA OS。依赖Docker的社区插件无法运行。核心集成(2000+)可正常使用。
安装
curl -O https://raw.githubusercontent.com/mayukh4/linux-android/main/setup-homeassistant.sh
bash setup-homeassistant.sh
安装耗时15–45分钟(取决于手机性能)。最耗时的步骤是在Ubuntu容器内编译Home Assistant的Python依赖项(numpy、cryptography等)。
启动与停止
# 启动Home Assistant
bash ~/start-homeassistant.sh
# 停止Home Assistant
bash ~/stop-homeassistant.sh
# 升级至容器Python支持的最新版本
bash ~/upgrade-homeassistant.sh
HACS——社区插件商店
HACS (https://www.hacs.xyz) 是集成、主题与Lovelace卡片的社区商店(不包含在HA核心中)。
安装脚本可选自动安装HACS。
请在安装任何其他自定义集成前安装HACS。
若custom_components/已存在手动安装的集成,请先删除——否则HACS可能状态异常。
手动安装:
proot-distro login ubuntu -- sh -c "cd ~/hass-config && wget -O - https://get.hacs.xyz | bash -"
重启Home Assistant后在仪表盘完成设置:
- 设置 → 设备与服务 → +添加集成
- 搜索HACS
- 勾选所有确认项,使用GitHub账户授权
完整配置文档:hacs.xyz/docs/use/configuration/basic (https://www.hacs.xyz/docs/use/configuration/basic/)。
升级Home Assistant
bash ~/upgrade-homeassistant.sh
为何新安装版本可能低于官网显示版本?
pip会安装你的解释器满足requires-python的最新版本,然后停止。这不是安装失败:
| 容器Python版本 | 可运行的最新Home Assistant |
|---|---|
| 3.12 | 2025.1.x |
| 3.13.0 – 3.13.1 | 2025.5.x |
| 3.13.2+ | 2026.2.x |
| 3.14.2+ | 2026.3及更高版本 |
(已验证每个版本的PyPI requires-python要求)
proot-distro install ubuntu跟踪滚动Ubuntu版本,Python版本取决于容器安装时间。
bash ~/upgrade-homeassistant.sh会显示你的Python版本并提示是否已达上限。
进阶:突破Python版本限制
此操作非自动化,会替换正在运行的安装中的解释器。请先备份~/hass-config。
proot-distro login ubuntu
# 1. 获取独立CPython 3.14(无需PPA/编译)
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
uv python install 3.14
# 2. 创建新虚拟环境(保留旧环境)
uv venv --python 3.14 ~/hass-venv-314
~/hass-venv-314/bin/python -m pip install --upgrade pip wheel setuptools
uv pip install --python ~/hass-venv-314/bin/python homeassistant
# 3. 切换前用现有配置测试
~/hass-venv-314/bin/hass -c ~/hass-config
若正常启动,修改~/start-homeassistant.sh指向hass-venv-314/bin/hass。
若失败,旧~/hass-venv保持不变——继续使用即可。
注意:Home Assistant Core(Python/虚拟环境安装方式)已于2025年在上游弃用
(https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/)。
它仍可正常运行并接收更新,但不再是官方支持安装方式。
在手机上仍是唯一可行方案——HA OS与HA Container均需要Docker或裸机环境。
访问仪表盘
HA运行后,在WiFi网络内任意设备的浏览器访问:
http://<手机IP>:8123
使用ip addr show wlan0 | grep 'inet '在Termux中获取手机IP。
首次启动需5–10分钟初始化,首次访问需创建管理员账户。
添加首个设备——TP-Link Kasa示例
- 在常规手机打开Kasa应用,记下设备IP地址(设备设置→设备信息)
- 在HA仪表盘:设置 → 设备与服务 → +添加集成
- 搜索**“TP-Link Kasa Smart”**
- 按提示输入设备IP地址
- 灯/插座应出现在列表中——即可通过HA控制
由于Android禁用mDNS,自动发现不可用。必须通过IP手动添加。
添加Tuya/Smart Life设备
Tuya设备通过云端API连接,无视本地网络限制:
- 访问iot.tuya.com (https://iot.tuya.com) 创建免费开发者账户
- 创建云端项目→选择数据中心区域→添加智能家居API
- 进入设备→链接Tuya应用账户→用Smart Life/Tuya Smart扫描二维码
- 在HA仪表盘:设置 → 设备与服务 → +添加集成 → Tuya
- 输入Tuya控制台的Access ID和Access Secret
后台持续运行Home Assistant
默认情况下,Android会在应用后台运行时终止Termux进程。要保持HA全天候运行:
# 方案1:使用nohup后台运行
termux-wake-lock
nohup bash ~/start-homeassistant.sh > ~/hass.log 2>&1 &
# 方案2:Termux启动时自动运行(添加到~/.bashrc)
echo 'termux-wake-lock && nohup bash ~/start-homeassistant.sh > ~/hass.log 2>&1 &' >> ~/.bashrc
termux-wake-lock可防止Android挂起进程。将手机接通充电器,即可成为专用全天候服务器。
视频应用案例
运行此配置的旧Android手机可实现:
- 智能家居控制器——插电运行Home Assistant,24/7控制
相似文章
我的服务器现在是一部手机
作者用一台运行 Termux 的 CMF Phone 1 家用服务器取代了 Hetzner VPS,详细介绍了安装 postmarketOS 的种种陷阱,最终使用 Android 搭配 Termux、runit、Tailscale 和 Caddy 来托管 Surf 和财务追踪器等 Web 应用。
@wongmjane:我将使用了8年的手机复活成了一台Hermes Agent服务器——用postmarketOS(基于ARM64的Alpine Linux)替换了Android系统……
用户将一台用了8年的手机改造成Hermes Agent服务器,运行在ARM64的postmarketOS上,通过Matrix进行端到端加密聊天,减少了电子垃圾,也无需再购买Mac mini。
将旧Android手机用作音乐播放器
本文介绍了如何将一台旧的Android手机,特别是华为P30,重新利用为专用音乐播放器,通过精简系统并使用如Poweramp等应用,提供了一种既经济又环保的传统音乐播放器替代方案。
我把一台80美元的RK3562安卓平板变成了Debian Linux工作站
一个构建系统和预发布的Debian 12映像,适用于Doogee U10安卓平板(Rockchip RK3562),无需解锁引导加载程序即可实现完整的Linux功能,从零开始逆向工程。
@HowToPrompt__: 有人开源了一个工具,可以在Docker容器内运行整个Android手机。100%开源。
一款开源工具已发布,可以在Docker容器内运行整个Android手机。