用于获取 IMEI 2 的 ADB cmd 在 android 11 中不起作用

问题描述

我曾经使用以下 cmd 通过 adb 获取双卡设备的两个 IMEI,并且工作正常。

获取 IMEI 1:

adb shell service call iphonesubinfo 3 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=

要获得 IMEI 2:

adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=

但在 S20 Ultra(Android 11)中,我无法使用上述 cmd 获取 IMEI 2。

即使我尝试使用“iphonesubinfo 3 i32 1”和“iphonesubinfo 3 i32 2”,但它返回空。

使用的iphonesubinfo的转换代码

  • 1 - 获取设备 ID
  • 2 - getdeviceidForSubscriber
  • 3 - getImeiForSubscriber
  • 4 - getDeviceSvn
  • 5 - getSubscriberId
  • 6 - getSubscriberIdForSubscriber

问题:

  1. 这些转换代码是否针对 android 10 进行了更改?如果是这样,请分享更新以获取 IMEI2。
  2. 还是由于 s20 Ultra 的 Hybrid sim 插槽导致的?如果是这样,如何获得混合卡插槽的 IMEI 2?

解决方法

得到了答案。尝试使用以下命令为 Android 11 上的混合 SIM 设备获取 IMEI 1 和 IMEI 2

获取 IMEI 1:

adb shell service call iphonesubinfo 4 i32 2 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=

要获得 IMEI 2:

adb shell service call iphonesubinfo 4 i32 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=