Android'in Project Mainline hakkında bilmeniz gereken her şey

Project Mainline, Project Treble'dan bu yana Android'deki en büyük değişikliktir. İşte ne anlama geldiği ve tüm modüllerin ne yaptığı: Bir göz atın!

Son yıllarda Android'de gözden kaçan en büyük değişikliklerden biri, önemine karşı nispeten konuşursak, Proje Ana Hattı Android 10'da. Google, Android sürümleri arasında belirli Ana Hat modüllerinin dahil edilmesini zorunlu kılar. Android 11 ile gelen birleştirilmiş zorunlu toplam 25 Mainline modülü. İşte Project Mainline'ın ne olduğu ve neyi çözmeyi amaçladığı hakkında bir açıklama ve Android'in tüm Project Mainline modüllerinin bir listesi.

Proje Ana Hattı nedir?

Project Mainline'ı doğru bir şekilde anlamak için biraz geri sarmamız gerekecek. Birkaç yıl öncesine giderseniz, Android güncellemeleri hakkındaki konuşmaların çoğu, parçalanma sorunu etrafında toplanmıştır. Parçalanma, Google'ın Ice Cream Sandwich - Lollipop döneminde Android'de çözmesi gereken en büyük zorluklardan biriydi. Bir platform olarak Android, büyük ölçüde öngörülebilir bir düzende düzenli güncellemeler alsa da, bu güncellemelerin nihai tüketicilere ulaşması, eğer ulaşıldıysa, çok uzun zaman alıyordu. Bu nedenle Google, platform düzeyinde kritik hataları ve güvenlik sorunlarını düzeltirken, bu değişikliklerin fiili olarak kullanıma sunulması arzulanan çok şey bıraktı. Çok sayıda aracı (SoC satıcısı, OEM'ler, taşıyıcılar, vb.) ve güncellemelerin teslim edilmesiyle ilgili birçok hareketli parça vardı/vardır. Telefonunuz ve parçalanma sorunu, biraz sert vuruş gerektirmeden kendi kendine çözülecek gibi görünmedi. müdahaleler.

Bu sorunu çözmeye yönelik en büyük çabalardan biri şu şekilde geldi: Proje Tiz Android işletim sistemi çerçeve bileşenlerini satıcı HAL'lerden ve Linux çekirdeğinden ayıran, Android'in büyük bir yeniden mimarisini içeren Android 8.0 Oreo ile birlikte. Project Treble, özünde, işletim sistemi çerçevesini cihaza özgü, alt düzey yazılımdan ayırarak Android'i modüler hale getirdi. Bu şekilde, cihaz üreticilerinin (OEM'ler) silikon üreticilerinin (SoC satıcısı) satıcı uygulama kodlarını güncellemesini beklemesine gerek kalmaz ve OEM'ler Android işletim sistemi çerçevesini bağımsız olarak güncelleyebilir. Nihai sonuç, OEM'den daha yeni Android sürümlerinin daha hızlı benimsenmesidir, çünkü artık gerekmemektedirler. onlar yapmaya başlamadan önce aracının (SoC satıcısı) işini bitirmesini bekleyin onların.

Android güncelleme durumu, Project Treble ile hemen yarasadan önemli ölçüde iyileşmese de, büyük ölçüde daha geniş OEM'i mümkün kıldı. Android 10 ve Android 11 betalarına katılımın yanı sıra OEM'lerin daha fazla cihazını daha hızlı bir şekilde güncellemesini kolaylaştırıyor zaman çizelgesi. Ayrıca, GSI (Genel Sistem Görüntüsü) konseptinin tamamı, forumlarımızdaki satış sonrası geliştirme üzerinde büyük bir etkiye sahip olmuştur.

Geliştirici, Android 11'i Project Treble GSI ile 22 eski cihazda başlatır

Project Mainline, Project Treble'ın çabalarını genişletiyor. Treble, her bir işletim sistemi güncellemesi için OEM'lerin SoC satıcılarına olan bağımlılığını azaltırken, Mainline, Google'ın önemli işletim sistemi bileşenlerine güvenlik güncellemeleri sağlamak için OEM'lere olan bağımlılığını azaltır. Project Mainline, Tiz felsefesini Android çerçevesinin daha kritik bölümlerine genişleterek OEM'leri bağımlı aracılar olarak bu denklemden çıkarır. Project Mainline'ın amacı, Google'ın çerçeve bileşenlerinin ve sistem uygulamalarının kontrolünü ele geçirmesidir. güvenlik ve geliştirme tutarlılığını OEM'lerden uzak tutmak için kritik öneme sahiptir. Proje Ana Hattı haklı olarak şu şekilde anılır: the Project Treble'dan bu yana Android'deki en büyük değişiklik.

