MENU

记录:安装 Droidspaces,在手机/平板上运行 Debian 13!

• 2026 年 05 月 11 日 • 阅读: 49 • 未分类

前言

最近发现了一个很有意思的项目 Droidspaces,可以在 Android 设备上很方便地运行容器,(软件本身)配置简单,且提供了不少 chroot 容器无法实现的功能,便在自己的两台设备上安装尝鲜了一下。

你的下一台电脑,何必是电脑?(

把配置的过程记录一下,供参考。如有操作不正确的地方,欢迎评论指正。

Droidspaces 项目自身简介如下,完整信息请查看 GitHub。

What is Droidspaces?

Droidspaces is a container runtime that uses Linux kernel namespaces to run full Linux distributions with a real init system (systemd, OpenRC, etc.) as PID 1.

Unlike traditional chroot, which simply changes the apparent root directory, Droidspaces creates proper process isolation. Each container gets its own PID tree, its own mount table, its own hostname, its own IPC resources, and its own cgroup hierarchy. The result is a full Linux environment that feels like a lightweight virtual machine, but with zero performance overhead because it shares the host kernel directly.

Droidspaces is designed to work natively on anything that runs a Linux kernel, including Android, Linux Desktop, and minimal environments like Android recovery/ramdisks. On Android, it handles all kernel quirks, SELinux conflicts, complex networking scenarios, and encryption issues that break other container tools. On Linux Desktop, it works out of the box with no additional configuration needed. On ramdisks, it handles all the quirks like pivot_root as well!

The entire runtime is a single static binary under 300KB, compiled against musl libc with no external dependencies.

“我没有解BL锁可以用吗?”

不可以。

一、修改内核

Droidspaces 需要对设备内核进行修改,且推荐使用 KernelSU 作为 root 方案。(详情修改请参考 README

请先检查你的设备内核版本:

如果是 5.10 及以上

那么得益于 GKI 2.0 项目带来的通用性优势,你无需了解过多相关知识,可直接使用下面的项目,利用 GitHub Actions 完成内核修改与编译:

下面的仓库为此提供了详细教程,还整理提供了 NTSync 补丁,可提高在容器内用 Wine 运行 Windows 程序的性能,可直接参考,在此不再赘述:

(以上描述比较粗浅,要了解更多 GKI 相关信息,可参阅 KernelSU 文档,并自行搜索进一步了解)

如果是 5.4

这是 GKI 1.0 内核,你需要自行修补设备内核;如果设备厂商没有开源内核源码,那么通常是无法实现的。

下面以我运行 DerpFest 16.2 的 Xiaomi 11 Lite 5G (renoir) 为例。我使用的内核仓库:

这里是使用 LineageOS 的内核,需要在 arch/arm64/configs/vendor/lahaina-qgki_defconfig 里修改添加配置;我此前已加入 SukiSU-Ultra 支持,且已启用 Docker 所需配置(点击查看详情),因此只需再启用:

CONFIG_SYSVIPC=y
CONFIG_NETFILTER_XT_SET=y
CONFIG_NETFILTER_XT_TARGET_LOG=y
CONFIG_NETFILTER_XT_MATCH_RECENT=y
CONFIG_IP_SET=y
CONFIG_IP_SET_HASH_IP=y
CONFIG_IP_SET_HASH_NET=y
CONFIG_DEVTMPFS=y

接下来,应用 SYSVIPC kABI 补丁。补丁可在这里获取。

提示

Droidspaces 文档推荐应用 6_7_8 版本补丁;由于我操作时忽略了这条提示,直接应用了 1_2_3 版本并完成了后面的测试。请优先应用 6_7_8 版本;如果遇到无法开机的情况再更改。

然后还需应用 POSIX_MQUEUE kABI 补丁。补丁可在这里获取。

要构建 NTSync,可参考这个提交(可能有问题)。

然后构建内核。构建内核相关的知识不在本文讨论范围内,有需要可自行查阅资料。

如果是 4.19 及以下

你仍然需要手动修补内核并构建,参考上一部分按照 Droidspaces 文档修改配置即可。

二、安装 Droidspaces

完成上面的步骤后,将修改的内核刷入设备,从 Droidspaces 仓库 Releases 安装管理器。

image.png
在 KernelSU 管理器中为其授予 root 权限后打开,按要求安装后端程序后重启设备。再次打开,应该能看到类似下面的界面:

三、安装容器

前往 Droidspaces/Droidspaces-rootfs-builder 下载所需 RootFS。由于我后面计划安装 KDE,因此选择 base 版本 Tarball。

image.png
在 Droidspaces App 中选择“容器”,点击右下角“+”新建,按需配置。

为了后续能正常使用 GPU 加速,需要启用“硬件访问”、“配置 Termux X11”。

提示

为了避免兼容性问题,推荐在创建容器时选择使用稀疏镜像。

安装完成后,启动即可。

四、进一步配置

前往 面板 > 活跃的容器,找到刚刚启动的容器,打开终端。

提示

以下部分请根据实际需要配置。

新建用户

不推荐直接使用 root 账户,因此在容器内先配置一个用户账户。

# adduser <username>
# usermod -aG sudo <username>

此后进入终端时即可选择使用新建的用户账户登入,需要 root 权限时使用 sudo 即可。

安装 zsh 并配置

可参考这篇文章进行配置:zsh 安装与配置,使用 oh-my-zsh 美化终端(by Leehow)

Screenshot_20260511120109899_comtermuxx11edit.jpg

配置 GPU 加速(仅限高通设备)

你需要先安装 TermuxTermux:X11。安装之后,在 Termux 中执行:

$ pkg install x11-repo && pkg install termux-x11
$ termux-x11 :0

要启用硬件加速,建议使用下面的仓库提供的修补后的 Mesa 构建:

按照说明在容器里安装即可。安装后在容器内 /etc/environment 中添加:

DISPLAY=:0
MESA_LOADER_DRIVER_OVERRIDE=kgsl

注意

如果后续部分应用在此配置下运行有问题,请单独为对应程序设置环境变量 MESA_LOADER_DRIVER_OVERRIDE=zink

此外,还需要在容器内执行:

$ sudo usermod -aG droidspaces-gpu <username>

安装 KDE

确保上一步配置的环境变量生效,Termux、Termux:X11正在运行且已正确配置连接。

在容器内执行:

$ sudo apt update
$ sudo apt install kde-standard dbus-x11
$ dbus-launch /etc/X11/Xsession

注意

尽管配置了 GPU 硬件加速,但由于不支持 KDE 特效,请在 ~/.config/kwinrc 中添加:

[Compositing]
Enabled = false

此外如果遇到桌面无法正常打开,可能是 SEPolicy 问题,在 Termux 里执行:

$ su
# /data/adb/ksud sepolicy patch "allow untrusted_app_27 droidspacesd { fd file dir fifo_file lnk_file sock_file unix_stream_socket unix_dgram_socket binder } { read write getattr open add_name remove_name search connectto call transfer use }"

如果一切正常,你应该能在 Termux:X11 中看到 KDE Plasma 已经启动。

Screenshot_20260511115458083_comtermuxx11.jpg

安装 Wine (Hangover)

为了方便地在容器里运行 Windows 应用,可选择使用 Hangover。Hangover 项目仓库如下:

前往 Releases 下载,解压后安装即可。

image.png

$ sudo apt install ./hangover*.deb

安装后,输入 winecfg 命令进行初始化配置。

此时应已可正常运行应用;如遇字体缺失、无法运行、性能较低的情况,可参考 Goldbug@CoolApk 的这篇教程进行配置。

配置音频输出

可利用 Termux 中的 pulseaudio 实现容器内音频输出。若 Termux 中未安装,则先在 Termux 中执行:

$ pkg install pulseaudio

为了更好的性能,采用 AAudio 音频后端,因此需要更改 /data/data/com.termux/files/usr/etc/pulse/default.pa 配置文件。将配置文件末的 load-module module-sles-sink
注释掉,再取消注释 load-module module-aaudio-sink。为了更好的兼容性,还需将文件中 load-module module-suspend-on-idle 这行注释。最后,在文件末尾添加 load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1 即可。修改好的文件应类似下图:

image.png

启动容器内桌面环境前,先在 Termux 中执行:

$ pulseaudio --start --exit-idle-time=-1

然后在容器中配置环境变量:

$ export PULSE_SERVER=tcp:127.0.0.1

之后再启动桌面环境,音频输出应该已正常工作。

image.png

提示:关于 Minecraft...

测试发现 Minecraft 在默认配置下无声音输出,可加环境变量 ALSOFT_DRIVERS=pulse 解决。详见 ArchWiki

配置中文输入法

这里采用 Fcitx 5 + rime-frost 方案。首先在容器内安装和启用:

$ sudo apt install fcitx5-rime
$ im-config

image.png

然后安装 rime-frost 词库。rime-frost 仓库:

通过 git clone 安装如下:

$ git clone --depth 1 https://github.com/gaboolic/rime-frost ~/.local/share/fcitx5/rime

之后配置 Fcitx 时,选择“中州韵(Rime)”启用即可。

image.png
你也可以配置其他 Fcitx 5 主题,将主题放在 $HOME/.local/share/fcitx5/themes/ 目录下,如下图完成配置即可。

image.png

最后编辑于: 2026 年 05 月 13 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新留言

已有 2 条留言
  1. HXH HXH

    感谢CHB大人无上恩德TAT

    1. siergtc siergtc

      @HXH::quyin:speechless::