Google wycofał się z wymagania od producentów OEM obsługi wirtualnego A/B na nowych urządzeniach z Androidem 11, co umożliwiłoby bezproblemowe aktualizacje.
Aktualizacja 1 (25.01.2021 o 14:06 ET): Wydaje się, że przed wydaniem Androida 11 Google wycofał się z wymagania, aby urządzenia uruchamiające obsługiwały wirtualną A/B. Kliknij tutaj po więcej informacji. Artykuł opublikowany 7 kwietnia 2021 r. znajduje się poniżej.
W systemie Android 7.0 Nougat firma Google wprowadziła schemat partycji mający na celu przyspieszenie aktualizacji oprogramowania. W wersji Nougat Google dodał obsługę duplikowania niektórych partycji, dzięki czemu nieaktywne partycje mogą zostać zaktualizowane w tle, a następnie zamienione na aktywne po szybkim ponownym uruchomieniu. Ten Konfiguracja „partycji A/B” umożliwia „płynne aktualizacje” odbywać się na obsługiwanych urządzeniach z Androidem, podobnie jak w systemie operacyjnym Google Chrome. Jednak firma Google nigdy nie nakazywała używania partycji A/B, ponieważ istnieje wiele urządzeń, które nie obsługują płynnych aktualizacji. Może się to jednak zmienić w przypadku Androida 11, ponieważ Google nakłada na nowo wprowadzone na rynek urządzenia obowiązek obsługi wirtualnych partycji A/B.
Dla trochę tła, partycje A/B odnoszą się do zestawu partycji tylko do odczytu, które są zduplikowane. Zduplikowane partycje zazwyczaj obejmują partycje systemowe, dostawcy, rozruchowe i produktowe. Kiedy telefon pobiera aktualizację, aktualizator łata nieaktywny zestaw partycji (jedno „gniazdo”) w tle. Po zakończeniu stosowania aktualizacji w nieaktywnym gnieździe użytkownik zostanie poproszony o ponowne uruchomienie urządzenia. Gdy użytkownik ponownie uruchomi swoje urządzenie, nieaktywne gniazdo zamienia się miejscem z aktywnym, kończąc proces aktualizacji. Poprzednio aktywny slot pozostaje niezmieniony, jeśli wystąpi problem z uruchomieniem nowo zaktualizowanego slotu. Kiedy pojawi się następna aktualizacja, proces ten zostanie powtórzony. Jeśli interesują Cię bardziej techniczne wyjaśnienia, zapoznaj się z dokumentacją dla programistów Google na partycjach A/B.
Natomiast urządzenia bez partycji A/B, takie jak Samsung Galaxy S20, OPPO Find X2 i wiele innych, instalują aktualizacje za pośrednictwem dedykowanego aktualizatora w procesie odzyskiwania. Spowoduje to wyrzucenie użytkownika z Androida i uniemożliwienie korzystania z urządzenia przez kilka minut, co może skutkować utratą ważnych powiadomień, połączeń lub SMS-ów. Google wierzy, że uproszczenie procesu aktualizacji sprawi, że więcej osób faktycznie skorzysta z aktualizacji po jej wprowadzeniu; w rzeczywistości w maju 2017 r. Google to znalazło większy odsetek użytkowników Pixela niż użytkowników Nexusa korzystał z najnowszej aktualizacji zabezpieczeń. Oczywiście użytkownik może zaplanować aktualizacje, gdy nie korzysta aktywnie ze swojego urządzenia, ale wielu użytkowników po prostu nie aktualizuje swojego urządzenia nawet po wyświetleniu monitu. Ponadto, nie posiadając partycji A/B, użytkownik traci jedną z nieodłącznych korzyści: ochronę przed nieudanymi aktualizacjami systemu.
Na przykład, gdy Xiaomi jako pierwszy udostępnił aktualizację do Androida 10 w przypadku Mi A2 Lite wielu użytkowników odkryło, że ich urządzenia nie uruchamiają się. Na szczęście dla nich Mi A2 Lite ma partycje A/B umożliwiające płynne aktualizacje, więc znaleźli użytkownicy na naszych forach że mogliby użyć polecenia fastboot, aby ustawić program ładujący tak, aby uruchamiał niezmieniony, wcześniej aktywny zestaw partycji. W ten sposób partycje A/B nie tylko zapewniają użytkownikom znacznie szybszy proces aktualizacji, ale działają także jako zabezpieczenie przed nieudanymi aktualizacjami. Producenci OEM, którzy nie wdrożyli partycji A/B, nadal mogą opracować własny sposób ochrony przed OTA awarie, ale po co zawracać sobie tym głowę, skoro to zabezpieczenie jest częścią projektu A/B partycje? Dla Twojej informacji, oto częściowy (i co prawda nieaktualny) lista urządzeń obsługujących partycje A/B dla bezproblemowych aktualizacji, a tutaj jest samouczek na ten temat jak sprawdzić, czy Twoje urządzenie obsługuje tę funkcję.
Może wydawać się zastanawiające, dlaczego niektórzy producenci OEM lubią Samsung pobiera 1400 dolarów za smartfon, ale nie oferuje tak fajnej funkcji. Powód zwykle sprowadza się do pamięci masowej: producenci OEM nie chcą poświęcać kilku gigabajtów przestrzeni dyskowej, aby zapewnić płynne aktualizacje. Telefony takie jak Samsung Galaxy S20 mają tona preinstalowanego oprogramowania, więc duplikowanie partycji takich jak /system i /product doprowadzi do zduplikowania wielu dużych plików i aplikacji. Google udało się zaimplementować partycje A/B bez zbytniego poświęcania przestrzeni dyskowej dzięki sprytnej sztuczce aby obejść problem duplikowania ogromnych plików .odex. Innym powodem, dla którego producenci OEM mogli zdecydować się nie wdrażać partycji A/B, są koszty: dotrzymanie kroku Google ciągłe zmiany w schematach partycji Androida wymagają dużo wysiłku, jako uznany programista XDA topjohnwu powiem Ci. Jeśli producenci OEM nie zostaną do tego zmuszeni, wielu nie będzie zawracać sobie głowy zmianą tego, co już dla nich działa.
Wreszcie jednak wydaje się, że Google ustanawia prawo w Androidzie 11. Wymuszając przyjęcie wirtualnych partycji A/B na nowo wprowadzonych urządzeniach, niemal zapewniono, że producenci OEM będą musieli zapewniać bezproblemowe aktualizacje swoich urządzeń z końca 2020 i 2021 roku. Jak zauważył uznany programista XDA Luca020400, Yifan Hong, inżynier oprogramowania w Google w zespole Project Treble, przekazał AOSP Gerrit zobowiązanie zatytułowane „Wymagaj wirtualnego A/B przy uruchamianiu R.” To zatwierdzenie aktualizuje Vendor Test Suite, w skrócie VTS, czyli zautomatyzowany test, który muszą przejść wszystkie urządzenia, aby można je było uznać za zgodne z Project Treble. Nowy test sprawdza, czy właściwość systemu „ro.virtual_ab.enabled
" jest ustawione na true i jeśli "ro.virtual_ab.retrofit
" ma wartość false na urządzeniach z interfejsem API wysyłki na poziomie 30 lub wyższym. Innymi słowy, ten test sprawdza, czy urządzenie uruchamiane z systemem Android 11 lub nowszym obsługuje wirtualne partycje A/B. „Wirtualne” partycje A/B zostały wprowadzone w systemie Android 10 wraz z „partycjami dynamicznymi”, które są partycjami o dynamicznie zmienianym rozmiarze. Działają na tej samej zasadzie, co zwykłe partycje A/B, z tą różnicą, że można dowolnie zmieniać ich rozmiar.
Jeśli urządzenie uruchamiane z systemem Android 11 nie obsługuje wirtualnych partycji A/B, VTS nie powiedzie się. Jeśli urządzenie nie przejdzie testu VTS, nie będzie mogło zostać dostarczone z Usługami mobilnymi Google. Innymi słowy, Google skutecznie nałożył na producentów OEM obowiązek obsługi wirtualnych partycji A/B, a co za tym idzie, bezproblemowych aktualizacji.
Aktualizacja: wirtualny A/B nie jest wymagany w przypadku Androida 11
Kiedy w kwietniu po raz pierwszy informowaliśmy, że Google wymaga, aby wszystkie urządzenia z systemem Android 11 obsługiwały technologię mechanizm wirtualnej aktualizacji A/B, było wiele emocji, ponieważ dzięki temu w końcu telefony Samsung miały płynne aktualizacje. Niestety okazuje się, że Google nie zdecydował się na wprowadzenie wymogu wirtualnej obsługi A/B. Androida 11 Dokument definicji kompatybilności (CDD) obecnie brzmi „implementacje urządzeń POWINNY obsługiwać aktualizacje systemu A/B”, a nie „MUSI” obsługiwać. Wygląda na to, że na pewnym etapie przed wydaniem Androida 11 Google zdecydowało się wycofać swoją decyzję o wymaganiu wirtualnego wsparcia A/B, prawdopodobnie o godz. na żądanie kilku producentów OEM. Zdarza się to dość często, ale nigdy nie jest podawane do wiadomości publicznej, ponieważ publikowany jest jedynie ostateczny projekt CDD online.