Привет, Хабр!
Хочу поделиться своим опытомнабивания шишек добавления Google Play в эмулятор, входящий в состав Android SDK. Вы спросите: "Да что тут может быть сложного? Добавить нужные .apk и пользоваться с удовольствием, об этом уже писали на Хабре тут!"
А вот и нет, подводных камней оказалось достаточно много. О них я расскажу под катом. Кстати, попутно расскажу как получить root права для эмулятора.

Интересно? Добро пожаловать под кат.
UPD: Обновил устаревшие ссылки.
И так, для начала — чем моя инструкция отличается от написанной ранее? Тем, что при использовании Google Play вы не столкнётесь с такой картиной, когда в категориях видно три с половиной приложения. Например вот, в Top Free видно целых два (sic!) приложения.:

Инструкция написана для ОС Windows, но подойдёт и для других поддерживаемых SDK ОС, просто с маленькими изменениями.
Нам потребуется:
Andoid SDK со следующими установленными пакетами:
Создайте папку с именем GooglePlay и откройте консоль в ней. Это легко сделать, кликнув правой кнопкой в папке, с зажатой клавишей Shift. К сожалению это работает только в Windows Vista и выше. Тем, кто пользуется XP, придётся писать пути для cd.
Теперь нужно скачать кое-какие файлы. Сохраняйте все загрузки в созданную папку.
Мы используем эмулятор 2.3, поэтому берём:
После установки всех пакетов — добавьте android-sdk\tools и android-sdk\platform-tools в системный PATH для удобства работы.
Создайте эмулятор для Android 2.3 с помощью AVD Manager, задав размер SD карты в 200-250 мб.

Запустите эмулятор и когда он полностью загрузится — откройте командую строку и введите команду "adb devices". Вы должны будете увидеть эмулятор в списке подключённых устройств:

Если его там нет — в эмуляторе заходим в настройки (Кнопка меню — Настройки — Приложения — Разработка). Поставьте галочку на пункте "Отладка по USB" и перезапустите эмулятор. Теперь он должен отображаться в списке.
Далее вас ждёт увлекательныйне очень ввод кучи консольных команд и ожидание.
Нам понадобятся файлы GoogleServicesFramework.apk, MarketUpdater.apk и Vending.apk из скачанного архива с GoogleApps. Откройте его и скопируйте их в созданную ранее папку.
Теперь нам нужно сделать несколько хитрых хаков для того чтобы нам были доступны все приложения из Google Play, вне зависимости от их требований. Иначе — вас ожидает картина из нескольких одиноких приложений, как было показано выше. Стоит сделать ремарку — запустить неподдерживаемые приложения не получится, но эти хаки позволят скачать эти приложения на девайс и, после, вытащить apk из эмулятора, например.
Выполняем команду:
На всякий случай замечу, что точка в конце команды — это не опечатка.
В папке появится файлик build.prop. Открываем его текстовым редактором, находим строчку начинающуюся с ro.product.cpu.abi
После неё добавляем ещё одну строку:
Так же, после комментария ADDITIONAL_BUILD_PROPERTIES нужно добавить строчку
Это позволит нам видеть приложения, которые требуют архитектуру процессора ARM7 и поддержку версии версии 2.0.
Так же нам нужен архив с permissions, который можно взять здесь.
Перетащите папку permissions из архива в нашу папку GooglePlay.
Эти файлы нужны для приложений, которые требуют определённое оборудование для работы. Например камеру, или акселерометр.
Кстати, насчёт ввода кучи консольных команд я соврал. Хе-хе.
Вам нужно будет всего лишь создать два .bat файлика. Приступим-с.
Первый файл назовите permissions.bat и наполните его таким вот содержанием:
После — создайте ещё один, с произвольным названием, например make.bat и таким содержанием:
Для тех, кто выбрал эмулятор от Intel — обратите внимание на названия файлов в make.bat.
Строчки
следует заменить на:
В итоге содержимое папки GooglePlay должно быть таким:

Теперь — запускайте файл make.bat и начинайте ждать. Имейте ввиду, что последние две команды из файла make.bat будут выполняться долго. Есть маленькая хитрость — что бы ускорить этот процесс нужно что-нибудь делать на эмуляторе. Например, серфить хабрахабр из эмулятора. Я не знаю как и почему, но когда эмулятор нагружен — это здорово ускоряет процесс создания и копирования system.img.
После того, как консоль отрапортует о выполнении своим закрытием, мы обнаружим в рабочей папке файлик system.img. Теперь закроем эмулятор. Не нужно сразу логиниться или устанавливать какие-то приложения — вы потеряете все изменения после перезапуска эмулятора.
Хватайте появившийся system.img и заменяйте им файлик из папки
Если кто-то взял за основу x86 образ от Intel — используйте папку
Не забудьте сделать резервную копию оригинального system.img!
Обратите внимание, что папка android-10 эквивалента для андроида версии 2.3. Для других версий андроида число после android- равно API Level данной версии.
Теперь заходите в папку, в которой у вас находятся файлы эмулятора и удаляйте файлы "cache.img", "userdata-qemu.img", "snapshot.img", "userdata.img"(если он там есть). По умолчанию для Win7 это
После этого запускайте эмулятор, открывайте Google Play, логиньтесь, принимайте условия соглашения и… перезапускайте эмулятор ещё раз, потому что, зачастую, приложения не хотят загружаться сразу после логина.
И вот, после последней перезагрузки, вы наконец-то можете полноценно пользоваться эмулятором.

