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

Android 11, IDumpstateDevice (sürüm 1.1) adlı yeni bir HAL ekler. Bu HAL, standart hata raporlarına dahil edilen satıcı günlüklerinin kapsamını daha sıkı bir şekilde belirlemek ve kullanıcı derlemelerinin satıcı günlüğünü açıp kapatmasına izin vermek için yeni yöntemler sunar (kullanıcı derlemeleri için varsayılan ayar kapalıdır). Bu sayede OEM'ler, belirli hata raporlarına nelerin dahil edileceği konusunda daha fazla kontrol sahibi olur.

Bu özellik, isteğe bağlı HAL'yi uygulamayı tercih eden OEM'leri etkiler. OEM'in bu HAL ile neyi kullanıma sunmayı seçtiğine bağlı olarak SoC'ler etkilenebilir. Operatörlerin etkilenmesi beklenmemektedir.

Hata raporlarına hangi bilgileri ekleyeceğiniz, hata ayıklama için hangi bilgilerin alakalı olduğuna bağlıdır. Ancak genellikle daha ayrıntılı bilgiler daha iyidir.

Örnekler ve kaynak

IDumpstateDevice'ın (kullanımdan kaldırılan) 1.0 sürümünün varsayılan bir uygulaması vardır. Bu uygulamada, dumpstate yardımcı program kitaplığının kullanımına ilişkin bir örnek gösterilir: frameworks/native/cmds/dumpstate/DumpstateUtil.h. 1.1 HAL'nin Cuttlefish uygulaması da vardır: device/google/cuttlefish/guest/monitoring/dumpstate_ext/*.

Kaynak kodu burada bulunur:

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ünün tek bir cihaz tarafından desteklenmesi olası değildir (ör. Wear OS olmayan cihazlar için WEAR).

dumpstate HAL'yi uygulamak isteğe bağlıdır. Android 11 ile kullanıma sunulan tüm yeni cihazlar, Dumpstate HAL'i uyguluyorlarsa IDumpstateDevice 1.1'i uygulamalıdır. Android 11'den önce IDumpstateDevice 1.0'ı uygulamış olan cihazların 1.1'e yükseltilmesi nispeten kolaydır ve hata raporlarına dahil edilen gereksiz özel bilgi miktarını büyük ölçüde azalttığı için bu yükseltme şiddetle tavsiye edilir.

Bu özellik, Android 11'de de bulunan ve frameworks/native/cmds/dumpstate altında yer alan temel dumpstate değişikliklerine bağlıdır.

Bu HAL'nin uygulanması, her şeyin tam olarak çalışması için belirli sistem özelliklerinde, dosyalarda vb. bazı SEPolicy değişiklikleri yapılmasını gerektirebilir ve tüm ilgili bilgilerin hata raporlarına dökülmesi için tedarikçilerle koordinasyon sağlanması gerekir.

Özelleştirme

Cihaz kullanıcısı, geliştirici ayarlarını kullanarak satıcı günlüğünü etkinleştirebilir veya devre dışı bırakabilir. Bu ayar devre dışı bırakıldığında dumpstateBoard_1_1, OEM tarafından belirlenen minimum düzeyde temel bilgileri yine de verebilir. Satıcı günlüğünü devre dışı bırakmak, hata raporuna yalnızca temel bilgilerin eklenmesini sağlar. Etkinleştirmek ise OEM'nin seçtiği tüm bilgileri ekler.IDumpstateDevice::dumpstateBoard

dumpstate.cpp (IDumpstateDevice HAL yöntemlerini çağıran) öğesini, örneğin dumpstateBoard için verilen zaman aşımını artıracak şekilde değiştirebilirsiniz. Ancak dumpstate.cpp öğesinin temel mantığı değişmemelidir.

Zaman aşımları herhangi bir değer olabilir ancak hata raporunun tamamlanması için gereken süreyi önemli ölçüde artırmamalıdır. Özellikle, DumpstateMode::CONNECTIVITY zaman açısından çok hassastır ve ilgili tüm modem/kablosuz/ağ günlüklerini toplamak için mümkün olduğunca hızlı çalışması gerekir.

Doğrulama

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

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