2014-11-18 8 views
12

Abbiamo usato per ottenere Device ID/IMEI utilizzando il seguente comando:dumpsys adb shell non iphonesubinfo di lavoro in quanto Android 5.0 Lollipop

adb shell dumpsys iphonesubinfo 

Ma dall'ultimo aggiornamento Android (5.0 - Lollilop), questo comando non restituisce qualsiasi cosa, ho eseguito questo test sia su Nexus 4 che su Nexus 5.

So che posso ottenere l'IMEI dal codice, che funziona ancora, ma qualcuno ha una soluzione alternativa per ADB?

+1

credo che questo sia un bug all'interno di 5.0. Ho provato 'adb shell dumpsys iphonesubinfo> info.txt' su 4.4.2 e 5.0, e 4.4.2 ha inserito le informazioni in un file, dove 5.0 non l'ha fatto. – BlackHatSamurai

risposta

6

È sempre possibile utilizzare il comando service call per chiamare i metodi di servizio.

qui sono i codici di transazione per il servizio iphonesubinfo 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 

La maggior parte dei metodi richiedono root. Ma fortunatamente lo getDeviceId (quello necessario per ottenere l'IMEI/MEID del dispositivo) non lo è.

Calling Android services from ADB shell Leggi per maggiori dettagli

+0

Grazie, ho già provato i comandi di chiamata di servizio, ma ho bisogno di farlo senza il rooting dei telefoni. –

+1

'getDeviceId' non richiede' root' –

+0

Questo funziona, grazie mille! –

1

sono d'accordo con Alex P e Jeremy possiamo ottenere telefono IMEI dalla chiamata di servizio, ma che si traduce in pacchetto che è complicato da vedere così dopo tanta giocoleria con cmd come im non un programmatore Ho trovato una soluzione per prendere IMEI da solo e ho deciso di condividerlo perché può aiutare molti. ecco lo script che ho fatto per ottenere IMEI da lecca-lecca 5.1 e funziona con i non radicata telefoni

@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 

che si tradurrà in "Telefono IMEI 'qualunque telefono IMEI è'" * tenere a mente sarà solo spettacolo imei di porta sim che è l'impostazione predefinita per la chiamata. se qualcuno può abbreviare questo script sarebbe fantastico.

2

IMEI per SIM 1

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