8 votes

Comment obtenir le numéro IMEI à partir de la commande adb

Je travaille sur adb avec mon appareil Samsung Galaxy. Je veux obtenir le numéro IMEI de l'appareil en utilisant adb mais je n'ai pas réussi à le faire.

J'ai essayé ce qui suit :

    adb shell dumpsys iphonesubinfo

mais il ne renvoie rien.

J'ai aussi essayé avec la commande Service Call :

 adb shell service call iphonesubinfo

mais cela me donne un résultat étrange comme celui-ci :

  Result: Parcel(                                                        
0x00000000: 00000000 0000000f 00350033 00390038 '........3.5.8.9.'    
0x00000010: 00320037 00380030 00350034 00350031 '7.2.0.8.4.5.1.5.'   
0x00000020: 00300031 00000033                   '1.0.3...        ')

Quelqu'un peut-il m'aider ?

8voto

Firelord Points 23064

Étant donné l'étiquette 7.0-nougat Je suppose que vous avez ou que vous visez Android Nougat. Android Nougat est livré avec coffre à jouets qui agit comme une alternative à busybox et possède quelques utilitaires utiles. J'ai réussi à utiliser ces outils pour imprimer l'IMEI comme ceci :

adb shell
service call iphonesubinfo 1 | toybox cut -d "'" -f2 | toybox grep -Eo '[0-9]' | toybox xargs | toybox sed 's/\ //g'

Comme vous n'obtiendrez pas un shell interactif lorsque vous utiliserez un script ou une application, vous pouvez passer les commandes comme ceci :

adb shell "service call iphonesubinfo 1 | toybox cut -d \"'\" -f2 | toybox grep -Eo '[0-9]' | toybox xargs | toybox sed 's/\ //g'"

4voto

Devlpr Points 41

La commande ADB suivante fonctionne sur mon PC Windows pour obtenir un résultat IMEI clair :

adb shell "service call iphonesubinfo 4 | cut -c 52-66 | tr -d '.[:space:]'"

3voto

HackSlash Points 176

Essayez de mettre ce code dans un fichier .bat et de l'exécuter :

@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

Je l'ai trouvé dans ce fil de StackOverflow : https://stackoverflow.com/a/34362809/8173870

2voto

Stackcraft_noob Points 177

adb shell dumpsys iphonesubinfo ne fonctionne que pour tous les téléphones inférieurs à Android 5 Lolipop !

Parce qu'Android Nougat est supérieur à 5.0 vous avez besoin : adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=

2voto

Forivin Points 317

Utilisation de Android-svc :

android-svc --adb call 'iphonesubinfo.getDeviceId();'

retournerait quelque chose comme ça :

358972084515103

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X