8 votos

Obtener el número IMEI con el comando ADB

Estoy trabajando con ADB en mi dispositivo Samsung Galaxy. Quiero obtener el número IMEI del dispositivo utilizando ADB, pero no he podido hacerlo.

He intentado lo siguiente:

adb shell dumpsys iphonesubinfo

pero no devuelve nada.

También intenté con el comando de Llamada de Servicio:

adb shell service call iphonesubinfo

pero me da un resultado extraño como este:

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...        ')

¿Alguien puede ayudarme con esto?

0 votos

Podrías intentar llamar a un intent como se muestra a continuación: am start -a android.intent.action.DIAL -d "tel:*%2306%23"

0 votos

@esQmo_ Pero eso solo abrirá el marcador con el código de obtención del IMEI. No quiero que el usuario tenga que hacer nada manualmente.

1 votos

8voto

Firelord Puntos 161

Dado el tag 7.0-nougat, estoy asumiendo que tienes o estás apuntando a Android Nougat. Android Nougat viene con toybox, que actúa como una alternativa a busybox y tiene algunas utilidades útiles. Logré usar esas herramientas para imprimir el IMEI de esta manera:

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

Dado que no estarías obteniendo un shell interactivo al usar un script o una aplicación, puedes pasar los comandos de esta manera:

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

4voto

mmdevlpr Puntos 11

El siguiente comando ADB funciona en mi PC Windows para obtener un resultado IMEI claro:

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

0 votos

Gracias por compartir el mejor código. Obtuve el resultado del IMEI con este código, pero solo muestra el primer IMEI. ¿Qué debo poner en el código para obtener el resultado del segundo IMEI? Gracias por las respuestas.

1 votos

He cambiado el código de iphonesubinfo 1 a iphonesubinfo 4, que es el código de servicio correcto para obtener el IMEI completo. Entonces prueba: adb shell "service call iphonesubinfo 4 | cut -c 52-66 | tr -d '.[:space:]'", y verifica si también obtienes el IMEI 2.

3voto

HackSlash Puntos 101

Intente poner este código en un archivo .bat y ejecutarlo:

@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=Teléfono IMEI  !DeviceIMEI!
)
echo %OIMEI%
pause

Lo obtuve de este hilo de StackOverflow: https://stackoverflow.com/a/34362809/8173870

2voto

Stackcraft_noob Puntos 119

adb shell dumpsys iphonesubinfo solo funciona para teléfonos por debajo de Android 5 Lolipop.

Debido a que Android Nougat está por encima de 5.0, necesitas: adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=

0 votos

Estoy usando Windows como sistema operativo, por lo que me está dando un error de "awk not found". ¿Cuál sería el equivalente de awk en el símbolo del sistema de Windows?

1 votos

No hay un equivalente de awk en Windows. Pero simplemente puedes instalar todas las herramientas de *nix también en Windows. Una manera muy sencilla de hacerlo es scoop. O puedes crear una herramienta de Windows que analice el resultado de la línea de comandos sin esas herramientas.

2voto

Forivin Puntos 56

Usando android-svc:

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

devolvería algo como esto:

358972084515103

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X