本文Ivon將討論我們可以利用Android手機的Debian終端機跑什麼玩意。
這個是Pixel手機在最新Android系統提供的Linux虛擬機,不用Root權限就可以使用。我們暫且把它稱之為Debian Linux終端機。
它利用pKVM技術,AVF框架,在Android上執行虛擬機,跑Linux程式。
這個Debian Linux終端機比Termux Proot環境要完整,不是容器。Linux核心功能齊全,可以用Systemd,我們甚至能在這個終端機跑Docker。
這個概念有點類似ChromeOS的Debian虛擬機,使用CrosVM技術。
不過!因為pKVM是虛擬機,啟動速度比Termux稍慢些。而且執行時候會受到KVM的性能損耗,無法利用全部硬體資源。
目前該功能屬於實驗性的,未來可能會有所變化。請以Google官方最新公告為主。
1. Debian Terminal支援機型#
需要Google Pixel 6(含)以後的機型。推測是因為Tensor處理器才支援pKVM與AVF的功能,舊版Qualcomm處理器的機型沒辦法使用。而且舊款Pixel 5手機已經不能升級了。
系統部份,需要Android 16以上,Pixel原廠ROM。第三方ROM可能也有支援AVF,得看維護者有無實作。目前我知道的是LineageOS 23有加入初步支援。
我的測試環境:Google Pixel 6a,Android 16
2. 啟用Debian Terminal#
開啟系統設定,在關於手機,對版本號碼點五下
開啟開發人員選項,找到啟用Linux開放環境

接著桌面會多出一個終端機APP

等待系統映像檔下載完成。
虛擬機預設分配的RAM為系統可用的一半。虛擬機可用空間會佔照ROM空間動態分配。
用指令變更使用者密碼
sudo passwd droid
3. 網路連線問題#
Debian虛擬機的網路是跟Android網路隔離的,即使開放通訊埠,也只能從Android本身的APP連線。不能從外部連線。
每當虛擬機要使用一個通訊埠的時候,皆需要手動同意才能從Android以外的網路連線。而且這裡不能使用低位數通訊埠。

因此,要用電腦連線到手機的Debian終端機的話,就得在虛擬機內部安裝VPN或是重新導向通訊的服務。
- 安裝SSH伺服器:
sudo apt install openssh-server
- 修改設定檔
/etc/ssh/sshd_config,讓SSH伺服器改用2022通訊埠
sudo sed -i 's/#Port 22/Port 2022/' /etc/ssh/sshd_config
- 透過以下指令啟用SSH伺服器:
sudo systemctl enable --now sshd
在Debian Linux安裝一個VPN服務,例如Tailscale。
從電腦輸入虛擬區域IP連線:
ssh -p 2022 droid@IP
4. 安裝圖形桌面環境#
Google目前還沒加入整合Linux視窗到Android合成器的功能,未來Google可能得搞一個類似Wayland proxy的東西出來吧。從一些公開資訊來看,Android 16 QPR 2 Beta已經有了一個X Server的按鈕能使用。
此外,Debian Linux終端機沒有GPU加速功能。未來的版本Google會加入Gfxstream支援,它能讓虛擬機共享宿主機的GPU達成3D加速。不過目前我測試的版本還沒有出現。
我嘗試借助Temux X11的方式來顯示X11桌面環境,可是好像無法共享socket?所以只能用VNC跑一個headless的X伺服器,用於顯示Linux桌面了。
- 安裝XFCE4桌面
sudo apt install xfce4 xfce4-goodies
啟動VNC伺服器,通訊埠使用5901
systemctl --user start vncserver@:1.service
- 用AVNC,輸入
localhost:5901連線到XFCE桌面。
5. 用Box64轉譯x86架構的程式#
既然Android手機普遍是ARM64架構的處理器,執行的虛擬機當然也是ARM64架構的Debian系統。
部份程式會遇到相容性問題,這個時候可以透過Box64轉譯器執行x86二進位檔。
6. 與Android共享檔案#
有些資料說,Android的內部儲存空間/Downloads目錄,會掛載到Linux的/mnt/shared/。但是我看是沒有。
所以只能用SFTP來傳檔案了。只要啟動SSH伺服器,就能從外部掛載。
在Android安裝SFTP客戶端,例如質感檔案
IP位址輸入
localhost,使用者名稱輸入droid,還有密碼。