Şunu kullanabilirsiniz: ota_from_target_files
tam ve artımlı olması için build/make/tools/releasetools
içinde sağlanan
A/B sistem güncellemelerini kullanan cihazlar için OTA paketleri veya
A/B harici sistem güncellemeleri. Araç,
Android derleme sistemi tarafından oluşturulan target-files.zip
dosyası giriş olarak.
Android 11 veya sonraki sürümleri çalıştıran cihazlar için farklı SKU'lara sahip birden fazla cihaz için tek bir OTA paketi oluşturabilirsiniz. Bunu yapmak için hedef cihazları dinamik parmak izleri kullanacak şekilde yapılandırma ve cihazı dahil etmek için OTA meta verilerini güncelleme ad ve parmak izini kontrol edin.
Android 8.0, A/B dışı cihazlar için dosya tabanlı OTA paketleri desteğini sonlandırmıştır.
blok tabanlı OTA paketleri kullanın. Alıcı:
blok tabanlı OTA paketleri veya Android 7.x veya önceki sürümleri çalıştıran cihazlar için kart oluşturma
ota_from_target_files
parametresine --block
seçeneği eklendi.
Eksiksiz güncellemeler oluşturun
Tam güncelleme, cihazın nihai durumunun tamamını (sistem, önyükleme ve kurtarma bölümleri) içeren bir OTA paketidir. Cihaz gerekli niteliklere sahip olduğu sürece
uygulanması sonucundan sonra, paket,
cihazın mevcut durumundan bağımsız olarak. Örneğin, aşağıdaki komutlar tardis
cihazı için target-files.zip
arşivi oluşturmak üzere sürüm araçlarını kullanır.
. build/envsetup.sh && lunch tardis-eng
mkdir dist_output
make dist DIST_DIR=dist_output
make dist
, eksiksiz bir OTA paketi oluşturur ($OUT
içinde). Sonuçta oluşan .zip
dosyası
tardis
cihaz için OTA paketleri oluşturmak amacıyla gereken her şeyi içerir.
Ayrıca ota_from_target_files
öğesini bir python ikili programı olarak derleyebilir ve
tam veya artımlı paket derleyebilirsiniz.
ota_from_target_files dist_output/tardis-target_files.zip ota_update.zip
ota_from_target_files
yolu $PATH
dilinde ayarlanır ve ortaya çıkan python
ikili, out/
dizininde bulunur.
ota_update.zip
artık test cihazlarına gönderilmeye hazır (her şey imzalandı)
. Kullanıcı cihazları için Sürüm için derlemeleri imzalama bölümünde açıklandığı şekilde kendi özel anahtarlarınızı oluşturup kullanın.
Artımlı güncellemeler oluşturun
Artımlı güncelleme, cihazda bulunan verilere yönelik ikili yamalar içeren bir OTA paketidir. Artımlı güncellemeleri olan paketler genellikle daha küçüktür çünkü değiştirilmemiş dosyaları dahil etmeleri gerekmez. Ayrıca, değiştirilen dosyalar genellikle önceki sürümlerine çok benzediğinden paketin yalnızca iki dosya arasındaki farkların kodlamasını içermesi gerekir.
Artımlı güncelleme paketini yalnızca paketin oluşturulmasında kullanılan kaynak derlemenin bulunduğu cihazlara yükleyebilirsiniz. Artımlı güncelleme oluşturmak için önceki derlemedeki target_files.zip
dosyasının (Güncellemek istediğiniz) yanı sıra yeni derlemedeki target_files.zip
dosyasına ihtiyacınız vardır. Örneğin, aşağıdaki komutlar tardis
cihaz için artımlı güncelleme oluşturmak üzere sürüm araçlarını kullanır.
ota_from_target_files -i PREVIOUS-tardis-target_files.zip dist_output/tardis-target_files.zip incremental_ota_update.zip
Bu derleme önceki derlemeye çok benzer ve artımlı güncelleme paketi (incremental_ota_update.zip
), ilgili tam güncellemeden çok daha küçüktür (60 MB yerine yaklaşık 1 MB).
Artımlı paketi yalnızca artımlı paketin başlangıç noktası olarak kullanılan önceki derlemeyle tam olarak aynı derlemeyi çalıştıran cihazlara dağıtın. Yanıp söndürmeniz gerekiyor
PREVIOUS-tardis-target_files.zip
veya PREVIOUS-tardis-img.zip
klasöründeki resimler
(her ikisi de make dist
ile oluşturulmuştur, fastboot update
ile desteklenecektir),
PRODUCT_OUT
dizini altındakiler (make
ile oluşturulmuş ve şu andan itibaren)
fastboot flashall
ile yanıp söndü). Artımlı paket yüklenmeye çalışılıyor
yüklü olduğu için yükleme hatası veriyor.
başarısız olursa cihazın çalışma durumu değişmeden kalır (eski
sistemi; paket, güncellediği tüm dosyaların önceki durumunu doğrular
Böylece, cihaz yarı yükseltilmiş durumda mahsur kalmaz.
En iyi kullanıcı deneyimi için her 3-4 artımlı güncellemede bir tam güncelleme sunun. Bu sayede kullanıcılar en son sürüme geçebilir ve artımlı güncellemelerin uzun yükleme sırasını atlayabilir.
Birden fazla SKU için OTA paketi oluşturma
Android 11 veya sonraki sürümler tek bir OTA kullanmayı destekler farklı SKU'lara sahip birden fazla cihaz için paket oluşturabilirsiniz. Bunu yapmak için hedef cihazların dinamik parmak izlerini kullanmasını ve OTA meta verilerini güncellemesini (OTA araçları kullanılarak) koşul girişleridir.
SKU'lar hakkında
SKU'nun biçimi, birleştirilmiş derleme parametresi değerlerinin bir varyasyonudur ve genellikle mevcut build_fingerprint
parametrelerinin tanımlanmamış bir alt kümesidir.
OEM'ler, bir SKU için CDD onaylı derleme parametrelerinin herhangi bir kombinasyonunu kullanabilir ve aynı zamanda bu SKU'lar için tek bir görüntü kullanabilir. Örneğin, aşağıdaki SKU'nun birden fazla varyantı vardır:
SKU = <product><device><modifierA><modifierB><modifierC>
modifierA
, cihaz düzeyidir (ör. Pro, Premium veya Plus)modifierB
, donanım varyantıdır (ör. radyo)modifierC
, genel (ör. NA, EMEA veya CHN) ya da ülkeye ya da dile özel (ör. JPN, ENG veya CHN) olabilen bölgedir.
Birçok OEM, birden fazla SKU için tek bir resim kullanır ve ardından cihaz açıldıktan sonra çalışma zamanında nihai ürün adını ve cihaz parmak izini oluşturur. Bu işlem, platform geliştirme sürecini basitleştirerek küçük özelleştirmelere sahip ancak farklı ürün adlarına sahip cihazların ortak resimleri (tardis
ve tardispro
gibi) paylaşmasına olanak tanır.
Dinamik parmak izleri kullanma
Parmak izi, ro.product.brand
, ro.product.name
ve ro.product.device
gibi derleme parametrelerinin tanımlanmış bir birleşimidir. Bir cihazın parmak izi, sistem bölümü parmak izinden türetilir ve cihazda çalışan resimlerin (ve baytların) benzersiz tanımlayıcı olarak kullanılır. Dinamik bir parmak izi oluşturmak için cihazın build.prop
dosyasında dinamik mantık kullanarak cihazın önyükleme sırasındaki önyükleme programı değişkenlerinin değerini alın, ardından bu verileri kullanarak cihaz için dinamik bir parmak izi oluşturun.
Örneğin, tardis
ve tardispro
cihazlarda dinamik parmak izleri kullanmak için
aşağıdaki dosyaları aşağıda gösterildiği şekilde güncelleyin.
odm/etc/build_std.prop
dosyasını aşağıdaki satırı içerecek şekilde güncelleyin.ro.odm.product.device=tardis
odm/etc/build_pro.prop
dosyasını aşağıdaki satırı içerecek şekilde güncelleyin.ro.odm.product.device=tardispro
odm/etc/build.prop
dosyasını aşağıdaki satırları içerecek şekilde güncelleyin.ro.odm.product.device=tardis import /odm/etc/build_${ro.boot.product.hardware.sku}.prop
Bu satırlar, cihaz adını, parmak izini ve dijital parmak izini
Değerine dayalı olarak ro.build.fingerprint
değerleri
ro.boot.product.hardware.sku
bootloader özelliği (salt okunur).
OTA paketi meta verilerini güncelleme
OTA paketi, OTA paketinin ön koşulu ve son koşulu da dahil olmak üzere paketi açıklayan bir meta veri dosyası (META-INF/com/android/metadata
) içerir. Örneğin, aşağıdaki kod tardis
cihazını hedefleyen bir OTA paketinin meta veri dosyasıdır.
post-build=google/tardis/tardis:11/RP1A.200521.001/6516341:userdebug/dev-keys
post-build-incremental=6516341
post-sdk-level=30
post-security-patch-level=2020-07-05
post-timestamp=1590026334
pre-build=google/tardis/tardis:11/RP1A.200519.002.A1/6515794:userdebug/dev-keys
pre-build-incremental=6515794
pre-device=tardis
pre-device
, pre-build-incremental
ve pre-build
değerleri, OTA paketinin yüklenebilmesi için cihazın sahip olması gereken durumu tanımlar. İlgili içeriği oluşturmak için kullanılan
post-build-incremental
ve post-build
değerleri bir cihazın durumunu tanımlar
olması beklenir. pre-
ve post-
alanlarının değerleri, aşağıdaki ilgili derleme özelliklerinden türetilir.
pre-device
değeri,ro.product.device
derleme mülkünden türetilir.pre-build-incremental
vepost-build-incremental
değerleri türetilirro.build.version.incremental
derleme mülkünden.pre-build
vepost-build
değerleri,ro.build.fingerprint
derleme mülkü.
Android 11 veya sonraki sürümleri çalıştıran cihazlarda
OTA araçlarında --boot_variable_file
işaretini kullanarak
cihazın çalışma zamanı değişkenlerinin değerlerini içerir.
dinamik parmak izi. Bu veriler daha sonra OTA meta verilerini güncelleyerek
pre-
ve post-
koşullarında (
dikey çizgi karakteri | ayırıcı olarak kullanılır). --boot_variable_file
işaretinin söz dizimi ve açıklaması aşağıda verilmiştir.
- Sözdizimi:
--boot_variable_file <path>
- Açıklama:
ro.boot.*
özelliklerinin olası değerlerini içeren bir dosyanın yolunu belirtir. Bazıro.product.*
mülkleri içe aktarma ifadesi tarafından geçersiz kılındığında olası çalışma zamanı parmak izlerini hesaplamak için kullanılır. Dosyada, her satırın aşağıdaki biçime sahip olduğu her satırda bir mülk beklenir:prop_name=value1,value2
.
Örneğin, mülk ro.boot.product.hardware.sku=std,pro
olduğunda
tardis
ve tardispro
cihazlar için OTA meta verileri aşağıda gösterildiği gibidir.
post-build=google/tardis/tardis:11/<suffix>|google/tardis/tardispro:11/<suffix>
pre-build=google/tardis/tardis:11/<suffix>|google/tardis/tardispro:11/<suffix>
pre-device=tardis|tardispro
Bu işlevin Android 10 yüklü cihazlarda desteklenmesi için referans bölümüne bakın
hakkında daha fazla bilgi edinin.
Bu değişiklik listesi, build.prop
içindeki import
ifadelerini koşullu olarak ayrıştırır
dosyası oluşturur. Bu dosya, özellik geçersiz kılma işlemlerinin
nihai OTA meta verileri