我们以前使用以下命令获取设备ID / IMEI:
adb shell dumpsys iphonesubinfo
但是自上次Android更新(5.0 - Lollilop)以来,此命令没有返回任何内容,我在Nexus 4和Nexus 5上都执行了此测试。
我知道我可以从代码中获取IMEI,这仍然有效,但有没有人有针对ADB的解决方法?
答案 0 :(得分:9)
IMEI for sim 1
adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=
答案 1 :(得分:7)
您始终可以使用service call
命令来调用服务方法。
以下是iphonesubinfo
中android-5.0.0_r1
服务的交易代码:
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所需的那个)没有。
对于正确解析设备端的service call
命令输出而没有外部依赖关系,请参阅我的answer here
答案 2 :(得分:2)
我同意alex P和jeremy我们可以通过服务电话获得电话IMEI但是这会导致很复杂的数据包看起来很复杂,因为我不是程序员我已经找到解决方案来单独获取IMEI并决定分享它,因为它可以帮助许多人。 所以这里是我从lollypop 5.1获取IMEI的脚本,它适用于非root电话
@echo off
setlocal enabledelayedexpansion
for /f "tokens=6*" %%a in ('adb shell "service call iphonesubinfo 1 ^| grep -m 1 \"'\""') do (
set imei1=%%a)
for /f "tokens=6*" %%b in ('adb shell "service call iphonesubinfo 1 ^| grep -m 2 \"'\""') do (
set imei2=%%b)
for /f "tokens=4*" %%c in ('adb shell "service call iphonesubinfo 1 ^| grep -m 3 \"'\""') do (
set imei3=%%c)
set imei=!imei1!!imei2!!imei3!
echo !imei! > imei.txt
for /f "delims=" %%d in (imei.txt) do (
set DeviceIMEI=%%d
set DeviceIMEI=!DeviceIMEI:'=!
set DeviceIMEI=!DeviceIMEI:.=!
set OIMEI=Phone IMEI !DeviceIMEI!
)
echo %OIMEI%
pause
它将导致“手机IMEI”无论手机IMEI是什么'“ *请记住,它只显示默认设置为调用的sim端口的imei。 如果有人可以缩短这个脚本,那就太棒了。
答案 3 :(得分:1)
ADB命令获取设备IMEI:
adb shell "service call iphonesubinfo 1 | cut -c 52-66 | tr -d '.[:space:]'"
ADB命令获取设备电话号码:
adb shell "service call iphonesubinfo 18 | cut -c 52-66 | tr -d '.[:space:]+'"
ADB命令获取Android ID:
adb shell settings get secure android_id
ADB命令获取设备序列号:
adb shell getprop ro.serialno
注意:以上任何命令都不需要root