Добавьте IMEI и MAC в wlan0 в Genymotion/AndroVM

есть ли способ добавить IMEI в AndroVM (now Genymotion) или любой другой эмулятор Android. А также Я хочу MAC-адрес для порта wlan0. У нас уже есть эмуляторы, которые содержат MAC в порту lan0, но не для wlan. Как мы можем это сделать? если кто-то из ваших знакомых сделал так, пожалуйста, попросите их внести свой вклад.

детали:

Я пытаюсь создать облачный центр тестирования приложений для Android в качестве моего проекта перед выпускным годом колледжа для частичного выполнения Степень бакалавра технологии (информатики). Мне интересно, как мы можем получить больше конфигураций, как Genymotion. Или если вы можете предоставить мне больше конфигураций устройств и если можно очень быстро создать конфигурации для genymotion для разных устройств. Во-вторых, как добавить MAC-адреса и номер IMEI в сборки?

мы пытаемся эмулировать мобильное устройство (не Google nexus), чтобы сделать облачный центр тестирования. Для этого мы пытаемся использовать androVM (Genymotion) и мы столкнулись с несколькими проблемами

что мы сделали до сих пор

  1. создание исходного кода androVm в режиме "VBOX86tp-userdebug" с нуля после выполнения шагов, приведенных на официальном сайте Android.
  2. после создания исходного кода на виртуальном сервере ec2 введите команду эмулятора, но ее пустое значение.
  3. и если возможно, можно запустить AndroVm в режиме" Fastboot", чтобы мы могли установить его на устройство.

мы работаем над "построением androVm" из исходного кода и пытаемся выполнить несколько задач, таких как

  1. запуск его с помощью img доступен после завершения процесса строительства.
  2. делает его портативным, т. е. создает iso/ova из всего материала, найденного в каталоге out.

что мы пробовали до сих пор

загрузка исходного кода AndroVm инициализация РЕПО с помощью РЕПО в этом Загрузка исходного кода с помощью repo sync выбор обеденного меню с помощью lunch выбор vbox86tp-userdebug

другие меню full-eng не работали так прекращено

несколько ошибок, которые пришли наш путь

сделать ошибки: они были довольно простыми, поэтому разрешены система.img не генерируется: решено, сделав это снова ошибка команды bin / bash jar: произошла ошибка пути, разрешенная командой экспорта пути в jar.

несколько Вопросы

  1. что такое файл OVA и как его можно создать? Из того, что я видел, он содержит несколько VMDK и несколько файлов конфигурации, прикрепленных к нему,
  2. как конвертировать файлы изображений платформы (system.ИМГ рамдиск.ИМГ, например, userdata.img) в файл OVA или ISO. Если вообще нам не хватает нескольких файлов для эмулятора, вы можете просто назвать их.
  3. также Как добавить номер IMEI
  4. у нас уже есть MAC для порта eth0/1 но мы хотим его на wlan port

Image Showing eth0 and eth1 port

Other Details



теперь, чтобы сделать вещи интересные

вот ответ, который я получил от команды Genymotion:

I want my project to cover various configurations but for starters if i can get something like Samsung Galaxy phones and tab or as a

начать, если я могу получить Samsung galaxy tab 2.

вы можете изменить размер экрана и DPI для каждого виртуального устройства. Вы можно переключать панель навигации и виртуальную клавиатуру. Однако, мы не можем предоставление виртуальных устройств, которые содержит несвободные приложения, такие как Самсунг.

Now here what we get is the MAC address of eth0/1 port. What if I need wlan MAC.

если один из двух сетевых интерфейсов не был отключен, там должно быть 2 интерфейса, 2 IP и 2 MAC-адреса: adb shell ip a. 2: eth0: mtu 1500 qdisc pfifo_fast состояние qlen 1000 ссылка/эфир 08:00:27:Д4:Фе:Е0 БРД ФФ:ФФ:ФФ:ФФ:ФФ:ФФ inet 192.168.56.101 / 24 brd 192.168.56.255 сфера применения глобальный eth0 inet6 на fe80::от A00:27ff:fed4:fee0/64 масштаб ссылке valid_lft навсегда preferred_lft навсегда 3: eth1: mtu 1500 qdisc pfifo_fast состояние вверх по qlen 1000 ссылка/эфир 08:00:27:С8:37:Е7 БРД ФФ:ФФ:ФФ:ФФ:ФФ:ФФ inet 10.0.3.15 / 24 brd 10.0.3.255 область применения глобальный eth1 inet6 на fe80::от A00:27ff:fec8:37e7/64 масштаб ссылке .

Извините, но мы не предоставляем поддержку для конкретной ROM. Однако Я настоятельно рекомендуем посетить сообщество по адресу: https://groups.google.com/forum#!форум / genymotion-пользователи

1. What an OVA file consits of and how can it be created  ?From what i have seen it contains few VMDK's and few configurations files

