我们过去使用以下命令获取设备 ID/IMEI:
adb shell dumpsys iphonesubinfo
但自上次 Android 更新(5.0 - Lollilop)以来,此命令未返回任何内容,我在 Nexus 4 和 Nexus 5 上都执行了此测试。
我知道我可以从代码中获取 IMEI,代码仍然有效,但是有人有解决 ADB 的方法吗?
最佳答案
您始终可以只使用service call
命令来调用服务方法。
这是 android-5.0.0_r1
中 iphonesubinfo
服务的事务代码:
1 getDeviceId
2 getDeviceIdForSubscriber
3 getImeiForSubscriber
4 getDeviceSvn
5 getSubscriberId
6 getSubscriberIdForSubscriber
7 getGroupIdLevel1
8 getGroupIdLevel1ForSubscriber
9 getIccSerialNumber
10 getIccSerialNumberForSubscriber
11 getLine1Number
12 getLine1NumberForSubscriber
13 getLine1AlphaTag
14 getLine1AlphaTagForSubscriber
15 getMsisdn
16 getMsisdnForSubscriber
17 getVoiceMailNumber
18 getVoiceMailNumberForSubscriber
19 getCompleteVoiceMailNumber
20 getCompleteVoiceMailNumberForSubscriber
21 getVoiceMailAlphaTag
22 getVoiceMailAlphaTagForSubscriber
23 getIsimImpi
24 getIsimDomain
25 getIsimImpu
26 getIsimIst
27 getIsimPcscf
28 getIsimChallengeResponse
29 getIccSimChallengeResponse
大多数方法需要 root
。但幸运的是,getDeviceId
(获取设备的 IMEI/MEID 所需的那个)没有。
要在设备端服务调用
命令输出进行正确解析且无需外部依赖,请参阅我的answer here
另请阅读 Calling Android services from ADB shell了解更多详情。
关于android - adb shell dumpsys iphonesubinfo 自 Android 5.0 Lollipop 起无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27002663/