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 进程并卸载容器