Android 11, IDumpstateDevice (1.1 sürümü) adlı yeni bir HAL ekler. Bu HAL, standart hata raporlarına dahil edilen tedarikçi firma günlüklerini daha sıkı bir şekilde kapsamak için yeni yöntemler sunar ve kullanıcı derlemelerinin tedarikçi firma günlüğünü etkinleştirip devre dışı bırakmasına olanak tanır (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.
İsteğe bağlı HAL'yi uygulamayı tercih etmeleri halinde, bu özellik OEM'leri etkiler. SoC'ler, OEM'nin bu HAL ile hangi verileri açığa çıkarmayı seçtiğine bağlı olarak etkilenebilir. Operatörlerin bu durumdan etkilenmesi beklenmemektedir.
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'in Cuttlefish uygulaması da vardır:
device/google/cuttlefish/guest/monitoring/dumpstate_ext/*
.
Kaynak kodu buradadır:
- HAL dosyaları
hardware/interfaces/dumpstate/1.1/
altındadır. - Hata raporu içeriğini kontrol eden dumpstate yerel kodu
frameworks/native/cmds/dumpstate/
altındadı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'u uygulamış cihazların 1.1 sürümüne yükseltilmesi nispeten kolaydır. 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, frameworks/native/cmds/dumpstate
altında bulunan ve Android 11'e de dahil edilen temel döküm değişikliklerine 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.
Bu özellik devre dışı bırakıldığında dumpstateBoard_1_1
, OEM tarafından belirlenen minimum düzeyde temel bilgi verebilir. 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 eklenir.
dumpstate.cpp
öğesini (IDumpstateDevice HAL yöntemlerini çağırır) değiştirebilirsiniz. Örneğin, dumpstateBoard
için verilen zaman aşımının tamamlanması için gereken zaman aşımını artırabilirsiniz.
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
'tür.