安卓手机运行Linux系统-Droidspaces入门教程

一.为什么是Droidspaces?

Droidspaces是一款在Github上开源的Linux容器化工具,能让你在安卓或安卓Recovery/Ramdisk等最小化环境中运行完整的Linux系统,支持完整的初始化系统,包括systemd、OpenRC以及其他初始化系统(runit、s6 等)。

Droidspaces是目前安卓上唯一真正为容器化Linux环境而生的方案——它解决了LXC/Docker在安卓上的水土不服(保活、网络、开机自启、持久化),它支持硬件与原生 GPU 直通,完整的 systemd-udevd 支持——如同真正的Linux PC,以及Termux-X11一键开关支持,还有便携式rootfs.img支持原生loop挂载、fsck、SELinux加固等,并且与传统的Chroot仅仅改变表面上的根目录不同,Droidspaces创建了真正的进程隔离,在安卓上,它处理了所有会导致其他容器工具崩溃的内核问题、SELinux冲突、复杂网络场景和加密问题,最终呈现的是一个完整的Linux环境,如同轻量级虚拟机一般,而且直接共享宿主机内核,性能零损耗。有关更多功能特性详见README

任何技术方案都有短板,Droidspaces也不例外,主要集中在以下几个方面:

  • 强制Root权限需求:这是Droidspaces相比PRoot的唯一“劣势”——没有Root就无法使用

  • 内核要求苛刻:要求安卓内核支持诸多官方未配置的特性,即需要重新编译内核加入特性

  • 不支持GrapheneOS:它阻止了命名空间隔离和容器化所需的关键系统调用,即使拥有Root权限

  • 不支持SuSFS:需要在SuSFS配置中关闭”对所有进程隐藏SuS挂载”,以避免容器启动失败

  • 设备兼容性不均:对高通设备最友好,而其他芯片可能存在未知问题

  • 稳定性有待加强:作为新生项目,稳定性仍有不足,但持续改进

Droidspaces目前依然是安卓上跑Linux的最强方案,但“强”不代表“完美”。它适合愿意折腾的玩家,不适合追求“开箱即用稳定运行”的普通用户。

二.安装容器前的准备工作

运行Droidspaces主要有两点要求:

  1. Root权限:KernelSU及其分支完全支持并且官方强烈推荐,而APatch和Magisk需要在Droidspaces应用设置中启用守护进程模式并重启设备,以绕过用户空间启动运行时的root域seccomp限制。

  2. 兼容的内核:内核必须启用特定的配置选项(命名空间、Cgroups、Seccomp等)才能运行Droidspaces。

以上两点要求可通过重新编译内核一次性满足,并且官方社区已支持不少设备,提供了各机型已满足要求的自定义内核,详见设备支持

什么?🤔,你问我设备不受支持怎么办?🧐,那就自己编译吧

什么?🤔,你问我不会编译内核怎么办?🧐,那就学吧,这里有几篇教程🤓☝️:

  1. https://github.com/ravindu644/Android-Kernel-Tutorials

  2. https://github.com/ravindu644/Droidspaces-OSS/blob/main/Documentation/zh-CN/Kernel-Configuration.md

  3. https://github.com/tiann/KernelSU/discussions/950

  4. https://source.android.com/docs/setup/build/building-kernels?hl=zh-cn

  5. https://kernelsu.org/zh_CN/guide/how-to-build.html

  6. https://kernelsu.org/zh_CN/guide/how-to-integrate-for-non-gki.html

那要是既不受支持又不想学怎么办?可尝试找人付费解决

那么,在终于得到了满足要求的自定义内核之后,将其刷入设备,即可开始安装容器。

视频演示:

<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=116641899745618&bvid=BV1c9VT64Ef3&cid=38635439361&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>

三.容器安装指南

1.基础设置

首先,从官方发布页面下载最新的Droidspaces应用apk安装包并安装,打开Root管理器并授予Droidspaces应用Root权限,然后打开应用根据提示操作,首次启动时,Droidspaces会自动执行后端系统的原子安装,然后即可进入Droidspaces主页。

20260731092246359-image

注意而APatch和Magisk需要在Droidspaces应用设置中启用守护进程模式并重启设备,以绕过用户空间启动运行时的root域seccomp限制,以及集成了SuSFS的内核,需要在SuSFS配置中关闭”对所有进程隐藏SuS挂载”,以避免容器启动失败。

以及建议将Droidspaces集成到系统路径中打开,方便外部终端访问。

