adb shell dumpsys iphonesubinfo自Android 5.0棒棒糖后不工作

adb shell dumpsys iphonesubinfo自Android 5.0棒棒糖后不工作,android,adb,android-5.0-lollipop,Android,Adb,Android 5.0 Lollipop,我们使用以下命令获取设备ID/IMEI: adb shell dumpsys iphonesubinfo 但是自从上次Android更新(5.0-Lollilop)以来,这个命令没有返回任何东西,我在Nexus4和Nexus5上都执行了这个测试 我知道我可以从代码中获取IMEI,它仍然在工作,但是有人有ADB的解决方法吗?您可以随时使用服务调用命令来调用服务方法 以下是android-5.0.0\u r1中的iphonesubinfo服务的交易代码: 1 getDeviceId 2 g

我们使用以下命令获取设备ID/IMEI:

adb shell dumpsys iphonesubinfo
但是自从上次Android更新(5.0-Lollilop)以来,这个命令没有返回任何东西,我在Nexus4和Nexus5上都执行了这个测试


我知道我可以从代码中获取IMEI,它仍然在工作,但是有人有ADB的解决方法吗?

您可以随时使用
服务调用
命令来调用服务方法

以下是
android-5.0.0\u 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的那个)没有

要在设备端正确解析
服务调用
命令输出,且无外部依赖项,请参阅我的


阅读更多细节。

我同意alex p和jeremy的观点,我们可以通过服务电话获取手机IMEI,但这导致了数据包的出现,在使用cmd进行了大量的杂耍后,很难看到数据包,因为我不是一名程序员。我已经找到了单独获取IMEI的解决方案,并决定分享它,因为它可以帮助很多人。 这是我为从lollypop 5.1中获取IMEI而编写的脚本,它适用于无根手机

@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,这是呼叫的默认设置。 如果有人能缩短这个脚本,那就太好了。

IMEI for sim 1

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

获取设备IMEI的ADB命令:

adb shell“服务呼叫iphonesubinfo 1 | cut-c52-66 | tr-d.”[:space:]”

获取设备电话号码的ADB命令:

adb shell“服务呼叫iphonesubinfo 18 | cut-c52-66 | tr-d.”[:space::+'”

获取Android ID的ADB命令:

adb外壳设置获取安全的android\u id

获取设备序列号的ADB命令:

adb壳牌getprop ro.serialno


注意:上述任何命令都不需要root

我认为这是5.0中的一个bug。我在4.4.2和5.0上尝试了
adb shell dumpsys iphonesubinfo>info.txt
,4.4.2将信息放入一个文件中,而5.0没有。谢谢,我已经尝试了服务呼叫命令,但我需要在不使用根手机的情况下执行此操作。
getDeviceId
不需要
root
实际上这对Android 5.0和5.0.1不起作用,仅适用于Android 5.1及以上版本。以下是适用于所有Android版本的解决方案:Hi@AlexP,你能澄清一下如何得到这个代码方法列表吗?我找到了列表文件,但没有找到该脚本创建的imei.txt文件,但该文件中唯一的内容是一个字符串:“itfound”我已将其修改为在Windows上工作:
adb shell”服务调用iphonesubinfo 1 | awk-F\“\””{print$2}sed'1d'| tr-d'。| awk'{print}or=“