Notice
Recent Posts
Recent Comments
Link
투케이2K
90. (AndroidStudio/android/java) 디바이스 고유 값 추출 코드 - adid, mac, android id , widevine 본문
Android
90. (AndroidStudio/android/java) 디바이스 고유 값 추출 코드 - adid, mac, android id , widevine
투케이2K 2021. 3. 23. 13:52/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
/**
* [단말기 고유값을 추출하는 클래스]
* 1. 호출 방법 : C_DeviceID.setDeviceID(A_Main.this); //TODO 단말기 고유값 지정
* C_DeviceID.getDeviceID(A_Main.this); //TODO 저장된 단말기 고유값 호출
*
* 2. 저장 확인 : String DeviceID = "";
* DeviceID = C_DeviceID.getDeviceID(A_Main.this);
* //TODO IF 저장된 단말기값이 널이 아닌 경우 / ELSE 널인 경우
* if(DeviceID != null && DeviceID.length() > 0 && !DeviceID.equals("") && !DeviceID.contains("null")) { } else { }
*
* 3. 로직 : 구글 광고값 ADID 추출 > 구글 광고값 추출 실패 시 하드웨어 고유값을 반환한다
*
* 4. 하드웨어 고유값 추출 로직 : Widevine 값 > Anroid ID 값 > WIFI 맥값 > 빌드 정보 > 기본값
*
* 5. Google ADID : 구글 광고값을 추출한다
* 디바이스 초기화 시 값이 변경됨
* 구글 설정 > 광고 ID 재설정 시 값이 변경됨
* 광고값 노출 안할 시 값이 널이됨
*
* 6. Wifi Mac : p2p 값을 추출 후 정규식을 사용해서 mac값 생성 실시
* 특정 상위버전 OS 기기에서 MAC 값이 동일하게 생성되는 디바이스 있음
*
* 7. Anroid ID : 기기 부팅 시 최초로 생성되는 고유값
* 오레오 버전 이상 부터 배포용, 디버깅용 APK 파일 고유값이 다르게 지정됨
* 디바이스 초기화 시 값이 변경됨
*
* 8. Widevine ID : 앱 삭제 or 데이터 삭제해도 변경되지 않음
* DRM 모듈은 글로벌 범위에서 유일한 GUID값을 갖는다
* DRM 모듈이 없는 디바이스에서는 사용이 불가능하다
* 안드로이드 4.3 미만은 사용이 불가능하다
* 디바이스 초기화 시 값이 변경됨
*
* 9. 구글 광고값 의존성 :
* maven { url "https://jitpack.io" } : allprojects > repositories 부분
* mavenCentral() : allprojects > repositories 부분
* implementation 'com.google.android.gms:play-services:11.0.4'
* implementation 'com.google.android.gms:play-services-auth:11.0.4'
*
* 10. 필요 퍼미션 :
* <uses-permission android:name="android.permission.READ_PHONE_STATE" />
* <uses-permission android:name="android.permission.INTERNET"/>
* <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
* <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
* <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
* <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
*
* */
/* =========================== */
[결과 출력]
/* =========================== */
[파일 첨부]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments