รหัสอุปกรณ์ที่ไม่เปลี่ยนรูป

ใน Android 6 ขึ้นไป ผู้ให้บริการ Wi-Fi และตัววิเคราะห์แพ็กเก็ตถูกจำกัดไม่ให้ดึงที่อยู่ MAC จากโรงงานของอุปกรณ์ผ่านสแต็ก Wi-Fi จากคำขอของเครือข่าย เริ่มต้นใน Android 10 ข้อ จำกัด เพิ่มเติมอยู่ในสถานที่ที่ จำกัด การเข้าถึงตัวระบุอุปกรณ์ (IDS) เพื่อปพลิเคชันที่มี สิทธิพิเศษ ระดับสิทธิ์ สิ่งนี้ปกป้องรหัสอุปกรณ์เช่น

  • หมายเลขโทรศัพท์ IMEI, MEID, ESN และ IMSI
  • build, SIM หรือหมายเลขซีเรียล USB

ใครบ้างที่สามารถเข้าถึงรหัสอุปกรณ์

รหัสอุปกรณ์ถูกจำกัดในอุปกรณ์ Android 10 ทั้งหมด แม้ว่าแอปจะกำหนดเป้าหมายเป็น Android 9 หรือต่ำกว่า ID อุปกรณ์สามารถเข้าถึงได้โดย

  • แอป SMS เริ่มต้น
  • ปพลิเคชันที่มีทั้ง READ_PRIVILEGED_PHONE_STATE ได้รับอนุญาตใน Manifest.permission ชั้นเรียนและยกเว้นใน privapp-permission.xml ไฟล์ เหล่านี้ยังต้องได้รับการโหลดใน priv-app ไดเรกทอรี
  • ปพลิเคชันที่มีสิทธิ์ให้บริการตามที่กำหนดไว้ใน สิทธิ UICC Carrier
  • เจ้าของอุปกรณ์หรือเจ้าของรายละเอียดกับ READ_PHONE_STATE ได้รับอนุญาตใน Manifest.permission ระดับ (ไม่จำเป็นต้องไวท์ลิสต์)

สิทธิ์การเข้าถึงแพ็คเกจ

แพ็คเกจต้องได้รับสิทธิพิเศษในการเข้าถึง ID อุปกรณ์ มันต้องมี READ_PRIVILEGED_PHONE_STATE ได้รับอนุญาตใน Manifest.permission ชั้นเรียนและได้รับการอนุญาตพิเศษใน privapp-permission.xml ไฟล์ สำหรับข้อมูลเกี่ยวกับกระบวนการรายการที่อนุญาตให้ดูที่ การอนุญาตสิทธิ์ยกเว้น

สำหรับข้อมูลเกี่ยวกับการเป็นรหัสเฉพาะสำหรับแพคเกจ nonprivileged อ้างถึง กรณีการใช้งานทั่วไปและตัวบ่งชี้ที่เหมาะสมกับการใช้งาน

รหัสอุปกรณ์ที่ถูกจำกัดและที่อยู่ MAC แบบสุ่ม

ในการจำกัดรหัสอุปกรณ์เพิ่มเติม อุปกรณ์ทั้งหมดบน Android 10 จะส่งที่อยู่ MAC แบบสุ่มโดยค่าเริ่มต้นสำหรับทั้งโพรบและคำขอที่เกี่ยวข้อง และต้องมีที่อยู่ MAC แบบสุ่มที่แตกต่างกันสำหรับ SSID แต่ละรายการ อย่าใช้ที่อยู่ MAC ของโรงงานในโหมดไคลเอ็นต์ จุดเข้าใช้งานแบบซอฟต์ (AP) หรือกรณีการใช้งาน Wi-Fi Direct ต้องซ่อนไว้จาก API ที่เข้าถึงได้แบบสาธารณะซึ่งไม่ใช่แอปที่มีสิทธิพิเศษ ปพลิเคชันที่มีสิทธิพิเศษที่จำเป็นต้องมีโรงงานที่อยู่ MAC จะถูกส่งกลับจะต้องมี LOCAL_MAC_ADDRESS ได้รับอนุญาต

ผู้ใช้มีทางเลือกที่จะให้เริ่มต้นการสุ่มที่อยู่ MAC ที่ได้รับมอบหมายให้แต่ละ SSID ตัวเลือกที่สามารถดูได้ภายใต้ความเป็นส่วนตัวในการตั้งค่า> เครือข่ายรายละเอียด หากต้องการเรียนรู้เกี่ยวกับการขอรับที่อยู่ MAC สุ่มดู อยู่ MAC แบบสุ่ม

Screen shows if device ID uses a randomized MAC address for privacy
รูปที่ 1 แสดงให้เห็นอยู่ MAC เป็นสุ่มภายใต้ความเป็นส่วนตัวในเครือข่ายรายละเอียด

แอปที่เรียกใช้ API ID อุปกรณ์

แอปที่เรียกใช้ API รหัสอุปกรณ์ต้องเป็นไปตามข้อกำหนดของ Android 10 มิฉะนั้น เมื่อพวกเขาพยายามเข้าถึง ID อุปกรณ์ ต่อไปนี้จะถูกส่งคืน:

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวรหัสอุปกรณ์เปลี่ยนรูปดู ตัวระบุอุปกรณ์ Nonresettable และ แนวทางปฏิบัติที่ดีที่สุดสำหรับการระบุเอกลักษณ์

การทดสอบ

ปพลิเคชันจะต้องมีการป้องกันจากการเข้าถึงจำนวนอุปกรณ์แบบอนุกรมและในกรณีที่ใช้บังคับ IMEI / MEID ซิมหมายเลขสมาชิกและรหัส ปพลิเคชันที่มีสิทธิ์ในการเข้าถึงรหัสเหล่านี้ยังต้องพบกับหนึ่งในเกณฑ์ที่ระบุไว้ภายใต้ ใครสามารถเข้าถึงรหัสอุปกรณ์