有没有一个Android shell或adb命令,我可以用来获取设备的IMEI / MEID?

有一些adb或android shell命令,我可以运行,将返回设备的IMEI或MEID号码? 最好是所有这些将被返回。

Solutions Collecting From Web of "有没有一个Android shell或adb命令,我可以用来获取设备的IMEI / MEID?"

我想出了如何做到这一点。 你需要在adb shell dumpsys iphonesubinfo运行adb shell dumpsys iphonesubinfo 。 它会给你多一点比你需要,但它也将返回IMEI或MEID号码。

编辑(2017):在Android 5.0+中,您需要使用service call命令。 有关更多信息可以在这里find。

对于ESN你可以做

服务电话iphonesubinfo 16

至less它在摩托罗拉Photon Q上给了我正确的一个。

要清理它(假设你有设备上的shell,并有一个有能力的busybox那里,如果不是,我强烈推荐一个):

  service call iphonesubinfo 16 | busybox awk -F "'" '{print $2}' | busybox sed 's/[^0-9A-F]*//g' | busybox tr -d '\n' && echo 

对于清理MEID:

 service call iphonesubinfo 1 | busybox awk -F "'" '{print $2}' | busybox sed 's/[^0-9A-F]*//g' | busybox tr -d '\n' && echo 

由于iphonesubinfo 1命令在许多设备上不起作用,下面是一些解决方法,应该可以在大多数Android版本以及根和非根设备上保持一致:

如果您已经拥有了自己的应用程序,您可以将其安装在您想要了解IMEI的设备上,请将此BroadcastReceiver添加到您的应用程序中:

 public class GetImeiReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String imei = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); setResultData(imei); } } 

AndroidManifest.xml

 <receiver android:name=".GetImeiReceiver"> <intent-filter> <action android:name="com.myapp.GET_IMEI"/> </intent-filter> </receiver> 

通过ADB呼叫您的接收机:

 adb shell am broadcast -a com.myapp.GET_IMEI 

…和输出将是这样的:

 Broadcast completed: result=0, data="000000000000000" 

data是设备的IMEI。

如果您还没有现有的应用程序来集成此解决scheme,我创build了这个简单的应用程序,其中包括所需的代码: https : //github.com/saschoar/android-imei-getter (还包括APK和完整的说明)。

这适用于我的联系5和摩托车5G。

输出:

 [build.id]: [M4B30X] [build.version.release]: [6.0.1] [build.version.sdk]: [23] [build.version.security_patch]: [2016-10-05] [product.brand]: [google] [product.manufacturer]: [LGE] [product.model]: [Nexus 5] [product.name]: [hammerhead] [serialno]: [05xxxxxxxxxxx4] [device.imei]: [xxxxxxxxxxxx] [device.phonenumber]: [+xxxxxxxxxx] 

脚本get.deviceinfo.bash

 #!/bin/bash # Get the device properties adb shell getprop | grep "model\|version.sdk\|manufacturer\|ro.serialno\|product.name\|brand\|version.release\|build.id\|security_patch" | sed 's/ro\.//g' # get the device ime echo "[device.imei]: [$(adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d'| tr -d '\n' | tr -d '.' | tr -d ' ')]" # get the device phone number echo "[device.phonenumber]: [$(adb shell service call iphonesubinfo 19 | awk -F "'" '{print $2}' | sed '1 d'| tr -d '\n' | tr -d '.' | tr -d ' ')]" 

这个需要:

  • UBSdebugging开启(开发人员选项)
  • adb ( Android SDK平台工具 )

IMEI-adb shell服务调用iphonesubinfo 1 | awk -F“'”'{print $ 2}'| sed'1 d'| sed's /.// g'| awk'{print}'ORS =''

Android ID =

亚行壳设置得到安全的android_id

只需运行./adb devices ,并列出所有连接的IMEI。