I do this in a more permanent way - instead of installing the APKs each time with adb
, permanently add them to the system image that the emulator uses. You will need Yaffey on Windows, or a similar utility on other systems, to modify YAFFS2 images. Copy GoogleLoginService.apk
, GoogleServicesFramework.apk
, and Phonesky.apk
(or Vending.apk
in older versions of Android) to the /system/app
folder of the system.img
file of the emulator. Afterwards I can start the emulator normally, without messing with adb, and Play Store is always there.
Downloading Google Apps from some Internet site may not be quite legal, but if you have a phone or tablet with a corresponding Android version, just pull them out of your device:
adb -d root
adb -d pull /system/app/GoogleLoginService.apk
adb -d pull /system/app/GoogleServicesFramework.apk
adb -d pull /system/app/Phonesky.apk
You must have root-level access (run adb root) to the device in order to pull these files from it.
Now start yaffey
on Windows or a similar utility on Linux or Mac, and open system.img
for the emulator image you want to modify. I modify most often the one in [...]\android-sdk\system-images\android-17\x86
.
Rename the original system.img
to system-original.img
. Under yaffey, copy the APK files you pulled from your device to /app folder. Save your modified image as system.img
in the original folder. Then start your emulator (in my case it would be Android 4.2 emulator with Intel Atom processor running under Intel HAX, super-fast on Windows machines) and you'll have Play Store there. I did not find it necessary to delete SdkSetup.apk
and SdkSetup.odex
- the Play Store and other services still work fine for me with these files present.
When finished with your testing, to alleviate your conscience guilty of temporarily pirating the Google Apps from your device, you may delete the modified system.img
and restore the original from system-original.img
.