Google, OEM'lerin yeni Android 11 cihazlarında sanal A/B'yi desteklemesini zorunlu kılma konusunda geri adım attı; bu da sorunsuz güncellemelerin önünü açacaktı.
Güncelleme 1 (25.01.2021 @ 14:06 ET): Android 11'in piyasaya sürülmesinden önce Google, lansman cihazlarının sanal A/B'yi desteklemesini zorunlu kılma konusunda geri adım atmış gibi görünüyor. Daha fazla bilgi için buraya tıklayın. 7 Nisan 2021 tarihinde yayınlanan yazı aşağıda muhafaza edilmiştir.
Android 7.0 Nougat ile Google, yazılım güncellemelerini hızlandırmak için tasarlanmış bir bölümleme şemasını tanıttı. Google, Nougat'ta, etkin olmayan bölümlerin arka planda güncellenebilmesi ve ardından hızlı bir yeniden başlatma ile etkin olarak değiştirilebilmesi için belirli bölümlerin kopyalanması desteğini ekledi. Bu "A/B bölümü" kurulumu "kesintisiz güncellemelere" olanak tanır Google'ın Chrome OS'sine çok benzer şekilde desteklenen Android cihazlarda gerçekleşecek. Ancak Google hiçbir zaman A/B bölümlerinin kullanımını zorunlu kılmamıştır; piyasada pek çok cihaz kesintisiz güncellemeleri desteklememektedir. Ancak Google, yeni başlatılan cihazların sanal A/B bölümlerini desteklemesini zorunlu hale getirdiği için bu durum Android 11 ile değişebilir.
Biraz arka plan bilgisi vermek gerekirse, A/B bölümleri kopyalanan salt okunur bölümler kümesini ifade eder. Çoğaltılmış bölümler genellikle sistem, satıcı, önyükleme ve ürün bölümlerini içerir. Telefon bir güncelleme indirirken, güncelleyici arka planda etkin olmayan bölüm kümesini (bir "yuva") yamalar. Güncellemenin etkin olmayan yuvaya uygulanması tamamlandığında kullanıcıdan cihazını yeniden başlatması istenir. Kullanıcı cihazını yeniden başlattığında etkin olmayan yuva, etkin yuvayla yer değiştirerek güncelleme işlemini tamamlar. Yeni güncellenen yuvanın başlatılmasında bir sorun olması durumunda, önceden etkin olan yuvaya dokunulmaz. Bir sonraki güncelleme geldiğinde bu işlem tekrarlanır. Daha teknik bir açıklamayla ilgileniyorsanız, Google'ın geliştirici belgelerine bakın A/B bölümlerinde.
Bunun aksine, Samsung Galaxy S20, OPPO Find X2 ve diğerleri gibi A/B bölümleri olmayan cihazlar, kurtarma sürecinde güncellemeleri özel bir güncelleyici aracılığıyla uygular. Bu, kullanıcıyı Android'den atar ve birkaç dakika boyunca cihazını kullanamamasına, önemli bildirimlerin, çağrıların veya metinlerin kaçırılmasına yol açabilir. Google, güncelleme sürecini basitleştirmenin, daha fazla kişinin bir güncelleme yayınlandıktan sonra gerçekten almasını sağlayacağına inanıyor; aslında, 2017 yılının Mayıs ayında, Google bunu buldu Pixel kullanıcılarının yüzdesi, Nexus kullanıcılarına göre daha yüksek oranda en son güvenlik güncellemesini çalıştırıyordu. Elbette, kullanıcı güncellemeleri cihazını aktif olarak kullanmadığı zamanlarda gerçekleşecek şekilde planlayabilir, ancak çoğu kullanıcı istendiğinde bile cihazını güncellemez. Ayrıca, A/B bölümlerine sahip olmamakla kullanıcı, bunun doğal avantajlarından birini kaçırır: kendilerini hatalı sistem güncellemelerinden korumak.
Örneğin, Xiaomi Android 10 güncellemesini ilk kez yayınladık Mi A2 Lite için birçok kullanıcı, cihazlarının önyükleme yapmadığını keşfetti. Neyse ki Mi A2 Lite'ın sorunsuz güncellemeler için A/B bölümleri var. forumlarımızdaki kullanıcılar bulundu önyükleyiciyi dokunulmamış, önceden etkin olan bölüm kümesini başlatacak şekilde ayarlamak için bir fastboot komutunu kullanabileceklerini. Bu nedenle, A/B bölümleri kullanıcılara yalnızca çok daha hızlı bir güncelleme süreci sağlamakla kalmaz, aynı zamanda başarısız güncellemeler için bir arıza güvenliği görevi de görür. A/B bölümlerini uygulamayan OEM'ler yine de OTA'ya karşı koruma sağlamak için kendi yöntemlerini geliştirebilir arızalar, ancak bu koruma A/B tasarımının bir parçasıyken neden bu sorunla karşılaşıyorsunuz? bölümler? Referans olması açısından, işte kısmi (ve kuşkusuz modası geçmiş) A/B bölümlerini destekleyen cihazların listesi Sorunsuz güncellemeler için ve burada bir eğitim var kendi cihazınızın bu özelliği destekleyip desteklemediğini nasıl kontrol edebilirsiniz?.
Bazı OEM'lerin neden hoşlandığı kafa karıştırıcı görünebilir Samsung bir akıllı telefon için 1.400 dolar alıyor ancak bu kadar şık bir özellik sunmuyor. Bunun nedeni genellikle depolamayla ilgilidir: OEM'ler sorunsuz güncellemeleri desteklemek için birkaç gigabaytlık depolama alanından fedakarlık etmek istemezler. Samsung Galaxy S20 gibi telefonlarda ton Bu nedenle, /system ve /product gibi bölümlerin çoğaltılması, çok sayıda büyük dosya ve uygulamanın çoğaltılmasına yol açacaktır. Google, depolama alanından çok fazla ödün vermeden A/B bölümlerini uygulamayı başardı zekice bir numara sayesinde büyük .odex dosyalarının çoğaltılması sorununa geçici bir çözüm bulmak için. OEM'lerin A/B bölümlerini uygulamamayı seçmelerinin bir başka nedeni de maliyettir: Google'ın hızına ayak uydurmak XDA Tanınmış Geliştiricisi olarak Android'in bölümleme düzenlerinde sürekli değişiklik yapmak çok fazla çaba gerektirir Topjohnwu sana anlatacağım. OEM'ler mecbur kalmadıkça pek çoğu zaten kendileri için işe yarayan şeyleri değiştirme zahmetine girmeyecektir.
Ancak son olarak Google, Android 11'de yasayı ortaya koyuyor gibi görünüyor. Yeni piyasaya sürülen cihazlarda sanal A/B bölümlerinin benimsenmesini zorlayarak, OEM'lerin 2020 sonu ve 2021 cihazları için sorunsuz güncellemeleri desteklemesi gerekeceğinin neredeyse garantisini verdiler. XDA Tanınmış Geliştirici tarafından tespit edildiği gibi luca020400Google'da Project Treble ekibinde yer alan bir yazılım mühendisi olan Yifan Hong, AOSP Gerrit'e "R lansmanlarında Sanal A/B gerektir" Taahhüt, tüm cihazların Project Treble ile uyumlu kabul edilmesi için geçmesi gereken otomatik bir test olan Satıcı Test Paketini veya VTS'yi günceller. Yeni test, sistem özelliğinin "ro.virtual_ab.enabled
"true olarak ayarlandı ve if"ro.virtual_ab.retrofit
", gönderim API düzeyi 30 veya daha yüksek olan cihazlarda false olarak ayarlanmıştır. Başka bir deyişle, bu test, Android 11 veya üzeri sürümle başlatılan bir cihazın sanal A/B bölümlerini destekleyip desteklemediğini kontrol eder. "Sanal" A/B bölümleri, dinamik olarak yeniden boyutlandırılabilen bölümler olan "dinamik bölümler"in yanı sıra Android 10 ile birlikte tanıtıldı. Serbestçe yeniden boyutlandırılabilmeleri dışında normal A/B bölümleriyle aynı konsepte sahiptirler.
Android 11 ile başlatılan bir cihaz sanal A/B bölümlerini desteklemiyorsa VTS'de başarısız olur. Cihaz VTS'de başarısız olursa Google Mobil Hizmetleri ile gönderilemez. Başka bir deyişle Google, OEM'lerin sanal A/B bölümlerini ve buna bağlı olarak kesintisiz güncellemeleri desteklemesini etkili bir şekilde zorunlu hale getirdi.
Güncelleme: Android 11 için Sanal A/B gerekli değildir
Nisan ayında Google'ın tüm Android 11 lansman cihazlarının desteklemesini gerektirdiğini ilk kez bildirdiğimizde sanal A/B güncelleme mekanizması, çok fazla heyecan vardı çünkü sonunda Samsung telefonlarının sorunsuz güncellemelere sahip olmasını sağlayacaktı. Maalesef Google'ın sanal A/B desteğini bir gereklilik haline getirmemeye karar verdiği ortaya çıktı. Android 11'ler Uyumluluk Tanımı Belgesi (CDD) şu anda "ZORUNLU" desteği yerine "cihaz uygulamalarının A/B sistem güncellemelerini desteklemesi GEREKİR" ifadesini okuyor. Görünüşe göre Google, Android 11'in piyasaya sürülmesinden bir süre önce, sanal A/B desteğini zorunlu kılma kararından muhtemelen şu tarihte geri adım atmaya karar verdi: birçok OEM'in emriyle. Bu oldukça sık oluyor ancak CDD'nin yalnızca son taslağı yayınlandığı için hiçbir zaman kamuoyuna aktarılmıyor. çevrimiçi.