0x00 背景
小米平板5开始支持了键盘与鼠标,终于离生产力工具越来越近了。因此,从入手小米平板5开始,就想着怎么安装一个linux系统,可以在里面安装vscode,以便使用pad开发代码。下面是这段折腾之路的记录。
0x01 使用Aid Learning方案
Aid Learning是一个为在Android机器上进行AI开发而实现的APP,官网地址为:http://www.aidlearning.net/。这个APP内置了vscode,对于不想折腾的同学非常友好。
但是,这个应用的实现方案是创建了一个vscode server,客户端其实只是一个浏览器。这种方式体验上并不是很好,所以还是想达到与linux本地开发一致的体验。
0x02 在Termux中安装linux系统
Termux是一个Android上的终端模拟器,可以免root模拟linux环境,同时提供了大量linux上的软件供安装使用,但它本质上还是一个Android环境。在这个环境中可以通过安装proot-distro工具来安装真正的linux系统。
APK下载地址:https://f-droid.org/packages/com.termux/。
$ apt install proot-distroCOPY
$ proot-distro listSupported distributions:Alpine Linux (3.14.1)Alias: alpineStatus: NOT installedArch LinuxAlias: archlinuxStatus: NOT installedDebian (bullseye)Alias: debianStatus: NOT installedFedora (34)Alias: fedoraStatus: installedGentooAlias: gentooStatus: NOT installedOpenSUSE (Tumbleweed)Alias: opensuseStatus: NOT installedUbuntu (20.04)Alias: ubuntuStatus: installedVoid LinuxAlias: voidStatus: NOT installedInstall selected one with: proot-distro install <alias>COPY
上面是目前支持的linux发行版列表。使用以下命令安装预期的linux系统:
$ proot-distro install ubuntuCOPY
由于我这里需要桌面系统,在尝试了多个系统之后,最终选择了Fedora。安装之后使用以下命令进入linux终端环境:
$ proot-distro login fedoraLast login: Wed Sep 1 16:39:52 UTC 2021 on pts/5[root@localhost ~]#COPY
可以看到,默认进入的是root环境。这里做一些简单的测试。
# uname -aLinux localhost 5.4.0-faked #1 SMP PREEMPT Fri Jul 30 03:13:42 CST 2021 aarch64 aarch64 aarch64 GNU/Linux# cat /etc/os-releaseNAME=FedoraVERSION="34 (Container Image)"ID=fedoraVERSION_ID=34VERSION_CODENAME=""PLATFORM_ID="platform:f34"PRETTY_NAME="Fedora 34 (Container Image)"ANSI_COLOR="0;38;2;60;110;180"LOGO=fedora-logo-iconCPE_NAME="cpe:/o:fedoraproject:fedora:34"HOME_URL="https://fedoraproject.org/"DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f34/system-administrators-guide/"SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"BUG_REPORT_URL="https://bugzilla.redhat.com/"REDHAT_BUGZILLA_PRODUCT="Fedora"REDHAT_BUGZILLA_PRODUCT_VERSION=34REDHAT_SUPPORT_PRODUCT="Fedora"REDHAT_SUPPORT_PRODUCT_VERSION=34PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"VARIANT="Container Image"VARIANT_ID=containerCOPY
当然,这里的root不是真的root,不能够访问网卡等设备资源。因此,在这里环境里是不能抓包的。
0x03 安装桌面系统
使用命令行界面毕竟还是不太方便,需要开启桌面系统。可以使用以下命令安装桌面系统以及firefox浏览器:
# dnf install mate-session-manager mate-desktop mate-themes mate-terminal pluma caja marco glibc-langpack-en firefoxCOPY
此时,还不能直接开启桌面系统,需要配置DISPLAY环境变量。可以使用以下两种方式配置这个环境变量:
- VNC
- XSDL
其中,第二种方法模拟了XServer服务,更接近linux的日常使用。XSDL的安装包可以在以下地址:https://sourceforge.net/projects/libsdl-android/files/apk/XServer-XSDL/中获取。
启动后,会提示在终端中配置以下环境变量:
$ export DISPLAY=localhost:0 PULSE_SERVER=tcp:localhost:4713COPY
然后启动桌面系统:mate-session。XSDL窗口中很快就看到linux桌面了。
虽说系统界面谈不上特别美观,但至少够用了,基本的使用应该没啥问题(要啥自行车!)。
0x04 安装常用软件
- 中文输入法
# dnf install fcitx fcitx-sunpinyin fcitx-configtool im-chooserCOPY
然后使用im-chooser命令进行输入法相关设置。
- vscode
在vscode官网下载arm64版本的vscode deb包,使用dpkg -i vscode.deb命令安装到系统中。
由于vscode不让使用root权限运行,因此,需要创建普通帐号:
# useradd -m drunkdream# dnf install passwd# passwd shadowyangCOPY
此时,需要使用以下命令行进入fedora:proot-distro login fedora --user drunkdream。如果要进入root权限,可以使用su命令,输入密码即可。
- Linux QQ 3.0
最新版本的Linux QQ体验上已经比之前好了很多,完全可以满足跨设备进行复制/粘贴,以及文件传输的需求。
下载地址:https://im.qq.com/linuxqq/index.shtml
下载arm64版本的rpm包到本地,然后使用以下命令进行安装:
$ sudo yum install -y xdg-utils$ sudo rpm -ivh ~/Downloads/linuxqq_3.0.0-571_aarch64.rpmCOPY
- 文件管理
Android系统与fedora之间没法直接进行复制、粘贴等操作,此时,可以借助一些文件管理工具来达到这一效果。我使用的是filebrowser,直接下载后放到/usr/local/bin目录下,需要的时候启动起来即可。
0x05 总结
Android平板可以通过安装termux应用,进一步安装完整的linux系统,来达到创建开发环境的目的。因此,平板在一定程度上是可以取代笔记本,达到便携式开发和远程处理紧急工作的目的。



大佬,我按照你教程上的方式操作但是XSDL一直没有显示
可以试下打开xsdl后,在termux里执行
proot-distro login fedora -- bash -c 'export DISPLAY=localhost:0 PULSE_SERVER=tcp:localhost:4713;mate-session'这个命令行来开启桌面系统有试过直接安装ubuntu吗
纯命令行是正常的,安装桌面失败了,就没有继续折腾,这个毕竟不是完整的Linux,主要还是为了在某些场景下应急用的
大佬,这样之后还可以转回安卓吗
这里本质上只是安装了一个应用,模拟了Linux环境,退出应用就是Android了