ANDROID_ID değerini cihazımda nerede bulabilirim?


11

IMEI ve MAC adresini ve diğerlerini bularak bulabileceğinizi biliyorum Settings -> About phone -> Status. IMEI'yi *#06#tuş takımına yazarak da bulabilirsiniz . ANDROID_ID değerini bu kod biti yerine telefonun kendisine almanın herhangi bir yolu var mı?

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

Yanıtlar:


8

Bunu ile yapabilirsiniz adb. Bildiğim kadarıyla kök gerektirmez (AOSP kaynağından yapılmış 4.2.1 çalıştıran bir Galaxy Nexus üzerinde test edilmiştir):

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
Bir terminal öykünücüsü uygulaması üzerinden çalıştırıyorsanız, root gereklidir.
Liam W

adb, yerel kabuk kullanıcısından daha fazla ayrıcalığa sahiptir. Android 4.x (ICS ve üstü) ile, kök olmayan bir cihazda ADB üzerinden tam bir yedekleme bile yapabilirsiniz - kabuk kullanıcısının kesinlikle yapamayacağı.
Izzy

6

settings get secure android_iddan adb shellhiçbir yabancı çıkışı ve kök gerektirmez - en basit olanıdır, ben bulabilirsiniz. (Cihazdaki normal bir terminalden root gereklidir.)

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

Adb kabuğuna girmek için: 1. android_sdk/platform-tools/cmd veya başka bir terminal ile gidin. 2. adb devicescep telefonunuzun USB üzerinden bulunup bulunmadığını kontrol etmek için. 3. adb shell. 4. Bu cevapta komutu çalıştırın.
NumesSanguis

2

As eldarerathis varyant benim için yürümedi ve sadece bunun için bir uygulamayı yüklemek istemedim, ben farklı bir yol buldum. Sadece olası dezavantaj: Kök gerektirir.

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(Örneğin anonim) burada üçüncü sütunda görülmektedir.


DÜZENLE:

Bu olduğunu Not DEĞİLandroid_id Google uygulamaları tarafından kullanılan. Google, burada bir karışıklık için karar vermiş gibi görünüyor. İçin Play Hizmetleri , ayrı var android_idtarafından saklanan GTalk gibi bir blog yazısı ile sivri dışarı (ayrıca bkz HassleFixes bu cevabı ait autor olduğunu StripSearch ve minnetle yorumlarda bu out işaret):

  • çeviricinizi ara
  • tuşlamak *#*#8255#*#*
  • "Cihaz Kimliği" ne dikkat edin
  • öncüyü kaldır android-
  • geriye kalan, Google Hizmetleriandroid_id tarafından kullanılır

Şunu doğruladım: android_idBu yolla alınan, Google Apps yüklü olmayan bir cihazda iyi çalışır ( NOGAPPS projesi tarafından sağlanan BlankStore ile kullanılır ).


2

Yukarıdaki cevabın $ content query --uri content://settings/secure --projection value --where "name='android_id'"içinde

Bunu kabuktan yürütüyorsanız, android_id etrafındaki tırnaklardan kaçınmanız gerekir, aksi takdirde yorumlanırlar ve SQL deyimi bunlara sahip değildir, bu da bilinmeyen bir sütuna neden olur.

Bash'dan tam komutum satır gibi görünüyor ...
$ adb shell content query --uri content://settings/secure --projection value --where "name=\'android_id\'"

^ Yukarıda önerilen cevaba yorum yapmak için yeterli itibar yok


Biraz. @ eldarerathis'in cevabı cihazda bir kabuk başlattı adb shellve sonra o kabukta başka bir komut çalıştırdı. Bu tırnak işaretleri kaçmadan iyi çalışıyor. Cevabınız ana makinede tek bir komut çalıştırıyor; bunun için tırnak kaçmak gerekir.
Mark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.