Android 11 เพิ่ม HAL ใหม่, IDumpstateDevice (เวอร์ชัน 1.1) HAL นี้จะแสดงวิธีการใหม่เพื่อกำหนดขอบเขตบันทึกของผู้ให้บริการให้แคบลงซึ่งรวมอยู่ในรายงานข้อบกพร่องมาตรฐาน รวมถึงอนุญาตให้บิลด์ของผู้ใช้เปิดและปิดการบันทึกของผู้ให้บริการได้ (ค่าเริ่มต้นสำหรับบิลด์ของผู้ใช้คือปิด) ซึ่งช่วยให้ OEM ควบคุมข้อมูลที่จะรวมไว้ในรายงานข้อบกพร่องบางประเภทได้มากขึ้น
ฟีเจอร์นี้ส่งผลต่อ OEM หากเลือกใช้ HAL ที่ไม่บังคับนี้ SoC อาจได้รับผลกระทบ ทั้งนี้ขึ้นอยู่กับสิ่งที่ OEM เลือกที่จะแสดงด้วย HAL นี้ โดยจะไม่ส่งผลกระทบต่อผู้ให้บริการรายใดรายหนึ่ง
สิ่งที่คุณระบุไว้ในรายงานข้อบกพร่องจะขึ้นอยู่กับข้อมูลที่คุณคิดว่าเกี่ยวข้องกับการแก้ไขข้อบกพร่อง แต่โดยทั่วไปแล้วยิ่งมีรายละเอียดมากเท่าใดก็ยิ่งดีเท่านั้น
ตัวอย่างและแหล่งที่มา
IDumpstateDevice เวอร์ชัน 1.0 (เลิกใช้งานแล้ว) ที่แสดงตัวอย่างการใช้ไลบรารี Dumpstate util ได้แก่ frameworks/native/cmds/dumpstate/DumpstateUtil.h
นอกจากนี้ยังมีการใช้งาน 1.1 HAL: device/google/cuttlefish/guest/monitoring/dumpstate_ext/*
ด้วย Cuttlefish
ซอร์สโค้ดอยู่ที่นี่:
- ไฟล์ HAL จะอยู่ภายใต้
hardware/interfaces/dumpstate/1.1/
- โค้ดเนทีฟของ dumpstate ที่ควบคุมเนื้อหารายงานข้อบกพร่องอยู่ภายใต้
frameworks/native/cmds/dumpstate/
การใช้งาน
หากต้องการใช้ HAL นี้ ให้ใช้อินเทอร์เฟซ HAL android.hardware.dumpstate@1.1::IDumpstateDevice
ค่า 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