Google Play na emulatorze Androida 4.0

184

Jak mogę zainstalować .apk Google Play na emulatorze Androida 4.0?

Sarath
źródło
1
Uwaga: komentarze mają mieszane rezultaty, więc może się wahać
amb
ale jest tak samo z innymi wersjami emulatorów i działał tam, więc dlaczego nie powinien działać w 4.x? :)
reox

Odpowiedzi:

259

Pobierz google apps (GoogleLoginService.apk, GoogleServicesFramework.apk, Phonesky.apk)
z tutaj .

Uruchom emulator:

emulator -avd VM_NAME_HERE -partition-size 500 -no-audio -no-boot-anim

Następnie użyj następujących poleceń:

# Remount in rw mode.
# NOTE: more recent system.img files are ext4, not yaffs2
adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system

# Allow writing to app directory on system partition
adb shell chmod 777 /system/app

# Install following apk
adb push GoogleLoginService.apk /system/app/.
adb push GoogleServicesFramework.apk /system/app/.
adb push Phonesky.apk /system/app/. # Vending.apk in older versions
adb shell rm /system/app/SdkSetup*
Mohan raja
źródło
21
Uwaga: Vending.apk nazywa się Phonesky.apk w najnowszych wydaniach
Catalin Morosan
9
Adres URL jest uszkodzony :(
TheDude
16
parametr -partition-size jest ważny, bez niego dostałem wyjątek OutOfMemory podczas pchania apk
Mike
12
Myślę, że ta odpowiedź powinna być odpowiedzią zaakceptowaną. W końcu to JEST faktyczna odpowiedź, obecnie przyjęta odpowiedź (11.11.2013) to tylko „złamanie euli jest jak zła rzecz, prawda?” rodzaj komentarza.
chris-l
4
Czy tylko ja nie jestem w stanie sprawić, żeby to zadziałało? W emulatorach 4.4 i 5.0 dodanie pakietów APK nie pokazuje ikony Sklep Play, a adb rebootjedynie zawiesza się.
Nate,
85

Dla przyszłych gości.

Obecnie platforma Android 4.2.2 obejmuje usługi Google Play. Wystarczy użyć emulatora z Jelly Bean. Szczegóły można znaleźć tutaj:

Skonfiguruj zestaw SDK usług Google Play

EDYTOWAĆ:

Inną opcją jest użycie Genymotion (działa znacznie szybciej)

EDYCJA 2:

Jak skomentował @ gdw2: „skonfigurowanie SDK usług Google Play nie instaluje działającej aplikacji Google Play - po prostu włącza niektóre usługi dostarczane przez SDK”

Po wersji 2.0 Genymotion nie jest domyślnie dostarczany z usługami Play, ale można go łatwo zainstalować ręcznie. Wystarczy pobrać odpowiednią wersję stąd i przeciągnąć i upuścić na urządzenie wirtualne (emulador).

Androiderson
źródło
1
@quinestor tak to robi
Androiderson
6
Swieta matka! Genymotion jest słodki!
Ross Hambrick
6
@ Wyjątek-al Myślę, że powinieneś zaktualizować swoją odpowiedź, aby wyjaśnić, że skonfigurowanie pakietu SDK usług Google Play nie powoduje zainstalowania działającej aplikacji Google Play - po prostu włącza niektóre usługi dostarczane przez SDK.
gdw2
1
+1 za sugerowanie Genymotion !!! Nie wiedziałem, że istnieje, a teraz nie mogę bez niego żyć. Gra bezbłędnie w Android Studio (wystarczy dodać wtyczkę), a teraz mogę debiutować aplikacjami Google Maps V2 bez uciekania się do „prawdziwych” urządzeń! Stukrotne dzięki!
Loudenvier,
1
@SeanChamp dobry punkt, ale ostateczne testy powinny zawsze odbywać się na prawdziwym urządzeniu
Androiderson
27

Robię to w bardziej trwały sposób - zamiast instalować pliki APK za każdym razem adb, na stałe dodaj je do obrazu systemu używanego przez emulator. Będziesz potrzebował Yaffey w systemie Windows lub podobnego narzędzia w innych systemach, aby modyfikować obrazy YAFFS2. Kopiowanie GoogleLoginService.apk, GoogleServicesFramework.apki Phonesky.apk(lub Vending.apkw starszych wersjach Androida) do /system/appfolderu zsystem.img plikiem emulatora. Następnie mogę uruchomić emulator normalnie, bez bałagania w adb, a Play Store jest zawsze dostępny.

Uzyskiwanie aplikacji Google Play z urządzenia

Pobieranie Google Apps z niektórych witryn internetowych może nie być w pełni legalne, ale jeśli masz telefon lub tablet z odpowiednią wersją Androida, po prostu wyciągnij je z urządzenia:

adb -d root
adb -d pull /system/app/GoogleLoginService.apk
adb -d pull /system/app/GoogleServicesFramework.apk
adb -d pull /system/app/Phonesky.apk

Musisz mieć dostęp na poziomie root (uruchomić adb root) do urządzenia, aby pobrać z niego te pliki.

Dodanie go do obrazu

Teraz uruchom yaffeyw systemie Windows lub podobnym narzędziu w systemie Linux lub Mac i otwórz system.imgobraz emulatora, który chcesz zmodyfikować. Najczęściej modyfikuję ten w [...]\android-sdk\system-images\android-17\x86.

Zmień nazwę oryginału system.imgna system-original.img. W obszarze yaffey skopiuj pliki APK pobrane z urządzenia do folderu / app. Zapisz zmodyfikowany obraz jak system.imgw oryginalnym folderze. Następnie uruchom emulator (w moim przypadku byłby to emulator Androida 4.2 z procesorem Intel Atom działającym pod Intel HAX, superszybkim na komputerach z systemem Windows), a tam będziesz mieć Sklep Play. Nie uważałem za konieczne, aby usunąć SdkSetup.apki SdkSetup.odex- Sklep Play i inne usługi nadal działają dobrze dla mnie z tymi plikami.

Po zakończeniu testowania, aby złagodzić sumienie związane z tymczasowym piractwem Google Apps z urządzenia, możesz usunąć zmodyfikowane system.imgi przywrócić oryginał system-original.img.

gregko
źródło
5
Wydaje się, że nie istnieje działający edytor YAFF2 dla Linuksa - ale na szczęście okazuje się, że po zmianie w jednym wierszu sam Yaffey kompiluje się i działa w systemie Linux. Wysłałem kroki, których użyłem na to pytanie Zadaj Ubuntu.
Ślimak mechaniczny
+ 1s to zdecydowanie za mało dla aha- moment szczęścia. StackOverflow powinien mieć przycisk „pocałuj-tak-ur-tak-szczęśliwy” :)
Abhishek Susarla
Byłem w stanie wyciągnąć trzy APK z telefonu z Androidem 4.1.2 bez roota, ale wciąż pracuję nad tym, aby zainstalować je gdzie indziej.
bonh
Jakaś alternatywa dla Maca?
Olcay Ertaş,
1
@ OlcayErtaş Mac Yaffey: github.com/danielkutik/yaffey . Tworzy aplikację Yaffey.app, działa idealnie na moim Yosemite.
Xiao,
4
  1. Pobierz pakiet Gapps ze strony http://goo.im/gapps
  2. wyodrębnij GoogleLoginService.apk, GoogleServicesFramework.apk i Vending.apk Przejdź do typu okna cmd adb shell
    1. na typ powłoki mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
    2. następnie naciśnij Ctrl + c, aby wyjść. cd do katalogu, do którego wyodrębniono apki,
    3. rodzaj adb push <appname>.apk /system/app
    4. następnie wpisz adb reboot
