談軟體自由,為何該擺脫Android,改用主線Linux手機

Ivon Huang
·
·
IPFS
·

伍佰的專輯曾經說過:

命運不可逆,但適度的反抗是必須的。人生不可逆,但靈魂的自由是必須的。

嘗有人問,為什麼要開發手機用的Linux發行版(mobile Linux distro),重新造輪子,不是已經有Android了嗎?這邊來說幾點Android不是手機Linux最佳解的原因。

(圖片來自OMG!Ubuntu)

Android不是自由軟體

Android系統不完全是自由軟體,至少結構跟GNU/Linux比起來差距甚大。

Android是Google fork主線Linux核心開發的,變成下游核心。雖然主線Linux核心是開源,但裡面已含有很多專有韌體二進位檔,自由軟體基金會對此很不滿。到了Android情況更糟糕了,Google搞了HAL抽象層讓硬體廠商有機會塞更多專有韌體又不違反GPL條款。這樣導致Android系統變得更加封閉。加上Google不能強迫各家廠商實作AOSP的全部功能,因此各家廠商再修改Google的核心所製作的downstream kernel還會加入更多原始碼樹以外的patcth,其中很多是封閉的。

於是Android成為了一個重度patch過的Linux系統。如果你想拿主線核心移植到Android機子上,往往得加一堆Android專有的patch,因為Android已經跟Linux相差甚遠。曾有開發者表示PinePhone使用的客製化Linux核心跟主線相差50萬行程式碼,而OnePlus 6T跟主線核心相差500萬行程式碼,由此可見Android修改的幅度之大。

使用者對硬體的掌控程度 Android碎片化就算了,更慘的是對想改造系統的人有諸多限制。不像x86平台可以自由安裝系統,ARM平台沒有標準化的開機程序,因此硬體廠商就得自行實作功能,導致手機要自由安裝系統變得困難。

因為核心維護工作繁重,廠商很容易把手機當消耗品,過沒幾年就放棄更新,這會造成環保問題。Android雖然可以刷機,也要看手機生產商夠不夠開放。如果塞過多硬體和手機商的專有韌體,那麼刷機也會困難重重。還有手機廠商以安全理由封鎖刷機管道(不開放解鎖bootloader),甚至不公開核心原始碼呢。

舊手機被廠商拋棄支援,可能會有人製作刷機包升級Android版本,但卻要遷就廠商的專有韌體而要用hack手段解決硬體問題。此外上面提到Android核心含有更多專有韌體,使得開發人員難以將核心更換為主線Linux核心。根據postmarketOS的資料,沒有半支Android手機能跑主線Linux核心又能驅動全部硬體的。

每家廠商採用的界面不同導致的碎片化,這個不算是嚴重的問題。因為桌面版Linux的UI也是很多樣,然而UI是可以換的。但底層如果太封閉,要變更系統就會很困難。

Android的軟體生態重度依賴Google

對住在有網路審查的國家的中國人來說,這裡的Google可以代換成任一家手機大廠。

即使Google有推出AOSP,可是在世界各地發售的Android手機沒有一台是沒有Google的吧?在軟體功能上,Android例如定位和傳送通知都仰賴閉源的Google服務框架,資料會經過Google伺服器。要不是歐盟有出手打擊,監控力度還會更加肆無忌憚。即使有開源的microG和F-Droid的替代選擇,用起來鐵定也不會很舒服。

Google對Android有直接影響,所作的一切會漸漸變成事實的標準,甚至是人們認知的日常。「沒做壞事為什麼怕監控?」言論自由不重要,因為無話可說?被某一個廠商把持系統大部分功能就會侵犯數位人權,並逐步失去自由。

提供Android和iOS以外的選擇

如果Android系統得按照Google的意思走,此時發展真正的Linux手機發行版就有必要。從2019年PinePhone和Librem 5推出以來,催生了10個以上的手機Linux發行版,不少是從現有桌面版Linux發行版所發展出來的,例如Mobian、Arch Linux ARM、postmarketOS、Fedora Mobility、openSUSE Mobile、Ubuntu touch。

他們的共識就是採用靠向主線的Linux核心(PinePhone因為成本考量還是需要少量專有韌體),視窗系統使用X11或Wayland,函式庫使用glibC或muslC。然後再開發適合手機使用的Linux APP,或是讓Linux桌面應用程式能自由適應視窗大小。相關系統API則是繼承自Linux桌面環境,系統沒有預載任何要你登入帳號的服務。更重要的是當中有些技術已經回饋給對應的Linux發行版上游,使Linux手機更有可能永續發展。

在系統方面解決後,還要選擇適合的手機廠商。因為上述因素,將原Android手機改裝Linux手機發行版不是長久之計,因為會受到專有韌體制約。因此手機廠商對系統的態度是很重要的,至少預設不該鎖bootloader,並要供應相對應的底層軟體原始碼,如此才有被Linux社群接納的可能。

現階段的Linux手機發行版

就2022年來說,Linux手機發行版的使用體驗還不能像Android一樣無腦,大部份是處於testing的狀態。最好的純Linux手機硬體效能也只有Android中階機的水準,使得軟體流暢度比不上移植Linux的舊Android旗艦機。

然而開發者仍持續活躍改進新功能,至少通話和上網等手機的基本功能是穩定了,剩下的就是逐步完善必要的軟體框架和APP,並維持讓使用者自由修改軟硬體的發展模式,廠商和社群保持密切合作。手機Linux軟硬體高度開源,加上廣泛的社群支援,普通人加入開發的阻礙將會小的多。至於硬體,純Linux手機的硬體因為成本和廠商規模等因素,效能短期內是不太可能超過Android旗艦機的,只有開放性是唯一優勢。

這樣來看,對電腦軟硬體和數位人權有認知的人才會成為Linux手機受眾。這畢竟是攸關裝置自主權的議題,如果能從Android機子改裝Linux的處境,過度到真正軟硬體皆是Linux first的手機,這樣才能確保手中的自由。

縱使無法抵抗主流世界的洪流,終究還是要做出一點變革與反抗。

CC BY-NC-ND 2.0

Like my work? Don't forget to support and clap, let me know that you are with me on the road of creation. Keep this enthusiasm together!

Ivon Huang自由軟體、航空、20世紀歷史愛好者。 這裡記載的東西究竟會成為未來的碎片,在那最果之處,反射出匯集各處思念的光芒。 My Blog: https://ivonblog.com
  • Author
  • More

將suckless.org極簡網頁設計哲學付諸實現

Linux電腦好用的必裝軟體,從文書處理到玩遊戲一次滿足

半回憶錄形式的2022年Matters回顧問卷