เริ่มต้นใน 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
โดยใช้การโทรioctl
-
ISupplicantP2pIface#setMacRandomization
: ตั้งค่าการเปิด/ปิดการสุ่ม P2P MAC ในผู้ร้องขอ
-
ตั้งค่า
config_wifi_connected_mac_randomization_supported
เป็นtrue
ในการตั้งค่าconfig.xml
(ซึ่งสามารถทำได้ในโอเวอร์เลย์ที่กำหนดเองของอุปกรณ์)- แฟล็กนี้ใช้เพื่อควบคุมว่าจะเปิดใช้งานการสุ่ม MAC ในโหมดไคลเอ็นต์หรือไม่
ตั้งค่า
config_wifi_p2p_mac_randomization_supported
ให้true
ในการตั้งค่าconfig.xml
(ซึ่งสามารถทำได้ในโอเวอร์เลย์ที่กำหนดเองของอุปกรณ์)- แฟล็กนี้ใช้เพื่อควบคุมว่าจะเปิดใช้งานการสุ่ม MAC ของ Wi-Fi โดยตรงหรือไม่
ทดสอบการใช้งานของคุณโดยใช้วิธีการที่อธิบายไว้ใน การตรวจสอบความถูกต้อง
UI ของระบบจะต้อง:
- มีตัวเลือกในการเปิดหรือปิดการสุ่มสำหรับแต่ละ SSID
- เปิดใช้งานการสุ่ม MAC เป็นค่าเริ่มต้นสำหรับเครือข่ายที่เพิ่มใหม่ทั้งหมด
ใช้ การใช้งานอ้างอิง ของ UI การตั้งค่าเพื่อใช้พร้อมท์ใหม่
อุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่าอาจไม่รองรับการสุ่ม Wi-Fi MAC เมื่ออัปเกรดอุปกรณ์ดังกล่าวเป็น Android 10 คุณสามารถปิดใช้งานฟีเจอร์การสุ่ม Wi-Fi MAC ได้โดยตั้งค่าสถานะ WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION
เป็นจริงในไฟล์สร้าง HAL ของผู้จำหน่าย Wi-Fi
การตรวจสอบ
เพื่อตรวจสอบว่าคุณลักษณะทำงานตามที่ตั้งใจไว้ ให้รันทั้งการทดสอบการรวม (ACTS) และการทดสอบด้วยตนเอง
หากต้องการเรียกใช้การทดสอบการรวม ให้ใช้ไฟล์ ACTS WifiMacRandomizationTest.py
ซึ่งอยู่ใน tools/test/connectivity/acts_tests/tests/google/wifi
เพื่อตรวจสอบว่าอุปกรณ์ใช้ที่อยู่ MAC แบบสุ่มและจัดเก็บที่อยู่ MAC แบบสุ่มสำหรับแต่ละอุปกรณ์อย่างถูกต้อง เครือข่าย
หากต้องการดำเนินการทดสอบด้วยตนเอง:
- ตรวจสอบว่าเปิดใช้งานการสุ่ม MAC บนอุปกรณ์โดยตรวจสอบว่า
config_wifi_connected_mac_randomization_supported
ได้รับการตั้งค่าtrue
ในโอเวอร์เลย์อุปกรณ์ - เชื่อมต่อกับเครือข่าย Wi-Fi
- แตะเครือข่ายเพื่อไปที่หน้ารายละเอียดเครือข่าย ตรวจสอบว่าได้เปิดการสุ่ม MAC แล้ว ตรวจสอบว่าที่อยู่ MAC ที่แสดงเป็น MAC แบบสุ่ม ซึ่งมีบิตที่สร้างขึ้นในเครื่องตั้งค่าเป็น 1 และบิตมัลติคาสต์ตั้งค่าเป็น 0
- ปิดการสุ่ม MAC เชื่อมต่อกับเครือข่ายเดียวกันและตรวจสอบว่ามีการใช้ MAC จากโรงงาน
- ลบเครือข่ายโดยแตะ ลืม ในหน้ารายละเอียดเครือข่าย
เชื่อมต่อกับเครือข่ายเดียวกันและตรวจสอบว่ามีการใช้ที่อยู่ MAC แบบสุ่ม เดียวกัน
หากต้องการทดสอบการสุ่ม MAC บนอุปกรณ์รุ่นก่อน Android 10 (สามารถรองรับการสุ่ม MAC ได้) อัปเกรดเป็น Android 10 หรือสูงกว่า:
- มีเครือข่ายที่บันทึกไว้อย่างน้อยหนึ่งเครือข่ายบนอุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่า
- แฟลชอิมเมจระบบ Android 10
- ในตัวเลือก Wi-Fi ให้ตรวจสอบว่าปิดการสุ่ม MAC สำหรับเครือข่ายที่บันทึกไว้ทั้งหมดแล้ว
- เปิดการสุ่ม MAC เชื่อมต่อกับเครือข่ายเดียวกันและตรวจสอบว่ามีการใช้ MAC แบบสุ่ม