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