メインコンテンツへスキップ

なぜAndroidから離れ、メインラインLinuxスマホへ移るべきなのか

·
カテゴリー Linuxシステム FOSSをめぐる問題
タグ Free Software PostmarketOS Android
目次

伍佰のアルバムはかつてこう言っていた:

運命は不可逆だが、適度な抵抗は必要だ。人生は不可逆だが、魂の自由は必要だ。

ある人に問われたことがある。なぜスマホ用のLinuxディストリビューション(mobile Linux distro)を開発し、車輪の再発明をするのか。すでにAndroidがあるではないか?ここでは、AndroidがスマホLinuxの最適解ではない理由をいくつか述べる。

1. Androidは自由ソフトウェアではない
#

Androidシステムは完全な自由ソフトウェアではなく、少なくとも構造はGNU/Linuxと比べて大きく異なる。

AndroidはGoogleがメインラインLinuxカーネルをforkして開発したもので、下流カーネルになっている。メインラインLinuxカーネルはオープンソースだが、中にはすでに多くのプロプライエタリなファームウェアバイナリが含まれており、自由ソフトウェア基金会はこれに非常に不満を持っている。Androidになると状況はさらに悪くなる。GoogleはHAL抽象層を作り、ハードウェアメーカーがGPL条項に違反せず、より多くのプロプライエタリなファームウェアを詰め込める機会を作った。これによりAndroidシステムはさらに閉鎖的になった。加えてGoogleは各メーカーにAOSPの全機能の実装を強制できないため、各メーカーがGoogleのカーネルをさらに改変して作るdownstream kernelには、ソースコードツリー外のpatchがさらに追加され、その多くは閉鎖的である。

GNU/LinuxとAndroidはカーネル以外にも、上位のソフトウェア構造がかなり違う。グラフィック層を例に取ると、Androidで画面描画を担うのはSurfaceFlingerであり、LinuxではX11またはWaylandが担う。

二つは基底原理が異なるため、両側のプログラムが自然にシームレスに相互運用できるはずがない。

さらに、Androidが使うCライブラリはBionicを基に開発されており、一般的なGNU/Linuxが使うGlibcとは互換性がない。これがドライバー面で直接適用できない問題を生む。自由ソフトウェア基金会がLinuxをGNU/Linuxと呼ぶべきだとよく強調する背後の理由は、一般的なLinuxにはGNUツールチェーンが含まれるが、Androidにはないからだ。

こうしてAndroidは、重度にpatchされたLinuxシステムになった。もしメインラインカーネルをAndroid端末へ移植しようとすれば、多くの場合Android固有のpatchを山ほど足さなければならない。AndroidはすでにLinuxからかなり離れているからだ。かつて開発者が述べたところでは、PinePhoneが使うカスタムLinuxカーネルはメインラインと50万行のコード差があり、OnePlus 6Tはメインラインカーネルと500万行のコード差がある。ここからAndroidの改変幅の大きさが分かる。

ユーザーのハードウェアに対する掌握度 Androidの断片化はまだしも、もっとひどいのはシステムを改造したい人に多くの制限があることだ。x86プラットフォームのように自由にシステムをインストールできるわけではなく、ARMプラットフォームには標準化された起動手順がない。そのためハードウェアメーカーが自分で機能を実装しなければならず、スマホへ自由にシステムをインストールすることは難しくなる。

カーネルのメンテナンス作業は重いため、メーカーはスマホを消耗品として扱いやすく、数年も経たずに更新を放棄する。これは環境問題を引き起こす。AndroidはROM焼きできるとはいえ、スマホメーカーが十分にオープンかどうかに依存する。ハードウェアやスマホメーカーのプロプライエタリなファームウェアが多すぎれば、ROM焼きも困難だらけになる。さらにスマホメーカーが安全を理由にROM焼きの経路を封鎖する(bootloaderのアンロックを開放しない)こともあり、カーネルのソースコードすら公開しないこともある。

古いスマホがメーカーからサポートを捨てられると、誰かがROMを作ってAndroidバージョンをアップグレードすることはあるかもしれない。しかしメーカーのプロプライエタリなファームウェアに合わせる必要があり、ハードウェア問題を解決するためにhack手段を使わなければならない。また前述したようにAndroidカーネルにはより多くのプロプライエタリなファームウェアが含まれるため、開発者がカーネルをメインラインLinuxカーネルへ置き換えることは難しい。postmarketOSの資料によれば、メインラインLinuxカーネルを動かし、さらに全ハードウェアを駆動できるAndroidスマホは半台もない。

各メーカーが採用するインターフェースの違いによる断片化は、それほど深刻な問題ではない。デスクトップ版LinuxのUIも多様だからだ。しかしUIは交換できる。だが基底層があまりに閉鎖的なら、システムを変更することは難しくなる。

2. Androidのソフトウェア生態系はGoogleに重度依存している
#

ネット検閲のある国に住む中国人にとって、ここでのGoogleは任意のスマホ大手メーカーに置き換えられる。

GoogleがAOSPを出しているとしても、世界各地で販売されているAndroidスマホにGoogleが入っていないものなど一台もないだろう?ソフトウェア機能の面では、Androidの測位や通知送信などは、クローズドソースのGoogleサービスフレームワークに依存しており、データはGoogleサーバーを経由する。EUが介入して叩かなければ、監視の強度はさらにやりたい放題になっていただろう。オープンソースのmicroGやF-Droidという代替選択肢があっても、使い心地は絶対によくない。

GoogleはAndroidへ直接影響力を持ち、その行うすべては徐々に事実上の標準となり、人々の認知における日常にさえなる。「悪いことをしていないなら、なぜ監視を怖がるのか?」言論の自由は重要ではない、言うことがないから?ある一社のメーカーがシステムの大部分の機能を握ると、デジタル人権を侵害し、自由を段階的に失わせることになる。

3. Android以外の選択肢を提供する
#

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コミュニティに受け入れられる可能性がある。

4. 現段階のLinuxスマホディストリビューション
#

2022年の時点では、Linuxスマホディストリビューションの使用体験はまだAndroidのように何も考えず使えるものではなく、大部分はtestingの状態にある。最良の純Linuxスマホのハードウェア性能もAndroid中級機レベルしかなく、そのためソフトウェアの滑らかさでは、Linuxを移植した古いAndroidフラッグシップ機に及ばない。

とはいえ開発者はなお活発に新機能を改善し続けている。少なくとも通話やネット接続などスマホの基本機能は安定した。残るのは必要なソフトウェアフレームワークとAPPを段階的に完成させ、ユーザーがソフトウェアとハードウェアを自由に変更できる発展モデルを維持し、メーカーとコミュニティが密接な協力を保つことだ。スマホLinuxのソフトウェアとハードウェアは高度にオープンソースであり、広範なコミュニティ支援もあるため、普通の人が開発に参加する障壁はかなり小さくなる。ハードウェアについては、純Linuxスマホのハードウェアはコストやメーカー規模などの要因により、短期的にはAndroidフラッグシップ機を超える可能性はあまりない。開放性だけが唯一の優位だ。

こう見ると、コンピューターのソフトウェア・ハードウェアとデジタル人権を理解している人こそがLinuxスマホの受け手になる。これは結局、デバイスの自主権に関わる議題だ。Android端末をLinuxへ改造する境遇から、本当にソフトウェアもハードウェアもLinux firstなスマホへ移行できてこそ、手元の自由を確保できる。

たとえ主流世界の奔流に抗えないとしても、最終的には少しの変革と抵抗を行わなければならない。

関連記事


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。