Android 11 เพิ่ม HAL ใหม่ชื่อ IDumpstateDevice (เวอร์ชัน 1.1) HAL นี้จะแสดงวิธีการใหม่เพื่อกำหนดขอบเขตบันทึกของผู้ให้บริการให้แคบลงซึ่งรวมอยู่ในรายงานข้อบกพร่องมาตรฐาน รวมถึงอนุญาตให้บิลด์ของผู้ใช้เปิดและปิดการบันทึกของผู้ให้บริการได้ (ค่าเริ่มต้นสำหรับบิลด์ของผู้ใช้คือปิด) ซึ่งช่วยให้ OEM ควบคุมข้อมูลที่จะรวมไว้ในรายงานข้อบกพร่องแต่ละประเภทได้มากขึ้น
ฟีเจอร์นี้ส่งผลต่อ OEM หากเลือกใช้ HAL ที่ไม่บังคับนี้ SoC อาจได้รับผลกระทบ ทั้งนี้ขึ้นอยู่กับสิ่งที่ OEM เลือกที่จะแสดงด้วย HAL นี้ โดยจะไม่ส่งผลกระทบต่อผู้ให้บริการรายใดรายหนึ่ง
สิ่งที่คุณระบุไว้ในรายงานข้อบกพร่องจะขึ้นอยู่กับข้อมูลที่คุณคิดว่าเกี่ยวข้องกับการแก้ไขข้อบกพร่อง แต่โดยทั่วไปแล้วยิ่งมีรายละเอียดมากก็ยิ่งดี
ตัวอย่างและแหล่งที่มา
การใช้งานเริ่มต้นของ IDumpstateDevice เวอร์ชัน 1.0 (เลิกใช้งานแล้ว) จะแสดงตัวอย่างการใช้ไลบรารียูทิลิตี dumpstate ดังนี้
frameworks/native/cmds/dumpstate/DumpstateUtil.h
นอกจากนี้ยังมีการติดตั้งใช้งาน HAL 1.1 ของ Cuttlefish อีกด้วย
device/google/cuttlefish/guest/monitoring/dumpstate_ext/*
ดูซอร์สโค้ดได้ที่นี่
- ไฟล์ HAL จะอยู่ภายใต้
hardware/interfaces/dumpstate/1.1/
- โค้ดเนทีฟของ dumpstate ที่ควบคุมเนื้อหารายงานข้อบกพร่องอยู่ภายใต้
frameworks/native/cmds/dumpstate/
การใช้งาน
หากต้องการใช้ HAL นี้ ให้ใช้อินเทอร์เฟซ android.hardware.dumpstate@1.1::IDumpstateDevice
HAL ค่า DumpstateMode
ที่เป็นไปได้มีมากมาย แต่อุปกรณ์เครื่องเดียวอาจไม่รองรับค่าบางค่า (เช่น WEAR สำหรับอุปกรณ์ที่ไม่ใช่ Wear OS)
การใช้ HAL ของ dumpstate นั้นไม่บังคับ อุปกรณ์ใหม่ทั้งหมดที่เปิดตัวพร้อมกับ Android 11 ต้องใช้ IDumpstateDevice 1.1 หากใช้ Dumpstate HAL อุปกรณ์ที่ใช้ IDumpstateDevice 1.0 อยู่แล้วก่อน Android 11 ควรอัปเกรดเป็น 1.1 ได้ค่อนข้างง่าย และเราขอแนะนำให้ดำเนินการดังกล่าวอย่างยิ่ง เนื่องจากจะช่วยลดปริมาณข้อมูลส่วนตัวที่ไม่เกี่ยวข้องซึ่งรวมอยู่ในรายงานข้อบกพร่องได้อย่างมาก
ฟีเจอร์นี้ขึ้นอยู่กับการเปลี่ยนแปลงสถานะการบันทึกข้อมูลโค้ดหลักที่มีให้ใน Android 11 ในส่วน frameworks/native/cmds/dumpstate
การใช้ HAL นี้อาจต้องมีการเปลี่ยน SEPolicy บางอย่างในพร็อพเพอร์ตี้ของระบบ ไฟล์ ฯลฯ เพื่อให้ทุกอย่างทำงานได้อย่างสมบูรณ์ และจะต้องประสานงานกับผู้ให้บริการเพื่อส่งออกข้อมูลที่เกี่ยวข้องทั้งหมดไปยังรายงานข้อบกพร่อง
การปรับแต่ง
ผู้ใช้อุปกรณ์สามารถเปิดหรือปิดการบันทึกของผู้ให้บริการได้โดยใช้การตั้งค่าของนักพัฒนาแอป
เมื่อปิดอยู่ dumpstateBoard_1_1
อาจยังคงแสดงข้อมูลที่จำเป็นขั้นต่ำตามที่ OEM กำหนด การปิดการบันทึกของเวนเดอร์จะทำให้IDumpstateDevice::dumpstateBoard
เพิ่มเฉพาะข้อมูลที่จำเป็นลงในรายงานข้อบกพร่อง ขณะที่การเปิดการบันทึกจะรวมข้อมูลทั้งหมดที่ OEM เลือกไว้
คุณสามารถแก้ไข dumpstate.cpp
(ซึ่งเรียกใช้เมธอด IDumpstateDevice HAL) เช่น เพื่อเพิ่มระยะหมดเวลาที่ให้ dumpstateBoard
ทำงานให้เสร็จสมบูรณ์
อย่างไรก็ตาม ตรรกะหลักของ dumpstate.cpp
ไม่ควรมีการเปลี่ยนแปลง
ระยะหมดเวลาอาจเป็นค่าใดก็ได้ แต่ไม่ควรเพิ่มเวลาในการสร้างรายงานข้อบกพร่องให้นานขึ้นมาก โดยเฉพาะอย่างยิ่ง DumpstateMode::CONNECTIVITY
จะต้องทำงานอย่างรวดเร็วที่สุดเพื่อรวบรวมบันทึกโมเด็ม/Wi-Fi/เครือข่ายที่เกี่ยวข้องทั้งหมด
การตรวจสอบความถูกต้อง
มีการทดสอบ VTS สําหรับการติดตั้งใช้งาน IDumpstateDevice และการทดสอบหน่วยฟังก์ชันสําหรับฟังก์ชันการทํางานทั่วไปของ BugreportManager
กรณีทดสอบที่แนะนำซึ่งทําด้วยตนเองคือ
frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java