Kapsamlı satıcı günlüğünü uygulama

Android 11, IDumpstateDevice (1.1 sürümü) adlı yeni bir HAL ekler. Bu HAL, standart hata raporlarına dahil edilen tedarikçi günlüklerinin kapsamını daha sıkı bir şekilde belirlemek ve kullanıcı derlemelerinin tedarikçi günlüklerini etkinleştirmesine/devre dışı bırakmasına izin vermek için yeni yöntemler sunar (kullanıcı derlemeleri için varsayılan ayar devre dışıdır). Bu sayede OEM'ler, belirli hata raporu türlerine nelerin dahil edileceği konusunda daha fazla kontrole sahip olur.

Bu özellik, isteğe bağlı HAL'i uygulamayı seçen OEM'leri etkiler. OEM'nin bu HAL ile göstermeyi seçtiği öğelere bağlı olarak SoC'ler etkilenebilir. Operatörlerin bu durumdan etkilenmesi beklenmiyor.

Hata raporlarına ne dahil ettiğiniz, hata ayıklama için hangi bilgileri alakalı bulduğunuza bağlıdır ancak genellikle daha ayrıntılı bilgi vermek daha iyidir.

Örnekler ve kaynak

IDumpstateDevice'ın (desteği sonlandırılmış) 1.0 sürümünün varsayılan bir uygulaması vardır. Bu uygulamada, dumpstate yardımcı kitaplığının kullanımıyla ilgili bir örnek gösterilmektedir: frameworks/native/cmds/dumpstate/DumpstateUtil.h. 1.1 HAL'ın Cuttlefish uygulaması da vardır: device/google/cuttlefish/guest/monitoring/dumpstate_ext/*.

Kaynak kodu buradadır:

Uygulama

Bu HAL'yi uygulamak için android.hardware.dumpstate@1.1::IDumpstateDevice HAL arayüzünü uygulayın. Birçok olası DumpstateMode değeri vardır ancak bunların tümü tek bir cihaz tarafından desteklenmez (ör. Wear OS dışındaki cihazlar için WEAR).

dumpstate HAL'ini uygulamak isteğe bağlıdır. Android 11 ile kullanıma sunulan tüm yeni cihazlar, Dumpstate HAL'i uyguluyorsa IDumpstateDevice 1.1'i UYGULAMALIDIR. Android 11'den önce IDumpstateDevice 1.0'ı uygulamış cihazların 1.1'e yükseltilmesi nispeten kolaydır ve bu işlem, hata raporlarına dahil edilen gereksiz özel bilgilerin miktarını büyük ölçüde azalttığından önemle tavsiye edilir.

Bu özellik, Android 11'de de bulunan ve frameworks/native/cmds/dumpstate altında bulunan çekirdek dökümü durumundaki değişikliklere bağlıdır.

Bu HAL'i uygulamak için, her şeyin tam olarak çalışması amacıyla belirli sistem özelliklerinde, dosyalarda vb. bazı SEPolicy değişiklikleri yapılması ve ilgili tüm bilgilerin hata raporlarına aktarılması için tedarikçi firmalarla koordinasyon yapılması gerekecektir.

Özelleştirme

Cihaz kullanıcısı, geliştirici ayarlarını kullanarak tedarikçi firma günlük kaydını etkinleştirebilir veya devre dışı bırakabilir. Kapalıyken dumpstateBoard_1_1, OEM tarafından belirlenen minimum temel bilgileri yine de yayınlayabilir. Satıcı günlük kaydını devre dışı bıraktığınızda IDumpstateDevice::dumpstateBoard, hata raporuna yalnızca gerekli bilgileri ekler. Satıcı günlük kaydını etkinleştirdiğinizde ise OEM'nin seçtiği tüm bilgiler rapora dahil edilir.

Örneğin, dumpstateBoard'un tamamlanması için verilen zaman aşımını artırmak amacıyla dumpstate.cpp'ü (IDumpstateDevice HAL yöntemlerini çağıran) değiştirebilirsiniz. Ancak dumpstate.cpp'ün temel mantığı değişmeden kalmalıdır.

Zaman aşımları herhangi bir değer olabilir ancak hata raporunun tamamlanmasının süresini önemli ölçüde artırmamalıdır. Özellikle DumpstateMode::CONNECTIVITY, zamana karşı son derece hassastır ve alakalı tüm modem/kablosuz ağ/ağ günlüklerini toplamak için mümkün olduğunca hızlı çalışmalıdır.

Doğrulama

IDumpstateDevice uygulaması için bir VTS testi ve genel BugreportManager işlevi için işlevsel birim testleri vardır.

Önerilen manuel test durumu frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java.