เมื่อ atest เรียกใช้การทดสอบอุปกรณ์ atest จะพุชไบนารีการทดสอบและทรัพยากรของไบนารีนั้น
ไปยังพาร์ติชัน /data และเรียกใช้ด้วย adb shell ไฟล์ที่เรียกใช้งานได้สำหรับการทดสอบ
ใช้โดเมน SELinux ดังนั้นจึงรับนโยบาย SELinux
ที่เชื่อมโยงกับโดเมน shellshell เมื่ออุปกรณ์ทำงานในโหมด SELinux ที่บังคับใช้
การทดสอบอุปกรณ์ที่ละเมิดนโยบายเหล่านี้จะล้มเหลวพร้อมข้อผิดพลาด SELinux
โปรดทราบว่าโดเมน shellไม่มีกฎallowสำหรับดำเนินการต่อไปนี้
เข้าถึงไฟล์ในพาร์ติชัน
/vendorรวมถึงลิงก์กับไลบรารีที่ติดตั้งในพาร์ติชัน/vendorเรียกใช้อินเทอร์เฟซ Binder ที่กำหนดเอง
หากการทดสอบอุปกรณ์ต้องใช้สิทธิ์เหล่านี้อย่างใดอย่างหนึ่งหรือทั้ง 2 อย่าง คุณต้องเรียกใช้
การทดสอบโดยมีrootสิทธิ์ เมื่อ adbd มีสิทธิ์รูท adbd จะใช้
โดเมน su SELinux ในอุปกรณ์แทน shell ซึ่งมี
สิทธิ์มากกว่า
หากต้องการเรียกใช้การทดสอบอุปกรณ์โดยใช้สิทธิ์รูท ให้เพิ่มrequire_root: true
พร็อพเพอร์ตี้ลงในคำจำกัดความโมดูล Soong ที่เกี่ยวข้องในไฟล์ Android.bp
// file: Android.bp
rust_test {
name: "example_rust_test_that requires root",
// ...
rustlibs: [
"some-vendor-lib",
],
// This example test requires root permissions, because it calls Binder
// interfaces unavailable for the shell, and also links with a vendor
// library.
require_root: true,
}