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:
- 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. 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
.