Site navigation

Social networks

Contact us

Customization of Intel Android emulator

It all started out of a necessity to edit hosts on an Intel emulator. Unfortunately, all the available manuals turned out to be useless for reason of the system image being read-only. As the above mentioned issue of modifying hosts is not really widespread, I made up my mind to expand it to a more popular and topical task.

As a result you can get an emulator with an open file system and access to Google Play.

Well, let’s start and stuff our emulator with various Google services!

All the actions described herein are for Android 4.2 Intel Emulator and were performed within OS X. I will provide some direct links to the files and will indicate the pages where you can download them from, just in case.

The instructions for Linux users seem to be pretty identical, while Windows users will have to look for the necessary binary files themselves.

To start let’s get package manager back to our OS

Homebrew is an ideal solution: how to install and give up l start using brew for OS X.

Note: additional installation of Command Line Tools may be required

  • A simple way through Xcode:

Android app development


Install unyaffs

We installed the package manager to make it possible to install unyaffs. The unyaffs is necessary to retrieve the stuff of the emulator’s system image.
In the terminal:
brew install --HEAD unyaffs


Take care about the inverse operation of creating an image beforehand

  • extract it
  • add 2 lines at the end of devextras.h before the last #endif
typedef long long          __kernel_loff_t;
typedef__kernel_loff_t loff_t;
  • run ‘make’ in utils directory
  • copy file mkyaffs2image to the directory /usr/local/bin (for UI. Finder fans: cmd + shift + G)

Source: nookdevs.com/Yaffs2OSX

Gut it

In terminal:
cd ~/android-sdk-macosx/system-images/android-17/x86/
mkdir image
cd image/
unyaffs ../system.img

Note: change the path to SDK according to your location
Result:

Android app development


Stuff it

  • unpack
  • it’s enough just to copy 4 apk files and delete one. In the terminal go to the unpacked directory and run:
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

Note: change the path to SDK according to your location

Stitch it

In the terminal:
cd ~/android-sdk-macosx/system-images/android-17/x86/
mv system.img system_original.img
mkyaffs2image image system.img

Note: change the path to SDK according to your location

And here we are, our “Frankenstein’s monster” can be tested

In the terminal:
emulator @4.2.x86 &> /dev/null &
Or the most common way
android avd
Note: exchange the emulator’s name with your own one
Android app development

Android app development

 

Android app development

As you can see, Google Play assortment leaves you wanting more. It’s simply an issue of modifying build.prop file, located in the root of the system image. It works!

And don’t forget to add necessary permissions.

P.S. All the above mentioned manipulations are applicable not only for Intel emulators with the latest Android version, but also for those with previous versions starting with ICS. Just don’t forget to edit the path to the directory containing system image inside SDK, and it’ll work!
Andrey Kudievskiy

ABOUT

WEEZLABS

Not just another web and mobile apps development company!

WeezLabs is about dreaming big and helping our clients reach their full potential.

LEARN MORE

VISIT OUR OFFICE:

1848 Lincoln Blvd, Suite #100,
Santa Monica, CA 90404

TELL US HOW

WE CAN HELP

Call us 310.776.6234 or complete the form below.