@bkdgiffug: 别急着扔掉抽屉里积灰的旧安卓手机。安装Termux,然后运行一个开源方案——

X AI KOLs Timeline 工具

摘要

本项目提供脚本,通过Termux将旧安卓手机改造成Linux桌面或智能家居服务器,无需Root权限或电脑。

别急着扔掉抽屉里积灰的旧安卓手机。 安装Termux,然后运行一个开源方案——无需Root权限,无需电脑,也不用上传数据到云端——你就能把手机变成两种有趣的配置: ① Linux桌面:支持GPU加速,可以运行Firefox、VLC、SSH,甚至还能折腾Wine ② 家庭服务器:直接部署Home Assistant来控制灯光、智能插座等智能设备 骁龙设备的整体兼容性更好,两种环境可以共存。 这样复活一部旧手机,比让它在抽屉里积灰有趣多了。 🔗 https://github.com/mayukh4/linux-android… 🎬 教程:
查看原文
查看缓存全文

缓存时间: 2026/09/26 23:06

别急着丢掉抽屉里积灰的旧Android手机。只需安装Termux,然后运行一套开源配置——无需Root权限,无需电脑,也不用上传数据到云端——就能把手机变成两个有趣的环境:

  1. Linux桌面:支持GPU加速,可流畅运行Firefox、VLC、SSH,甚至能折腾Wine
  2. 家庭服务器:直接部署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.shbash 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,但性能会较弱。

软件要求

应用获取方式
TermuxF-Droid (https://f-droid.org/en/packages/com.termux/) ——勿用Google Play版本(已过时)
Termux-X11GitHub Releases (https://github.com/termux/termux-x11/releases) ——下载最新.apk文件

关于Root/自定义ROM:本脚本同样适用于原生Android系统。视频演示中使用了OnePlus 5T上的LineageOS。脚本本身不要求Root权限。


桌面环境选择指南

#桌面环境最佳适用场景资源占用
1XFCE4 (默认)多数用户。速度快、可定制性强、类似macOS的Dock栏低–中
2LXQt老旧或低内存手机(2–3GB)极低
3MATE经典桌面体验中等
4KDE 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 + pipPython运行时与包管理器
OpenSSHSSH服务器与客户端——支持从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后在仪表盘完成设置:

  1. 设置 → 设备与服务 → +添加集成
  2. 搜索HACS
  3. 勾选所有确认项,使用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.122025.1.x
3.13.0 – 3.13.12025.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示例

  1. 在常规手机打开Kasa应用,记下设备IP地址(设备设置→设备信息)
  2. 在HA仪表盘:设置 → 设备与服务 → +添加集成
  3. 搜索**“TP-Link Kasa Smart”**
  4. 按提示输入设备IP地址
  5. 灯/插座应出现在列表中——即可通过HA控制

由于Android禁用mDNS,自动发现不可用。必须通过IP手动添加。

添加Tuya/Smart Life设备

Tuya设备通过云端API连接,无视本地网络限制:

  1. 访问iot.tuya.com (https://iot.tuya.com) 创建免费开发者账户
  2. 创建云端项目→选择数据中心区域→添加智能家居API
  3. 进入设备→链接Tuya应用账户→用Smart Life/Tuya Smart扫描二维码
  4. 在HA仪表盘:设置 → 设备与服务 → +添加集成 → Tuya
  5. 输入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控制

相似文章

我的服务器现在是一部手机

Hacker News Top

作者用一台运行 Termux 的 CMF Phone 1 家用服务器取代了 Hetzner VPS,详细介绍了安装 postmarketOS 的种种陷阱,最终使用 Android 搭配 Termux、runit、Tailscale 和 Caddy 来托管 Surf 和财务追踪器等 Web 应用。

将旧Android手机用作音乐播放器

Hacker News Top

本文介绍了如何将一台旧的Android手机,特别是华为P30,重新利用为专用音乐播放器,通过精简系统并使用如Poweramp等应用,提供了一种既经济又环保的传统音乐播放器替代方案。