ใช้การสุ่ม MAC

เริ่มตั้งแต่ 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 ในอุปกรณ์

  1. ทำงานร่วมกับผู้ให้บริการชิป Wi-Fi เพื่อใช้วิธีการ HAL ต่อไปนี้

    • IWifiStaIface#setMacAddress: กำหนดค่าที่อยู่ MAC ของอินเทอร์เฟซ การใช้งานเริ่มต้นจะทำให้อินเทอร์เฟซไม่ทำงาน เปลี่ยนที่อยู่ MAC และทำให้อินเทอร์เฟซกลับมาทำงานอีกครั้ง
    • IWifiStaIface#getFactoryMacAddress: รับ MAC จากโรงงานของ wlan0 โดยใช้การเรียก ioctl
    • ISupplicantP2pIface#setMacRandomization: ตั้งค่าเปิด/ปิดการสุ่ม MAC แบบ P2P ในผู้สมัคร
  2. ตั้งค่า config_wifi_connected_mac_randomization_supported เป็น true ในการตั้งค่า config.xml (ทำได้ในการวางซ้อนที่กำหนดเองของอุปกรณ์)

    • แฟล็กนี้ใช้ในการควบคุมว่าจะเปิดใช้การสุ่ม MAC ของโหมดไคลเอ็นต์หรือไม่
  3. ตั้งค่า config_wifi_p2p_mac_randomization_supported เป็น true ในการตั้งค่า config.xml (ทำได้ในการวางซ้อนที่กำหนดเองของอุปกรณ์)

    • แฟล็กนี้ใช้เพื่อควบคุมว่าจะเปิดใช้การสุ่ม MAC ของ Wi-Fi Direct หรือไม่
  4. ทดสอบการใช้งานโดยใช้วิธีการที่อธิบายไว้ในการตรวจสอบความถูกต้อง

UI ของระบบต้องมีลักษณะดังนี้

  • มีตัวเลือกในการเปิดหรือปิดใช้การสุ่มสำหรับ SSID แต่ละรายการ
  • เปิดใช้การสุ่ม MAC โดยค่าเริ่มต้นสำหรับเครือข่ายทั้งหมดที่เพิ่มเข้ามาใหม่

ใช้การใช้งานข้อมูลอ้างอิงของ UI การตั้งค่าเพื่อใช้พรอมต์ใหม่

อุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่าอาจไม่รองรับการสุ่ม MAC ของ Wi-Fi เมื่ออัปเกรดอุปกรณ์ดังกล่าวไปใช้ Android 10 จะสามารถปิดใช้ฟีเจอร์การสุ่ม MAC ของ Wi-Fi ได้โดยการตั้งค่าแฟล็ก WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION เป็น "จริง" ในไฟล์ HAL ของผู้ให้บริการ Wi-Fi

การตรวจสอบความถูกต้อง

หากต้องการตรวจสอบว่าฟีเจอร์ทำงานตามที่ต้องการ ให้เรียกใช้การทดสอบด้วยตนเอง

  1. ตรวจสอบว่าได้เปิดใช้การสุ่ม MAC ในอุปกรณ์โดยดูว่าตั้งค่า config_wifi_connected_mac_randomization_supported เป็น true ในการวางซ้อนอุปกรณ์
  2. เชื่อมต่อเครือข่าย Wi-Fi
  3. แตะเครือข่ายเพื่อไปยังหน้ารายละเอียดเครือข่าย ตรวจสอบว่าการสุ่ม MAC เปิดอยู่ ตรวจสอบว่าที่อยู่ MAC ที่แสดงเป็น MAC แบบสุ่ม ซึ่งมีการตั้งค่าบิตที่สร้างขึ้นในเครื่องเป็น 1 และบิตมัลติแคสต์ตั้งค่าไว้เป็น 0
  4. ปิดการสุ่ม MAC โปรดเชื่อมต่อเครือข่ายเดียวกันและยืนยันว่ามีการใช้ MAC เริ่มต้นอยู่
  5. ลบเครือข่ายโดยแตะไม่จำในหน้ารายละเอียดเครือข่าย
  6. เชื่อมต่อกับเครือข่ายเดียวกันและยืนยันว่ามีการใช้ที่อยู่ MAC ที่สุ่มเดียวกันอยู่

วิธีทดสอบการสุ่ม MAC ในอุปกรณ์ก่อน Android 10 (รองรับการสุ่ม MAC) ที่อัปเกรดเป็น Android 10 ขึ้นไป ให้ทำดังนี้

  1. มีเครือข่ายที่บันทึกไว้อย่างน้อย 1 เครือข่ายในอุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่า
  2. แฟลชอิมเมจระบบ Android 10
  3. ในเครื่องมือเลือก Wi-Fi ให้ตรวจสอบว่าการสุ่ม MAC ปิดอยู่สำหรับเครือข่ายที่บันทึกไว้ทั้งหมด
  4. เปิดการสุ่ม MAC เชื่อมต่อกับเครือข่ายเดียวกันและตรวจสอบว่า มีการใช้ MAC แบบสุ่มอยู่