Все началось с необходимости поправить hosts на эмуляторе от Intel. Только вот все найденные инструкции не привели к положительному результату, как оказалось, из-за read-only системного образа. Так как описанная мною задача правки hosts не такая уж и популярная, было решено заменить ее на более актуальную и интересную.
В результате вы получите эмулятор с открытой файловой системой и доступом в Google Play.
Ну что ж, будем обогащать наш эмулятор различными гугловскими сервисами!
Все действия описаны для Android 4.2 Intel Emulator и выполнены под OS X. По ходу статьи обеспечу прямыми линками на файлы, на всякий случай укажу страницы, где их можно скачать.
Шаги для Linux пользователей будет практически идентичны, Windows пользователям необходимо будет самостоятельно найти нужные бинарники.
Для начала вернем в нашу ОС менеджер пакетов
В качестве решения идеально подойдет Homebrew: как установить и отказаться от l начать использовать brew в OS X.
Ставим unyaffs
Ради него и был установлен менеджер пакетов, а сам unyaffs нужен, чтобы извлечь внутренности системного образа эмулятора.
В терминале:
Заранее побеспокоимся об обратной операции упаковки в образ
а) качаем исходный код (yaffs2-source.tar) с этой страницы code.google.com/p/fatplus/downloads/list
б) извлекаем
в) добавляем 2 строчки в конце файла devextras.h перед последним #endif
д) копируем файл mkyaffs2image в папку /usr/local/bin (любителям UI. Finder: cmd + shift + G)
Источник: nookdevs.com/Yaffs2OSX
Потрошим
В терминале:
Начиняем
а) качаем gapps.ics.20120703-2-aroma.zip с этой страницы code.google.com/p/android-google-apps/downloads/list
б) распаковываем
в) достаточно скопировать 4 apk'шки и удалить одну. В терминале переходим в распакованную папку, далее выполняем:
Сшиваем
В терминале:
И так, осталось всего лишь проверить на работоспособность нашего франкенштейна
В терминале:
Как видим, ассортимент в Google Play немножко хромает. Но не беда: правьте как вам угодно build.prop файл, который находится в корне системного образа, должно помочь!
UPD: еще нужно добавить нужные permissions. Спасибо sergeyotro!
P.S. Все проделанные манипуляции адекватны не только для Intel эмулятора с последней версией Android, но также и для предыдущих, начиная с ICS. Только не забудьте поправить в командах путь к папке с системным образом внутри SDK.
В результате вы получите эмулятор с открытой файловой системой и доступом в Google Play.
Ну что ж, будем обогащать наш эмулятор различными гугловскими сервисами!
Все действия описаны для Android 4.2 Intel Emulator и выполнены под OS X. По ходу статьи обеспечу прямыми линками на файлы, на всякий случай укажу страницы, где их можно скачать.
Шаги для Linux пользователей будет практически идентичны, Windows пользователям необходимо будет самостоятельно найти нужные бинарники.
Для начала вернем в нашу ОС менеджер пакетов
В качестве решения идеально подойдет Homebrew: как установить и Внимание: может потребоваться дополнительная установка Command Line Tools
а) просто через Xcode:
б) сложно через сайт Apple Developer (зато нет надобности в Xcode):
developer.apple.com/downloads
б) сложно через сайт Apple Developer (зато нет надобности в Xcode):
developer.apple.com/downloads
Ставим unyaffs
Ради него и был установлен менеджер пакетов, а сам unyaffs нужен, чтобы извлечь внутренности системного образа эмулятора.В терминале:
brew install --HEAD unyaffs
Заранее побеспокоимся об обратной операции упаковки в образ
а) качаем исходный код (yaffs2-source.tar) с этой страницы code.google.com/p/fatplus/downloads/listб) извлекаем
в) добавляем 2 строчки в конце файла devextras.h перед последним #endif
typedef long long __kernel_loff_t;
typedef __kernel_loff_t loff_t;
г) запускаем команду make в директории utilsд) копируем файл mkyaffs2image в папку /usr/local/bin (любителям UI. Finder: cmd + shift + G)
Источник: nookdevs.com/Yaffs2OSX
Потрошим
В терминале:cd ~/android-sdk-macosx/system-images/android-17/x86/
mkdir image
cd image/
unyaffs ../system.img
Примечание: путь к SDK меняем в соответствии с вашим положениемРезультат:
Начиняем
а) качаем gapps.ics.20120703-2-aroma.zip с этой страницы code.google.com/p/android-google-apps/downloads/listб) распаковываем
в) достаточно скопировать 4 apk'шки и удалить одну. В терминале переходим в распакованную папку, далее выполняем:
cp system/app/GoogleLoginService.apk ~/android-sdk-macosx/system-images/android-17/x86/image/app/
cp system/app/GoogleServicesFramework.apk ~/android-sdk-macosx/system-images/android-17/x86/image/app/
cp custom/market/Vending.apk ~/android-sdk-macosx/system-images/android-17/x86/image/app/
cp custom/market/MarketUpdater.apk ~/android-sdk-macosx/system-images/android-17/x86/image/app/
rm ~/android-sdk-macosx/system-images/android-17/x86/image/app/SdkSetup.apk
Примечание: путь к SDK меняем в соответствии с вашим положениемСшиваем
В терминале:cd ~/android-sdk-macosx/system-images/android-17/x86/
mv system.img system_original.img
mkyaffs2image image system.img
Примечание: путь к SDK меняем в соответствии с вашим положениемИ так, осталось всего лишь проверить на работоспособность нашего франкенштейна
В терминале:emulator @4.2.x86 &> /dev/null &
или более привычный способandroid avd
Примечание: меняем название эмулятора на своеЕще картинок
Как видим, ассортимент в Google Play немножко хромает. Но не беда: правьте как вам угодно build.prop файл, который находится в корне системного образа, должно помочь!
UPD: еще нужно добавить нужные permissions. Спасибо sergeyotro!
P.S. Все проделанные манипуляции адекватны не только для Intel эмулятора с последней версией Android, но также и для предыдущих, начиная с ICS. Только не забудьте поправить в командах путь к папке с системным образом внутри SDK.