เครื่องมือวัดความเป็นส่วนตัว

Android มอบความโปร่งใสให้แก่ผู้ใช้ด้วยการแสดงสัญญาณบอกสถานะความเป็นส่วนตัวสำหรับการเข้าถึงประเภทต่อไปนี้

ผู้ใช้แตะสัญญาณบอกสถานะเพื่อดูว่าแอปใดเข้าถึงข้อมูลของตน

การใช้งานที่ใช้งานอยู่และล่าสุด

UI ของ Android จะแยกความแตกต่างระหว่างการใช้งานที่ ทำงานอยู่ กับการใช้งาน ล่าสุด ดังนี้

  • ใน Android 17 ขึ้นไป ระบบจะถือว่าการใช้งานตำแหน่งทำงานอยู่หากระบบทำเครื่องหมายว่าทำงานอยู่ หรือมีอายุไม่เกิน 10 วินาที สำหรับจุดตำแหน่ง ระบบจะถือว่าการเข้าถึงทำงานอยู่หาก แอปที่ไม่ใช่ระบบทำงานอยู่ในสถานะเบื้องหน้า

  • ใน Android 12 ขึ้นไป ระบบจะถือว่าการใช้งานไมโครโฟนและกล้องทำงานอยู่หากระบบทำเครื่องหมายว่าทำงานอยู่ หรือมีอายุไม่เกิน 5 วินาที

ไอคอนในแถบสถานะจะแสดงทุกครั้งที่แอปมีการเข้าถึงไมโครโฟน กล้อง หรือตำแหน่งที่อาจส่งผลต่อความเป็นส่วนตัวของผู้ใช้ ผู้ใช้สามารถแตะไอคอนเหล่านี้และดูว่าแอปใดกำลังเข้าถึงไมโครโฟน กล้อง ตำแหน่ง หรือรายการเหล่านี้รวมกัน ตัวอย่างสัญญาณบอกสถานะที่กำลังใช้งาน

ตัวบ่งชี้ที่แสดงการเข้าถึงที่ใช้งานอยู่

รูปที่ 1 สัญญาณบอกสถานะที่กำลังใช้งานซึ่งแสดงการเข้าถึงที่ทำงานอยู่ (มุมขวาบน)

ระบบจะถือว่าการเข้าถึงทำงานอยู่ตราบใดที่สัญญาณบอกสถานะยังคงแสดงอยู่ ไอคอนจะแสดงขึ้นก่อน จากนั้นจะเปลี่ยนเป็นจุดที่ยังคงอยู่จนกว่าจะปิดหรือปิดแอป เมื่อผู้ใช้เปิดการตั้งค่าด่วนแล้วแตะสัญญาณบอกสถานะ กล่องโต้ตอบจะปรากฏขึ้นเพื่อแสดงว่าแอปกำลังใช้ไมโครโฟน กล้อง ตำแหน่ง หรือรายการเหล่านี้รวมกัน

รูปที่ 2 แสดงสัญญาณบอกสถานะการเข้าถึงที่ทำงานอยู่เมื่อแอปที่ทำงานอยู่เข้าถึงข้อมูลภายในกรอบเวลาที่ทำงานอยู่

ตัวบ่งชี้สำหรับการเข้าถึงและแหล่งที่มาที่ใช้งานอยู่และล่าสุด

รูปที่ 2 สัญญาณบอกสถานะการเข้าถึงที่ทำงานอยู่และล่าสุด

สัญญาณบอกสถานะการเข้าถึงล่าสุดจะแสดงว่าแอปเข้าถึงข้อมูลในช่วง 15 วินาทีก่อนหน้า (หรือ 20 วินาทีสำหรับข้อมูลตำแหน่ง) แต่แอปไม่ได้ทำงานอยู่ แอปที่ทำงานอยู่ทั้งหมดจะแสดงในกล่องโต้ตอบ แต่จะมีเพียงแอปเดียวที่แสดงเป็นแหล่งที่มาของการเข้าถึงล่าสุด แม้ว่าจะมีแอปมากกว่า 1 แอปเข้าถึงข้อมูลภายในกรอบเวลา 15 หรือ 20 วินาทีก่อนหน้า แอปทั้งหมดที่เข้าถึงข้อมูลตำแหน่งภายในกรอบเวลาที่ทำงานอยู่หรือล่าสุดจะแสดงในกล่องโต้ตอบ มุมมองการเข้าถึงจะยังคงอยู่จนกว่าผู้ใช้จะปิดกล่องโต้ตอบการแจ้งเตือน

ส่งและเปิดใช้

คลาส PermissionManager มีเมธอดสำหรับป้อนข้อมูลในกล่องโต้ตอบ (ซึ่งอยู่ใน UI ของระบบ) UI ของระบบจะตอบสนองต่อสวิตช์การกำหนดค่าอุปกรณ์ privacy/mic_camera_indicators_enabled ซึ่งจำเป็นเนื่องจากมีกลไกการส่ง 2 แบบแยกกัน ได้แก่ (1) ส่ง แล้ว (2) เปิดใช้

ขั้นตอนการทำงาน

ฟังก์ชันการทำงานของสัญญาณบอกสถานะสิทธิ์มี 3 ส่วนหลักๆ ดังนี้

  • แอป
  • สัญญาณบอกสถานะ (จัดการโดย UI ของระบบ)
  • วิธีระบุว่าแอปใดกำลังใช้ข้อมูล

