我想设置 Canonical 托管Ubuntu 基础镜像用于我的 Android 手机上的 arm。
我需要一个简单的逐步答案来指导如何开始。
我希望能够使用 Ubuntu 在手机上运行应用程序,而无需 root 权限。
看这个问题用于应用程序安装。
答案1
在 Termux 中设置 Ubuntu 涉及三个部分,
- 安装基础镜像
- 安装 DE(我将在此答案中使用 XFCE,因为它用户友好但不笨重)和 VNC 服务器
- (可选)启用声音,因为 VNC 协议不支持声音
最简单的方法- 如果你不想弄脏你的手,请安装特尔姆克斯,只需下载 Andronix (网站,GitHub) 或者安Linux,并使用它们安装 Ubuntu 20.04。这些应用程序提供脚本来下载和提取基础映像、安装桌面环境(例如 XFCE)以及设置 VNC 服务器,您只需将其复制粘贴到 Termux 中即可。
Andronix的用户界面
如何使用它?
完成后,输入打开 Ubuntu 的命令,以及退出 Ubuntu 的./start-ubuntu20.sh
命令。启动 Ubuntu 后,输入启动 VNC 服务器(带有 XFCE 桌面)的命令,以及停止它的命令。(不幸的是,它被命名为,虽然它实际上是 Ubuntu 20.04,而不是 Ubuntu Core 20。一旦你了解了脚本的工作原理,你可以将所有内容重命名为,或其他任何名称)exit
vncserver-start
vncserver-stop
ubuntu20
ubuntu20.04
由于虚假条目,某些条目(例如正常运行时间)是错误的/proc
,否则 Android 的最新版本不会让 Ubuntu 运行。
如何使用 VNC Viewer 访问 XFCE 桌面?
在 Android 中安装 VNC 查看器应用程序,例如VNC 查看器 - 远程桌面, 或者安卓VNC.并打开地址localhost:5901
.并打开连接VNC Server的
提示:选择quality: high
、 或24-bit color (4 bpp)
以获得更好的图片质量。此外,VNC Viewer - Remote Desktop
还很好地支持纵向和横向模式。其他 VNC 查看器似乎对纵向模式的支持不佳。
在 XFCE 桌面中运行的应用程序。我安装了 Tango 图标主题和 Arc GTK 主题
但是,这些应用程序将从他们的 GitHub 存储库(他们已在其中保存了副本)下载 Ubuntu Base,而不是从 Canonical 的网站下载。 这些应用程序中的所有脚本均可在其 GitHub 存储库中免费获得。
这个脚本起什么作用?
此脚本下载适合您设备架构的 Ubuntu rootfs 映像,然后将其设置为与 proot 配合使用。Android 的最新版本(v10、v11)施加了一些限制,这就是为什么此脚本会创建虚假条目/proc
以欺骗 Ubuntu 和 Android 正常运行。
启用声音
Andronix 拥有编写了脚本启用声音。在 termux 中运行以下命令 (不是 Ubuntu) 壳。
pkg install wget && wget https://andronixos.sfo2.cdn.digitaloceanspaces.com/OS-Files/setup-audio.sh && chmod +x setup-audio.sh && ./setup-audio.sh
使用声音
在 Termux shell 中启动 Ubuntu,并打开另一个 Termux shell(不要在那里打开 Ubuntu)。pulseaudio --start
在新的 Termux shell 中运行(而不是在 Ubuntu 中),现在 Ubuntu 就可以播放音频了。音频演示 -Youtube 视频
请注意,该文件setup-audio.sh
是加密的(可能是为了让 Andronix 的竞争对手无法使用它),但其可读形式可以找到这里。它是如此神秘,以至于 Unix & Linux Stack Exchange 上的人们认为它可能是一种恶意软件,但我已经证实它不是。
稍微复杂的方法 - 一次性结合步骤 1 和 2(但从 Canonical 下载图像,而不是从 Andronix 的 GitHub repo 下载)。
Andronix 拥有自动化脚本用于下载 rootfs、安装 DE,然后设置 VNC 服务器。
但是,Andronix 脚本从他们的 GitHub repo(Ubuntu 20.04(不是 20.04.2)rootfs 的重命名版本)下载 rootfs,而不是从 Canonical 的服务器下载。
我们将修改脚本以使用来自 Canonical 服务器的图像。首先在 Termux 中安装 wget 和 nano(如果尚未安装),然后下载脚本。
pkg install wget nano
wget https://github.com/AndronixApp/AndronixOrigin/blob/master/Installer/Ubuntu20/ubuntu20-xfce.sh
现在在 Nano 中打开脚本。
nano ubuntu20-xfce.sh
更改内容line 29
(使用 Hacker 的键盘或 scrcpy - 参见尖端:#6. 否则在移动设备上编辑会很困难)
wget "https://github.com/AndronixApp/AndronixOrigin/raw/master/Rootfs/Ubuntu20/focal-${archurl}.tar.gz" -O $tarball
到以下
wget "https://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.2-base-${archurl}.tar.gz" -o $tarball
现在保存文件(ctrl+ x),并运行它。
sh ubuntu20-xfce.sh
现在前往如何使用它?和如何访问 XFCE 桌面?(在答案的前几部分)。您可以选择关注启用声音启用声音。
系统要求:
- Termux 的最新版本适用于 Android 7 及更高版本。不过,您可以下载稍旧版本的 Termux 可以与 Android 5 和 6 兼容(我已经验证它们可以正常运行)。
- Ubuntu rootfs + XFCE 桌面占用约 1 GB 的磁盘空间和约 300 MB 的 RAM。
安全
默认情况下,Ubuntu rootfs 无法访问 Android 手机中的文件。Termux 中的数据与 Android 中的其他数据是隔离的。您可以通过在 Android 设置中删除应用程序数据,轻松删除 Termux 中的所有文件(包括 Ubuntu)。但是,对于遵循此答案而引起的任何问题,我概不负责。GitHub 上的星星数量可以让您了解有多少人在使用这些脚本。它们不是恶意软件。
尖端:
- 可以在 VNCServer 中更改屏幕分辨率。我发现该分辨率
700x1500
(纵向模式)在我的 6.5 英寸手机屏幕上效果很好。 - Vanilla XFCE 很无聊,你可以安装你最喜欢的图标主题和 GTK 主题。
- 你可以编辑
start-ubuntu20.sh
/startubuntu.sh
访问手机的内部存储和 SD 卡。 - 默认情况下,它使用 root 帐户。但是,您可以使用 创建非 root 帐户
su -s username
,并授予他们 sudo 访问权限。 - 在 VNC 查看器中选择
quality: high
、 或以获得更好的图像质量。24-bit color (4 bpp)
- 要在 Termux 中编辑文件,请安装 Hacker's Keyboard(Google Play,F-Droid)在 Android 中,或者使用乱码使用计算机键盘进行编辑。
- 容器化应用程序(例如 snap 和 flatpak)无法通过此方法运行。引自Andronix 文档
SNAP/Docker/Flatpak 软件包无法安装在任何 Linux 环境中。这主要有两个原因。首先,两者都需要内核和总线模型,而这些在 PRoot 环境中不可用;其次,两者都主要侧重于基于 Intel/AMD 的架构,而不是 arm 架构。
请随意编辑此答案以使其变得更好。