利用termux实现免root的code-server
利用termux实现免root的code-server
Mice很多小伙伴由于各种原因无法在自己的安卓设备上获取root权限,从而无法配置chroot容器,不过,虽然没有chroot环境,但我们仍然可以配置一个code-server,以下是配置过程。
测试机: 华为matepad 11.5s灵动版, Android 12
code-server运行截图
1. 硬件要求
一台Android 10及以上系统的手机。
2. 系统要求
已安装 Termux
3. Termux换源
图形界面(TUI)替换
在较新版的 Termux 中,官方提供了图形界面(TUI)来半自动替换镜像,推荐使用该种方式以规避其他风险。
在 Termux 中执行如下命令
1 | termux-change-repo |
在图形界面引导下,使用自带方向键可上下移动。
第一步使用空格选择需要更换的仓库,之后在第二步选择国内镜像源,如清华大学开源镜像站。确认无误后回车,镜像源会自动完成更换。
4. 安装Node.js
1 | apt install -y \ |
5. 安装code-server
配置android_ndk_path
1 | vim ~/../usr/etc/bash.bashrc |
加入一行如下内容并保存
1 | export GYP_DEFINES="android_ndk_path=''" |
第一个环境变量是为了顺利通过code-server的编译
第二个则是将termux伪装成Linux
第三个是替换code-server的marketplace为微软官方marketplace
创建android-as-linux.js
1 | touch ~/android-as-linux.js |
输入如下内容并保存
1 | // android-as-linux.js |
应用环境变量
1 | source ~/../usr/etc/bash.bashrc |
注意⚠️:此操作可能需要梯子🪜,请自备
1 | npm install --global code-server |
6.配置code-server
先启动code-server以自动创建配置文件
1
code-server
修改code-server监听地址和密码
1
vim ~/.config/code-server/config.yaml
改为如下内容
1
2
3bind-addr: 0.0.0.0:8080 //0.0.0.0是允许局域网设备访问的ip地址
auth: none //无密码,不建议为它设置密码,由于使用环境较为安全,密码没有什么意义
cert: false //无加密,局域网SSL证书过于麻烦启动code-server并用浏览器访问
1
code-server
此时可以在本机浏览器测试,输入localhost:8080即可
其他局域网设备则输入ip:8080
(可选)配置Chrome/Edge浏览器以完全启用网页端code-server功能
访问Chrome://flags或Edge://flags,并搜索Insecure origins treated as secure,在下面输入http://ip:8080,此后再访问就不会提示不安全和部分js脚本无法正常执行具体vscode的配置过程这里暂时不介绍了
7.设置一键启动脚本
Termux有一个好用的插件,叫作 Termux:Widget,这个插件可以在桌面创建启动脚本的快捷方式,按如下步骤操作
为Termux授权 [显示在其他应用上方] 权限
编辑启动脚本
1
sudo vim /data/local/tmp/Code-Server
将 busybox chroot $UBUNTUPATH /bin/su - root 中的root改成你的用户名。
新建快捷方式脚本
1
2
3touch ~/.shortcuts/Code-Server
chmod +x ~/.shortcuts/Code-Server
vim ~/.shortcuts/Code-Server填入如下内容
1
code-server
修复shebang以便termux:widget能够识别
1
termux-fix-shebang ~/bin/code-server
回到手机桌面,拖动Termux:Widget小部件到桌面