快轉到主要內容

Linux Deploy使用教學:在Android手機安裝Linux chroot容器

智慧型手機 Root與刷機 Linux Deploy Android Chroot
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

Linux Deploy需要Root權限。沒有Root權限請改用 Termux Proot-distro

Linux Deploy可在手機上以chroot安裝Linux發行版,包含Ubuntu、Alpine、Arch、Debian、Kali、Fedora、CentOS、Gentoo、Slackware,要用自己的rootfs安裝也行。

然而Linux Deploy已經很久沒更新了,新版本Android會出現各種問題。如果你很在意這一點請考慮手動 用Termux建立chroot環境

本篇介紹如何在手機用Linux Deploy安裝Ubuntu 18.04,以及做些後續優化。

1. 安裝Busybox
#

Linux Deploy需要Busybox才能運作。Busybox內含常用的Linux指令執行檔,能夠補全Android系統缺少的指令。

Android 11以上用Magisk模組"busybox-ndk"安裝Busybox最省事。

  1. 安裝這個新版本Magisk模塊管理器: FoxMagisk Module Manager

  2. 從裡面搜尋"Builtin Busybox",安裝Magisk模塊,重開機。

2. Linux Deploy安裝Ubuntu 18.04
#

Linux Deploy在設定chroot時很容易下載錯誤。確保網路順暢,或者把下載的來源網址(source path)改成台灣伺服器。不然一個套件下載失敗(“Cannot download xxx”),VNC無法啟動,整個系統就要重裝。

  1. Google Play下載Linux Deploy,啟動後先點選右上角選項。

  2. 發行版選擇Ubuntu,架構選擇arm64。源地址可替換成台灣的站點: http://free.nchc.org.tw/ubuntu-ports ,加快下載速度 (感謝Ubuntu正體中文社團的協助)

  3. 安裝類型鏡像文件的意思就是將系統儲存成一個.img檔案,鏡像大小至少要20GB才夠,不夠可再用 Termux執行resize2fs擴充。用戶名則是你的使用者帳號。

  4. 本地化設定為「英文」

  5. 允許使用初始化系統

  6. 啟用SSH和PulseAudio音訊輸出

  7. 圖形介面選擇XFCE4,使用VNC連線。

  8. 回到主畫面,點選右上角「安裝」,開始下載安裝。等到終端機出現<<<deploy就表示完成。

  9. 按下「啟動」,啟動系統。注意要看終端機有無出現Fail的錯誤訊息。

3. 使用VNC Viewer連線到Linux Deploy桌面
#

  1. 下載 RealVNC Viewer,新增連線,IP填寫localhost,連線進去的密碼就是在Linux Deploy設定使用者的密碼。

  2. 正常顯示桌面,圖為Firefox瀏覽器,需要自行安裝Google Noto Sans來顯示中文字型。

  3. 「關機」的方法是按「停止」出現<<<stop後,左邊側欄滑出來按「退出」。

4. Linux Deploy後續優化
#

4.1. 安裝中文字型和瀏覽器
#

Google Noto Fonts支援大多數語言字體。

sudo apt update
sudo apt upgrade -y
sudo apt install noto-fonts firefox

4.2. 設定Linux Deploy音效輸出
#

參考外部連結: 新奇玩法 Linux Deploy tts声音输出方法

4.3 修正終端機亂碼問題
#

  1. 透過以下指令修改root密碼:
sudo passwd root
  1. 讓終端機顯示目前工作目錄。用VIM編輯/etc/sudoers,在root下面加入自己的使用者名稱:
android ALL=(ALL:ALL) ALL
  1. Linux Deploy使用SSH或VNC登入時,終端機上下鍵切換指令會出現亂碼。使用以下指令修改使用者的預設shell成bash再重新登入:
sudo chsh -s /bin/bash <使用者名稱>

4.4. 更換VNC Server
#

  1. Linux Deploy預裝的VNC不支援軟體解碼3D,因此改用TigerVNC:
sudo apt install tigervnc-standalone-server tigervnc-common
  1. 啟動vncserver,這條指令是在ssh內輸入
vncserver  -localhost no -geometry 1280x720
  1. 接著再用RealVNC Viewer連線,如果崩潰試試不設密碼:
vncserver  -localhost no -geometry 1280x720 -SecurityTypes none --I-KNOW-THIS-IS-INSECURE

4.5. 補齊sources.list
#

Linux Deploy預設的sources.list軟體庫太少了,用VIM編輯/etc/apt/sources.list修改為如下(“focal”是20.04的版本代號):

deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu focal partner
deb-src http://archive.canonical.com/ubuntu focal partner

4.6. 升級至Ubuntu 20.04
#

  1. 用VNC登入桌面後,用終端機安裝更新器:
sudo apt install update-manager-core
  1. 更新全部套件至最新版
sudo apt update && sudo apt upgrade
sudo do-release-upgrade
  1. 如果出現authenticate 'focal.tar.gz' against 'focal.tar.gz.gpg' Authentication failed錯誤,先安裝gnupg並執行以下指令:
sudo apt install gnupg gnupg1 gnupg2
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C
  1. 再度執行:
sudo do-release-upgrade
  1. 輸入y開始更新系統,按照螢幕終端機的指示更新。

4.7. 使用Termux ssh進chroot
#

  1. Termux是一款好用的終端機模擬器,在chroot執行時,也可以用Termux以SSH連線進系統:
ssh android@localhost
  1. 還可以從Termux傳輸檔案至chroot桌面:
scp <本機檔案> android@localhost:/home/android/Desktop

相關文章

獨立編譯Android kernel(核心),以小米手機為例
智慧型手機 Root與刷機 Android Linux Kernel
[Root] Termux:以原生效能在Android手機上跑Docker (紅米Note 5)
智慧型手機 Root與刷機 Termux Android Linux Kernel Docker Xiaomi
[Root] Linux Deploy chroot環境安装Box86 Wine + Box64 Wine64
智慧型手機 Root與刷機 Linux Deploy Box86 Box64 Wine

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。