Dinamik Android, geliştiricilerin AOSP'yi herhangi bir Android Q cihazında test etmesine olanak tanıyacak

Dinamik Android adı verilen yeni bir proje, geliştiricilerin AOSP Android Q GSI'larını Android Q veya üzerini çalıştıran herhangi bir cihazda test etmesine olanak tanıyacak.

Sayesinde Proje TizAkıllı telefon cihazı üreticileri, Android Pie yazılım güncellemelerini, en azından amiral gemisi akıllı telefonlar için, Android Oreo güncellemesi için yapabildiklerinden daha hızlı sundular. Ancak Google, Project Treble'ın avantajlarından yalnızca OEM'lerin yararlandığını görmek istemiyor. Şirket daha önce ifade edilen ilgi Geliştiricilerin emülatörlere güvenmek zorunda kalmaması için Android Q'nun Genel Sistem Görüntüsü'nü (GSI) yayınlarken, Bulut hizmetiveya bir uygulamayı en son API düzeyine göre test etmek için kendi cihazlarında bir güncelleme bekleyin. Teorik olarak, bir GSI'nın piyasaya sürülmesi, Project Treble uyumlu bir cihaza (orijinal olarak Android) sahip herhangi bir geliştiriciye izin verecektir. 8.0 Oreo ve üzeri, ancak artık yalnızca Android 9 Pie ile başlatılan cihazlar olarak kabul ediliyor) en son Android'i test etmek için versiyon. Geliştiricinin tek yapması gereken, mevcut yazılım kurulumunun üzerine bir sistem görüntüsünü flaşlamaktır; özel bir kurtarma, önyükleme veya satıcı görüntüsüne gerek yoktur.

Ancak mevcut GSI kurulum sürecinde çeşitli sorunlar var. Öncelikle kilidi açılmış bir önyükleyiciye ihtiyacınız var; mümkün değil Huawei veya Honor cihazlarında (ücret ödemeden bir ücret), HMD Global'in Nokia cihazları (hariç Nokia 8) veya ABD operatör markalı cihazlar. Daha sonra, işlem Fastboot aracılığıyla görüntülerin yanıp sönmesine aşina olmayan herkes için zor olacaktır. Son olarak, bir GSI'yi şimdi flaşlamak, dahili depolamayı tamamen silmenizi gerektirecektir; bu, muhtemelen test etmek için yedek bir cihaz isteyeceğiniz anlamına gelir. Şu anda, bir GSI'nin yanıp sönmesi yalnızca OEM'lerin kendi cihazlarında Project Treble uyumluluğunu test etmek için kullandıkları bir şeydir ve bunun ötesinde, yalnızca iflah olmazlar için caziptir özel ROM meraklıları. Google'ın yeni "Dinamik Android" projesi bunu değiştirebilir gibi görünebilir.

Dinamik Android—AOSP GSI'ları herhangi bir Android Q Cihazında Kolayca Test Edin

Son birkaç aydır Google, önyükleyicinin kilidini açmak zorunda kalmadan bir GSI'yi güvenli bir şekilde başlatmanın bir yolu üzerinde çalıştı. Kısacası Google, bir GSI indirmesine, bunun için depolama alanı ayırmasına ve GSI'yi önyüklenebilir olarak işaretlemesine olanak tanıyan özel izinlere sahip bir uygulama geliştiriyor. Bu projenin çeşitli bileşenleri var, o yüzden bunları tek tek tartışalım.

Dinamik Android ve Dokununca Android

Android Q'ya iki yeni hizmet ekleniyor: Dinamik Android ve Android On Tap hizmetleri. Dinamik Android, bir GSI'nin kurulumunu yönetirken, Android On Tap, sistem uygulamalarını geri aramalar ve yayın amaçlarıyla bilgilendirir. Örneğin, Android On Tap, cihazın bir PIN, şifre veya desenle korunması durumunda KeyguardManager'ı kullanıcıdan bir yükleme isteğini onaylamasını istemesi konusunda uyarır. AOT ayrıca kullanıcıyı bir GSI'ya başlatıldığında da uyarır.

