ตั้งแต่ Android 8.0 เป็นต้นมา อุปกรณ์ Android จะใช้ที่อยู่ MAC แบบสุ่มเมื่อค้นหาเครือข่ายใหม่ขณะที่ไม่ได้เชื่อมโยงกับเครือข่าย ใน Android 9 คุณสามารถเปิดใช้ตัวเลือกสำหรับนักพัฒนาแอป (ปิดใช้ โดยค่าเริ่มต้น) เพื่อให้อุปกรณ์ใช้ที่อยู่ MAC แบบสุ่มเมื่อเชื่อมต่อกับเครือข่าย Wi-Fi
ใน Android 10 ระบบจะเปิดใช้การสุ่ม MAC โดยค่าเริ่มต้นสำหรับโหมดไคลเอ็นต์, SoftAp และ Wi-Fi Direct
การสุ่ม MAC จะป้องกันไม่ให้ผู้ฟังใช้ที่อยู่ MAC เพื่อสร้างประวัติกิจกรรมของอุปกรณ์ ซึ่งจะช่วยเพิ่มความเป็นส่วนตัวของผู้ใช้
นอกจากนี้ ระบบจะสุ่มที่อยู่ MAC เป็นส่วนหนึ่งของการดำเนินการ Wi-Fi Aware และ Wi-Fi RTT
ดูข้อมูลเพิ่มเติมได้ที่ ลักษณะการทำงานของการสุ่ม MAC
การใช้งาน
วิธีใช้การสุ่ม MAC ในอุปกรณ์
ทำงานร่วมกับผู้ให้บริการชิป Wi-Fi เพื่อใช้เมธอด HAL ต่อไปนี้
IWifiStaIface#setMacAddress: กำหนดค่าที่อยู่ MAC ของอินเทอร์เฟซ การใช้งานเริ่มต้นจะปิดอินเทอร์เฟซ เปลี่ยนที่อยู่ MAC และเปิดอินเทอร์เฟซอีกครั้งIWifiStaIface#getFactoryMacAddress: รับ MAC จากโรงงานของwlan0โดยใช้การเรียกioctlISupplicantP2pIface#setMacRandomization: ตั้งค่าการสุ่ม MAC ของ P2P เป็นเปิดหรือปิดใน Supplicant
ตั้งค่า
config_wifi_connected_mac_randomization_supportedเป็นtrueในconfig.xmlของการตั้งค่า (ทำได้ในการวางซ้อนที่กำหนดเองของอุปกรณ์ )- แฟล็กนี้ใช้เพื่อควบคุมว่าจะเปิดใช้การสุ่ม MAC ในโหมดไคลเอ็นต์หรือไม่
ตั้งค่า
config_wifi_p2p_mac_randomization_supportedเป็นtrueในconfig.xmlของการตั้งค่า (ทำได้ในการวางซ้อนที่กำหนดเองของอุปกรณ์ )- แฟล็กนี้ใช้เพื่อควบคุมว่าจะเปิดใช้การสุ่ม MAC ของ Wi-Fi Direct หรือไม่
ทดสอบการใช้งานโดยใช้วิธีที่อธิบายไว้ในการตรวจสอบ Validation.
UI ของระบบต้องมีลักษณะดังนี้
- มีตัวเลือกในการเปิดหรือปิดใช้การสุ่มสำหรับแต่ละ SSID
- เปิดใช้การสุ่ม MAC โดยค่าเริ่มต้นสำหรับเครือข่ายที่เพิ่มใหม่ทั้งหมด
ใช้ การใช้งานอ้างอิง ของ UI การตั้งค่าเพื่อใช้ข้อความแจ้งใหม่
อุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่าอาจไม่รองรับการสุ่ม MAC ของ Wi-Fi เมื่ออัปเกรดอุปกรณ์ดังกล่าวเป็น Android 10 คุณจะปิดใช้ฟีเจอร์การสุ่ม MAC ของ Wi-Fi ได้โดยตั้งค่าแฟล็ก WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION เป็น "จริง" ในไฟล์ Make ของ Wi-Fi Vendor HAL
การตรวจสอบ
หากต้องการตรวจสอบว่าฟีเจอร์ทำงานได้ตามที่มุ่งหวังไว้ ให้ทำการทดสอบด้วยตนเองดังนี้
- ตรวจสอบว่าเปิดใช้การสุ่ม MAC ในอุปกรณ์แล้วโดยดูว่า
config_wifi_connected_mac_randomization_supportedตั้งค่าเป็นtrueในการวางซ้อนของอุปกรณ์หรือไม่ - เชื่อมต่อเครือข่าย Wi-Fi
- แตะเครือข่ายเพื่อไปที่หน้ารายละเอียดเครือข่าย ตรวจสอบว่าเปิดใช้การสุ่ม MAC แล้ว ตรวจสอบว่าที่อยู่ MAC ที่แสดงเป็น MAC แบบสุ่ม ซึ่งมีการตั้งค่าบิตที่สร้างขึ้นในเครื่องเป็น 1 และบิตมัลติคาสต์เป็น 0
- ปิดใช้การสุ่ม MAC เชื่อมต่อกับเครือข่ายเดียวกัน และตรวจสอบว่าระบบใช้ MAC จากโรงงาน
- ลบเครือข่ายโดยแตะลืม ในหน้ารายละเอียดเครือข่าย
เชื่อมต่อกับเครือข่ายเดียวกัน และตรวจสอบว่าระบบใช้ที่อยู่ MAC แบบสุ่มเดียวกัน
วิธีทดสอบการสุ่ม MAC ในอุปกรณ์ที่ใช้ Android เวอร์ชันก่อน Android 10 (รองรับการสุ่ม MAC) ซึ่งอัปเกรดเป็น Android 10 ขึ้นไป
- บันทึกเครือข่ายไว้อย่างน้อย 1 เครือข่ายในอุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่า
- แฟลชอิมเมจระบบ Android 10
- ในตัวเลือก Wi-Fi ให้ตรวจสอบว่าปิดใช้การสุ่ม MAC สำหรับเครือข่ายที่บันทึกไว้ทั้งหมด
- เปิดใช้การสุ่ม MAC เชื่อมต่อกับเครือข่ายเดียวกัน และตรวจสอบว่าระบบใช้ MAC แบบสุ่ม