adb shell dumpsys iphonesubinfo not working since Android 5.0 Lollipop

前端 未结 4 1560
心在旅途
心在旅途 2020-12-02 21:42

We used to get Device ID/IMEI using the following command:

adb shell dumpsys iphonesubinfo

But since last Android update (5.0 - Lollilop),

相关标签:
4条回答
  • 2020-12-02 21:49

    You can always just use service call command to call the service methods.

    here are the TRANSACTION CODES for the iphonesubinfo service in android-5.0.0_r1:

     1  getDeviceId
     2  getDeviceIdForSubscriber
     3  getImeiForSubscriber
     4  getDeviceSvn
     5  getSubscriberId
     6  getSubscriberIdForSubscriber
     7  getGroupIdLevel1
     8  getGroupIdLevel1ForSubscriber
     9  getIccSerialNumber
    10  getIccSerialNumberForSubscriber
    11  getLine1Number
    12  getLine1NumberForSubscriber
    13  getLine1AlphaTag
    14  getLine1AlphaTagForSubscriber
    15  getMsisdn
    16  getMsisdnForSubscriber
    17  getVoiceMailNumber
    18  getVoiceMailNumberForSubscriber
    19  getCompleteVoiceMailNumber
    20  getCompleteVoiceMailNumberForSubscriber
    21  getVoiceMailAlphaTag
    22  getVoiceMailAlphaTagForSubscriber
    23  getIsimImpi
    24  getIsimDomain
    25  getIsimImpu
    26  getIsimIst
    27  getIsimPcscf
    28  getIsimChallengeResponse
    29  getIccSimChallengeResponse
    

    Most methods require root. But fortunately getDeviceId (the one you need to get device's IMEI/MEID) does not.

    For proper parsing of the service call command output on the device side and without external dependencies see my answer here

    Also read Calling Android services from ADB shell for more details.

    0 讨论(0)
  • 2020-12-02 21:49

    i agree with alex P and jeremy we can get phone IMEI by service call but that results in packet which is complicated to see so after so much juggling with cmd as im not a programmer i have found solution to get IMEI alone and decided to share it as it can help to many . so here is script i made to get IMEI from lollypop 5.1 and it works with non rooted phones

    @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
    

    it will result in " Phone IMEI 'whatever phone IMEI is'" *keep in mind it will only show imei of sim port which is default set for calling. if anyone can short this script it would be great.

    0 讨论(0)
  • 2020-12-02 21:59

    ADB command to get device IMEI:

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

    ADB command to get device phone number:

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

    ADB command to get Android ID:

    adb shell settings get secure android_id

    ADB command to get device Serial Number:

    adb shell getprop ro.serialno

    Note: No root is needed for any of the above commands

    0 讨论(0)
  • 2020-12-02 22:07

    IMEI for sim 1

    adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=
    
    0 讨论(0)
提交回复
热议问题