"DynamicAndroidManager"ın açıklamasına göre, hizmet "yeni bir Android kullanma mekanizması sunuyor görüntü geçici olarak." Kurulumdan sonra cihaz, yeni oluşturulan görüntüyle yeni yüklenen görüntüye yeniden başlayabilir. /data. GSI'dayken yeniden başlatma, kullanıcıyı orijinal sistem görüntüsüne döndürür, ancak yeni yüklenen görüntü ve verileri yalnızca devre dışı bırakılır ve silinmez. Ancak kullanıcı bunu tercih ederse GSI ve verileri tamamen kaldırılabilir.

Kaynaklar: [1], [2], [3], [4]

GSID

GSI arka plan programı, GSI görüntüsünü ve verilerini depolamak ve görüntüyü önyüklenebilir hale getirmek için /data bölümünde alan ayırır. GSI'nin meta verileri /metadata'da saklanırken, GSI'nin kendisi ve verileri /data/gsi'de depolanır. Varsayılan olarak GSID, yeni yüklenen GSI için 8 GB kullanıcı verisi ayırır. Genel olarak GSID, kuruluma başlamadan önce en az %40 boş alan arar. Son olarak, arka plan programı, bariz nedenlerden dolayı kullanıcının bir GSI içerisine bir GSI kurmasını engeller.

Kaynaklar: [1], [2], [3], [4]

Güvenlik

Yeni yüklenen EXT4 sistem görüntüsü için Android Doğrulanmış Önyükleme (AVB) etkinleştirildi (system_gsi /system'e bağlı). Google ayrıca yeni hizmetler için SELinux politikalarını da uygulamaya koydu. Son olarak, GSI kurulumu, uygulamanın yeni MANAGE_DYNAMIC_ANDROID iznine sahip olmasını gerektirir. Bu, imza düzeyinde bir izindir; bu, uygulamanın OEM tarafından imzalanması gerektiği anlamına gelir.

Kaynaklar: [1], [2]

ADB ve Fastboot Komutları

GSI'lar ayrıca yeni ADB komutları aracılığıyla da yüklenebilecek. Yeni ADB gsi_tool kabuk komutu, kullanıcıların devre dışı bırakmasına, yeniden etkinleştirmesine, yüklemesine ve korumasına olanak tanıyacak kullanıcı verilerini yükleyin ve oluşturun, kullanıcı verilerini yükleyin ve silin veya durumu kontrol edin. kurulum.

gsi_tool - command-line tool for installing GSI images.

Usage:
gsi_tool <disable|install|wipe|status> [options]

disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus

GSI'yi yönetmek için iki yeni fastboot komutu eklenecek, ancak fastboot kullanıcı verilerini bağlayamadığı için fastboot kurulumu desteklenmiyor.

fastboot gsi wipe
fastboot gsi disable

Kaynaklar: [1], [2]

Bunun kime faydası olacak?

Uygulama geliştiricilerin Dynamic Android ve Android On Tap avantajlarından yararlanabileceklerini söylemek istiyorum ancak tam olarak emin değilim. Her ne kadar Google bununla ilgilendiğini ifade etse de, bu özelliğin her Android Q sürümünde bulunacağına dair bir garanti yok. Google dışı OEM'ler. Cihazda bundan yararlanmak için yazılımın, cihazla aynı sertifikayla imzalanmış bir GSI seçici uygulamasına ihtiyacı vardır. ROM. Ayrıca SELinux politikaları nedeniyle ADB kökü olmadan GSI'ları ADB'den kurmanın mümkün olacağından da emin değilim.Güncelleme: Yeni bir işlemek GSI_tool'u kullanmak için ADB kökünün gerekli olacağını doğrular. Bu, uygulama geliştiricilerinin uygulamalarını temiz bir Android sürümünde test etmesini amaçlamıyorsa, muhtemelen yalnızca Uyumluluk Test Paketini (CTS) ve Satıcı Test Paketini (VTS) kendi cihazlarında test etmek isteyen OEM'lerin mühendislerine fayda sağlar. cihazlar.

XDA Tanınan geliştiriciye özel teşekkürler luca020400 Bu makaledeki yardımları için.