Есть ли оболочка Android или команда adb, которую я мог бы использовать, чтобы получить IMEI / MEID устройства? - PullRequest
29 голосов
/ 28 июля 2011

Есть ли какая-нибудь команда оболочки adb или android, которую я мог бы запустить и которая возвратила бы номер IMEI или MEID устройства? Предпочтительно это все, что будет возвращено.

Ответы [ 7 ]

50 голосов
/ 28 июля 2011

Я понял, как это сделать. Вам нужно запустить adb shell dumpsys iphonesubinfo в оболочке. Это даст вам немного больше, чем вам нужно, но также вернет номер IMEI или MEID.

Редактировать (2017): в Android 5.0+ вам нужно использовать команду service call. Более подробную информацию об этом можно найти здесь .

4 голосов
/ 30 августа 2015

Для ESN вы можете сделать

сервисный вызов iphonesubinfo 16

, по крайней мере, это дает мне право на Motorola Photon Q.

Очистить его (при условии, что выиметь оболочку на устройстве и иметь дееспособную занятую коробку там, если не очень рекомендую):

    service call iphonesubinfo 16 | busybox awk -F "'" '{print $2}' | busybox sed 's/[^0-9A-F]*//g' | busybox tr -d '\n' && echo

Для MEID с очисткой:

service call iphonesubinfo 1 | busybox awk -F "'" '{print $2}' | busybox sed 's/[^0-9A-F]*//g' | busybox tr -d '\n' && echo
3 голосов
/ 02 января 2018

Для IMEI вы можете использовать:

adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=
2 голосов
/ 17 мая 2017

Это работает для меня на моем Nexus 5 и Moto 5G.

вывод:

[build.id]: [M4B30X]
[build.version.release]: [6.0.1]
[build.version.sdk]: [23]
[build.version.security_patch]: [2016-10-05]
[product.brand]: [google]
[product.manufacturer]: [LGE]
[product.model]: [Nexus 5]
[product.name]: [hammerhead]
[serialno]: [05xxxxxxxxxxx4]
[device.imei]: [xxxxxxxxxxxx]
[device.phonenumber]: [+xxxxxxxxxx]

Сценарий : get.deviceinfo.bash

#!/bin/bash
# Get the device properties
adb shell getprop | grep "model\|version.sdk\|manufacturer\|ro.serialno\|product.name\|brand\|version.release\|build.id\|security_patch" | sed 's/ro\.//g'
# get the device ime
echo "[device.imei]: [$(adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d'| tr -d '\n' | tr -d '.' | tr -d ' ')]"
# get the device phone number
echo "[device.phonenumber]: [$(adb shell service call iphonesubinfo 19 | awk -F "'" '{print $2}' | sed '1 d'| tr -d '\n' | tr -d '.' | tr -d ' ')]"

Требуется:

2 голосов
/ 21 июня 2016

Поскольку команда iphonesubinfo 1 не работает на многих устройствах, вот небольшой обходной путь, который должен работать согласованно на большинстве версий Android, а также на устройствах с root и без рута:

Если у вас уже есть собственное приложение,Вы можете установить на устройстве, с которого вы хотите знать IMEI, добавить BroadcastReceiver в ваше приложение:

public class GetImeiReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String imei = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
        setResultData(imei);
    }

}

и в AndroidManifest.xml:

<receiver android:name=".GetImeiReceiver">
  <intent-filter>
    <action android:name="com.myapp.GET_IMEI"/>
  </intent-filter>
</receiver>

ВызовВаш приемник через ADB:

adb shell am broadcast -a com.myapp.GET_IMEI

... и вывод будет выглядеть примерно так:

Broadcast completed: result=0, data="000000000000000"

... где data - это IMEI устройства.

Если у вас нет существующего приложения для интеграции этого решения, я создал это простое приложение, содержащее необходимый код: https://github.com/saschoar/android-imei-getter (также включает APK и полные инструкции).

0 голосов
/ 28 декабря 2016

IMEI - вызов службы оболочки adb iphonesubinfo 1 |awk -F "'"' {print $ 2} '|sed '1 d' |sed 's / .// g' |awk '{print}' ORS = ''

Android ID =

Настройки оболочки ADB становятся безопасными

0 голосов
/ 28 июля 2011

Просто запустите ./adb devices и в нем перечислены все подключенные IMEI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...