3

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?

  • You could try calling an intent like below: am start -a android.intent.action.DIAL -d "tel:*%2306%23" – esQmo_ Apr 4 '18 at 22:31
  • @esQmo_ But that will just open Dialer wirh IMEI getting code. I don't user to manually do anything. – yash Apr 5 '18 at 8:07
1
+50

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

3

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'"
  • This should be the correct answer! – M. Abdelhafid Jan 29 at 14:40
1

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=

  • i am using Windows as OS so it gives me Error awk not found. What would be Equivalent of awk in windows Command Prompt? – yash Apr 5 '18 at 8:01
  • 1
    There is no equivalent to awk on Windows. But you can simply install all the *nix tools also on Windows. A very simple way to do that is scoop. Or you have to create a windows tool that parses the command-line result without those tools. – Robert Apr 10 '18 at 9:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.