如何将旧 Android 手机变成口袋 Linux 服务器或桌面系统(无需 Root)
几乎每个人抽屉里都有一部积灰的旧智能手机。屏幕完好,电池还能撑几个小时,里面还有八核处理器——但扔掉又觉得浪费。这类设备的典型命运是闲置多年,直到电池最终膨胀。
许多人尝试过通过 VNC 在 Android 上安装 Linux 发行版,但通常结果令人失望:界面卡顿严重、缺乏真正的 3D 加速、还要没完没了地折腾 Root 权限。最近我发现了开发者 mayukh4 的 linux-android 仓库。这个项目优雅地解决了这个问题。基于 Termux 和 Termux-X11 的几个脚本,就能把手机变成配备图形桌面或全天候智能家居中枢的完整工作站。无需 Root。
一个仓库,两种使用场景
作者将项目分为两个独立的分支,如有需要可以同时在同一设备上运行。
第一条路径是完整的图形桌面。脚本会部署你选择的环境(XFCE4、LXQt、MATE 或 KDE Plasma),通过 PulseAudio 传输音频,并配置硬件图形加速。开箱即用,你将获得 Firefox 浏览器、VLC 播放器、Python 3 及 pip 包管理器、OpenSSH,甚至还有 Wine 配合 Box64 和 Hangover 模拟来运行 x86 Windows 程序。
第二条路径是家庭自动化服务器。脚本通过 proot-distro 启动一个轻量级 Ubuntu 容器,并在其中编译 Home Assistant Core。成果是一个本地智能家居服务器,可以控制 Wi-Fi 灯泡和插座,耗电量仅需手机充电器的几瓦功率。
图形堆栈和 3D 加速的工作原理
旧版在手机上运行 Linux 的指南主要问题是使用了慢速的 VNC 客户端。这里不同,画面直接通过 Termux-X11 输出。这是一个独立的应用程序,作为 Termux 环境的快速 X11 显示服务器。
作者正确处理了图形问题。脚本通过 Android 系统属性自动检测 GPU 型号,忽略智能手机品牌(因为三星产品线可能同时使用骁龙和 Exynos 芯片)。
如果设备采用高通骁龙芯片配合 Adreno 图形,系统会加载开源 Turnip Vulkan 驱动程序,配合 Zink(通过 Vulkan 转换 OpenGL)。这能提供接近原生的 3D 性能和流畅的界面。如果智能手机使用的是 Mali 或 PowerVR 图形芯片,环境会切换到 SwRast 软件渲染器。对于 Mali 设备,作者建议选择 LXQt 或 XFCE 等轻量级桌面环境,因为在软件渲染器上运行厚重的 KDE Plasma 会明显卡顿。
所有图形参数都保存在配置文件 ~/.config/linux-gpu.sh 中。如有需要,你可以手动编辑它并调整 Mesa 参数——例如强制使用特定 OpenGL 版本或启用调试模式。
通过 SSH 远程工作
用五英寸智能手机屏幕操作终端或编写代码并不总是很方便。开发者预见到了这一点,在基础包中包含了 OpenSSH 服务器。
由于 Termux 没有 root 权限,SSH 服务器监听非标准端口 8022。你可以用一条命令从局域网内的笔记本电脑或 PC 连接到智能手机:
ssh [email protected] -p 8022
Termux 用户名通常遵循 u0_a123 的模式(你可以通过 whoami 命令查看)。文件可以通过标准的 scp 或任何熟悉的 SFTP 客户端便捷地传输。只需将主机添加到主计算机的 ~/.ssh/config 中,配置基于密钥的登录,手机就变成了一个安静的远程沙盒,用于测试和代码构建。
Home Assistant 的注意事项
把智能手机变成智能家居服务器看起来很诱人,但必须了解作者在文档中诚实警告过的 Android 技术限制。
由于 Home Assistant Core 在没有超级用户权限的 proot 容器中运行:
- mDNS 和本地网络上的自动设备发现无法工作。从 Android 10 开始,系统阻止访问
/proc/net/dev,因此智能插座和灯泡(例如 TP-Link Kasa)必须通过 IP 地址手动添加。 - 无法访问手机蓝牙堆栈。
- 没有自定义内核和 root 访问权限,无法连接外部 USB Zigbee 或 Z-Wave 适配器。
- 这是 Home Assistant Core,不是完整的 Home Assistant OS。社区插件目录中需要 Docker 的插件无法在此启动,但内置集成可以正常工作。
对于 Tuya 或 Smart Life 等云集成没有此类限制——它们通过开发者 API 连接,可以正常管理。
安装和启动
安装需要 Termux 本身(必须从 F-Droid 获取构建版本,因为 Google Play 版本早已停止维护)和 Termux-X11(来自 GitHub 仓库)。
在运行主脚本之前,必须更新包数据库并防止 CPU 进入休眠状态:
termux-wake-lock
pkg upgrade -y
termux-wake-lock 命令防止操作系统在屏幕变暗时终止构建过程。之后可以克隆并运行桌面脚本:
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 分钟。
一个有趣实现细节:脚本有一个自定义的 safe_install_pkg 函数。它通过 apt-cache 解析包元数据并提前检查 Conflicts 块。如果系统已有冲突的包(例如不同版本的 Vulkan 加载器),脚本会仔细跳过有问题的组件,而不是抛出错误崩溃。
桌面环境通过以下命令启动:
bash ~/start-linux.sh
之后只需打开 Termux-X11 应用,桌面就会显示出来。
如果你的目标是设置 Home Assistant,请运行单独的脚本 setup-homeassistant.sh。它会创建 Ubuntu 环境,安装 Python 依赖,并构建所需的模块。服务器启动后,在局域网内任何浏览器的地址 http://<ip-телефона>:8123 打开 Web 界面。
谁会发现这个项目有用
Mayukh4 的脚本消除了从零散的论坛教程中组装工作环境的需要。所有常见陷阱,包括依赖冲突和被 Android 后台管理器终止的进程,都已经在这里处理好了。
这个项目非常适合想要:
- 实验 Linux 和命令行而不必购买树莓派或设置虚拟机;
- 获得一个口袋服务器用于后台 Python 任务和实验;
- 在旧硬件上运行一个经济实惠的家庭自动化中枢;
- 通过将蓝牙键盘和鼠标连接到智能手机来构建一个紧凑的移动工作站。
如果你有一部配备 64 位处理器和 3-4 GB RAM 的闲置智能手机,这个仓库给了它绝佳的第二次生命机会。
相关项目