ฉันจะหา ANDROID_ID บนอุปกรณ์ของฉันได้ที่ไหน


11

ฉันรู้ว่าคุณสามารถหา IMEI และ MAC ที่อยู่และอื่น ๆ Settings -> About phone -> Statusโดยไปที่ คุณสามารถค้นหา IMEI ได้ด้วยการพิมพ์*#06#บนปุ่มกด มีวิธีใดที่จะใช้ ANDROID_ID ในโทรศัพท์แทนการใช้รหัสนี้

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

คำตอบ:


8

adbคุณสามารถทำเช่นนี้ผ่านทาง ไม่ต้องการรูทเท่าที่ฉันรู้ (ทดสอบบน Galaxy Nexus ที่รัน 4.2.1 บิวด์จากแหล่ง AOSP):

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
หากทำงานผ่านแอพเทอร์มินัลอีมูเลเตอร์จำเป็นต้องรูท
เลียม

adb มีสิทธิ์มากกว่าผู้ใช้เชลล์ท้องถิ่น ด้วย Android 4.x (ICS ขึ้นไป) คุณสามารถสำรองข้อมูลเต็มรูปแบบผ่าน ADB บนอุปกรณ์ที่ไม่ได้ทำการรูท - ซึ่งผู้ใช้เชลล์ไม่สามารถแน่ใจได้
อิซซี

6

settings get secure android_idจากadb shellนั้นเป็นสิ่งที่ง่ายที่สุดที่ฉันพบ - ไม่มีเอาต์พุตภายนอกและไม่ต้องการราก (จากเทอร์มินัลทั่วไปบนอุปกรณ์จำเป็นต้องรูท)

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

ในการเข้าสู่ adb shell: 1. ไปที่android_sdk/platform-tools/cmd หรือเทอร์มินัลอื่น ๆ 2. adb devicesเพื่อตรวจสอบว่ามือถือของคุณสามารถพบได้ผ่าน USB 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ใช้โดยปพลิเคชัน Google Google ดูเหมือนจะตัดสินใจด้วยความสับสนบางอย่างที่นี่ สำหรับPlay Servicesมีการแยกandroid_idเก็บโดยGTalkดังที่โพสต์ในบล็อก (ดูคำตอบของ HassleFixesซึ่งเป็นผู้ดำเนินการของStripSearchและขอขอบคุณในความคิดเห็น):

  • เรียกเลขหมายของคุณ
  • หมุน *#*#8255#*#*
  • ระวัง "รหัสอุปกรณ์"
  • ลบผู้นำ android-
  • สิ่งที่เหลืออยู่ถูกandroid_idใช้โดยบริการของ Google

ฉันได้ตรวจสอบแล้วว่า: การandroid_idดึงข้อมูลด้วยวิธีนี้ทำงานได้ดีบนอุปกรณ์ที่ไม่ได้ติดตั้ง Google-Apps (ใช้กับBlankStore ที่จัดทำโดยโครงการNOGAPPS )


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แล้วรันคำสั่งอื่นภายในเชลล์นั้น วิธีนี้ใช้งานได้ดีโดยไม่ต้องออกคำพูด คำตอบของคุณกำลังรันคำสั่งเดียวบนเครื่องหลัก สำหรับสิ่งนี้คุณต้องหลบหนีคำพูด
ทำเครื่องหมาย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.