Project Mainline için Google, Google Play Hizmetleri çerçevesi ve Google Play Store aracılığıyla sağlanan Mainline modüllerini kullanır. Her Mainline modülü, bir APK dosyası, bir APEX dosyası veya bir APK-in-APEX olarak teslim edilir. Bir Ana Hat modülü güncellenirken, kullanıcı cihazında bir "Google Play Sistem Güncellemesi" (GPSU) bildirimi görür. Etkili bir şekilde, kritik bileşenlere güncellemeler sunmak için Google, bir OEM'in bir güncelleme yayınlamasını bekleme gereğini atlayarak, görevi kendisi yapmayı seçti.

Gibi Google, Android web sitesinde belirtiyor:

Modüler sistem bileşenleri, Google ve Android iş ortaklarının güncellemeleri geniş, hızlı ve sorunsuz bir şekilde son kullanıcı cihazlarına kesintisiz bir şekilde dağıtmasını sağlar. Örneğin, medya kodek parçalanması ve kritik hataların birleşimi, uygulamanın benimsenmesini ve kullanıcı katılımını önemli ölçüde yavaşlatabilir. Medya ile ilgili modüllerde yapılan sık güncellemeler, farklı Android cihazlarda medya uygulaması davranışını daha tutarlı hale getirmek ve kullanıcı güveni oluşturmak için kritik hataları düzeltmek için codec parçalanmasını azaltabilir.

