Подтвердить что ты не робот

Adb shell dumpsys iphonesubinfo не работает с Android 5.0 Lollipop

Мы использовали идентификатор устройства /IMEI, используя следующую команду:

adb shell dumpsys iphonesubinfo

Но с момента последнего обновления Android (5.0 - Lollilop) эта команда ничего не возвращает, я выполнил этот тест как на Nexus 4, так и на Nexus 5.

Я знаю, что могу получить IMEI из кода, который все еще работает, но есть ли у кого-нибудь обходной путь для ADB?

4b9b3361

Ответ 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, это было бы здорово.