談軟體自由,為何該擺脫Android,改用主線Linux手機
伍佰的專輯曾經說過:
命運不可逆,但適度的反抗是必須的。人生不可逆,但靈魂的自由是必須的。
嘗有人問,為什麼要開發手機用的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的手機,這樣才能確保手中的自由。
縱使無法抵抗主流世界的洪流,終究還是要做出一點變革與反抗。
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!
- Author
- More