通过 ADB 获取 IMEI 仅适用于旧的华为型号

Get IMEI via ADB only for old Huawei models

我需要一点帮助。我有一台华为 g6-l11(带有 Android 4.3),我正试图通过 ADB 从中提取 IMEI。我知道这个装置很古老,但这是我的任务之一。到目前为止,我已经尝试了所有可以在互联网上找到的方法,例如:

1) adb shell getprop | grep "<IMEI>"

2) adb shell service call iphonesubinfo N | grep "<IMEI>" - 其中 N 是 1 到 50 之间的数字

3) adb shell settings get secure android_id

4) adb shell content query --uri content://settings/secure | grep "<IMEI>"

5) adb shell content query --uri content://settings/system | grep "<IMEI>"

6) adb shell content query --uri content://settings/global | grep "<IMEI>"

7) adb shell dumpsys | grep "<IMEI>"

所以我做了一个Android应用程序和运行智能phone上的这段代码:

val tm = this.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
Log.d("Emy_","The IMEI is ${tm.deviceId}")

效果很好,但它是一个 Android 应用程序,当我需要做同样的事情但只能通过 ADB 时。

此外,我发现了一个 fastboot command 可以帮助我(例如:fastboot oem get-psid)。但问题是我需要将 phone 重新启动到快速启动模式。这花费的时间太长了。

我的问题是:

1)为什么OS版本以下的华为机型提取IMEI不一样?

2) 我如何复制由 Java 代码完成的函数调用以在终端中使用 ADB 完成?或者换句话说,您会向我推荐哪些其他命令来尝试提取 IMEI?

如果你只是想知道 IMEI,你可以试试这个代码:*#06# 或者你可以试试这个:adb shell service call iphonesubinfo 1 | toybox cut -d "'" -f2 | toybox grep -Eo '[0-9]' | toybox xargs | toybox sed 's/\ //g' 希望对您有所帮助!

您可以在屏幕上显示它:

adb am start -a android.intent.action.CALL -d tel:*%2306%23