Android 10 veya üstü, seçilen sistem bileşenlerini, bazıları APEX kap biçimini (Android 10'da tanıtıldı) ve bazıları APK biçimini kullanan modüllere dönüştürür. Modüler mimari, sistem bileşenlerinin kritik hata düzeltmeleri ve diğer güncellemelerle güncellenmesini sağlar. alt düzey satıcı uygulamalarını veya üst düzey uygulamaları etkilemeden gerektiği şekilde iyileştirmeler ve Hizmetler.

Gibi Ars Teknik bahseder:

Project Mainline, AKA "Google Play Sistem Güncellemeleri", Android'in temel sistem bileşenlerini daha modüler ve güncellenebilir hale getirmek için büyük bir çaba olarak Android 10'da tanıtıldı. Mainline, temel Android kodunu bir uygulama güncellemesi gönderdiğiniz kadar kolay bir şekilde Play Store aracılığıyla göndermek amacıyla, özellikle sistem bileşenleri için yeni bir "APEX" dosya türü tanıttı. Önceden, Android'in gönderilebilir tek kod bloğu, orijinal olarak üçüncü taraf uygulamalar için tasarlanmış bir dosya türü olan APK idi. Bu, her türlü güvenlik kısıtlamasıyla birlikte geldi ve yalnızca önyükleme işleminde geç başlayabiliyordu, bu nedenle APEX, daha güçlü sistem bileşenleri düşünülerek oluşturuldu. APEX'ler yalnızca Google veya cihaz üreticiniz tarafından oluşturulabilir, bu nedenle fark edilir derecede daha güçlü olabilirler ve uygulama çalışma zamanı gibi kritik başlatma bileşenlerini barındırabilirler.

Mainline sadece teknik bir çözüm değil, aynı zamanda Android'in daha fazla parçasını merkezi olarak dağıtmakla da ilgili. Cihaz üreticileriyle müzakere etmeyi ve hepsinin aynı ürün bloğunu göndermeyi kabul etmesini sağlamayı içeren Google kod. Sonunda Mainline modüllerinin gönderilmesi zorunlu hale gelir, bu nedenle Mainline aslında ekosistem çapında tek bir modülün herkesin ihtiyaçlarını karşılamasını sağlamak için cihaz üreticileriyle yapılan büyük bir işbirliğidir. Her Mainline modülü ultra güçlü bir APEX modülü değildir; bazıları artık Google tarafından dağıtılan Android kodu olan APK'lardır.

Proje Ana Hattı — Modüller

Android 10 ile Google, 13 özel Ana Hat modülünün dahil edilmesini zorunlu kıldı. Android 11 ile toplam zorunlu modül sayısı 25'tir. İşte bazı önemli ayrıntıların yanı sıra tam liste:

Modül Adı

Paket ismi

Tip

Cihaz Android 11'e Yükseltildi veya Başlatıldı

Android 10 ile Başlatılan Cihaz

CihazAndroid 10'a Yükseltildi

adbd

com.google.android.adbd

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Android Neural Network API Çalışma Zamanı

com.google.android.neuralnetworks

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Captive Portal Girişi

com.google.android.captiveportallogin

APK

Mutlak

Kesinlikle önerilir

İsteğe bağlı

Hücre yayını

com.google.android.cellbroadcast

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Şifrele

com.google.android.conscrypt

APEX

Mutlak

Kesinlikle önerilir

İsteğe bağlı

DNS Çözümleyici

com.google.android.resolv

APEX

Mutlak

Kesinlikle önerilir

İsteğe bağlı

Belgeler Kullanıcı Arayüzü

com.google.android.documentsui

APK

Mutlak

Mutlak

İsteğe bağlı

ExtServices - APK

com.google.android.ext.hizmetler

APK

Mutlak

Mutlak

Mutlak

ExtServices - APEX

com.google.android.extservisleri

APEX

Mutlak

desteklenmiyor

desteklenmiyor

IPsec/IKEv2 Kitaplığı

com.google.android.ipsec

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Medya Codec'leri

com.google.android.media.swcodec

APEX

Mutlak

Mutlak

İsteğe bağlı

Medya Çerçevesi Bileşenleri

com.google.android.media

APEX

Mutlak

Mutlak

İsteğe bağlı

Medya Sağlayıcı

com.google.android.mediaprovider

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Modül Meta Verileri

com.google.android.modulemetadata

APK

Mutlak

Mutlak

Mutlak

Ağ Yığın Bileşenleri

com.google.android.networkstack

APK

Mutlak

Kesinlikle önerilir

İsteğe bağlı

Ağ Yığın İzin Yapılandırması

com.google.android.networkstack.permissionconfig

APK

Mutlak

Kesinlikle önerilir

İsteğe bağlı

İzin Denetleyicisi - APK

com.google.android.permissioncontroller

APK

Mutlak

Mutlak

Mutlak

İzin Denetleyicisi - APEX

com.google.android.permission

APEX

Mutlak

desteklenmiyor

desteklenmiyor

SDK Uzantıları

com.google.android.sdkext

APEX

Mutlak

desteklenmiyor

desteklenmiyor

İstatistikler

com.google.android.os.statsd

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Telemetri Tren Sürümü Paketi

com.google.mainline.telemetri

APK

Mutlak

desteklenmiyor

desteklenmiyor

bağlama

com.google.android.tethering

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Saat Dilimi Verileri

com.google.android.tzdata

APEX

Yapmamalısın

Mutlak

İsteğe bağlı

Saat Dilimi Verileri 2

com.google.android.tzdata2

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Wifi³

com.google.android.wifi

APEX

Mutlak

desteklenmiyor

desteklenmiyor

Yukarıdaki sütunlara bağlam sağlamak için, "Cihaz Android 11'e Yükseltildi veya Android 11 ile Başlatıldı" başlıklı sütun, modülün mevcut olması (veya olmaması) ile ilgili ayrıntıları içerir. Android 11'e yükseltilmiş veya Android 11 ile piyasaya sürülen tüm cihazlarda alternatifinin dahil edilmesi nedeniyle Saat Dilimi verileri olması durumunda mevcut) kutu. Benzer şekilde, Android 10 ile başlatılan cihazların birkaç modül içermesi gerekir, birkaç tane daha içermesi şiddetle tavsiye edilir ve diğerleri tarafından desteklenmez. Android 10'a yükseltilen cihazlar için (Android ile piyasaya sürülenin aksine), gerekli modüllerin listesi daha kısadır.

Her Ana Hat modülü ne yapar?

Aşağıda, Mainline modüllerinin her biri için kısa bir açıklama yer almaktadır:

adbd

adbd modülü, komut satırı adb ve IDE hata ayıklama oturumlarını yönetir. Adbd'yi modüler hale getirmek, Google'ın daha hızlı performans iyileştirmeleri ve hata düzeltmeleri sunmasına olanak tanır. Geçmişteki bazı hatalar pilin boşalmasıyla ilgili olduğundan ve telefon bitene kadar cihazların %100 CPU kullanmaya devam etmesine neden olabileceğinden bu çok önemlidir. Adb, uygulama geliştiricileri ve OEM'ler tarafından test için yaygın olarak kullanıldığından, bu düzeltmeleri yapmak Google için çok önemlidir.

Android Neural Networks API Çalışma Zamanı

Bu, bir uygulama ile arka uç sürücüleri arasında yer alan bir kitaplıktır. Buna karşılık API, mobil cihazlarda hesaplama açısından yoğun makine öğrenimi işlemleri yürütmek ve donanımla hızlandırılmış çıkarım işlemlerini etkinleştirmek için bir Android C API'sidir.

Hücre yayını

Hücre Yayını, acil durum ve acil olmayan uyarıları ifade eder (AMBER uyarıları gibi). Bu modül, bu uyarılar etrafındaki görevlerle ve kablosuz acil durum uyarıları için SMS kod çözme ve coğrafi sınırlama gibi diğer yardımcı işlevlerle ilgilidir.

Şifrele

Conscrypt modülü, Android'in TLS uygulamasını ve anahtar oluşturucular, şifreleyiciler ve mesaj özetleri gibi diğer kriptografik işlevleri yönetir. Bunu bir modül olarak göndermek, Google'ın OTA güncellemelerine güvenmeye gerek kalmadan güvenlik iyileştirmelerini hızlandırmasına olanak tanır.

DNS Çözümleyici

Adından da anlaşılacağı gibi, DNS çözümleyici DNS'yi çözer, yani insanlar tarafından okunabilen URL'leri IP adreslerine dönüştürür. Modül, DNS saplama çözümleyicisini uygulayan kodu içerir ve bunu bir modül olarak göndermek, Google'ın DNS müdahalesi ve yapılandırma güncellemesi saldırılarına karşı daha iyi kullanıcı koruması sağlamasına olanak tanır.

Belgeler Kullanıcı Arayüzü

Documents UI, belge izinlerini işleyen bileşenler için belirli dosyalara erişimi denetlemekten sorumlu modüldür. Google'ın belirttiği gibi, depolama erişimini ve izinlerini bir modül haline getirmek, son kullanıcılar için gizliliği ve güvenliği artırırken, çalışma zamanı kaynak yerleşimi (RRO) özelliği, OEM'lerin ihtiyaç duymaları halinde deneyimi temalandırmasına (Dosyalar uygulamasına atıfta bulunarak) olanak tanır ile. Bir modül olarak, tüm Google-Android cihazları aynı Documents kullanıcı arayüzü deneyimiyle gönderilir.

ExtServices

Bu modül, bildirim sıralaması, otomatik doldurma metin eşleştirme stratejileri, depolama önbelleği, paket izleme ve diğer hizmetler gibi temel işletim sistemi işlevselliği için çerçeve bileşenleri içerir.

IPsec/IKEv2 Kitaplığı

Bu kitaplık modülü, Interworking Wireless LAN çevresindeki yeni ve mevcut özelliklerle ilgilidir. (IWLAN) ve VPN'ler, örneğin anahtarlar, algoritmalar ve tünel gibi güvenlik parametrelerinin müzakere edilmesi yapılandırmalar. Bu işlevleri modüler hale getirme fikri, ekosistem tutarlılığını desteklemek ve güvenlik ve birlikte çalışabilirlik sorunları için hızlı düzeltmeler sunmanın bir yolunu sağlamaktır.

Bunlar üç çatallı modüldür, ancak birbirlerine bağlı işlevleri vardır. Bu medya modülleri, medya türlerini ve kodlarını yönetir, ExoPlayer ile etkileşime girer, taşıma kontrollerini ve oynatma bilgilerini çerçeveye sunar, dizinlenmiş meta verileri optimize eder, vb. Hatırlamak Stagefright, Android'i değiştiren istismar ve platforma aylık güvenlik güncellemeleri konseptini mi getirdi? Bu istismar, medya oynatma kitaplığındaki güvenlik açıklarına dayanıyordu. Dolayısıyla, medya bileşenlerinin modüler hale getirilmesi, Google'ın bu genellikle hedeflenen bileşende güvenlik açıkları bulunması durumunda hızlı ve geniş çapta tepki vermesine olanak tanır.

Bu modülün işlevi, amacı olmasa da adından hemen anlaşılır. Modül Meta Verisi modülü, cihazdaki modüllerin listesi hakkında... meta veriler içerir. Ve hepsi bu kadar.

Ağ Yığın Bileşenleri, Ağ Yığın İzin Yapılandırması, Captive Portal Oturum Açma

Ağ Yığını Bileşenleri modülü, ortak IP hizmetleri, ağ bağlantısı izleme, sabit oturum açma portalı tespiti sağlar. İzin Yapılandırma modülü, diğer modüllerin ağla ilgili görevleri gerçekleştirmesine olanak tanıyan izni tanımlar. Captive Portal Oturum Açma modülü, Captive Portal'larla, yani ne zaman görüntülenebilecek web sayfaları ile ilgilenir. İnternet kazanmak için kullanıcıdan ayrıntıları girmesinin istendiği belirli genel Wi-Fi ağlarına bağlı erişim.

İzin Denetleyicisi

Bu modül, izin verme ve yönetme konusunda güncellenebilir gizlilik politikaları ve UI öğeleri sunar. Bu, Paket Yükleyicinin yaptıklarına tanıdık geliyorsa, çünkü öyledir. Çalışma zamanı izinleri verme, yönetim ve kullanım izleme gibi işlevler, Android 9'a kadar Paket Yükleyici uygulamasının bir parçasıydı. Android 10'da Paket Yükleyici uygulaması, izin mantığının güncellenmesini sağlamak için bölümlere ayrılmıştır. İzin Denetleyici modülü bir APK dosyası olarak sunulur ve Android 11'de modül, uzun süredir kullanılmayan uygulamalar için çalışma zamanı izinlerini otomatik olarak iptal edebilir.

SDK Uzantıları

Bu modülün anlaşılması ve dolayısıyla açıklanması biraz zordur. Her Android sürümüne bir SDK düzeyi atanır (genellikle selefinden +1). Bir uygulama belirli bir SDK'yı hedeflediğinde, geliştiricinin Android sürümünün beraberinde getirdiği platform davranışını ve API değişikliklerini dikkate aldığı varsayılır.

SDK Uzantıları modülü, cihazın "uzantı SDK'sı" düzeyine karar verir ve uygulamaların uzantı SDK düzeyini sorgulaması için API'ler sunar. Resmi belgelerin bahsettiği her şey bu kadar. ArsTechnica, yine de bahseder bunun Play Store aracılığıyla gönderilecek olan ikincil bir API katmanı olması muhtemeldir.

Statsd, Telemetri Tren Sürüm Paketi

Statsd, cihaz metriklerinin toplanmasından sorumludur. Telemetri Tren Sürüm Paketi ise aktif kod veya kendine ait herhangi bir işlevsellik içermez. Yalnızca, Google'ın metriklerle ilgili bir dizi modül olduğunu söylediği "Telemetri Treni" için bir sürüm numarası içerir. Google Play, sürüm numarasına bağlı olarak son kullanıcılara güvenlik yaması sürümünü gösterir ve metrikle ilgili modüller için güncelleme olup olmadığını anlar.

bağlama

Tethering modülü, cihazın İnternet bağlantısını Wi-Fi, USB, Bluetooth veya Ethernet aracılığıyla diğer bağlı istemci cihazlarla paylaşır. Modül, tethering bileşenlerini ve bağımlılıklarını içerir. OEM'ler, bu Tethering modülünü kullanarak tek bir standart referans uygulamaya güvenebilir ve cihazlar arasında tutarlı bir deneyim sunabilir.

Saat Dilimi Verileri

Saat Dilimi Verileri modülü, Android cihazlarda gün ışığından yararlanma saatini (DST) ve saat dilimlerini güncelleyerek hem verileri standartlaştırır (bu dini, politik ve jeopolitik nedenlere ve ekosistemdeki güncelleme mekanizmasına yanıt olarak oldukça sık değişir. Android 8.1 ve Android 9, APK tabanlı bir saat dilimi veri güncelleme mekanizması kullandı ve Android 10, bunu APEX tabanlı bir modül güncelleme mekanizmasıyla değiştirdi. Google, AOSP'nin APK tabanlı güncellemeler için gerekli olan platform kodunu eklemeye devam ettiğini belirtiyor. Android 10'a yükseltme yapan cihazlar, iş ortağı tarafından sağlanan saat dilimi veri güncellemelerini APK. Ancak Google, APK tabanlı güncellemelerin APEX tabanlı bir güncellemenin yerini aldığı konusunda uyarıda bulunur.

Wifi

Bu, Wi-Fi işlevselliği için modüldür. Son kullanıcılar artık Android cihazlarda tutarlı bir Wi-Fi deneyiminin yanı sıra modül güncellemeleri, uygulama aracılığıyla birlikte çalışabilirlik sorunlarına yönelik düzeltmeler alabilir. geliştiriciler daha az platform parçalanması elde edebilir ve OEM'ler taşıyıcı gereksinimlerini karşılarken aynı zamanda bireysel özelleştirmeler.


Umarız bu makale, Project Mainline'ın Google'ın Android ekosistemi için ne kadar önemli olduğunu vurgulamaktadır.