Skip to content

Uiautomator: Extract IMEI from e-SIM


Print IMEI from e-SIM (the only known method as of now, please contribute if you know more)

#!/bin/bash
# Author: wuseman

adb shell input keyevent KEYCODE_CALL;
sleep 1;
input text '*#06#';
uiautomator dump --compressed /dev/stdout \
| tr ' ' '\n' \
| awk -F'"' '{print $2}' \
| grep "^[0-9]\{15\}$" \
| nl -w 1 -s':' \
| sed 's/^/IMEI/g'

Print IMEI from SIM if the device is locked (the only known method as of now, please contribute if you know more)

input keyevent 26 # Wake up screen
input touchscreen swipe 126 1459 413 1000  # Swipe screen
input text xxxxxxx # Input passcode/passphrase/keycode
# Run Code
sleep 1
input  keyevent KEYCODE_CALL;
sleep 1;
input text '*#06#'; 
uiautomator dump --compressed /dev/stdout\
    |tr ' ' '\n'\
    |awk -F'"' '{print $2}'|grep "^[0-9]\{15\}$" \
    |nl -w 1 -s':'\
    |sed 's/^/IMEI/g'   

When we have IMEI window open *#06# we can read imei, imei2, eid and sn

uiautomator dump --compressed /dev/stdout \
| grep -oE 'text="[^"]+"' \
| cut -d'"' -f2 \
| awk '
prev~/^IMEI[12]$/ {
    match($0, /[0-9]{15}/)
    print prev ":" substr($0, RSTART, RLENGTH)
}

prev=="EID" { print "EID:" $0 }
prev=="SN"  { print "SN:"  $0 }

{ prev=$0 }
'