TransWikia.com

How to get IMEI Number From adb Command

Android Enthusiasts Asked on October 29, 2021

I am working on adb with my Samsung Galaxy Device. I want to get the IMEI number of the device using adb but I have been unable to do that.

I tried the Following:

    adb shell dumpsys iphonesubinfo

but it returns nothing.

I also tried with Service Call Command:

 adb shell service call iphonesubinfo

but it gives me Strange Result Like this:

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

Can anybody Help me out with this?

5 Answers

Using android-svc:

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

would return something like this:

358972084515103

Answered by Forivin on October 29, 2021

The following ADB command works on my Windows PC to get clear IMEI result:

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

Answered by Devlpr on October 29, 2021

Given the tag , I'm assuming you have or are targeting Android Nougat. Android Nougat comes with toybox which acts as an alternative to busybox and has some useful utilities. I managed to use those tools to print IMEI like this:

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

Since you wouldn't be getting an interactive shell when using a script or an app, you can pass the commands like this:

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

Answered by Firelord on October 29, 2021

Try putting this code in to a .bat file and running it:

@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

I got it from this StackOverflow thread: https://stackoverflow.com/a/34362809/8173870

Answered by HackSlash on October 29, 2021

adb shell dumpsys iphonesubinfo just works only for all phones below Android 5 Lolipop!

Because Android Nougat is over 5.0 you need: adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=

Answered by Stackcraft_noob on October 29, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP