Adb shell dumpsys iphonesubinfo не работает с Android 5.0 Lollipop
Мы использовали идентификатор устройства /IMEI, используя следующую команду:
adb shell dumpsys iphonesubinfo
Но с момента последнего обновления Android (5.0 - Lollilop) эта команда ничего не возвращает, я выполнил этот тест как на Nexus 4, так и на Nexus 5.
Я знаю, что могу получить IMEI из кода, который все еще работает, но есть ли у кого-нибудь обходной путь для ADB?
Ответы
Ответ 1
Вы всегда можете просто использовать команду 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).
Прочтите Вызов услуг Android из оболочки ADB для получения более подробной информации
Ответ 2
IMEI для sim 1
adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=
Ответ 3
Я согласен с alex P и jeremy, мы можем получить телефон IMEI по вызову службы, но это приводит к пакету, который осложняется тем, что после столь большого количества жонглирования с помощью cmd, поскольку я не программист, я нашел решение для получения IMEI в одиночку и решил делиться им, поскольку это может помочь многим.
так что вот script я сделал, чтобы получить IMEI от lollypop 5.1 и работает с ненарушенными телефонами
@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 телефона есть "
* Имейте в виду, что он будет показывать только imei sim-порт, который по умолчанию установлен для вызова.
если кто-то может сократить этот script, это было бы здорово.