还可以在要求中,检查是否符合Droidspaces运行要求,如果全部符合,最终将输出All required features found!

20260731092333123-image

完成后建议重启手机一次。

2.获取Rootfs文件

可直接在应用中的容器选项卡点击位于安装按钮上方的云朵图标,打开Rootfs仓库,会从Droidspaces官方仓库加载可用发行版,仅显示与你设备架构匹配的镜像,然后找到你想要的Linux发行版,如果没有,可以点击右上角的设置按钮,输入LXC的Rootfs仓库链接https://raw.githubusercontent.com/Droidspaces/linuxcontainers-mirror/refs/heads/main/rootfs.json并点击订阅按钮添加

20260731092501795-image

接着找到想要的发行版点击下载按钮。

其中带有XFCE字样的为官方预配置了XFCE桌面环境的压缩包,如需享受开箱即用的XFCE桌面环境体验可以选择。

3.配置并安装容器

等待下载完成后出现安装按钮再点击,然后进入配置页面,按照喜好自行配置即可。

20260731092621419-image

有三种网络模式可供选择:

  • Host:直接共享宿主机网络。

  • NAT:拥有独立的网络 namespace,支持确定性 IP 和端口转发。

  • None:无网络访问。

如果选择主机模式,便无需过多设置,选择NAT模式的话还需配置上游网络接口、端口转发、静态IP等内容。

接着进行存储配置,这里需要注意,稀疏镜像在non-GKI内核上似乎无法使用,所以需要关闭,使用ext4镜像,继续操作,点击安装容器开始正式安装

20260731092859506-image

到此,一个Droidspaces容器正式安装完成。

四.运行容器

在容器选项卡中,点击启动按钮,即可启动容器,然后切换到面板选项卡中,点击右上角的终端按钮即可进入容器终端。

20260731093048497-image

除了这个内置终端以外,还可以通过Termux、ADB Shell等外部终端进行访问,需要先在Root管理器中对Termux或Shell授予Root权限,然后使用root权限执行droidspaces --name="容器名" enter即可访问容器。

20260731093157187-image

五.配置显示、音频与桌面

Droidspaces在安卓上的硬件加速是通过将容器的图形栈与宿主端X服务器Termux-X11桥接来实现的,Droidspaces处理了实现此无缝衔接所需的复杂挂载管理和安全上下文。

Droidspaces官方提供了三种方案:

  1. Termux-X11 + llvmpipe:保底方案,此方法通过llvmpipe使用CPU软件渲染。虽然它不提供完整的硬件加速,但在没有兼容GPU驱动可用时,这是运行GUI应用程序的最稳定方式。

  2. Termux-X11 + VirGL:虚拟化方案,此方法通过virglrenderer桥接为非高通设备(Mali/PowerVR) 提供GPU加速。它将容器中的OpenGL调用转换为宿主安卓操作系统可以执行的命令。

  3. Turnip:原生高通方案,对于高通Adreno GPU,Droidspaces支持使用Turnip Mesa驱动实现原生硬件加速。这绕过了对virgl的需求,并提供接近原生的性能。

音频方面Droidspaces通过PulseAudio将安卓的音频栈桥接到容器中。在容器配置中启用后,Droidspaces将自动配置PulseAudio服务从而使安卓音频HAL授予其访问设备扬声器的权限,因此容器内支持PulseAudio的应用无需任何额外配置即可发出声音。

具体实现方法可查看官方指南,下面展示配置方法

1.通用要求

  1. Droidspaces v6.3.0 或更高版本

  2. 必须在设备上安装 Termux 和 Termux:X11 两个应用。

  3. 在 Termux 内运行 Droidspaces 安装脚本

curl -fsSL https://github.com/ravindu644/Droidspaces-OSS/raw/refs/heads/dev/scripts/setup-termux.sh | bash

此脚本可在设置中的要求界面一键复制

20260731093305589-image

运行此脚本将自动安装 Termux:X11、VirGL、PulseAudio 并修补音频配置

20260731093325692-image

五.后记

相比之前主流的容器化工具,Droidspaces对安卓系统是非常友好的,并且运行的是完整的Linux系统,甚至还可以在其中继续运行Docker容器,给旧手机装上以后,也许又能焕发第二春,如作为轻量级服务器,或运行一些Windows应用(GalGame什么的),出门在外不想带电脑,还是有些作用的…

原文:安卓手机运行Linux系统-Droidspaces入门教程 – 夏目贵志のBlog

 

请登录后发表评论

    没有回复内容