Dowork 是一个在安卓运行 Linux 容器并且集成了终端,图形化显示,音频输出,容器管理等功能的多合一管理器

# 前言

如果有人用过 Linuxdeploy ,那必定吐槽过这玩意的难用,使用其安装 Linux,需要时刻关注天朝内部网络天气,并且准备好魔法上网,生成 bootstrap 的过程让人等待到厌烦,如果遇到一个包下载超时,那便只有两个选择:从头开始安装和等待 30 分钟 wget 会自动重新下载。
如果你也遇到过以下情况:用它启动 ssh 是否成功全靠运气,无法安装根文件系统,安装完成后的 Linux 残缺。那是时候考虑换个软件了。没错说的就是你 Dowork

# 简单介绍

Dowork 融合了 Linuxdeploy 的后端,同时支持无 root 权限使用,在享受到 Linuxdeploy 自动脚本的方便的同时,也加入了 Rootfs 在线获取和下载功能,你可以通过 rootfstool 命令行工具获取到最新构建的发行版 Rootfs (终于不用看网络脸色了)。
Dowork 使用了来自 Termux 的终端,提供可控性操作,按键布局继承自 "Tmoe" 脚本,方便实用。
Dowork 使用 Xvfb 作为显示后端,提供两种显示模式 (内部 / 外部 Xvfb),数据传输使用 unix 套接字 (比 XSDL 和 VNC 传输性能好得多), 同时支持触控会手势滚动,文本输入支持中文
Dowork 内置 pulseaduio, 提供音频输出。
Dowork 提供悬浮命令行任务输出,摸鱼和学 Linux 两不误
下载 Dowork (GITHUB)

# 使用教程

# 创建容器

在容器页面点击加号即可创建
创建后请修改以下数据

  • 容器类型
    根据是否具有 root 权限选择,若无 root 权限,只可选择 proot
  • 发行版 GNU/Linux
    请确定自己偏好的 Linux 发行版
  • 安装类型
    请选择 目录 安装 (其他类型暂时未适配)
  • 安装目录
    此安装目录可自定义,一个容器对应一个目录
    若容器为 proot, 请默认安装在 /data/data/com.pangbai.dowork/files/ 下目录
    若容器为 chroot, 任何具有执行权限的目录都可安装 (最好是 /data 下目录)

# 安装 rootfs

rootfs (根文件系统) 包含容器运行所需所有文件
Dowork 提供两种方式安装 rootfs (Proot 和 Chroot 都可以使用)

  • 在线构建 rootfs
    在线构建 bootstrap 与 Linuxdeploy 使用方法相同,考虑到网络状况,可能需要修改软件源
    此方法较为反人类,此处略过。
  • 导入 rootfs
    返回到软件主页,点击终端符号可进入安卓 shell 环境 (此环境在容器未安装时可用)
    进入终端
    进入终端后输入命令行,可查看 rootfstool 用法和提示
rootfstool help

若我们想安装最新版本的 centos9, 可输入以下命令获得 rootfs 的 url,其他发行版同理

rootfstool url -a arm64 -d centos -v 9 -m bfsu

获取到 url 后我们就可以拿去导入了,在容器配置页面,点击右上角中间的按钮,把 url 填入,进行导入,等待导入完成,提示 Succeed 即导入成功。
导入容器
此时我们返回软件主页可以看到容器的版本信息已经识别出来了
版本信息
是否显示版本信息是 Dowork 判断容器是否可用的标志
此时我们再点击终端符号,就会直接进入容器
至此容器安装完成

# 图形化显示以及音频输出

  • 图形化显示
    若无特殊需求请选择内置 X 服务器,在显示页面可对显示屏幕进行设置,由于显示屏幕是横向放置,第一个参数 width 不应该大于屏幕高度,第二个参数 height 不应该大于屏幕宽度,否则会出现显示画面闪烁和崩溃,第三个参数为显示色深,如果没有特殊需求,不建议更改。更改后重启 Dowork ,若 Xserver 状态为 running 即正常。
    Dowork 会自动嗅探图形化软件的打开和关闭,并且提供浮窗显示,同时可以进行点击,滚动页面等操作,如果你是一个想在安卓上进行跨平台图形化开发的开发者,你会爱上这个功能 (相比于 termux-x11 等应用,满足了开发者快速图形化调试的需求)。
    Dowork 已在容器内预设 DISPLAY 环境变量,只需直接启动图形化软件即可显示
  • 音频输出到 pulseaudio
    音频输出需要在容器内配置音频服务
    若是 chroot 容器,可以直接在容器配置页面勾选 启用允许音频输出
    若为 proot 容器需要手动安装软件包 (Linuxdeploy 的配置页面是为 chroot 准备的,适配需要些时间)
  • debian 系安装 libasound2-plugins
  • arch 系安装 pulseaudio-alsa
  • centos 系安装 alsa-plugins-pulseaudio
    最后创建 /etc/asound.conf 文件,加入以下内容
pcm.!default { type pulse }
ctl.!default { type pulse }
pcm.pulse { type pulse }
ctl.pulse { type pulse }

至此音频配置完成
可以使用 aplay 命令测试是否成功

aplay *mp3

# 容器配置和更新 (仅限 chroot)

在容器配置页面更改配置并退出
在容器管理页面点击更新按钮
更新容器配置

# 进程管理

在主页会对已运行的 chroot 进程进行探测,可以进行手动管理
若点击 umount container 将会终止所有 chroot 进程并卸载容器
进程管理

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

PangBai 微信支付

微信支付

PangBai 支付宝

支付宝

PangBai 贝宝

贝宝