快轉到主要內容

Pixel手機跑Debian Linux終端機,免Root

· 民國114年乙巳年
·
切換繁體/簡體
分類   智慧型手機 手機APP分享
標籤   Debian Linux Android Termux QEMU-KVM
目錄

本文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
#

  1. 開啟系統設定,在關於手機,對版本號碼點五下

  2. 開啟開發人員選項,找到啟用Linux開放環境

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

  4. 等待系統映像檔下載完成。

  5. 虛擬機預設分配的RAM為系統可用的一半。虛擬機可用空間會佔照ROM空間動態分配。

  6. 用指令變更使用者密碼

sudo passwd droid

3. 網路連線問題
#

Debian虛擬機的網路是跟Android網路隔離的,即使開放通訊埠,也只能從Android本身的APP連線。不能從外部連線。

每當虛擬機要使用一個通訊埠的時候,皆需要手動同意才能從Android以外的網路連線。而且這裡不能使用低位數通訊埠。

因此,要用電腦連線到手機的Debian終端機的話,就得在虛擬機內部安裝VPN或是重新導向通訊的服務。

  1. 安裝SSH伺服器:
sudo apt install openssh-server
  1. 修改設定檔/etc/ssh/sshd_config,讓SSH伺服器改用2022通訊埠
sudo sed -i 's/#Port 22/Port 2022/' /etc/ssh/sshd_config
  1. 透過以下指令啟用SSH伺服器:
sudo systemctl enable --now sshd
  1. 在Debian Linux安裝一個VPN服務,例如Tailscale

  2. 從電腦輸入虛擬區域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桌面了。

  1. 安裝XFCE4桌面
sudo apt install xfce4 xfce4-goodies
  1. 設定TigerVNC Server

  2. 啟動VNC伺服器,通訊埠使用5901

systemctl --user start vncserver@:1.service
  1. AVNC,輸入localhost:5901連線到XFCE桌面。

5. 用Box64轉譯x86架構的程式
#

既然Android手機普遍是ARM64架構的處理器,執行的虛擬機當然也是ARM64架構的Debian系統。

部份程式會遇到相容性問題,這個時候可以透過Box64轉譯器執行x86二進位檔。

6. 與Android共享檔案
#

有些資料說,Android的內部儲存空間/Downloads目錄,會掛載到Linux的/mnt/shared/。但是我看是沒有。

所以只能用SFTP來傳檔案了。只要啟動SSH伺服器,就能從外部掛載。

  1. 在Android安裝SFTP客戶端,例如質感檔案

  2. IP位址輸入localhost,使用者名稱輸入droid,還有密碼。

參考資料
#

相關文章

小小電腦APP讓你在Android手機跑Debian Linux系統,內建Fcitx5中文輸入法
分類   智慧型手機 手機APP分享
標籤   Termux Debian Box86 Box64
Android與iOS如何開啟.odt檔?手機版LibreOffice APP分享 ~ Collabora Office
分類   智慧型手機 手機APP分享
標籤   LibreOffice Android IOS Microsoft Office Termux
JHenTai:跨平台的E-hentai APP,電腦版EhViewer替代品,手機電腦皆可用
分類   智慧型手機 手機APP分享
標籤   E-Hentai Ebook Reader Android IOS Windows Linux

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。