2014-11-18 2 views
12

Wir verwendeten Geräte-ID/IMEI mit dem folgenden Befehl zu erhalten:adb shell dumpsys iphonesubinfo arbeitet nicht seit Android 5.0 Lollipop

adb shell dumpsys iphonesubinfo 

Aber seit dem letzten Update Android (5.0 - Lollilop), dieser Befehl nicht zurück alles, ich habe diesen Test sowohl auf Nexus 4 und Nexus 5 durchgeführt.

Ich weiß, ich kann die IMEI aus Code, der noch funktioniert, aber hat jemand eine Umgehung für ADB?

+1

denke ich dabei um einen Fehler in 5.0 ist. Ich habe 'adb shell dumpsys iphonesubinfo> info.txt' auf 4.4.2 und 5.0 versucht, und 4.4.2 habe die Informationen in eine Datei geschrieben, wo 5.0 nicht. – BlackHatSamurai

Antwort

6

Sie können immer einfach service call Befehl verwenden, um die Service-Methoden aufzurufen.

hier sind die Transaktionscodes für die iphonesubinfo Dienst in 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 

Die meisten Methoden root erfordern. Aber zum Glück getDeviceId (die Sie benötigen, um IMEI/MEID Gerät zu bekommen) nicht.

lesen Calling Android services from ADB shell für mehr Details

+0

Danke, ich habe bereits Service-Call-Befehle versucht, aber ich muss dies tun, ohne Telefone zu verwurzeln. –

+1

'getDeviceId' benötigt keine' root' –

+0

Das funktioniert, vielen Dank! –

1

i mit alex P und jeremy stimmen wir Telefon IMEI durch den Kundendienst erhalten kann, aber dass die Ergebnisse in Paket, das so nach so viel Jonglieren mit cmd als im sehen kompliziert ist kein Programmierer Ich habe eine Lösung gefunden, um IMEI alleine zu bekommen und habe beschlossen, es zu teilen, da es vielen helfen kann. so ist hier Skript i IMEI erhalten von Lollypop 5.1 gemacht und es funktioniert mit Handys nicht verwurzelt

@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 

es in „Telefon IMEI‚ was auch immer Telefon IMEI ist‘“ führt * im Auge behalten wird es nur Show imei des SIM-Ports, der standardmäßig für den Aufruf festgelegt ist. Wenn jemand dieses Skript kurz machen kann, wäre es großartig.

2

IMEI für sim 1

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