想要在手機安裝Linux系統跑電腦上的程式?其實這是二個不同的概念喔!Ivon在經過長久的嘗試之後,總結出了這篇文章與大家分享。
就目前的技術而言,想要在手機上跑Linux,有以下二種方法:
- 使用APP模擬Linux環境
- 刪除手機系統,刷機為真Linux系統
讓我們先來看看這二個方法的優劣。最後再來討論3. 購買真Linux手機的選項。
1. 使用APP模擬Linux環境#
所謂模擬的意思是用APP模擬Linux系統環境,偏輔助用途。好處是幾乎所有手機都能裝,壞處是能做到的事情有限,跑跑終端機指令可以,但容器化和虛擬化是做不到的。
以APP模擬Linux環境,不需要Root也不用越獄,適合大多數裝置使用。要如何讓Linux融入你的生活中都看個人選擇,從Termux這類APP下手會是不錯的開始,或許你能從中體會到自由開源的精神。等到做好準備,再去玩玩看Linux手機吧!
Android#
包括Android手機與Android平板,不含ChromeOS。
Termux#
- 相關文章:Termux使用教學
Termux可以在大多數Android手機使用,不需要root。
Termux並非虛擬機,而是提供一個類似Linux的環境,再想辦法讓程式以原生效能執行。Termux還有提供proot-distro (用ptrace模擬chroot功能) 來安裝Linux發行版的方法,能夠搭配Termux X11跑X視窗系統,執行Linux的圖形程式。再用VirGL技術達成3D圖形加速。
但就算用proot-distro安裝其他Linux發行版容器,該系統依然受到Android限制,很難存取硬體方面的操作。
Termux偏向混合Android生態系使用的輔助工具。在這樣環境下的Linux系統,可以寫點Python、Java、C++小程式、跑跑文書軟體,玩點Linux小遊戲。又因Termux能存取部份Android系統的檔案,所以用ffmpeg這類程式轉檔影片也是可以的。
如果手機有Root權限,以chroot安裝Linux容器,搭配Busybox能做的事情會多一些,但仍會被Android裁剪過的Linux核心限制用途,例如Android的核心普遍缺乏cgroups核心模組,所以還是無法執行Docker。
QEMU#
此處講的方案比較受限,沒有Termux那麼萬用。
模擬器軟體「QEMU」有Android移植版,Termux裡面有收QEMU套件,也有人製作獨立的APP,包括Limbo PC Emulator以及Vectras VM。
如果用QEMU跑ARM架構的Linux虛擬機呢?很抱歉大部分Android手機沒有KVM核心模組,虛擬機執行效率會很低下,即使是撰文當下2025年的旗艦機也只夠跑Windows XP系統。
不過Google Pixel手機是特例,搭載Tensor處理器的Pixel支援pKVM虛擬化技術,因此Limbo PC Emulator用起來速度很快,連Windows 11 ARM都能跑。需要使用特製版Limbo:Limbo For Tensor-based devices
此外,Android 16以上版本的Google Pixel手機可以用AVF框架執行Linux虛擬機,參見:Google slips built-in terminal, Debian Linux VM into Android 15 March feature drop
iOS#
包含iPhone、iPad、iPod touch裝置。
iSH Shell#
- 相關文章:iSH使用教學
iOS上的iSH Shell是模擬32位元Alpine Linux的APP,純文字界面適合跑一些Python指令稿,以及充當SSH連線客戶端。
又因為iSH的檔案系統能用檔案APP開啟,你可以將檔案丟進去Linux環境處理,例如用ImageMagick批次給照片轉檔。如此一來iSH用途就類似Android上的Termux,是混合iOS生態系使用的Linux環境。
缺點是iSH Shell是單純x86模擬器,只相容32位元套件,且部份指令集尚未實作,有些程式執行可能出錯。
UTM#
- 相關文章:UTM使用教學
UTM是虛擬機軟體,啟用JIT加速或者越獄開啟虛擬化後,可以高性能跑其他系統的虛擬機,適合iPad使用。
配合Apple力壓群雄的處理器性能,目前高階M系列晶片的iPad已證實撐的住Windows 11 ARM,那麼Linux系統自然不在話下。
缺點是Apple只允許沒有任何加速的「UTM SE」上架App Store,這個版本的UTM連跑Windows XP都很喘。正常版本的UTM要用側載的。且不論是JIT加速還是越獄,開啟過程都需要繁瑣步驟,實用性不高。
2. 將手機刷機為真Linux系統#
iOS裝置就算越獄後也不可能刷其他系統,除了iPhone 7有Project Sandcastle這個特殊的例子。那相對開放的Android裝置呢?其實能刷Linux的Android手機也不是很多。
這裡講的Linux系統不包含Android,包括LineageOS、GrapheneOS、ClayxOS等,他們只能算是Android的變體,不能算是Linux。有人會說Android不算Linux嗎?算,但也不算。Android雖然使用Linux核心,但架構跟電腦上的GNU/Linux其實差異甚大,下面要談的「真Linux手機系統」設計是比較偏向電腦GNU/Linux系統的,而非Google魔改後的結果。比較簡略的說法就是:這些系統預設都保有root使用者,而非Android拔掉不給用。
那麼手機Linux系統有哪些選擇呢?目前Android以外的「真Linux手機系統」就有十餘個發行版,其中勢力最龐大的要數「Ubuntu Touch」和「postmarketOS」這二個系統了,這二個Linux發行版支援的手機數量最多,有移植到許多Android手機上。
你需要購買適合刷機的手機。即使一支手機有很多Android ROM能刷,不代表它能夠刷成Linux。想知道有哪些手機適合刷機?請參閱postmarketOS Wiki與Ubuntu touch Wiki。
Ubuntu touch#
- 相關文章:Ubuntu touch安裝教學
Ubuntu touch出現時間最早,2014年就有了,本來是要進一步推出手機的,然後沒幾年就被母公司Canonical放棄,變成開源社群維護。
Ubutnu touch有自己一套桌面環境,UI設計完善,連中文輸入法都有,以功能機來說是及格的。Ubutnu touch系統分區跟Android一樣是唯讀的,就算用Toot權限存取,下次更新OTA就會被蓋掉。想要跑電腦版的Linux程式,需要啟用LXC容器來安裝。
Ubuntu touch發展出了Halium混合Android驅動的移植方式,犧牲一部分自由軟體換取相容性。所以Ubuntu touch與Android手機硬體的相容性較佳,比較容易移植。
支援透過Waydroid跑Android APP。
postmarketOS#
- 相關文章:postmarketOS安裝教學
2019年前後出現的postmarketOS則比較像電腦的GNU/Linux發行版,圖形系統使用Wayland或X11,可以自由選配要使用的桌面環境。系統分區隨便你改動,性能夠的話要跑Docker和虛擬機也行。
postmarketOS強調移植的機型必須使用最新版的mainline Linux核心,驅動程式也必須盡量用開源版,放棄了Ubuntu Touch那種Halium技術的折衷作法,改走真正的GNU/Linux手機路線。
或許因為postmarketOS相較於Ubutnu touch更加自由,所以「Linux手機APP」才有發揮空間,GNOME和KDE社群都相繼開發隨螢幕大小變化的應用程式和SDK,能沿用現有的GTK與QT技術開發Linux手機APP。
支援透過Waydroid跑Android APP。
3. 購買真正的Linux手機#
除了將Android手機刷成Linux以外,也可以購買出廠就搭載Linux系統的手機。由於有專門的開發團隊在維護,就不會有Android刷Linux所遇到的諸多問題。且它們的硬體通常很開放,因此可以自由安裝其他社群成員維護的Linux發行版。
不過這些Linux手機可能不會比Android好用,性價比也不高,屬於是給願意自己動手的用戶所準備的。真Linux手機看起來很強大,但生態尚未成熟,目前頂多滿足通話與上網,用戶還要有很強的tinker精神才用的下去。開源或許能慢慢補全生態系問題,但會用Linux手機的人多少要對命令行有認識。
現時,出廠搭載Linux而非Android的手機有:
- FuriLabs FLX1 (2024),出廠搭載FuriOS,基於Debian開發。
- Purism Liberty Phone (2023),出廠搭載PureOS,基於Debian開發
- Purism Librem 5 (2020),出廠搭載PureOS,基於Debian開發
- Pine64 PinePhone Pro (2022),出廠搭載Manjaro,可以安裝其他十餘種發行版
- Pine64 PinePhone (2020),出廠搭載Manjaro,可以安裝其他十餘種發行版
- Volla Phone (2020),出廠搭載Ubuntu touch
- Fxtec Pro1X (2020),出廠搭載Ubuntu touch