기기에서 ANDROID_ID를 어디서 찾을 수 있습니까?


11

로 이동하면 IMEI 및 MAC 주소 및 기타 정보를 찾을 수 있음을 알고 있습니다 Settings -> About phone -> Status. *#06#키패드 로 입력하여 IMEI를 찾을 수도 있습니다 . 이 코드를 사용하는 것과 반대로 전화 자체에서 ANDROID_ID를 얻는 방법이 있습니까?

Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);

답변:


8

를 통해이 작업을 수행 할 수 있습니다 adb. 내가 아는 한 루트가 필요하지 않습니다 (AOSP 소스에서 빌드 된 4.2.1을 실행하는 Galaxy Nexus에서 테스트 됨).

shell@android:/ $ content query --uri content://settings/secure --projection value --where "name='android_id'"
  settings/secure --projection value --where "name='android_id'"                
  Row: 0 value=<your ID in hexadecimal>
shell@android:/ $

2
터미널 에뮬레이터 앱을 통해 실행하는 경우 루트가 필요합니다.
Liam W

adb는 로컬 쉘 사용자보다 더 많은 권한을 가지고 있습니다. Android 4.x (ICS 이상)를 사용하면 루팅되지 않은 장치에서 ADB를 통해 전체 백업을 수행 할 수도 있습니다. 쉘 사용자는 확실히 할 수 없습니다.
Izzy

6

settings get secure android_idfrom adb shell은 가장 간단합니다. 외부 출력이 없으며 루트가 필요하지 않습니다. (장치의 일반 터미널에서는 루트가 필요합니다.)

shell@mydevice:/ $ settings get secure android_id
0123456789abcdef
shell@mydevice:/ $ 

adb 쉘로 들어가려면 : 1. android_sdk/platform-tools/cmd 또는 다른 터미널로 이동합니다 . 2. adb devicesUSB를 통해 모바일을 찾을 수 있는지 확인하십시오. 3 adb shell. 4.이 답변에서 명령을 실행하십시오.
NumesSanguis

2

으로 eldarerathis 변형이 나를 위해 작동하지 않았다, 나는 단지에 대한 응용 프로그램을 설치하지 않았다, 나는 다른 방법을 찾았습니다. 가능한 단점 : 루트가 필요합니다.

adb shell
$ su
# cd /data/data/com.android.providers.settings/databases
# sqlite3 settings.db
sql> select * from secure where name='android_id';
26|android_id|1234567890abcdef1

android_id(이 예에서는 익명) 여기서 세 번째 열에서 발견된다.


편집하다:

이 것을 참고 하지android_id 구글 앱 사용. 구글은 혼란을 결정한 것으로 보인다. 들어 플레이 서비스 , 별도의 거기 android_id에 저장된 GTalk을 같은, 블로그 포스트에 의해 지적 아웃 (참조 HassleFixes로이 답변 의 autor입니다 StripSearch을 , 감사하게 의견이 밖으로 지적) :

  • 다이얼러를 불러
  • 다이얼 *#*#8255#*#*
  • "장치 ID"를 조심하십시오
  • 선행을 제거 android-
  • 남아있는 것은 Google 서비스 에서 android_id사용하는 것입니다.

확인했습니다 : android_id이 방법으로 검색 한 구글 앱이 설치되지 않은 기기 ( NOGAPPS 프로젝트에서 제공 하는 BlankStore 와 함께 사용 ) 에서 제대로 작동 합니다.


2

위의 대답이 $ content query --uri content://settings/secure --projection value --where "name='android_id'"그 안에

쉘에서 이것을 실행하면 android_id 주위의 따옴표를 이스케이프 처리해야합니다. 그렇지 않으면 해석되고 SQL 문에 따옴표가 없으므로 알 수없는 열이 발생합니다.

bash의 내 명령은 모두 선처럼 보입니다 ...
$ adb shell content query --uri content://settings/secure --projection value --where "name=\'android_id\'"

^ 위에서 제안한 답변에 대해 언급 할만한 평판이 충분하지 않음


거의. @eldarerathis의 답변은로 장치에서 쉘을 시작한 adb shell다음 해당 쉘 내에서 다른 명령을 실행했습니다. 따옴표를 벗어나지 않고 잘 작동합니다. 귀하의 답변은 기본 컴퓨터에서 단일 명령을 실행 중입니다. 이를 위해 따옴표를 이스케이프해야합니다.
Mark
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.