변경할 수 없는 기기 ID

Android 6 이상에서는 Wi-Fi 서비스 제공업체 및 패킷 분석업체가 네트워크 요청의 Wi-Fi 스택을 통해 기기의 공장 출고 시 MAC 주소를 가져올 수 없도록 제한되었습니다. Android 10부터는 기기 식별자(ID) 액세스를 독점 권한 수준이 있는 앱으로 제한하는 추가 제한이 적용되었습니다. 이렇게 하면 다음과 같은 기기 ID를 보호할 수 있습니다.

  • 전화통신 IMEI, MEID, ESN 및 IMSI 번호
  • 빌드, SIM 또는 USB 일련번호

기기 ID에 액세스 가능한 사용자

앱이 Android 9 이하를 타겟팅하는 경우에도 기기 ID가 모든 Android 10 기기에서 제한됩니다. 기기 ID에 액세스할 수 있는 주체는 다음과 같습니다.

권한 있는 패키지에 액세스

패키지는 기기 ID에 액세스하는 권한이 있어야 합니다. 패키지는 Manifest.permission 클래스의 READ_PRIVILEGED_PHONE_STATE 권한을 보유하고 privapp-permission.xml 파일의 허용 목록에 추가되어 있어야 합니다. 허용 목록 프로세스에 관한 자세한 내용은 독점 권한 허용 목록을 참고하세요.

권한 없는 패키지의 고유 ID를 가져오는 방법에 관한 자세한 내용은 일반적인 사용 사례 및 사용하기 적합한 식별자를 참고하세요.

제한된 기기 ID 및 무작위 MAC 주소

기기 ID를 추가로 제한하기 위해 Android 10을 실행하는 모든 기기는 프로브 및 관련 요청 모두의 무작위 MAC 주소를 기본적으로 전송하며 SSID별로 다른 무작위 MAC 주소가 있어야 합니다. 클라이언트 모드, 유연한 액세스 포인트(AP) 또는 Wi-Fi Direct 사용 사례에는 기기 공장 출고 시 MAC 주소를 사용하지 마세요. 이는 권한 있는 앱이 아닌 공개적으로 액세스 가능한 API에서 숨겨진 상태로 유지되어야 합니다. 공장 출고 시 MAC 주소를 요구하는 권한 있는 앱은 LOCAL_MAC_ADDRESS 권한을 보유해야 합니다.

사용자는 원하는 경우 각 SSID에 할당된 기본 무작위 MAC 주소를 유지할 수 있습니다. 이 옵션은 설정 > 네트워크 세부정보개인정보 보호에서 볼 수 있습니다. 무작위 MAC 주소 획득에 관한 자세한 내용은 무작위 MAC 주소를 참조하세요.

화면에서 기기 ID가 개인 정보 보호를 위해 무작위 MAC 주소를 사용하는지 표시함
그림 1. 네트워크 세부정보개인정보 보호에서 무작위로 표시된 MAC 주소

기기 ID API를 호출하는 앱

기기 ID API를 호출하는 앱은 Android 10 요구사항을 충족해야 합니다. 그렇지 않으면 기기 ID에 액세스하려고 할 때 다음과 같은 내용이 반환됩니다.

  • Android 10을 타겟팅하는 앱
  • Android 9 이하를 타겟팅하는 앱
    • READ_PHONE_STATE 권한이 있으면 null 응답 또는 자리표시자 데이터가 반환됩니다.
    • 권한이 없으면 기기 ID API는 호출된 메서드 이름과 호출 앱이 요청된 ID 액세스를 위한 요구사항을 충족하지 않는다는 표시 내용이 포함된 SecurityException을 발생시킵니다.

변경할 수 없는 기기 ID에 관한 자세한 내용은 재설정할 수 없는 기기 식별자고유 식별자 관련 권장사항을 참고하세요.

테스트

앱이 기기 일련번호(및 적용되는 경우 IMEI/MEID, SIM 일련번호 및 구독자 ID)에 액세스할 수 없어야 합니다. 이러한 ID에 액세스하는 권한을 보유한 앱은 기기 ID에 액세스 가능한 사용자에 나열된 기준 중 하나도 충족해야 합니다.