bezsenność
źródło
Gdzie muszę umieścić plik .apk. W moim projekcie lub narzędziu pakietu pakietu reklam?
Steve,
skopiuj go do narzędzi platformy, chyba że ustawiłeś zmienną środowiskową PATH
insomniac
1
Odmowa zezwolenia.
Sanyam Jain
@SanyamJain Czy rozwiązałeś ten problem? Otrzymuję tę samą wiadomość, mount: odmowa zezwolenia
Joshua Son
@JoshuaSon: Nie, nie mogłem. Po przeczytaniu z różnych źródeł doszedłem do wniosku, że może nie być to warte wysiłku, ponieważ emulator ciągle się zawiesza lub ta strategia nie działa dla nadchodzących wersji Androida. Popraw mnie, jeśli się mylę :)
Sanyam Jain
2

Możesz pobrać go z telefonu z systemem Android 4.0, a następnie zamontować obraz systemu rwi skopiować go.

Nie próbowałem tego wcześniej, ale powinno działać.

reox
źródło
Nie, zip z GAPPS jest za duży.
IgorGanapolsky
2

To jest dla mnie proste. Pobrałem plik APK na komputer i przeciągam go do emulatora. Zainstaluj go dla mnie w Google Play. Mam nadzieję, że to pomoże komuś