PermissionController มีกลไกในการระบุว่าแอปใดกำลังใช้ข้อมูล UI ของระบบจะคอยตรวจสอบแอปที่ใช้ข้อมูลส่วนตัว UI ของระบบจะแสดงไอคอนในแถบนำทางด้านบนซึ่งสอดคล้องกับสิทธิ์ที่ใช้ PermissionController จะแสดงข้อมูลเกี่ยวกับการใช้งานเมื่อผู้ใช้คลิกไอคอน

ขั้นตอนการทำงานของฟังก์ชันตัวบ่งชี้สิทธิ์

รูปที่ 3 ขั้นตอนการทำงานของคอมโพเนนต์ระบบและการเปลี่ยน (UI)

  • 1 แอปขอข้อมูลส่วนตัวจากระบบ

  • 2 ระบบตรวจสอบสิทธิ์ หากได้รับอนุญาต ระบบจะแจ้งผู้ให้บริการข้อมูลและบันทึกการใช้งานในสิทธิ์การทำงานของแอป

  • 3 ผู้ให้บริการข้อมูลให้ข้อมูลแก่แอป

  • 4-5 ผู้ใช้คลิกไอคอน UI ของระบบขอข้อมูลจาก PermissionManager และแสดงกล่องโต้ตอบแก่ผู้ใช้

รายละเอียดขั้นตอน

สิทธิ์การทำงานของแอปจะบันทึกการเข้าถึง API ที่ได้รับการปกป้องด้วยสิทธิ์รันไทม์ โดยจะติดตามสถานะกิจกรรมและจำนวนการเรียก API แต่ละรายการ รวมถึงโต้ตอบกับกล้อง ไมโครโฟน และสัญญาณบอกสถานะเพื่อแสดงให้ผู้ใช้เห็นเมื่อแอปเข้าถึงข้อมูลเสียงและกล้องในอุปกรณ์

  1. แอปใช้ไมโครโฟน กล้อง หรือตำแหน่งโดยการเรียก AppOpsManager.startOp, stopOp หรือ noteOp ซึ่งจะสร้างบันทึกสิทธิ์การทำงานของแอปในเซิร์ฟเวอร์ระบบ ใน Android 17 ขึ้นไป สัญญาณบอกสถานะตำแหน่งจะใช้บันทึกสิทธิ์การทำงานของแอปเหล่านี้ด้วย

  2. UI ของระบบจะคอยตรวจสอบสิทธิ์การทำงานของแอปใหม่โดยใช้ Listener AppOpsManager.OnOpActiveChangedInternalListener และ OnOpNotedListener เมื่อมีการใช้งานใหม่เข้ามา (ผ่านการเรียก startOp หรือ noteOp) UI ของระบบจะยืนยันว่าการใช้งานนั้นมาจากแอปของระบบ โดยทำดังนี้

    • หาก UI ของระบบยืนยันการใช้งานแอปของระบบ และหากการใช้งานนั้นเป็นของไมโครโฟน UI ของระบบจะตรวจสอบว่าไมโครโฟนปิดเสียงอยู่หรือไม่

    • หาก UI ของระบบยืนยันการใช้งานแอปที่ไม่ใช่ระบบ (และสำหรับไมโครโฟน การใช้งานนั้นต้องมาจากไมโครโฟนที่ไม่ได้ปิดเสียง และสำหรับการใช้งานกล้อง การใช้งานนั้นต้องมาจากกล้องที่เปิดอยู่) ระบบจะแสดงไอคอนที่สื่อถึงการใช้งานดังกล่าว

    • หาก UI ของระบบยืนยันการใช้งานแอปที่ไม่ใช่ระบบ ระบบจะแสดงไอคอนที่สื่อถึงการใช้งานดังกล่าว โดยมีเงื่อนไขว่าปุ่มเปิด/ปิดที่เกี่ยวข้องทำงานอยู่ ดังนี้

      • สำหรับไมโครโฟน: ไมโครโฟนไม่ได้ปิดเสียง
      • สำหรับกล้อง: กล้องเปิดอยู่
      • สำหรับตำแหน่ง: แอปทำงานอยู่ในสถานะเบื้องหน้า

หาก UI ของระบบได้รับ noteOp ซึ่งไม่มีระยะเวลา ระบบจะแสดงไอคอนเป็นเวลาอย่างน้อย 5 วินาที (10 วินาทีสำหรับตำแหน่ง) ไม่เช่นนั้น ไอคอนจะแสดงจนกว่าจะได้รับ stopOp หรือแสดงเป็นระยะเวลาขั้นต่ำ 5 หรือ 10 วินาที แล้วแต่ระยะเวลาใดจะนานกว่า การที่ผู้ใช้คลิกไอคอนจะเป็นการเริ่ม Intent ที่ไปยัง PermissionController เพื่อเริ่มกล่องโต้ตอบ

PermissionController จะโหลดการใช้งานล่าสุดทั้งหมดสำหรับไมโครโฟน กล้อง และตำแหน่ง โดยจะตรวจสอบว่ารายการใดทำงานอยู่หรือทำงานอยู่ภายในกรอบเวลาที่ UI ของระบบกำหนด (15 วินาทีสำหรับไมโครโฟนหรือกล้อง และ 20 วินาทีสำหรับตำแหน่ง) หากพบรายการที่ตรงกัน ระบบจะแสดงชื่อแอปและสิทธิ์ที่ใช้

ระบบโทรศัพท์ต้องใช้การใช้งานสิทธิ์ (เพื่อพิจารณาสแต็กไมโครโฟนแยกต่างหากที่ใช้ในการโทร) ขณะทำงานร่วมกับแอป Google Search (AGSA) และ GMS ของ Android