Надеюсь, моя статья поможет кому-нибудь сохранить время. Спасибо за то, что уделили время на её прочтение.
Хочу поделиться своим опытом
А вот и нет, подводных камней оказалось достаточно много. О них я расскажу под катом. Кстати, попутно расскажу как получить root права для эмулятора.

Интересно? Добро пожаловать под кат.
UPD: Обновил устаревшие ссылки.
И так, для начала — чем моя инструкция отличается от написанной ранее? Тем, что при использовании Google Play вы не столкнётесь с такой картиной, когда в категориях видно три с половиной приложения. Например вот, в Top Free видно целых два (sic!) приложения.:

Инструкция написана для ОС Windows, но подойдёт и для других поддерживаемых SDK ОС, просто с маленькими изменениями.
Нам потребуется:
Andoid SDK со следующими установленными пакетами:
- Android SDK Tools
- Android SDK Platform-tools
- SDK Platform для Android 2.3.3
- Extras/Android Support
- Extras/Google USB Driver
Создайте папку с именем GooglePlay и откройте консоль в ней. Это легко сделать, кликнув правой кнопкой в папке, с зажатой клавишей Shift. К сожалению это работает только в Windows Vista и выше. Тем, кто пользуется XP, придётся писать пути для cd.
Теперь нужно скачать кое-какие файлы. Сохраняйте все загрузки в созданную папку.
Мы используем эмулятор 2.3, поэтому берём:
- Google Apps для CyanogenMod 7
- Утилиту mkfs.yaffs2: для ARM эмулятора
- Или же mkfs.yaffs2 для x86 эмулятора
- SuperUser.apk и su для ARM или x86.
После установки всех пакетов — добавьте android-sdk\tools и android-sdk\platform-tools в системный PATH для удобства работы.
Создайте эмулятор для Android 2.3 с помощью AVD Manager, задав размер SD карты в 200-250 мб.

Запустите эмулятор и когда он полностью загрузится — откройте командую строку и введите команду "adb devices". Вы должны будете увидеть эмулятор в списке подключённых устройств:

Если его там нет — в эмуляторе заходим в настройки (Кнопка меню — Настройки — Приложения — Разработка). Поставьте галочку на пункте "Отладка по USB" и перезапустите эмулятор. Теперь он должен отображаться в списке.
Далее вас ждёт увлекательный
Нам понадобятся файлы GoogleServicesFramework.apk, MarketUpdater.apk и Vending.apk из скачанного архива с GoogleApps. Откройте его и скопируйте их в созданную ранее папку.
Теперь нам нужно сделать несколько хитрых хаков для того чтобы нам были доступны все приложения из Google Play, вне зависимости от их требований. Иначе — вас ожидает картина из нескольких одиноких приложений, как было показано выше. Стоит сделать ремарку — запустить неподдерживаемые приложения не получится, но эти хаки позволят скачать эти приложения на девайс и, после, вытащить apk из эмулятора, например.
Выполняем команду:
adb pull system/build.prop .
На всякий случай замечу, что точка в конце команды — это не опечатка.
В папке появится файлик build.prop. Открываем его текстовым редактором, находим строчку начинающуюся с ro.product.cpu.abi
После неё добавляем ещё одну строку:
ro.product.cpu.abi2=armeabi-v7a
Так же, после комментария ADDITIONAL_BUILD_PROPERTIES нужно добавить строчку
ro.opengles.version=131072
Это позволит нам видеть приложения, которые требуют архитектуру процессора ARM7 и поддержку версии версии 2.0.
Так же нам нужен архив с permissions, который можно взять здесь.
Перетащите папку permissions из архива в нашу папку GooglePlay.
Эти файлы нужны для приложений, которые требуют определённое оборудование для работы. Например камеру, или акселерометр.
Кстати, насчёт ввода кучи консольных команд я соврал. Хе-хе.
Вам нужно будет всего лишь создать два .bat файлика. Приступим-с.
Первый файл назовите permissions.bat и наполните его таким вот содержанием:
adb push permissions/android.hardware.camera.autofocus.xml /system/etc/permissions/
adb push permissions/android.hardware.camera.flash-autofocus.xml /system/etc/permissions/
adb push permissions/android.hardware.camera.front.xml /system/etc/permissions/
adb push permissions/android.hardware.camera.xml /system/etc/permissions/
adb push permissions/android.hardware.location.gps.xml /system/etc/permissions/
adb push permissions/android.hardware.location.xml /system/etc/permissions/
adb push permissions/android.hardware.sensor.accelerometer.xml /system/etc/permissions/
adb push permissions/android.hardware.sensor.compass.xml /system/etc/permissions/
adb push permissions/android.hardware.sensor.gyroscope.xml /system/etc/permissions/
adb push permissions/android.hardware.sensor.light.xml /system/etc/permissions/
adb push permissions/android.hardware.sensor.proximity.xml /system/etc/permissions/
adb push permissions/android.hardware.telephony.gsm.xml /system/etc/permissions/
adb push permissions/android.hardware.touchscreen.multitouch.jazzhand.xml /system/etc/permissions/
adb push permissions/android.hardware.touchscreen.multitouch.xml /system/etc/permissions/
adb push permissions/android.hardware.touchscreen.xml /system/etc/permissions/
adb push permissions/android.hardware.wifi.xml /system/etc/permissions/
adb push permissions/android.software.live_wallpaper.xml /system/etc/permissions/
adb push permissions/android.software.sip.voip.xml /system/etc/permissions/
adb push permissions/com.android.location.provider.xml /system/etc/permissions/
adb push permissions/features.xml /system/etc/permissions/
adb push permissions/handheld_core_hardware.xml /system/etc/permissions/
adb push permissions/platform.xml /system/etc/permissions/
После — создайте ещё один, с произвольным названием, например make.bat и таким содержанием:
adb remount
adb push build.prop /system/
adb push su /system/bin/
adb push Superuser.apk /system/app/
adb push Vending.apk /system/app/
adb push MarketUpdater.apk /system/app/
adb push GoogleServicesFramework.apk /system/app/
call permissions.bat
adb push mkfs.yaffs2 /data/misc/
adb shell rm /system/app/SdkSetup.apk
adb remount
adb shell chmod 4755 /system/bin/su
adb shell chmod 777 /data/misc/mkfs.yaffs2
adb shell ./data/misc/mkfs.yaffs2 /system /sdcard/system.img
adb pull /sdcard/system.img system.img
Для тех, кто выбрал эмулятор от Intel — обратите внимание на названия файлов в make.bat.
Строчки
adb push su /system/bin/
adb push mkfs.yaffs2 /data/misc/
adb shell chmod 777 /data/misc/mkfs.yaffs2
adb shell ./data/misc/mkfs.yaffs2 /system /sdcard/system.img
следует заменить на:
adb push su.x86 /system/bin/su
adb push mkfs.yaffs2.x86 /data/misc/
adb shell chmod 777 /data/misc/mkfs.yaffs2.x86
adb shell ./data/misc/mkfs.yaffs2.x86 /system /sdcard/system.img
В итоге содержимое папки GooglePlay должно быть таким:

Теперь — запускайте файл make.bat и начинайте ждать. Имейте ввиду, что последние две команды из файла make.bat будут выполняться долго. Есть маленькая хитрость — что бы ускорить этот процесс нужно что-нибудь делать на эмуляторе. Например, серфить хабрахабр из эмулятора. Я не знаю как и почему, но когда эмулятор нагружен — это здорово ускоряет процесс создания и копирования system.img.
После того, как консоль отрапортует о выполнении своим закрытием, мы обнаружим в рабочей папке файлик system.img. Теперь закроем эмулятор. Не нужно сразу логиниться или устанавливать какие-то приложения — вы потеряете все изменения после перезапуска эмулятора.
Хватайте появившийся system.img и заменяйте им файлик из папки
android-sdk/platforms/android-10/images/
Если кто-то взял за основу x86 образ от Intel — используйте папку
android-sdk/add-ons/addon-intel_atom_x86_system_image-intel_corporation-10/images/x86
Не забудьте сделать резервную копию оригинального system.img!
Обратите внимание, что папка android-10 эквивалента для андроида версии 2.3. Для других версий андроида число после android- равно API Level данной версии.
Теперь заходите в папку, в которой у вас находятся файлы эмулятора и удаляйте файлы "cache.img", "userdata-qemu.img", "snapshot.img", "userdata.img"(если он там есть). По умолчанию для Win7 это
C:/Users/ИмяВашегоПользователя/.android/avd/имяВашегоЭмулятора.avd/
После этого запускайте эмулятор, открывайте Google Play, логиньтесь, принимайте условия соглашения и… перезапускайте эмулятор ещё раз, потому что, зачастую, приложения не хотят загружаться сразу после логина.
И вот, после последней перезагрузки, вы наконец-то можете полноценно пользоваться эмулятором.

Надеюсь, моя статья поможет кому-нибудь сохранить время. Спасибо за то, что уделили время на её прочтение.