Muhammad Asif Javed
źródło
0

Playstore + usługi Google Play w systemie Linux (Ubuntu 14.04)


Pobierz aplikacje Google (GoogleLoginService.apk, GoogleServicesFramework.apk)

stąd http://www.securitylearn.net/2013/08/31/google-play-store-on-android-emulator/

i pobierz (Phonesky.apk) stąd https://basketbuild.com/filedl/devs?dev=dankoman&dl=dankoman/Phonesky.apk

PRZEJDŹ DO LOKALIZACJI SDK NA ANDROIDA >>

cd -Android SDK's narzędzia Lokalizacja-

ABY URUCHOMIĆ EMULATOR >>

Android / Sdk / tools $ ./emulator64-x86 -avd Kitkat -partycja-rozmiar 566 -no-audio -no-boot-anim

USTAW ZEZWOLENIA >>

cd Android / Sdk / platform-tools platform-tools $ adb shell mount -o remount, rw -t yaffs2 / dev / block / mtdblock0 / system

platform-tools $ adb shell chmod 777 / system / app

platform-tools $ adb push /home/nazmul/Downloads/GoogleLoginService.apk / system / app /.

PUSH PLAY APK >>

platform-tools $ adb push /home/nazmul/Downloads/GoogleServicesFramework.apk / system / app /. platform-tools $ adb push /home/nazmul/Downloads/Phonesky.apk / system / app /. platform-tools $ adb shell rm / system / app / SdkSetup *

Nazmul
źródło
System nie ma wystarczającej ilości miejsca, aby zainstalować GAPPS.
IgorGanapolsky
-1

Czy kiedykolwiek próbowałeś Genymotion? Czytałem o tym w zeszłym tygodniu i jest świetny. Mają kilka obrazów Androida, które uruchamiasz (z własnym oprogramowaniem). Obrazy są NIESAMOWICIE szybkie i mają zainstalowaną Google Play. Sprawdź, czy potrzebujesz tego.

http://www.genymotion.com/

Oliver Drummond
źródło
genymotion nie zapewnia maszynom wirtualnym poziomu API niższego niż 16
martyglaubitz
Jako komentarz na temat Genymotion, radzę dowolnemu czytelnikowi: Genymotion korzysta z platformy VirtualBox Virtualization. VIrtualBox został zaprojektowany tak, aby emulować platformy mikrokontrolerów Intela. Z powodu tego ograniczenia emulacja platform mikrokontrolera ARM za pomocą Genymotion może być niemożliwa. To oczywiście może służyć do postawienia pytania ortogonalnego, czy, kiedy i dlaczego może być konieczne testowanie wersji beta aplikacji przy użyciu wieloplatformowego zestawu SDK na każdym możliwym mikrokontrolerze lub emulatorze mikrokontrolera. Ograniczenie Intel-virt może nie stanowić większego problemu, nie we wszystkich aplikacjach?
Sean Champ,