Добавление Google Apps в эмулятор Android (Intel x86 Atom System Image)



    Все разработчики под Android знают, насколько медленно работает эмулятор. В июне прошлого года Intel представила Android, который работает в режиме x86 (без эмуляции ARM). И конечно, скорость эмулятора стала потрясающая. Но в системных образах этих эмуляторов отсутствуют Google Apps (Maps, GMail, Calendar, Google Play, аккаунт Google, ...).

    В этой статье мы добавим приложения от Google.

    Необходимо установить Intel Hardware Accelerated Execution Manager.
    Скачиваем Google Apps (версия CM 10.1)
    Также, через Android SDK необходимо скачать Intel x86 Atom System Image для Android 4.2.2 (API 17).

    Создаём эмулятор:


    Запускаем эмулятор из консоли с увеличенным системным разделом:
    emulator -avd tablet_4.2 -partition-size 512
    

    Заходим в папку, где архив с Google Apps, и запускаем скрипт (скрипт на bash):
    # извлечение Google Apps в папку gapps
    unzip gapps-jb-20121212-signed.zip -d ./gapps
    
    # перемонтирование системного раздела для записи
    adb remount
    
    # Удаление пакета, который сбрасывает все настройки при запуске эмулятора.
    adb shell rm /system/app/SdkSetup*
    
    # Копирование системных приложений из Googe Apps
    adb push ./gapps/system/ /system/
    
    # Скачиваем mkfs.yaffs2.x86 (https://code.google.com/p/android-group-korea/downloads/detail?name=mkfs.yaffs2.x86)
    curl --remote-name https://android-group-korea.googlecode.com/files/mkfs.yaffs2.x86
    
    # Записываем его в эмулятор и делаем образ системы
    adb push mkfs.yaffs2.x86 /system/app
    adb shell chmod 777 /system/app/mkfs.yaffs2.x86
    adb shell /system/app/mkfs.yaffs2.x86 /system /sdcard/system.img
    
    # Извлекаем из SD карты образ (долгая операция)
    adb pull /sdcard/system.img
    
    # Копируем образ в папку с эмулятором
    cp system.img ~/.android/avd/tablet_4.2.avd/
    

    Далее перезапускаем эмулятор в обычном режиме. Теперь у нас система с полным комплектом Google Apps!

    Если будет появляться сообщение, что сбой в клавиатуре, то можно установить любую другую.

    Полученный образ можно сохранить и использовать при создании новых эмуляторов на Android 4.2 (просто копировать его в папку avd соответствующего эмулятора). По этому же принципу можно сделать и под другие версии.

    Успехов в разработке!

    Update:
    Как подсказывает Cancel можно не заморачиваться с yaffs2. Пока работает эмулятор, файл с образом системного раздела можно скопировать из /tmp/android-…
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 20

    • UFO just landed and posted this here
        +3
        Нельзя просто так оставить ссылку, нужно же хоть какое то описание.
          +6
          Ага, а то самая свежая новость по ссылке — "AndroVM moving to a commercial product"
          • UFO just landed and posted this here
              0
            0
            Позволит ли это тестировать покупки с эмулятора?
              0
              Да, там будет установлен Google Play. Но в остальном так же, как и с обычным телефоном. Т.е. нужен аккаунт Google и карта для оплаты.
              Также не забывайте про тестовые аккаунты в Google Play Developer Console (можно указывать какой ответ от сервера будет приходить тестовым аккаунтам).
              И ещё: если вы вернёте деньги или отмените заказ в Google Checkout, то купившему деньги вернутся, но Google Play будет считать что программа куплена.
                0
                Меня и интересовало именно тестирование из под дев аккаунта (не хочется носить с собой кроме ноута еще и реальный девайс)
                  0
                  Не хочется заряжать, кроме ноута, ещё и реальный девайс?
                    0
                    Нет, носить помимо ноута еще и дополнительный девайс (телефон у меня не Android)
              0
              Всё новое — хорошо забытое старое?
              habrahabr.ru/post/134509/
                0
                Тот способ не совсем корректен, и в случае с Google Apps от Android 4.2 не работает. И к тому же он сложен — много ручной работы.
                0
                В Андроид 4.1 появилось офлайн распознавание речи. В своё время на эмуляторе это у меня не получилось заставить работать.

                У кого-нибудь это работает? Может быть подобная схема установки или AndroVM поможет?
                  +1
                  Если ничего не меняли в последнее время, то извращаться с yaffs2 не нужно, файл с образом системного раздела лежит в каталоге /tmp, достаточно его взять, пока эмулятор работает, и положить в ~/.android/avd в нужный каталог.
                    0
                    Спасибо, работает.
                    0
                    Есть ли у вас работающий build.prop, с которым можно ставить практически любое приложение? С дефолтным почти ничего не доступно из-за неподдерживаемости устройства. Пробовал подменять значения по примеру, но как-то не помогает. Даже попробовал под arm — тоже глухо, — не хочет Play кушать виртуалку.
                      0
                      Не поддерживается потому, что в маркете фильтрация стоит. Либо отсутствуют обязательные вещи (компас, например). Если фильтрация стоит просто на уровне маркета, то можно скачать apk через какой нибудь сервис, и попробовать установить через adb.
                        0
                        habrahabr.ru/post/146277/
                        Всего-лишь не хватало permissions и пары строчек в build.prop. Пришлось, правда, раздвинуть system.img до гигабайта, подправить скин WXVGA800, чтобы получить 720x1280 @ 320 dpi. Сами GMS ставил из архива. Но push не срабатывал из-за ошибок на ФС. Лечилось ручным копированием содержимого архива, а потом то ли пушем поверх, то ли просто удалением cache.img и userdata*.img. Ещё там какая-то головная боль с настройками ввода (на свежеобновлённом образе постоянно падает input: AOSP, Sample Software, Google). Лечится отключением всяких авто-коррекций, выбора только Sample Software Keyboard и перезагрузкой.
                        Пруф из Маркета
                        image
                          0
                          Настройки скина.
                            0
                            Если приложения после входа в Play Market не загружаются (а просто висит прогресс бар без слов), то надо ребутнуть эмулятор один или два раза.

                      Only users with full accounts can post comments. Log in, please.