การใช้การบันทึกขอบเขตของผู้ขาย

Android 11 เพิ่ม HAL ใหม่ IDumpstateDevice (เวอร์ชัน 1.1) HAL นี้เปิดเผยวิธีการใหม่เพื่อกำหนดขอบเขตบันทึกของผู้จำหน่ายให้เข้มงวดยิ่งขึ้นซึ่งรวมอยู่ในรายงานข้อบกพร่องมาตรฐาน รวมถึงการอนุญาตให้บิลด์ผู้ใช้เปิดและปิดการบันทึกของผู้จำหน่าย (ค่าเริ่มต้นสำหรับบิลด์ผู้ใช้คือปิด) สิ่งนี้ทำให้ OEM สามารถควบคุมสิ่งที่รวมอยู่ในรายงานข้อบกพร่องประเภทใดประเภทหนึ่งได้มากขึ้น

คุณลักษณะนี้จะส่งผลกระทบต่อ OEM หากพวกเขาเลือกที่จะใช้ HAL เสริมนี้ SoC อาจได้รับผลกระทบ ขึ้นอยู่กับสิ่งที่ OEM เลือกที่จะเปิดเผยกับ HAL นี้ คาดว่าผู้ให้บริการจะไม่ได้รับผลกระทบใดๆ

สิ่งที่คุณรวมไว้ในรายงานข้อบกพร่องนั้นขึ้นอยู่กับข้อมูลที่คุณพบว่าเกี่ยวข้องกับการแก้ไขข้อบกพร่อง แต่โดยทั่วไปแล้วมีรายละเอียดมากกว่าจะดีกว่า

ตัวอย่างและที่มา

มีการใช้งานเริ่มต้นของ IDumpstateDevice เวอร์ชัน (เลิกใช้แล้ว) 1.0 ที่แสดงตัวอย่างการใช้ไลบรารี dumpstate util: frameworks/native/cmds/dumpstate/DumpstateUtil.h นอกจากนี้ยังมีการใช้งาน Cuttlefish ของ 1.1 HAL: device/google/cuttlefish/guest/monitoring/dumpstate_ext/*

ซอร์สโค้ดอยู่ที่นี่:

การนำไปปฏิบัติ

หากต้องการใช้ HAL นี้ ให้ใช้อินเทอร์เฟซ android.hardware.dumpstate@1.1::IDumpstateDevice HAL มีค่า DumpstateMode ที่เป็นไปได้หลายค่า แต่ไม่ใช่ทั้งหมดที่จะได้รับการสนับสนุนโดยอุปกรณ์เดียว (เช่น WEAR สำหรับอุปกรณ์ระบบปฏิบัติการที่ไม่ใช่ Wear)

การใช้ dumpstate HAL เป็นทางเลือก อุปกรณ์ใหม่ทั้งหมดที่เปิดตัวด้วย 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