прикрепленный к нему,

" весь каталог может быть распространен как пакет OVA, который является архивный файл tar с каталогом OVF внутри." (http://en.wikipedia.org/wiki/Open_Virtualization_Format)

2. How to convert the platform specific image files(system.img ramdisk.img userdata.img) into an OVA or ISO file.

If at all we are missing few files to give to the emulator, can you just name them.

пожалуйста, прочитайте учебники сообщества

3. Also how to add IMEI number

в настоящее время нет способа добавить номер IMEI. Эта функция придет в ближайшее время

4. We already have MAC for eth0 port but we want it on wlan port

есть 2 интерфейса: eth0 и eth1. Eth0 используется для Genymotion виджеты приложений. Если это сетевое соединение нарушено, Genymotion больше не сможет начать. Eth1 используется для сетевого тока доступ (поддельное соединение WiFi). Вы можете изменить эту сеть конфигурация, как вы хотите.

2 ответов


это обычная практика для мобильных приложений, чтобы идентифицировать пользователя по номеру IMSI (связанный с SIM-картой) или IMEI (уникальный идентификатор устройства). Конечно, это также возможно на Android:

TelehponyManager manager = (TelehponyManager)getSystemService(TELEPHONY_SERVICE);
String imei = manager.getDeviceId();
String imsi = manager.getSubscriberId();

этот код отлично работает на реальном устройстве, однако в эмуляторе IMEI всегда равен нулю, и он не настраивается. Это быстро становится неудобным при отладке сетевого приложения, которое использует IMEI в качестве идентификатора пользователя.

пытаемся решить проблема я сначала посмотрел на службу TelephonyManager, чтобы найти следующий фрагмент:

private IPhoneSubInfo getSubscriberInfo() {
// get it each time because that process crashes a lot
return IPhoneSubInfo.Stub.asInterface(ServiceManager.getService("iphonesubinfo"));
}

справедливый комментарий, не так ли? Это действительно сделал мой день:)

во всяком случае, анализ кода показывает, что запрос IMEI/IMSI проходит через все уровни телефонии (см. диаграмму), в конечном итоге добираясь до устройства основной полосы. В случае эмулируемой системы демон rild используется вместе с libreference-ril.so-справочник поставщика RIL библиотека, которая разговаривает с модемом основной полосы устройство, использующее простые, старые команды AT.

само модемное устройство эмулируется вне системы Android, как часть qemu (который является сердцем эмулятора). Детали связи между эмулятором и системой Android, работающей внутри эмулятора, интересны сами по себе (вся связь проходит через виртуальный последовательный порт, демон Qemud системы Android используется для (de)мультиплексирования данных). Я попытаюсь опубликовать краткое введение в тему скоро.

реализация виртуального модема может быть найдена в external/qemu/telephony / android_modem.c. Наиболее важной частью файла является эта функция:

const char*  amodem_send( AModem  modem, const char*  cmd );

эта функция вызывается для каждой полученной команды. Для каждой команды выполняется поиск массива sDefaultResponses для данной команды и либо отправляется предопределенный ответ, либо выполняется обработчик команды. Сам массив выглядит так:

static const struct {
const char*      cmd;     /* command coming from libreference-ril.so, if first
                             character is '!', then the rest is a prefix only */

const char*      answer;  /* default answer, NULL if needs specific handling or
                             if OK is good enough */

ResponseHandler  handler; /* specific handler, ignored if 'answer' is not NULL,
                             NULL if OK is good enough */
} sDefaultResponses[] =
{
    /* ... */
    { "+CIMI", OPERATOR_HOME_MCCMNC "000000000", NULL },   /* request internation subscriber identification number */
    { "+CGSN", "000000000000000", NULL },   /* request model version */
    /* ... */
};

две строки массива, приведенные выше, отвечают за IMSI и IMEI поиска. Как вы можете видеть, оба значения жестко закодированы, и нет возможности изменить их без перекомпиляции эмулятора.

тем не менее, старая школа Хак пригодится. Двоичный файл эмулятора не зашифрован и не сжат, поэтому строковые литералы должны быть видны внутри двоичного файла эмулятора. На самом деле они есть, и номер IMEI может быть изменен в несколько простых шагов:

** backup the emulator binary
** open the binary with your favourite hex editor
** search for +CGSN string followed by a null byte, it should be followed by 15 digits of the IMEI number
** edit the number, be careful not to change the number of digits
** save the file, that’s all!

конечно, это не совсем удобное решение, но все же лучше, чем ничего. В в следующей части я объясню, как сделать номер IMEI настраиваемой опцией. Наслаждайтесь!


вы видели любую из этих ссылок для первой части вашего вопроса:

получить IMEI в эмуляторе GenyMotion

https://codepainters.wordpress.com/2009/12/11/android-imei-number-and-the-emulator/

и эта ссылка для части MAC:

имеет ли эмулятор устройства Android MAC-адрес?