Добавьте IMEI и MAC в wlan0 в Genymotion/AndroVM
Есть ли способ добавить IMEI в AndroVM (теперь Genymotion) или любой другой эмулятор Android. А также я хочу MAC-адрес для порта wlan0. У нас уже есть эмуляторы, которые содержат MAC в порту lan0, но не для wlan.
Как мы можем это сделать?
если кто-то из ваших знакомых сделал это, попросите их внести свой вклад.
Подробнее:
Я пытаюсь создать облачный центр тестирования приложений для Android в качестве моего предыдущего проекта колледжа за неполное исполнение в отношении степени бакалавра технологий (компьютерных наук).
Мне интересно, как мы можем получить больше конфигураций для Genymotion.
Или, если вы можете предоставить мне больше конфигураций устройств, и если можно быстро создать конфигурации для genymotion для разных устройств.
Во-вторых, как добавить MAC-адреса и номер IMEI в сборки?
Мы пытаемся подражать мобильному устройству (не Google Nexus), чтобы создать облачный центр тестирования.
Для этого мы пытаемся использовать androVM (Genymotion), и перед нами стоят несколько проблем.
Что мы сделали до сих пор
- Построение исходного кода androVm в режиме "VBOX86tp-userdebug" с нуля после выполнения шагов, указанных на официальном веб-сайте Android.
- После создания исходного кода на виртуальном сервере ec2 введите команду эмулятора, но ее пустое.
- И если возможно, AndroVm можно запустить в режиме "Fastboot", чтобы мы могли установить его на устройство.
Мы работаем над созданием androVm из исходного кода и пытаемся выполнить несколько задач, таких как
- Запуск с помощью img, доступный после завершения процесса сборки.
- Сделать это переносимым, т.е. создать изо /ova из всего материала, найденного в выпадающем каталоге.
То, что мы пробовали до сих пор
Загрузка исходного кода AndroVm
инициализация репо с использованием репо init
Загрузка исходного кода с использованием синхронизации репо
выбор обеденного меню с обедом
выбор vbox86tp-userdebug
Другие меню full-eng не работают так прекращено
Немного ошибок, которые пришли нам на помощь
Сделайте ошибки: они были довольно простыми, поэтому были разрешены
system.img не сгенерировался: разрешено, сделав его снова
bin/ bash Ошибка команды jar: это была ошибка пути, разрешенная путем экспорта пути к команде jar.
Несколько вопросов
- Что представляет собой файл OVA и как его можно создать? Из того, что я видел, он содержит несколько файлов VMDK и несколько конфигураций, прикрепленных к нему,
- Как преобразовать файлы изображений, специфичные для платформы (system.img ramdisk.img userdata.img) в файл OVA или ISO.
Если вообще нам не хватает нескольких файлов для эмулятора, вы можете просто назвать их.
- Также как добавить номер IMEI
- У нас уже есть MAC для порта eth0/1, но мы хотим его на порту wlan
![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 2.
Вы можете изменить размер экрана и DPI для каждого виртуального устройства. Вы может переключать навигационную панель и виртуальную клавиатуру. Однако мы не можем предоставлять виртуальные устройства, которые содержат проприетарные приложения, такие как Samsung.
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 состояние UP qlen 1000 link/ether 08: 00: 27: d4: fe: e0 brd ff: ff: ff: ff: ff: ff inet 192.168.56.101/24 brd 192.168.56.255 scope global eth0 inet6 fe80:: a00: 27ff: fed4: fee0/64 scope link valid_lft forever preferred_lft навсегда 3: eth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08: 00: 27: c8: 37: e7 brd ff: ff: ff: ff: ff: ff inet 10.0.3.15/24 brd 10.0.3.255 объем глобального eth1 inet6 fe80:: a00: 27ff: ссылка fec8: 37e7/64.
Извините, но мы не предоставляем поддержку для конкретного ПЗУ. Тем не менее, я настоятельно рекомендуем посетить сообщество по адресу: https://groups.google.com/forum/#!forum/genymotion-users
1. What an OVA file consits of and how can it be created ?From what i have seen it contains few VMDK 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). Вы можете изменить эту сеть как вы хотите.
Ответы
Ответ 1
Общепринятой практикой для мобильных приложений является идентификация пользователя по номеру 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 - Reference VIDOR, которая обращается к модемному модему с использованием простых старых AT-команд.
Само модемное устройство эмулируется вне системы Android, как часть qemu (который является сердцем эмулятора). Информация об обмене между эмулятором и системой Android, работающей внутри эмулятора, интересна сама по себе (все коммуникации проходят через виртуальный последовательный порт, системы Android qemud daemon используется для (де) мультиплексирования данных). Я постараюсь опубликовать краткое введение в эту тему в ближайшее время.
Реализация виртуального модема может быть найдена во внешнем/qemu/телефонии/android_modem.c. Наиболее важной частью файла является эта функция:
const char* amodem_send( AModem modem, const char* cmd );
Эта функция вызывается для каждой принятой команды AT. Для каждой команды массив 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 настраиваемым. Наслаждайтесь!
Ответ 2
Вы видели ни одну из этих ссылок для первой части вашего вопроса:
Получить IMEI в эмуляторе GenyMotion
https://codepainters.wordpress.com/2009/12/11/android-imei-number-and-the-emulator/
и эта ссылка для части MAC:
Есть ли у эмулятора Android-устройства MAC-адрес?