Android 12'de DebugFS'yi kullanma

Çekirdek kullanan Android 12 ile başlatılan cihazlar GKI çekirdeğiyle gönderim için sürüm 5.4'ten daha yüksek sürümler gerekir. Böylece iş ortakları, GKI üzerinde geliştirme yaparken kullanıcı hata ayıklama derlemelerindeki DebugFS öğesine erişebilir GKI defconfig'de CONFIG_DEBUG_FS çekirdek yapılandırması etkinleştirildi. Cihazlar için kullanıcı derlemelerine hiçbir zaman DebugFS ekleme Android 12'de kullanıma sunulacak.

Userdebug derlemelerinin test kapsamı, kullanıcı derlemelerinden daha iyidir ve test edilir. Aşağıdaki plan, DebugFS erişimine göre iki derleme türü arasındaki fark ve şu avantajları sağlar:

  • DebugFS bağlı olarak kullanıcı hata ayıklama derlemelerinin yanlışlıkla yapılmasını engeller yeni işlevler için
  • DebugFS eksikliği nedeniyle bozulan tüm mevcut işlevlerin çalışmasını sağlar. erken aşamalarda biliniyor olması

Userdebug derlemelerindeki Debugfs erişimleri şu şekilde sınıflandırılır: şöyle olur:

  1. Cihaz önyüklemesi sırasında DebugFS dosya başlatma. Örneğin: Hata ayıklama verisi toplama özelliğini etkinleştirmek için DebugFS ürününde bir dosyaya yazma erişimi.
  2. Hata raporu oluşturma: Döküm durumu HAL, aşağıdaki durumlarda DebugFS dosyalarını okur DumpstateBoard(), dumpstate tarafından çağrılıyor. Bu bilgileri hata raporunun bir parçası haline gelir.
  3. Cihaza özel test ve doğrulama.

Aşağıdaki tabloda bu üç kategorinin her birinin Android 12'de desteklenir. Lütfen Aşağıdaki işlemler yalnızca kullanıcı hata ayıklama derlemeleri için geçerlidir; çünkü DebugFS, kullanıcı derlemelerine eklenir.

Kullanım alanı Android 12 kullanıcı hata ayıklama derlemesi
Başlangıç sırasında tek seferlik DebugFS dosyası başlatma. Bu erişim, başlatma süresi boyunca yalnızca bir kez gerçekleşir. Dumpstate HAL, bu işlemi HAL başlatma sırasında gerçekleştirir. Aynısını etkinleştirmek için init, HAL başlatılmadan önce userdebug derlemelerine DebugFS ekler. Init, şu durumlarda DebugFS üzerinde umount() numaralı telefonu arar: cihazın başlatma işlemi tamamlandı.
Hata raporu oluşturma: Döküm durumu HAL, DebugFS dosyaları hata raporunun bir parçası haline geldi. Döküm durumu tarafından çağrıldığında DumpstateBoard() içinde döküm HAL tarafından tamamlandı (DumpstateDevice.cpp). Döküm aracı (Android çerçevesinin bir parçasıdır) DebugFS eklenir.
Cihaza özel test ve doğrulama Adb kökü ve kabuğu. şununla adb kabuğundan DebugFS ekleyin: root erişimi1.

1adb shell üzerinden DebugFS eklemek için root erişimi için aşağıdaki komutu kullanın:

adb shell mount -t debugfs debugfs /sys/kernel/debug.

Gerekli iş ortağı işlemleri

İş Ortakları, Android 12 cihazlar:

  • DebugFS düğümün tüm başlatma süresi başlatmalarını gerçekleştir sırasında hata oluştu. Bunun nasıl yapılacağına ilişkin bir örnek için bkz. DNM: DebugFS dosyanın başlatma süresini başlatma örneği.
  • Çalışma zamanında DebugFS erişimine izin verme. Aşağıdaki istisnalar geçerlidir:
    • Hata raporu oluşturma (dumpstate HAL'den gelir)
    • Test ve doğrulama (adb root ve shell tarafından erişilebilir) - önce DebugFS'nin eklendiğinden emin olun)

Geliştiriciler, hata ayıklama kalıcı özelliğini ayarlayabilirler DebugFs cihazının monte edilmesi için persist.dbg.keep_debugfs_mounted Userdebug ve eng derlemelerinde yeniden başlatılır.

GTS uyumluluk testleri, DebugFS dosya sisteminin kullanıcı derlemelerine eklenir. Sepolicy neverallow ifadeleri, kullanıcıların Android 12 veya sonraki bir sürüm yüklüyse yetkisiz işlemler sağlanmaz DebugFs erişimi.