2012-06-10 3 views
3

안드로이드 라이센싱을 위해 ServerManagedPolicy에서 AESObfuscator를 사용하고 있습니다. 지금까지,이 같은 DeviceID가 만든 : 그것은 다음과 같이 이루어집니다 인터넷의 모든 예에서안드로이드 라이센스를위한 AESObfuscator

String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID); 

을, 그러나 때때로 그것은 매우 안전하지 않습니다 것을 주장하지만, 다른 방법은 없습니다 설명했다. 나는 ANDROID_ID가 쉽게 변경되거나 null이 될 수 있다는 것을 읽었으므로 고유 ID를 얻는 다른 방법을 원합니다. 내 앱을 구입 한 사람에게 라이선스가 두 번 이상 실패했으며이 작업과 관련이 있다고 확신합니다. 그렇지 않으면 Google에 문제가 될 수 있습니다. 정말 의심 스럽습니다.

어떻게하면됩니까? 무작위 해시를 만들어 deviceId에 추가하십시오 (물론 어딘가에 저장 하시겠습니까?)

답변

5

'안전'이란 무엇을 의미합니까? 뿌리 박은 장치에서 편집하기가 더 어렵도록 환경 설정을 난처하게 만드는 것만 큼 문제가됩니다. 기기를 재설정 (모든 데이터 삭제)하거나 루팅 된 기기에서 누군가를 수정하면 ANDROID_ID가 변경 될 수 있습니다. 첫 번째 경우는 실제로 문제가되지 않습니다. 두 번째 경우에는 저장된 기본 설정을 해독 할 수 없으므로 오류로만 처리됩니다. 실제로 null 인 경우 대체 값을 생각해야합니다.

여기서 중요한 것은 고유 한 ID가 아니라 일부 장치 관련 데이터를 사용하여 환경 설정을 난독 화하여 다른 장치에 복사 할 수 없다는 점입니다. IMEI의 해시, WiFi 어댑터 MAC 주소 또는 기타 특정 장치를 사용할 수 있지만 사용 가능한 특정 속성의 경우를 처리해야합니다 (예 : Wi-Fi 전용 태블릿에는 IMEI가 없습니다.)

ACRA 또는 BugSense와 같은 오류보고 라이브러리를 사용하여 실제 오류를 추적하고 라이센스 실패의 실제 원인을 파악합니다. 때로는 Google 인프라의 잘못이므로 처리해야합니다 (캐시 라이선스 상태 등)

+0

6 년 후 죄송합니다.하지만 실제로 AESObfuscator의 요점은 무엇입니까? 내가 소금물, deviceId 및 sharedprefs 파일을 루팅 된 장치와 dex2jar/decompiling을 통해 모두 얻을 수 있다고 생각하니? 해커가 완전히 멈추는 대신 해커의 속도를 줄이는 것이 전체적인 이유입니까? –