Kapsamlı Satıcı Günlüğünü Uygulama

Android 11, yeni bir HAL, IDumpstateDevice (sürüm 1.1) ekler. Bu HAL, yeni yöntemleri, standart hata raporlarında yer alan satıcı günlüklerinin kapsamını daha sıkı bir şekilde kullanıma sunmanın yanı sıra, kullanıcı yapılarının satıcı günlüğünü açıp kapatmasına da izin verir (kullanıcı yapıları için varsayılan ayar kapalıdır). Bu, OEM'lere belirli hata raporu türlerine nelerin dahil edileceği konusunda daha fazla kontrol sağlar.

Bu özellik, isteğe bağlı HAL'yi uygulamayı tercih eden OEM'leri etkiler. OEM'in bu HAL ile neyi açığa çıkarmayı seçtiğine bağlı olarak SoC'ler etkilenebilir. Taşıyıcılara herhangi bir etki beklenmiyor.

Hata raporlarına ne ekleyeceğiniz, hata ayıklamayla ilgili hangi bilgileri bulduğunuza bağlıdır, ancak genellikle daha ayrıntılı olması daha iyidir.

Örnekler ve kaynak

IDumpstateDevice'in (kullanımdan kaldırılmış) 1.0 sürümünün, dumpstate util kitaplığının kullanımına ilişkin bir örneği gösteren varsayılan bir uygulaması vardır: frameworks/native/cmds/dumpstate/DumpstateUtil.h . Ayrıca 1.1 HAL'nin Mürekkepbalığı uygulaması da mevcuttur: 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. Pek çok olası DumpstateMode değeri vardır, ancak hepsinin tek bir cihaz tarafından desteklenmesi muhtemel değildir (örneğin, Wear OS olmayan cihazlar için WEAR).

Çöp durumu HAL'nin uygulanması isteğe bağlıdır. Android 11 ile başlatılan tüm yeni cihazların, Dumpstate HAL'yi uyguluyorlarsa IDumpstateDevice 1.1'i uygulamaları ZORUNLUDUR. Android 11'den önce IDumpstateDevice 1.0'ı zaten uygulayan cihazların 1.1'e yükseltilmesi nispeten kolay olmalıdır ve hata raporlarında yer alan gereksiz özel bilgilerin miktarını büyük ölçüde azalttığı için bunu yapmanız şiddetle tavsiye edilir.

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

Bu HAL'ın uygulanması, işlerin tam olarak çalışmasını sağlamak için muhtemelen belirli sistem özelliklerinde, dosyalarda vb. bazı SEPolicy değişiklikleri gerektirecektir ve ilgili tüm bilgilerin hata raporlarına aktarılması için satıcılarla koordinasyon sağlanmasını gerektirecektir.

Özelleştirme

Cihaz kullanıcısı, geliştirici ayarlarını kullanarak satıcı oturum açma işlemini açabilir veya kapatabilir. Kapatıldığında dumpstateBoard_1_1 , OEM tarafından belirlenen minimum düzeyde temel bilgiyi vermeye devam edebilir. Satıcı oturumunun kapatılması IDumpstateDevice::dumpstateBoard bir hata raporuna yalnızca önemli bilgileri eklemesini sağlarken, bunu açmak, OEM'in seçtiği tüm bilgileri içerir.

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

Zaman aşımları herhangi bir değerde olabilir ancak bir hata raporunun tamamlanması için gereken süreyi önemli ölçüde artırmamalıdır. Özellikle, DumpstateMode::CONNECTIVITY zamana karşı oldukça duyarlıdır ve ilgili tüm modem/Wi-Fi/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 .