Подтвердить что ты не робот

Есть ли команда orroid shell или adb, которую я мог бы использовать для получения устройства IMEI/MEID?

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

4b9b3361

Ответ 1

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

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

Ответ 2

Для 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

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

Если у вас уже есть собственное приложение, которое вы можете установить на устройстве, из которого вы хотите узнать 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 и полные инструкции).

Ответ 4

Это работает для меня на моей связи 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]

Script: 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 ' ')]"

Для этого требуется:

Ответ 5

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

Android ID =

Настройки оболочки adb получают безопасный файл android_id

Ответ 6

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

adb shell service call iphonesubinfo 1 | awk -F "'" '{print $2}' | sed '1 d' | tr -d '.' | awk '{print}' ORS=

Ответ 7

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