
一、前言
多年以后,面对运行 Linux 的 matepad,我准会回想起自己带 ipad 去上课结果却被移动端office 气破防的那个遥远的下午[流汗滑稽]
距离库克骄傲的说出“你的下一台电脑,何必是电脑”已经过去了四年,但作为曾经的 ipad pro 2020、ipad pro 2021和ipad pro2022 机主,我可以肯定的说:你的下一台电脑,还得是电脑。
使用 ipad 来处理 pc 场景下的任务一定会遇到很多令人恼火的问题:例如移动端 office/wps 经常会把文档格式弄成一坨,网页端也难堪大用;视频剪辑领域虽然有在 m 系列芯片推出后有了全功能版,但总感觉畏手畏脚;Notion 客户端缺乏适配,网页端又无法正常使用右键;更别提作为开发者的代码需求和ipad 那如狗屎一般的文件管理和多窗口机制……
上述这些问题放在安卓/鸿蒙侧就不存在了吗?
是,也不是。
“不是”是因为虽然像华米ov和三星都有自己较为成熟的多窗口机制,三星的 dex 更是其中的优秀代表,但终究运行的仍然是移动端应用,操作逻辑和 ui 本就不是为了 pc 场景而设计;pc 应用引擎加持下的 wps 虽然是全功能版,但日常使用卡顿较多且只能用自带的少的可怜的字体;遑论安卓/鸿蒙侧在专业软件的生态上还要弱苹果一大截。
那么“是”在哪里呢?在于安卓/鸿蒙侧的开放性(不知道未来纯血鸿蒙如何,但至少现在的鸿蒙还是较为开放的)。安卓/鸿蒙端有一个神奇的软件——Termux。
Termux 是一款专为 Android 平台设计的免费且开源的终端模拟器和Linux环境应用程序。它允许用户在Android设备上直接运行一个功能完备的命令行界面,并能够在不获取root权限的情况下,在Android操作系统上构建一个类Linux环境。
Termux内置了一个轻量级的 Linux 内核层(通过 Proot 实现),从而能够在 Android 上执行 Linux 命令和程序。
相信有的同学看到这里就意识到我想表达什么了:既然平板无法替代电脑,那就我们就——让平板成为电脑!通过 Termux 来运行 Linux 系统,我们可以在平板中运行一个正儿八经的桌面环境来进行生产力项目。没错,这就是安卓/鸿蒙补全计划的核心思想。
安卓/鸿蒙补全计划的目的是为所有安卓/鸿蒙用户在手机/平板上打造一个类似于PC的本地的桌面环境,无需网络(软件需要联网除外)运行一些不能直接在AOSP上运行的软件。
二、要开始了!
1.致谢与环境要求
感谢酷安用户“大龙爪子021”,整个安卓/鸿蒙补完计划是由这位老哥完成,本文的安装章节所有图片和绝大多数操作都是参考他的相关文章,我自己仅做相关补充和调整,salute!
• 该项目不需要 root(目前所有恢复包都是 proot 容器)
• 需要 15G 以上的剩余空间
• 如果仅是60帧的传统vnc连接方式,性能需求很低很低;如果是采用Wayland(画面分辨率取决于屏幕帧率上限取决于屏幕)的TerkuxX11连接方式,推荐865+及以上性能的设备
• 目前可以运行的软件有 WPS,VS Code,QQ,飞书,Chrome 浏览器(重量级)等,其他的我没试过
• 系统是为Debian,推荐使用平板,链接键盘和鼠标使用
2.下载恢复包和对应软件
恢复包链接(1.8 版本)
恢复包就相当于一个打包后的 linux 系统,可以直接在 Termux 中恢复,开箱即用
Termux对应软件(4 个)
• Termux-Api 是一个Termux的插件,它通过app与命令行配合,与手机硬件完成一些交互。比如读取通话记录,发送短信,拨打电话,录音,开关Wifi等。让Termux玩出更多功能。
• Termux-widget是Termux附加应用程序,可在主屏幕上添加小组件和快捷方式。
• Termux-X11 是一个用于在Android设备上的Termux环境中提供图形用户界面(GUI)支持的附加组件或项目。
由于Termux本身是一个基于命令行的Linux环境应用,不直接支持显示图形界面程序,而Termux-X11则提供了在Android设备上运行X Window System的能力,使用户能够在Termux中运行需要图形界面的应用程序和服务。安装Termux-X11后,用户可以在Termux中安装和运行带有图形界面的Linux应用,例如文本编辑器、IDE、浏览器以及其他桌面环境(如XFCE)等。这大大扩展了Termux在Android设备上的应用场景,使其不仅仅局限于命令行工具,还能支持一些原本需要图形界面环境才能运行的软件。
• 最后,ZeroTermux 是基于原生 Termux 应用的一个变体,国人修改更加方便快捷。
在上述文件都下载好并安装完成之后,将恢复包移动到xinhao/data目录下,没有对应目录请新建文件夹。至此,先期准备已经完成。
3.正式安装
3.1 从恢复包中恢复系统
首先,我们打开 ZeroTermux,允许所有文件访问权限并同意软件使用协议。
接下来,从软件左侧边缘向内滑动呼出侧边栏,点击备份/恢复—确定——允许文件访问权限。
再次从侧边栏点击备份/恢复,然后点击“恢复”,再点击2023_08_11_22_30_45.tar.gz
输入新的容器名称,随便都行,然后等待恢复完成(3-5分钟)
3.2 进入恢复完成的容器
恢复完成后,再次呼出侧边栏,点击“容器切换”,选择刚刚恢复好的容器(图里演示是“new”)
点击“切换”,重新启动 app 即可。重新启动后,会自动进入恢复好的容器
到这里,我们的主要系统就算装好了,剩下就到快捷启动与桌面了。
3.3 快捷启动
这一步之前需要我们安装好ZeroTermux,Termux:X11,Temrux:Widget。然后给予ZeroTermux悬浮窗权限,Termux:X11 画中画权限。
Termux:X11 的设置(Preference)情况如下图:
具体设置情况也可根据自己的使用习惯来调整。
之后,添加一个Termux:Widget的小组件到桌面上(启动桌面环境.sh),后续只要点击启动桌面环境.sh再进入 x11 ,等待 10-20s 就可以正常看到桌面了。
至此,所有的主要工作都已完成,你现在大概率可以直接操作 Linux 桌面环境,使用 wps 和听歌了!
三、疑难杂症
当然,事情经常不会那么一帆风顺,主要存在两个问题,而凑巧我的 matepad 都碰到了()
• Signal 9 相关问题
• 部分设备无法连接桌面环境
1.Signal 9 报错
出现这一报错的原因是安卓系统限制,可能会出现使用几分钟到十几分钟后黑屏,断连的现象并报错 signal 9。
在 Termux 中,signal 9 错误是指进程接收到 SIGKILL 信号,这是一个操作系统用来强制结束进程的信号。通常情况下,进程接收到 SIGKILL 信号意味着它是被操作系统直接且强制地中止了,并且无法被捕获或处理,这意味着进程没有机会执行清理操作。
解决办法:
1.1 若设备有root权限
1.请彻底关闭ZeroTermux,再重新打开
2.输入“adb”来查看是否已经安卓Android tools,如果没有打印出了adb的相关内容,请输入“apt install android-tools -y”
3.输入 su来获取root权限
然后再根据系统版本输入以下内容
# Android 12L和Android 13以上:
su -c "settings put global settings_enable_monitor_phantom_procs false"
# Android12:
su -c "/system/bin/device_config set_sync_disabled_for_tests persistent; /system/bin/device_config put activity_manager max_phantom_processes 2147483647"
4.重启设备
1.2 若设备没有root权限
请选择无线/有线adb工具连接设备,比如晨钟工具箱,甲壳虫ADB助手等等
然后按系统输入以下内容(根据工具不同,有时需要去掉“./”)
# Android 12L和Android 13:
./adb shell "settings put global settings_enable_monitor_phantom_procs false"
# Android 12:
./adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent; /system/bin/device_config put activity_manager max_phantom_processes 2147483647"
然后再重启设备
注:在我测试过程中,最开始仅在 abd 中输入“Android 12L和Android 13”对应指令时仍然会报signal 9 错误,第二次又输入“Android 12”对应指令之后就不会再出现 signal 9 报错了。软硬件环境为 MatePad 11 2023,鸿蒙4。
2.部分设备无法连接桌面环境
主要适用于多次重试仍然无法解决,或者存在修复 signal 9 后仍然存在断联问题的设备
2.1 修改文件-1
打开 ZeroTermux
如果使用的是v1.5之后的恢复包,请输入vim .shortcuts/启动桌面环境.sh
如果使用的是之前的恢复包,请输入vim .shortcuts/x11.sh
注:可能文件路径和名字不固定,最好事先使用 ls 指令看一下文件夹结构
进入编辑界面后,输入 i 来进入编辑模式
将这里的两个“0”都改成 1 即可,如下图:
然后按 esc 键盘退出编辑模式,再输入:wq回车来保存并退出编辑器。
2.2 修改文件-2
输入tmoe p进入Debian容器,进入容器后输入vim start.vim进行编辑,和刚才一样按 i 来进入编辑模式
将第四行的“0”改成“1”即可
接下来按 ESC,然后再输入:wq来保存并退出。
接下来彻底关闭 ZeroTermux,回到桌面刷新组件,按照之前的启动步骤启动即可。
四、比较与反思
1.为什么不用云电脑?
主流产品大致有:个人电脑远程串流;如阿里云里的无影云电脑服务;网易云游戏此类云游戏服务。
这些云服务共同的特点都是对网络带宽和稳定性的要求较高,如果想要长期使用除了租用费之外还要考虑流量的费用。在资料与个性化方面,个人串流还好,其他公有云电脑仅能满足基本的临时办公和处理文件需求(可能有些公有云会提供数据盘服务)
2.缺点
• 性能较差,卡顿频繁。毕竟本方案是在原有的安卓系统之上再运行一个Linux系统,性能折损不可避免。
• 虽然本方案已经做到尽力简化,但安装和基本配置仍然需要一定的技术门槛,遑论正式使用之后的软件安装和系统维护。
• 软件生态。虽然Linux作为第三大pc桌面端系统,理论上已经拥有一套较为完成的软件生态和社区,但仍然存在软件包老旧缺乏维护、安装门槛相对较高、格式不统一等问题,arm linux还要在原先就已经不充裕的生态中再切一大块。








