Mainline

Android 10 では、Mainline(これまでこのサイトでモジュラー システム コンポーネントと呼ばれていたもの)を導入しました。Mainline は、一部の Android システム コンポーネントをモジュール化し、Android の通常のリリース サイクル以外でのアップデートを可能にします。これにより、Google と Android のパートナーは、エンドユーザー デバイスに対し、非公開の形で広範囲、迅速、かつシームレスにアップデートを配布できます。

エンドユーザーのデバイスでは、Android の Google Play システム アップデート機能(Google Play ストアのインフラストラクチャ上で実行)、または、パートナーが提供する無線(OTA)メカニズムを使用して、Mainline アップデートを受信できます。

アーキテクチャ

Mainline は、特定のシステム コンポーネントをモジュールに変換します。図 1 のモジュラー アーキテクチャにより、下位レベルのベンダー実装や上位レベルのアプリとサービスに影響を与えることなく、システム コンポーネントを随時更新して、重大なバグの修正やその他の改善を行えます。

Mainline アーキテクチャ

図 1. Mainline アーキテクチャ

モジュール アップデートでは、新しい API は導入されません。互換性テストスイート(CTS)で保証されている SDK と System API のみを使用します。相互に対する通信のみを行い、安定版の C API または安定版の AIDL インターフェースのみを使用します。

モジュール アップデート

一部の Mainline モジュールは APEX コンテナ形式(Android 10 で導入)を使用し、その他のモジュールは APK 形式を使用します。

更新された Mainline モジュールをまとめてパッケージ化し、Google(Google Play システム アップデート機能を使用)または Android パートナー(パートナーが提供する OTA メカニズムを使用)を通じて、エンドユーザー デバイスにプッシュできます。モジュール パッケージは「アトミック」にインストールされ、ロールバックされます。更新が必要なモジュールがすべて更新されるか、すべて更新されないかのどちらかです。

利用可能なモジュール

モジュール名 パッケージ名 タイプ 導入されたリリース
AdServices 複数 複数 Android 13
adbd com.android.adbd APEX Android 11
Android Health APEX Android 14
AppSearch com.android.appsearch APEX Android 13
ART com.android.art APEX Android 12
Bluetooth APEX Android 13
CellBroadcast com.android.cellbroadcast APEX Android 11
Config Infrastructure com.android.configinfrastructure APEX Android 14
Conscrypt com.android.conscrypt APEX Android 10
Device Scheduling com.android.scheduling APEX Android 12
DNS Resolver com.android.resolv APEX Android 10
DocumentsUI com.android.documentsui APK Android 10
ExtServices com.android.ext.services APK(Android 10)
APEX(Android 11)
Android 10
IPsec/IKEv2 Library com.android.ipsec APEX Android 11
Media メディア: com.android.media

メディア コーデック: com.android.media.swcodec
APEX Android 10(extractor、MediaSession API)
Android 11(MediaParser API)
MediaProvider com.android.mediaprovider APEXAndroid 11
ModuleMetadata com.android.modulemetadata APK Android 10
Network Stack ネットワーク スタック権限構成: com.android.networkstack.permissionconfig

キャプティブ ポータル ログイン: com.android.captiveportallogin

ネットワーク コンポーネント: com.android.networkstack
APK Android 10
NNAPI Runtime com.android.neuralnetworks APK Android 11
OnDevicePersonalization Runtime 複数 複数 Android 13
PermissionController com.android.permissioncontroller APK Android 10
Remote Key Provisioning com.android.rkpd APEX Android 14
SDK Extensions com.android.sdkext APEX Android 11
Statsd com.android.os.statsd APEX Android 11
Tethering com.android.tethering APEX Android 11
Time Zone Data com.android.tzdata APEX Android 10
UWB com.android.uwb APEX Android 13
Wi-Fi com.android.wifi APEX Android 11