快轉到主要內容

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程式。

說到,自然會讓人聯想到Termux Proot吧,這個Debian Linux終端機比Termux環境要完整,不是容器。Linux核心功能齊全,可以用Systemd,我們甚至能在這個終端機跑Docker。

這個概念有點類似ChromeOS的Debian虛擬機,使用CrosVM技術。

不過!因為pKVM是虛擬機,啟動速度比Termux慢些。而且執行時候會受到KVM的性能損耗,無法利用全部硬體資源。

目前該功能屬於實驗性的,未來可能會有所變化。請以Google官方最新公告為主。

1. Debian Linux終端機支援機型
#

需要Google Pixel 6(含)以後的機型。推測是因為Tensor處理器才支援pKVM與AVF的功能,舊版Qualcomm處理器的機型沒辦法使用。而且舊款Pixel 5手機已經不能升級了。

系統部份,需要Android 16以上,Pixel原廠ROM。第三方ROM可能也有支援AVF,得看維護者有無實作。目前我知道的是LineageOS 23有加入初步支援。

我的測試環境:Google Pixel 6a。系統版本:Android 16 BP4A.251205.006

2. 啟用Debian Linux終端機
#

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

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

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

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

  5. 虛擬機可用空間會佔照ROM空間動態分配。虛擬機預設分配的RAM為系統可用的一半左右,如果手機RAM比較小,終端機放到背景執行可能會被系統殺掉,請注意。

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

sudo passwd droid
  1. 當你關閉Linux終端機的時候,APP似乎是以快照方式保存進度的。因此若要冷啟動,需要手動將其關機:
sudo shutdown now

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合成器的功能,它可以從終端機啟動單一個Wayland或XWayland程式。但是,無法啟動Wayland桌面環境,X11工作階段也不行。

  1. 例如,啟動Firefox
firefox
  1. 點一下終端機右上角的螢幕圖示,就會看到程式畫面了。目前,看來沒辦法接收Linux虛擬機的PipeWire音效的樣子?得手動用Simple Protocol Player重新導向。

  2. Debian Linux終端機沒有GPU加速功能,預設是用llvmpipe。


另一種方式存取虛擬機完整桌面的方式,是透過TigerVNC Server搭配AVNC來存取Linux虛擬機的桌面。這個方法適合從其他電腦連線進來,操作虛擬機。

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

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

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

6. 與Android共享檔案
#

Android手機的內部儲存空間/目錄,會掛載到Linux的/mnt/shared/。從這裡Linux可以存取Android的檔案。

我們也可以用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強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。