如何在Android 5.0上使用adb命令获取MEID和IMEI信息?

5

我所知道的在其他版本上可用的唯一命令是“adb shell dumpsys iphonesubinfo”,但它似乎在Android 5.0上无效。

1个回答

19

要获取TelephonyManager.getDeviceId(),您可以执行以下操作:

adb shell service call iphonesubinfo 1

如果您遇到解析 service call 输出的问题,请查看https://gist.github.com/ktnr74/60ac7bcc2cd17b43f2cb

或者您可以在设备端使用以下 Windows 一行命令完成:

adb shell "service call iphonesubinfo 1 | grep -o '[0-9a-f]\{8\} ' | tail -n+3 | while read a; do echo -n \\u${a:4:4}\\u${a:0:4}; done"

或者在 Linux 中:

adb shell 'service call iphonesubinfo 1 | grep -o "[0-9a-f]\{8\} " | tail -n+3 | while read a; do echo -n "\u${a:4:4}\u${a:0:4}"; done'

我应该在非路由设备上进行指定。谢谢您的回复,@Alex P. - WebDevKris
我刚刚检查了一下,发现这个特定的服务调用实际上并不需要提升的权限。 - Alex P.
很令人不安,为什么有些混蛋会因为完全有效的答案而给你-1。 - galets
这是适用于所有Android版本的解决方法:https://dev59.com/B2w15IYBdhLWcg3wD3np#37940140 - saschoar
它从哪个Android版本开始工作?另外,您忘记提到底部命令返回的内容。是IMEI吗?它与我们从这里获取的内容相同:https://developer.android.com/reference/android/telephony/TelephonyManager#getSubscriberId()?目前看来,在Android Q上两者的答案都是“是”。但我想知道,为什么还有其他的:https://developer.android.com/reference/android/telephony/TelephonyManager.html#getImei() https://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId()? - android developer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接