android 如何通过ADB获取IMEI?

nue99wik  于 2023-04-18  发布在  Android
关注(0)|答案(3)|浏览(832)

我正在尝试跟踪设备,西姆斯和通话时间卡用于测试目的.我有多个设备插入到计算机,因为最近更新到Android 12,我无法获得设备IMEI. IMEI基本上是设备的FCC要求的序列号,可以从UI中获得相对容易,但我如何通过ADB或在来自多个运营商和OEM的多个设备上以某种自动化方法获得它?
在Android之前12 FEB补丁,我会使用service call iphonesubinfo 1service call iphonesubinfo 4 .但不幸的是,更新后我收到回Result: Parcel(ffffffffc ffffffff 00000000 '................'),而之前我会收到一个包含IMEI的包裹通过脚本处理.
有没有办法在Android上获得IMEI 12+?我试图远离使用应用程序.这是一个简单的事情,从特权用户(adb shell).这似乎是一个基本的必需品跟踪和物流目的.

uinbv5nw

uinbv5nw1#

这个命令的工作原理是获取IMEI。它的工作原理是按拨号键,然后键入*#06#,然后解析屏幕上的文本,找到IMEI标签和下一个包含实际IMEI的元素。最后,它通过删除所有text="之前和所有"之后的元素来解析该元素。

adb shell "imei=$(input keyevent KEYCODE_CALL;sleep 1;input text '*#06#'; uiautomator dump --compressed /dev/stdout|sed s/\>\<\/\\n/g|grep -A1 IMEI|tail -n1|sed -e 's/.*text=\"//' -e 's/\".*//'); echo ${imei}"

要仅获取不带校验和的16位IMEI,请将最后的echo语句替换为echo ${imei:0:16}

webghufk

webghufk2#

我找到了一个很好的解决三星One UI的方法
首先,运行“关于”菜单

adb shell am start -a com.android.settings.ACTION_DEVICE_INFO_SETTINGS

然后转储UI

adb shell uiautomator dump

查看转储文件

adb shell cat /sdcard/window_dump.xml
  • *〈node index=“12”中的IMEI 1和〈node index=“13”**中的IMEI 2
wbgh16ku

wbgh16ku3#

我创建了一个脚本来提取设备信息(包括IMEI),理论上适用于所有Android版本。
对于那些感兴趣的人:https://github.com/micro5k/microg-unofficial-installer/blob/main/utils/device-info.sh

相关问题