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