Googleは、モバイルOS「Android」の開発プロセスを大幅に変更し、今後は主に内部の非公開ブランチで進める方針を明らかにした。開発効率の向上を目的としているが、これまで公開されてきたAOSP(Android Open Source Project)における開発活動は縮小される見通しだ。OS自体はオープンソースとして維持されるものの、開発過程の透明性低下を懸念する声も上がっている。
開発プロセスの抜本的変更:AOSPから内部ブランチへ
Android Authorityの取材に対しGoogleは、Android OSの開発作業の大部分を、来週にも内部(プライベート)ブランチへ移行する計画を認めた。これは、約16年間続いてきた開発体制からの大きな転換点となる。
現在、Androidの開発は、誰でもアクセス可能な公開リポジトリである「AOSP Gerrit」と、Googleおよび特定のパートナー企業のみがアクセスできる内部ブランチの両方で行われている。しかし、新しい方針の下では、これまでAOSP Gerritで公開開発されてきた部分も含め、原則として全ての開発作業が内部ブランチに集約されることになる。
AOSP (Android Open Source Project) とは、Googleが主導するオープンソースプロジェクトであり、Android OSの基盤となるソースコードが管理されている。Apache 2.0ライセンスという比較的自由度の高いライセンスで公開されており、誰でも無償で利用、改変、再配布が可能である。SamsungのOne UIや多くのカスタムROM(有志によって開発されるカスタムOS)などは、このAOSPをベースとしている。
一方、Googleの内部ブランチへのアクセスは、Google社員およびGMS(Google Mobile Services)ライセンス契約を結んだパートナー企業に限定される。GMSは、Google検索、Gmail、Google PlayストアといったGoogle製アプリ・サービス群を含み、多くの大手スマートフォンメーカー(Samsung、Xiaomi、Motorola、OnePlusなど)がこのライセンスを取得している。
今回の変更により、これまでAOSP上で先行して開発・公開されてきたコンポーネント、例えばOSのビルドシステム、アップデートエンジン、Bluetoothスタック、仮想化フレームワーク(Virtualization framework)、SELinux(セキュリティ強化のためのLinux拡張機能)の設定なども、今後は内部ブランチで開発が進められることになる。これらのコンポーネントのソースコードは、Googleが将来的に新しいAndroidバージョンのソースコードをAOSPに公開するタイミングまで、外部からはアクセスできなくなる。
なぜ変更するのか? Googleが挙げる「効率化」の理由
Googleがこの変更に踏み切る主な理由として挙げているのは、「開発プロセスの合理化・効率化」である。
同社はAndroid Authorityに対し、現在の公開AOSPブランチと内部ブランチの二本立てでの開発体制が、双方にとって課題を生んでいると説明している。具体的には、以下の点が指摘されている。
- ブランチ間の乖離: 公開されているAOSPブランチの開発は、内部ブランチの開発ペースに比べて遅れがちであり、機能やAPI(Application Programming Interface:ソフトウェア同士が連携するための規約)のサポート状況に差が生じている。
- マージコンフリクト: 二つのブランチ間でコードを統合(マージ)する際に、互いの変更点が衝突(コンフリクト)し、エラーが発生することが頻繁にある。この解決に多くの時間と労力が費やされている。
Android Authorityは、具体的なマージコンフリクトの例として、ナビゲーションバーやキーボードの画面拡大機能に関するパッチや、新しいストレージAPI(Unlocked-only storage area API)の開発時に、内部ブランチとAOSPブランチ間のファイル構成の違いから問題が発生したケースを指摘している。
Googleは、開発作業を内部ブランチに一本化することで、こうしたブランチ間の同期問題やマージコンフリクトを解消し、新機能の実装、バグ修正、セキュリティ脆弱性への対応をより迅速かつ効率的に行えるようになると主張している。これは、近年の開発手法である「トランクベース開発」(単一のメインブランチで開発を進める手法)への移行の流れを汲むものとも考えられる。
Googleは、この変更が外部開発者を妨げる意図はなく、あくまで開発プロセスを円滑にするためのものであると強調している。
オープンソース性は維持されるのか? 透明性への懸念
開発プロセスが内部化されることで、Androidのオープンソース性が損なわれるのではないかという懸念が生じるのは自然である。しかし、Googleはこの点について明確に否定している。
同社は、Android OS自体がクローズドソースになるわけではなく、今後もオープンソースプロジェクトとして維持していく方針を改めて表明した。具体的には、新しいAndroidバージョンの開発が完了し、正式リリースされる際には、これまで通りそのソースコードをAOSPを通じて公開すると約束している。
ただし、開発の「プロセス」における透明性は確実に低下することになる。これまではAOSP Gerritを通じて、開発中のコード変更をリアルタイムに近い形で追跡することが可能だった。しかし今後は、内部ブランチでの変更は、Googleが次のバージョンをリリースするまで公開されないため、外部の開発者や研究者は、最新の開発状況を把握することが困難になる。Android Authorityは、公開されるコードが常に数週間から数ヶ月遅れる可能性があると指摘している。
一方で、Android OSが利用しているLinuxカーネルのソースコードについては、扱いが異なる点に注意が必要だ。LinuxカーネルはGPLv2(GNU General Public License version 2)というライセンスの下で公開されており、このライセンスは改変した場合にソースコードの公開を義務付けている。そのため、GoogleがAndroid向けに改変したLinuxカーネルのソースコードは、今後も継続して公開される見込みである。これはAOSP本体の開発プロセスとは切り離して考えられるべきだろう。
関係者への影響:誰に、どのような変化が?
今回の開発プロセスの変更は、Androidに関わる様々な立場の人々に異なる影響を与えると予想される。
- 一般ユーザー: スマートフォンやタブレットの日常的な利用者にとっては、直接的な影響はほとんどないと考えられる。OSアップデートの提供速度が劇的に変わることも考えにくい。
- アプリ開発者: 主にアプリレベルでの開発を行う開発者にとっても、プラットフォーム自体の開発プロセス変更であるため、直接的な影響は小さいだろう。
- プラットフォーム開発者・カスタムROM開発者: AOSPをベースに独自のOS(カスタムROM)を開発したり、プラットフォームレベルでの改変を行ったりする開発者にとっては、影響があり得る。多くの場合、彼らは安定したリリースブランチや特定のタグに基づいて作業するため、常に最新の開発状況を追う必要はないかもしれない。しかし、Googleの最新の変更点を早期に把握し、対応することが難しくなる可能性はある。
- AOSPへの貢献者・情報追跡者: AOSPにコードを提供したり、最新のコミットログを追跡して技術動向を把握したりしてきた開発者や研究者にとっては、今回の変更は大きな痛手となる。開発への貢献はより難しくなり、得られる情報も遅れたものになるため、活動が制約される可能性がある。
- GMSライセンスパートナー: SamsungやXiaomiといった大手メーカーは、引き続き内部ブランチへのアクセス権を持つため、開発プロセス変更による直接的な影響はない。
- ジャーナリスト・アナリスト: AOSPのコミットログは、時に次期Androidの新機能や、未発表のPixelデバイスに関する情報(リーク)の源泉となってきた。Android AuthorityのMishaal Rahman氏が指摘するように、こうした情報へのアクセスが制限されることで、今後のAndroidやGoogleデバイスに関する報道や分析が難しくなる側面もあるだろう。
背景にある流れと今後の展望
今回の開発プロセスの内部化は、突然降って湧いた話ではない。Googleは長年にわたり、Androidのコア機能の一部をAOSPから切り離し、プロプライエタリ(非公開)なGoogle Playサービスなどのコンポーネントに移管してきた経緯がある。今回の変更も、Androidプラットフォームに対するGoogleの管理・統制力を段階的に強化していく流れの一環と見ることもできるだろう。
開発効率の向上というGoogleの説明は事実であるとしても、同時に、開発プロセスが外部から見えにくくなることで、Googleにとって都合の良い変更(例えば、プライバシーに関わる変更や、競合サービスを不利にするような変更など)を、外部からの十分なチェックや議論なしに進めやすくなるのではないか、という懸念も指摘されている(Ars Technica)。
Googleは、この変更に関する詳細を今週後半にも発表し、関連ドキュメントを公開する予定であるとしている。今後、Googleからどのような情報が提供され、開発者コミュニティがそれにどう反応していくのか、注意深く見守る必要があるだろう。Androidという巨大なエコシステムにとって、今回の変更が長期的にどのような影響をもたらすのか、その評価はこれから定まっていくことになる。
Source