Android 9 ve sonraki sürümler,
product
bölümleri, Android derleme sistemini kullanarak. Daha önce
Android 8.x, SoC'ye özel bileşenlerin ayrılmasını zorunlu kıldı
system
bölümünden vendor
bölümüne
Google Analytics 4'te oluşturulan OEM'e özgü bileşenler için
Android derleme sistemi. Android 9 ve sonraki sürümler
izinler
ve farklı bölümlerdeki öncelik uygulamaları için geçerli olan özellikleri beyaz listeye ekleme hakkında daha fazla bilgi edinin.
Ürün bölümleri hakkında
Birçok OEM, AOSP sistem imajını kendi özelliklerini,
ve kargo şirketi gereksinimlerini takip edin. Ancak bu tür özelleştirmeler,
birden fazla yazılım SKU'su için tek bir sistem görüntüsü kullanmak imkansızdır. Her biri
resim, özelleştirmeleri desteklemek için farklı olmalıdır;
veya operatörlerden yardım alabilirsiniz. Bir
özelleştirmeleri içerecek şekilde ayrı product
bölümü, bunu
birden fazla yazılım SKU'su için tek bir sistem görüntüsü kullanılabilir. (
system
bölümü, aralarında paylaşılabilecek genel kodları barındırır
çok sayıda yazılım SKU'su). vendor
bölümü, barındırmaya devam eder
Birden fazla kullanıcı arasında paylaşılabilen SoC'ye özel BSP kodu
çiplerini kullanabilirsiniz.
Ayrı bölümlerin kullanılmasının bazı dezavantajları vardır:
yönetme (ilerideki depolama alanı için sınırlı bir alan ayrılmalı
büyüme) ve bunları
, bölümler arasında kararlı bir uygulama ikili arayüzü (ABI) Şu tarihten önce:
kullanmaya karar veriyorsanız product
bölümlerinizi
benzersiz AOSP uygulaması ve olası azaltma taktikleri (ör.
kablosuz bağlantıdayken bir cihazı yeniden bölümlendirme
(OTA) güncellemesi Google tarafından yapılmaz ancak bazı OEM'ler tarafından yapılır.
Dinamik bölümlendirme
iyi bir çözüm olabilir.
Ürün bölümleri ve izinler
Android 9 ve sonraki sürümlerde izinlerde değişiklik
beyaz listeye ekleme işlemi,
"ürün" bölümlerinizi de kullanabilirsiniz. permissions.xml
dosyası
priv-apps ile aynı bölümde bulunmalıdır. Giriş
system
bölümünde permissions.xml
dosyası
for priv-apps, bu izinleri product
içindeki priv-uygulamalara genişletmez
ilki, ikincisinin bir uzantısıdır.
İzinler ve beyaz listeye ekleme süreçleriyle ilgili ayrıntılar için bkz.
Özel İzinleri İzin Verilenler Listesine Ekleme.
Eski /oem ve /product karşılaştırması
product
bölümünün iki tür özelliği vardır:
ürünün ürünündeki
arayüz yaptırımı. Ayrıca, product
bölümü farklıdır
(eski oem
bölümünden daha yüksek):
Bölüm | Özellikler |
---|---|
oem |
|
product |
|
product (zorunlu arayüzler) |
|
Bu nedenlerden ötürü, Android 9, product
bölümünü destekler.
Şuna bağımlı cihazlar için eski oem
bölümünü desteklemeye devam ediyoruz:
somut olarak ortaya koyar. product
bölümünü system
öğesinden ayırmak için
bölüm, Android 11 destekler
product
yaptırımı
arayüzleri.
/ürün bileşenleri
product
bölümü aşağıdaki bileşenleri içerir:
- Ürüne özel sistem özellikleri (
/product/build.prop
) - Ürüne özel DGR'ler (
/product/overlay/*.apk
) - Ürüne özel uygulamalar (
/product/app/*.apk
) - Ürüne özel öncelik uygulamaları (
/product/priv-app/*.apk
) - Ürüne özel kitaplıklar (
/product/lib/*
) - Ürüne özel Java kitaplıkları (
/product/framework/*.jar
) - Ürüne özel Android Framework sistem yapılandırmaları
(
/product/etc/sysconfig/*
ve/product/etc/permissions/*
) - Ürüne özel medya dosyaları (
/product/media/audio/*
) - Ürüne özel
bootanimation
dosyaları
custom_images yok
custom_images
uygulamasını kullanamazsınız. Şu konuda yeterince destek sağlamıyorlar:
takip etmek için:
- Modülleri belirli bir hedefe yükleme.
custom_images
, yapıların resme kopyalanmasını destekler ancak bir modül, hedefini belirterek belirli bir bölüme yüklenemez bölümlendirmeyi devre dışı bırakır. - Soong desteği.
custom_images
olamaz geliştirildi. - OTA güncelleme desteği.
custom_images
, fabrika ROM'u olarak kullanılır OTA güncellemelerini alamayan resimler var.
Bölümler arasında ABI'leri koruma
Android 9'daki product
bölümü,
system
bölüm. Her iki iş arasında da
product
ve system
bölümleri olduğundan her ikisi de olmalıdır
aynı anda yeni sürüme geçirilmeli ve ABI sistem SDK'sı tabanlı olmalıdır. Öğe
sistem SDK'sı product
ile arasındaki tüm API yüzeylerini kapsamaz
system
, OEM'ler şu tarihler arasında kendi ABI'lerini tutmalıdır:
ayırdığımızı unutmayın.
product
ve system
bölümlerinde
ortaya çıkarmanıza
yardımcı olabilir. Ancak,
Genel Sistem Görüntüsü (GSI)
product
bölümü olmadan düzgün bir şekilde çalışmalıdır.
product
arayüzleri zorunlu kılındığında product
bölüm, system
bölümü ile ayrıştırılır. product
bölümü yalnızca system
bölümündeki izin verilen arayüzleri kullanır.
product
bölümünün,
vendor
bölüm.
product
ve vendor
bölümleri yasaklandı.
(Bu, SEpolicy tarafından zorunlu kılınır.)
Ürün bölümlerini uygulama
Yeni bir ürün bölümü uygulamadan önce
ilgili
AOSP'deki ürün bölümü değişiklikleri. Ardından product
kurulumunu yapmak için
aşağıdaki pano veya ürün geliştirme bayraklarını dahil edin:
BOARD_USES_PRODUCTIMAGE
BOARD_PRODUCTIMAGE_PARTITION_SIZE
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE
/product/build.prop
tarih aralığı içinPRODUCT_PRODUCT_PROPERTIES
. Bunlar$(call inherit-product path/to/device.mk)
içinde olmalıdır (PRODUCT_PRODUCT_PROPERTIES += product.abc=ok
gibi).
Ürün bölümüne modül yükleme
product
bölümüne modül yüklemek için aşağıdaki derleme işaretlerini kullanın.
product_specific: true
Android.bp
içinde başlıyorLOCAL_PRODUCT_MODULE := true
Android.mk
içinde başlıyor
Doğrulanmış Başlatma'yı etkinleştir
product
bölümü üzerinde oynanmasını önlemek için
kötü amaçlı yazılımlar,
Android
Bu bölüm için Doğrulanmış Başlatma (AVB) (tıpkı
vendor
ve system
bölümleri). AVB'yi etkinleştirmek için:
şu derleme flag'lerini ekleyin:
BOARD_AVB_PRODUCT_ADD_HASHTREE_FOOTER_ARGS