讲道理,我还从来没关注过VNC这个东西。早在几年前就知道了VNC,但其实我一直都用不上。
最近,我的Android设备因为电池寿命问题已经终止使用了,我就打算让他成为一个永久的·被插入的状态(指充电)。
为了方便,我直接用傻瓜脚本在Termux中装上Debian。
一键安装Debian脚本:https://github.com/wahasa/Debian
一键安装Ubuntu脚本:https://github.com/MFDGaming/ubuntu-in-termux
不过我不推荐在termux用ubuntu。因为Termux无法使用systemd,所以在ubuntu的snapd也就用不了。(但是如果root后似乎是有办法的。)而Ubuntu深度绑定了snap,就算有办法移除snap也挺麻烦的。snap对arm64处理器的优化也很少,为什么不直接用debian呢。
就比如在Ubuntu要通过传统的deb去安装firefox浏览器,就先需要用snap remove firefox
来先删除,但是……snap是完全用不了的。
Phantom Process Killer
自Android12开始有一个Phantom Process Killer机制,会限制应用后台的子进程数量。所以Termux很容易被杀,从而出现Process completed (signal 9)
。
我用的是adb命令去关闭这项限制。
ADB工具下载链接:https://developer.android.com/studio/releases/platform-tools
adb devices
adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent"
adb shell "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"
adb shell settings put global settings_enable_monitor_phantom_procs false
还有一种方法是在开发者设置中找到Feature flag
,在里面关闭settings_enable_monitor_phantom_procs
。不过不知道为什么,我的手机中的feature flag里什么都没有。
桌面环境 & VNC
为了让VNC客户端能够连接到手机中的Debian,要先装一个桌面。
我用的是xfce,可以直接用apt安装:
sudo apt install xfce4 xfce4-goodies
但是也可以用@wahasa的脚本,顺带就安装了tigervnc,而且配置好了/.vnc/xstartup
:
apt install wget -y ; wget https://raw.githubusercontent.com/wahasa/Debian/main/Desktop/de-xfce.sh ; chmod +x de-xfce.sh ; ./de-xfce.sh
这里我使用使用vnc-start
去启动VNC Server只能监听本地的端口,在局域网内是搜不到的。
所以我添加了一个no localhost的flag:
$ vncserver -localhost no
TightVNC
如果要使用TightVNC
:
$ apt install tightvncserver
删除Server:vncserver -kill :1
修改VNC连接密码:vncpasswd
然后修改下~/.vnc/xstartup
:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
更多
后续还可以安装gogs作为本地的git服务器。
Refs
https://docs.andronix.app/android-12/andronix-on-android-12-and-beyond