ID thiết bị bất biến

Trong Android 6 trở lên, nhà cung cấp dịch vụ Wi-Fi và máy phân tích gói đã bị hạn chế truy xuất địa chỉ MAC gốc của thiết bị thông qua ngăn xếp Wi-Fi từ các yêu cầu mạng. Bắt đầu từ Android 10, các hạn chế bổ sung được áp dụng nhằm giới hạn quyền truy cập vào số nhận dạng thiết bị (ID) đối với các ứng dụng có cấp quyền đặc quyền . Điều này bảo vệ ID thiết bị như

  • số điện thoại IMEI, MEID, ESN và IMSI.
  • số sê-ri bản dựng, SIM hoặc USB.

Ai có thể truy cập ID thiết bị

ID thiết bị bị hạn chế trên tất cả các thiết bị Android 10, ngay cả khi ứng dụng nhắm mục tiêu Android 9 trở xuống. ID thiết bị có thể được truy cập bởi

Quyền truy cập các gói đặc quyền

Gói phải có đặc quyền để truy cập ID thiết bị. Nó phải có quyền READ_PRIVILEGED_PHONE_STATE trong lớp Manifest.permission và được đưa vào danh sách cho phép trong tệp privapp-permission.xml . Để biết thông tin về quy trình đưa vào danh sách cho phép, hãy xem Danh sách cho phép có quyền đặc quyền .

Để biết thông tin về cách nhận ID duy nhất cho gói không có đặc quyền , hãy tham khảo Các trường hợp sử dụng phổ biến và mã định danh thích hợp để sử dụng .

ID thiết bị bị hạn chế và địa chỉ MAC ngẫu nhiên

Để hạn chế hơn nữa ID thiết bị, theo mặc định, tất cả các thiết bị trên Android 10 đều truyền địa chỉ MAC ngẫu nhiên cho cả yêu cầu thăm dò và yêu cầu liên quan, đồng thời phải có địa chỉ MAC ngẫu nhiên khác nhau cho mỗi SSID. Không sử dụng địa chỉ MAC của nhà sản xuất thiết bị trong chế độ máy khách, điểm truy cập mềm (AP) hoặc các trường hợp sử dụng Wi-Fi Direct. Nó phải được ẩn khỏi các API có thể truy cập công khai không phải là ứng dụng đặc quyền. Các ứng dụng đặc quyền yêu cầu trả lại địa chỉ MAC gốc bắt buộc phải có quyền LOCAL_MAC_ADDRESS .

Người dùng có tùy chọn giữ địa chỉ MAC ngẫu nhiên mặc định được gán cho mỗi SSID. Tùy chọn này có thể xem được trong Bảo mật trong Cài đặt > Chi tiết mạng . Để tìm hiểu về cách lấy địa chỉ MAC ngẫu nhiên, hãy xem Địa chỉ MAC ngẫu nhiên .

Screen shows if device ID uses a randomized MAC address for privacy
Hình 1. Địa chỉ MAC hiển thị ngẫu nhiên trong phần Bảo mật trong Chi tiết mạng

Ứng dụng gọi API ID thiết bị

Các ứng dụng gọi API ID thiết bị phải đáp ứng các yêu cầu của Android 10. Mặt khác, khi họ cố gắng truy cập ID thiết bị, thông tin sau sẽ được trả về:

  • Ứng dụng nhắm mục tiêu Android 10
  • Ứng dụng nhắm mục tiêu Android 9 trở xuống
    • Nếu họ có quyền READ_PHONE_STATE thì phản hồi null hoặc dữ liệu giữ chỗ sẽ được trả về.
    • Nếu không, API ID thiết bị sẽ đưa ra SecurityException chứa tên của phương thức được gọi và dấu hiệu cho thấy ứng dụng gọi điện không đáp ứng các yêu cầu để truy cập ID được yêu cầu.

Để biết thêm về ID thiết bị bất biến, hãy xem Mã nhận dạng thiết bị không thể đặt lạicác phương pháp hay nhất cho mã nhận dạng duy nhất .

Kiểm tra

Các ứng dụng phải được ngăn chặn truy cập vào số sê-ri của thiết bị và IMEI / MEID, số sê-ri SIM và ID thuê bao, nếu có. Các ứng dụng có quyền truy cập các ID này cũng phải đáp ứng một trong các tiêu chí được liệt kê trong Ai có thể truy cập ID thiết bị .