如何在没有 root 权限的情况下在 Android 手机上为 Arm 设置 Ubuntu 基本映像?

如何在没有 root 权限的情况下在 Android 手机上为 Arm 设置 Ubuntu 基本映像?

我想设置 Canonical 托管Ubuntu 基础镜像用于我的 Android 手机上的 arm。

我需要一个简单的逐步答案来指导如何开始。

我希望能够使用 Ubuntu 在手机上运行应用程序,而无需 root 权限。

这个问题用于应用程序安装。

答案1

在 Termux 中设置 Ubuntu 涉及三个部分,

  1. 安装基础镜像
  2. 安装 DE(我将在此答案中使用 XFCE,因为它用户友好但不笨重)和 VNC 服务器
  3. (可选)启用声音,因为 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。一旦你了解了脚本的工作原理,你可以将所有内容重命名为,或其他任何名称)exitvncserver-startvncserver-stopubuntu20ubuntu20.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 叶酸 在 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 上的星星数量可以让您了解有多少人在使用这些脚本。它们不是恶意软件。

尖端:

  1. 可以在 VNCServer 中更改屏幕分辨率。我发现该分辨率700x1500(纵向模式)在我的 6.5 英寸手机屏幕上效果很好。
  2. Vanilla XFCE 很无聊,你可以安装你最喜欢的图标主题和 GTK 主题。
  3. 你可以编辑 start-ubuntu20.sh/startubuntu.sh访问手机的内部存储和 SD 卡。
  4. 默认情况下,它使用 root 帐户。但是,您可以使用 创建非 root 帐户su -s username,并授予他们 sudo 访问权限。
  5. 在 VNC 查看器中选择quality: high、 或以获得更好的图像质量。24-bit color (4 bpp)
  6. 要在 Termux 中编辑文件,请安装 Hacker's Keyboard(Google PlayF-Droid)在 Android 中,或者使用乱码使用计算机键盘进行编辑。
  7. 容器化应用程序(例如 snap 和 flatpak)无法通过此方法运行。引自Andronix 文档

SNAP/Docker/Flatpak 软件包无法安装在任何 Linux 环境中。这主要有两个原因。首先,两者都需要内核和总线模型,而这些在 PRoot 环境中不可用;其次,两者都主要侧重于基于 Intel/AMD 的架构,而不是 arm 架构。

请随意编辑此答案以使其变得更好。

相关内容