Emulator Android Studio nie jest dostarczany ze Sklepem Play dla API 23

92

Wybrałem ten emulator z najnowszej wersji Android Studio AVD.

Google API

Wybrałem najnowszą wersję Android API 23. Ponieważ jest napisane „z interfejsami API Google”, pomyślałem, że będzie zawierał wszystkie aplikacje Google, w tym Sklep Play, dzięki czemu będę mógł instalować aplikacje takie jak Facebook.

Widziałem inne wątki na SO, które wydają się być teraz nieaktualne ( Jak zainstalować aplikację Google Play w emulatorze Android Studio? ), Ten zawiera instrukcje dotyczące instalowania aplikacji Google w oparciu o uniwersalne pakiety, ale dotyczy tylko Androida 4.3 API 18: http://wiki.rootzwiki.com/Google_Apps#Universal_Packages_2

Chciałbym ten dla API 23. Czy jest sposób na zainstalowanie pakietu Google Apps na emulatorze?

Wydaje się dziwne, że oficjalny emulator Androida nie jest standardem we wszystkich aplikacjach Google w pierwszej kolejności ... Nie wydaje się to zbytnio wspierać google i może oznaczać, że programiści będą musieli kupować rzeczywiste urządzenia, aby tworzyć dla API 23 ?

Szymon
źródło
Dzięki pani Yvette. Myślę, że ważne jest, aby uzyskać odpowiedź na to pytanie dla społeczności androidów. Jest wielu programistów androidów bez dostępu do rzeczywistych urządzeń z Androidem i zastanawiam się, jak zamierzają tworzyć dla Androida, gdy nie mają dostępu do wszystkich narzędzi.
Simon,
1
Nie mam wystarczających uprawnień, aby komentować powyżej. Odp .: partycja tylko do odczytu / systemowa, upewnij się, że przekazałeś argument „-writable-system” podczas wywoływania emulator.exe. Na przykład: START / B emulator.exe @ Nexus_7-2012_API_22 -no-boot-anim -writable-system
pjl
@pjl - dziękujemy za komentarz! Dodałem to do mojej odpowiedzi.
Dev-iL
Google twierdzi, że pracuje nad dodaniem obsługi Sklepu Play do emulatora. W międzyczasie możesz wybrać kilka obejść. Korzystanie ze sklepu Amazon Appstore to jedna opcja, ale nie jedyna. Zobacz tutaj .
unforgettableidSupportsMonica

Odpowiedzi:

56

Musiałem to zrobić ostatnio na emulatorze API 23 i postępowałem zgodnie z tym przewodnikiem . Działa dla emulatora API 23, więc nie powinieneś mieć problemu.

Uwaga: wszystkie zasługi należą do autora powiązanego posta na blogu (pyoor). Po prostu zamieszczam to tutaj na wypadek, gdyby link z jakiegoś powodu został zerwany.

....

Pobierz pakiet GAPPS

Następnie musimy pobrać odpowiedni pakiet Google Apps, który pasuje do naszej wersji AVD dla systemu Android. W tym przypadku będziemy używać pakietu „gapps-lp-20141109-signed.zip”. Możesz pobrać ten plik z BasketBuild tutaj .

[pyoor@localhost]$ md5sum gapps-lp-20141109-signed.zip
367ce76d6b7772c92810720b8b0c931e gapps-lp-20141109-signed.zip

Aby zainstalować Google Play, musimy przesłać następujące 4 pliki APK do naszego AVD (zlokalizowanego w ./system/priv-app/):

GmsCore.apk, GoogleServicesFramework.apk, GoogleLoginService.apk, Phonesky.apk

[pyoor@localhost]$ unzip -j gapps-lp-20141109-signed.zip \
system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk \
system/priv-app/GoogleLoginService/GoogleLoginService.apk \
system/priv-app/Phonesky/Phonesky.apk \
system/priv-app/GmsCore/GmsCore.apk -d ./

Wypchnij pliki APK do emulatora

Po wyodrębnieniu naszych plików APK uruchommy nasz AVD za pomocą następującego polecenia.

[pyoor@localhost tools]$ ./emulator @<YOUR_DEVICE_NAME> -no-boot-anim

Przy pierwszym utworzeniu AVD może to zająć kilka minut. Po uruchomieniu musimy ponownie zamontować partycję systemową AVD jako do odczytu / zapisu, abyśmy mogli przesłać nasze pakiety na urządzenie.

[pyoor@localhost]$ cd ~/android-sdk/platform-tools/
[pyoor@localhost platform-tools]$ ./adb remount

Następnie prześlij pakiety APK do naszego AVD:

[pyoor@localhost platform-tools]$ ./adb push GmsCore.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push GoogleServicesFramework.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push GoogleLoginService.apk /system/priv-app/
[pyoor@localhost platform-tools]$ ./adb push Phonesky.apk /system/priv-app

Zysk!

Na koniec uruchom ponownie emualator, używając następujących poleceń:

[pyoor@localhost platform-tools]$ ./adb shell stop && ./adb shell start

Po ponownym uruchomieniu emulatora powinniśmy zobaczyć pakiet Google Play pojawiający się w programie uruchamiającym menu. Po powiązaniu konta Google z tym AVD mamy teraz w pełni działającą wersję Google Play działającą pod naszym emulatorem.

Andy Shephard
źródło
29
Otrzymuję błąd „System plików tylko do odczytu” i żaden z tych plików APK nie jest zainstalowany.
wmac
6
Niestety wydaje się, że BasketBuild nie jest już dostępne. Witryna s.basketbuild.com wskazuje, że nie działa od co najmniej 9/3, bez ETA. Czy jest jakieś inne źródło, które polecasz dla aplikacji Google?
Chad Schultz
1
Jeśli pojawi się błąd „System plików tylko do odczytu”, uruchom polecenie: „adb remount”. Następnie spróbuj ponownie polecenia „adb push ...”.
Shangwu
4
Wszystkie linki są martwe
Mooing Duck,
1
każdy, kto nie może dostać gapps
Manny265
53

Poniżej znajduje się metoda, która działała dla mnie na emulatorach API 23-25 . Wyjaśnienie dotyczy API 24, ale działa prawie identycznie w innych wersjach.

Kredyty : Jon Doe , zaidorx , pjl .

Ciepła rada dla czytelników: po prostu przejrzyj wszystkie kroki przed ich wykonaniem, ponieważ niektóre są zautomatyzowane za pomocą dostarczonych skryptów.


  1. W menedżerze AVD studia Android (testowany na wersji 2.2.3) utwórz nowy emulator z celem „Android 7.0 (API Google API)”: Ekran AVD po utworzeniu emulatora.

  2. Pobierz najnowszy pakiet Open GApps dla architektury emulatora (CPU / ABI). W moim przypadku tak x86_64, ale może to być coś innego w zależności od wyboru obrazu podczas kreatora tworzenia urządzenia. Co ciekawe, architektura wydaje się ważniejsza niż poprawna wersja Androida (tj. Gapps dla 6.0 działa również na emulatorze 7.0).

  3. Wyodrębnij .apkpliki, używając następujących ścieżek (względem open_gapps-x86_64-7.0-pico-201#####.zip):

    .zip\Core\gmscore-x86_64.tar.lz\gmscore-x86_64\nodpi\priv-app\PrebuiltGmsCore\
    .zip\Core\gsfcore-all.tar.lz\gsfcore-all\nodpi\priv-app\GoogleServicesFramework\
    .zip\Core\gsflogin-all.tar.lz\gsflogin-all\nodpi\priv-app\GoogleLoginService\
    .zip\Core\vending-all.tar.lz\vending-all\nodpi\priv-app\Phonesky\
    

    Zauważ, że Otwarte GApps używać kompresji Lzip, które mogą być otwierane za pomocą albo narzędzie znajduje się na stronie internetowej Lzip 1 , 2 , lub Mac za pomocą homebrew: brew install lzip. Wtedy np lzip -d gmscore-x86_64.tar.lz.

    Dostarczam plik wsadowy, który wykorzystuje 7z.exei lzip.exewyodrębnia wszystkie wymagane pliki .apkautomatycznie (w systemie Windows):

    @echo off
    echo.
    echo #################################
    echo Extracting Gapps...
    echo #################################
    7z x -y open_gapps-*.zip -oGAPPS
    
    echo Extracting Lzips...
    lzip -d GAPPS\Core\gmscore-x86_64.tar.lz
    lzip -d GAPPS\Core\gsfcore-all.tar.lz
    lzip -d GAPPS\Core\gsflogin-all.tar.lz
    lzip -d GAPPS\Core\vending-all.tar.lz
    
    move GAPPS\Core\*.tar
    
    echo. 
    echo #################################
    echo Extracting tars...
    echo #################################
    
    7z e -y -r *.tar *.apk
    
    echo.
    echo #################################
    echo Cleaning up...
    echo #################################
    rmdir /S /Q GAPPS
    del *.tar
    
    echo.
    echo #################################
    echo All done! Press any key to close.
    echo #################################
    pause>nul
    

    Aby z tego skorzystać, zapisz skrypt w pliku (np. unzip_gapps.bat) I umieść wszystko, co istotne, w jednym folderze, jak pokazano poniżej: Jak to powinno wyglądać ...

  4. Zaktualizuj suplik binarny, aby móc modyfikować uprawnienia plików, które później załadujemy. Nowa subinarny można znaleźć w SuperSU przez Chainfire pakietu „odzysk flashable”zip . Pobierz plik zip, wyodrębnij go gdzieś, utwórz plik wsadowy z następującą zawartością w tym samym folderze i na koniec uruchom go:

    adb root
    adb remount
    
    adb push eu.chainfire.supersu_2.78.apk /system/app/
    adb push x64/su /system/xbin/su
    adb shell chmod 755 /system/xbin/su
    
    adb shell ln -s /system/xbin/su /system/bin/su
    adb shell "su --daemon &"
    adb shell rm /system/app/SdkSetup.apk
    
  5. Umieść wszystkie .apkpliki w jednym folderze i utwórz plik wsadowy o następującej zawartości 3 :

    START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24 -no-boot-anim -writable-system
    adb wait-for-device
    adb root
    adb shell stop
    adb remount
    adb push PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore
    adb push GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework
    adb push GoogleLoginService.apk /system/priv-app/GoogleLoginService
    adb push Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
    adb shell su root "chmod 777 /system/priv-app/**"
    adb shell su root "chmod 777 /system/priv-app/PrebuiltGmsCore/*"
    adb shell su root "chmod 777 /system/priv-app/GoogleServicesFramework/*"
    adb shell su root "chmod 777 /system/priv-app/GoogleLoginService/*"
    adb shell su root "chmod 777 /system/priv-app/Phonesky/*"
    adb shell start
    

    Zwróć uwagę, że ścieżka E:\...\android-sdk\tools\emulator.exepowinna zostać zmodyfikowana zgodnie z lokalizacją zestawu SDK systemu Android w systemie.

  6. Uruchom powyższy plik wsadowy (konsola powinna wyglądać później tak):

    O:\123>START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24 -no-boot-anim -writable-system
    
    O:\123>adb wait-for-device
    Hax is enabled
    Hax ram_size 0x60000000
    HAX is working and emulator runs in fast virt mode.
    emulator: Listening for console connections on port: 5554
    emulator: Serial number of this emulator (for ADB): emulator-5554
    
    O:\123>adb root
    
    O:\123>adb shell stop
    
    O:\123>adb remount
    remount succeeded
    
    O:\123>adb push PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore/
    [100%] /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk
    
    O:\123>adb push GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework/
    [100%] /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
    
    O:\123>adb push GoogleLoginService.apk /system/priv-app/GoogleLoginService/
    [100%] /system/priv-app/GoogleLoginService/GoogleLoginService.apk
    
    O:\123>adb push Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
    [100%] /system/priv-app/Phonesky/Phonesky.apk
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/**"
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/PrebuiltGmsCore/*"
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/GoogleServicesFramework/*"
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/GoogleLoginService/*"
    
    O:\123>adb shell su root "chmod 777 /system/priv-app/Phonesky/*"
    
    O:\123>adb shell start
    
  7. Po załadowaniu emulatora - zamknij go, usuń urządzenie wirtualne, a następnie utwórz kolejne, korzystając z tego samego obrazu systemu . Rozwiązuje to nieodpowiadającą aplikację Sklep Play, „Usługi Google Play zostały zatrzymane” i podobne problemy. Działa, ponieważ we wcześniejszych krokach faktycznie zmodyfikowaliśmy sam obraz systemu (spójrz na datę modyfikacji w dniu android-sdk\system-images\android-24\google_apis\x86_64\system.img). Oznacza to, że każde urządzenie utworzone odtąd za pomocą obrazu systemu będzie miało zainstalowane GAPPS!

  8. Uruchom nowy AVD. Jeśli ładowanie trwa niezwykle długo, zamknij go i zamiast tego uruchom za pomocą:

    START /B E:\...\android-sdk\tools\emulator.exe @Nexus_6_API_24
    adb wait-for-device
    adb shell "su --daemon &"
    

    Po uruchomieniu AVD zobaczysz poniższy obrazek - zwróć uwagę na ikonę Sklepu Play w rogu!

Pierwsze uruchomienie z zainstalowanym Sklepem Play.


3 - Nie jestem pewien, czy wszystkie te polecenia są potrzebne, a być może niektóre z nich są przesadzone ... wydaje się, że działa - i to się liczy. :)

Diabeł
źródło
2
Zamiast plików .xz, Open Gapps wydaje się zawierać pliki .lz (takie jak gsfcore-all.tar.lz). Wypróbowałem wiele narzędzi, z których żadne nie jest w stanie rozpakować plików .lz, więc mogę uzyskać dostęp do plików APK. Jakieś sugestie?
Chad Schultz,
2
@Chad Schultz tutaj jest łącze do narzędzia download.savannah.gnu.org/releases/lzip, jeśli korzystasz z systemu Windows, pobierz plik „lzip-1.11-w32.zip” i użyj następującego polecenia, aby przekonwertować go na plik .tar i użyć innego narzędzie, aby ostatecznie go wyodrębnić.
f4b
1
@ Dev-iL PlayStore zostanie zainstalowany na moim emulatorze, ale się nie otworzy. Używam obrazu systemu Nexus 5 z interfejsem API 23 x86_64. Jakieś przemyślenia?
ARK
3
To zadziałało dla mnie na najnowszym emulatorze 25 / 7.1. Jedyną dziwną rzeczą było to, że /system/app/SdkSetup.apknie istniało na moim obrazie. Wielkie dzięki, szalałem, próbując to rozwiązać!
wilsonpage
1
Jak dokładnie „utworzyć kolejny, używając tego samego obrazu systemu”?
gavsiu
43

Teraz nie ma potrzeby ładowania żadnych pakietów z wykonywaniem jakichkolwiek skryptów, aby pobrać Sklep Play na emulatorze. Począwszy od Android Studio 2.4 możesz teraz utworzyć AVD z preinstalowanym Sklepem Play. Obecnie jest obsługiwany tylko w AVD z obrazami systemu Android 7.0 (API 24).

Oficjalne źródło

AVD ze Sklepem Play

Uwaga: zgodne urządzenia są oznaczone w nowej kolumnie Sklep Play.

Prerak Sola
źródło
7
Uwaga: musisz zainstalować obraz systemu, który mówi Target:, a Android 7.0 (Google Play)nie tylko interfejsy API Google. Obecnie jest dostępny tylko dla API 24, a nie dla API 25. Po zainstalowaniu obrazu systemu pojawi się on na karcie Zalecane, a nie na karcie Obrazy x86.
antoine
2
Android Studio 2.3.3 w systemie Linux obsługuje teraz pliki AVD Play Store - ale warto również zauważyć, że Sklep Play wydaje się być obecnie dostępny tylko na urządzeniach docelowych x86, więc nadal będziesz musiał użyć innej metody, jeśli chcesz uzyskać Play Przechowuj na ARM AVD.
NullColaShip
Są teraz również obrazy dla interfejsów API 25, 26 i 27 oprócz 24.
arekolek
25

Chciałem skomentować ostatnią odpowiedź, ale bez logowania można tylko odpowiedzieć:

Aby pozbyć się błędu „tylko do odczytu”, po prostu zatrzymaj urządzenie natychmiast po jego przygotowaniu. Mój skrypt wygląda następująco:

#!/bin/bash 
~/bin/AndroidSdk/tools/emulator @Nexus_6P_API_23 -no-boot-anim &
adb wait-for-device
adb shell stop
adb remount
adb push GmsCore.apk /system/priv-app
adb push GoogleServicesFramework.apk /system/priv-app
adb push GoogleLoginService.apk /system/priv-app
adb push Phonesky.apk /system/priv-app
adb shell start
Jon Doe
źródło
1
Ten pomógł mi rozwiązać błąd systemu plików tylko do odczytu. ponieważ pracuję w systemie Windows, po prostu zignorowałem pierwszą linię skryptu i zamieniłem drugą na ten "START / B / tools / emulator @ Nexus_6P_API_23 -no-boot-anim", zapisałem go z rozszerzeniem .bat i uruchomiłem z wiersza poleceń.
zaidorx
1
To jest niesamowite, właśnie usunąłem pierwsze dwie linie i uruchomiłem emulator na własną rękę, a następnie uruchomiłem plik BAT ... zadziałało jak urok
Im Rick James
Umieść adb root na początku, jeśli masz zatrzymanie powłoki adb: musi to być błąd roota.
nutella_eater
adb rootwiersz należy dodać bezpośrednio po adb wait-for-devicewierszu, aby zapobiec Read-only file systembłędom.
efkan
1
Ten pracował kiedyś dodałem -writable-system do mojego polecenia emulatora jak ta, ~ / android-sdk / tools / emulator @ Nexus_5X_API_23 -no-boot-anim -writable-System
odbudowujący
3

Musisz zaktualizować config.iniplik dla urządzenia i ponownie pobrać obraz systemu.

Zaktualizuj następujące wartości w C:\Users\USER\.android\avd\DEVICE_ID\config.ini(w systemie Windows) lub ~/.android/avd/DEVICE_ID/config.ini(w systemie Linux)

PlayStore.enabled = true
image.sysdir.1=system-images\android-27\google_apis_playstore\x86\
tag.display=Google Play
tag.id=google_apis_playstore

Następnie ponownie pobierz obraz systemu dla urządzenia z Android Studio> Narzędzia> Menedżer AVD

To wszystko. Uruchom ponownie urządzenie, a będziesz mieć zainstalowany Sklep Play.

Na to również odpowiedziano tutaj: Jak zainstalować aplikację Google Play w emulatorze Android Studio?

Aamnah
źródło
3

Rozwiązany w prosty sposób: Powinieneś utworzyć nowy emulator, przed otwarciem go po raz pierwszy wykonaj 3 proste kroki:

1- przejdź do „C: \ Users [użytkownik] .android \ avd [folder urządzenia wirtualnego]” otwórz „config.ini” za pomocą edytora tekstu, takiego jak notatnik

2- zmiana

„PlayStore.enabled = false” na „PlayStore.enabled = true”

3- zmiana

„mage.sysdir.1 = obrazy-systemu \ android-30 \ google_apis \ x86”

do

„image.sysdir.1 = obrazy-systemu \ android-30 \ google_apis_playstore \ x86”

Sharif Yazdian
źródło
Zrobiłem to i emulator nie uruchomił się ponownie :(
happy_san
Właściwie zadziałałoby to bezpośrednio, gdyby google_apis_playstoreobraz był obecny, ale nie było w moim przypadku. Więc musiałem go zainstalować zgodnie @Aamnahz odpowiedzią.
happy_san
@happy_san W pierwszej linijce wspomniałem, że trzeba stworzyć nowy emulator, a przed jego pierwszym otwarciem należy zrobić to, co powiedziałem ...
Sharif Yazdian
Tak, najpierw stworzyłem emulator, a także ten, który miał ikonę Google Play w Android Studio. Ale nie ściągnął google_apis_playstoreobrazu razem z nim idk why ..
happy_san
2

Oto skrypt, którego użyłem w systemie Linux dla instancji Nexus 5 API 24 x86 BEZ GoogleApis.

#!/bin/sh

~/Android/Sdk/tools/emulator @A24x86 -no-boot-anim -writable-system & #where A24x86 is the name i gave to my instance
~/Android/Sdk/platform-tools/adb wait-for-device
~/Android/Sdk/platform-tools/adb root
~/Android/Sdk/platform-tools/adb shell stop
~/Android/Sdk/platform-tools/adb remount
~/Android/Sdk/platform-tools/adb push ~/gapps/PrebuiltGmsCore.apk /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/GoogleServicesFramework.apk /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/GoogleLoginService.apk /system/priv-app/GoogleLoginService/GoogleLoginService.apk
~/Android/Sdk/platform-tools/adb push ~/gapps/Phonesky.apk /system/priv-app/Phonesky/Phonesky.apk
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/PrebuiltGmsCore /system/priv-app/GoogleServicesFramework"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleLoginService /system/priv-app/Phonesky"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/GoogleLoginService/GoogleLoginService.apk"
~/Android/Sdk/platform-tools/adb shell "chmod 777 /system/priv-app/Phonesky/Phonesky.apk"
~/Android/Sdk/platform-tools/adb shell start

Ten zrobił to dla mnie.

WAŻNE: aby zatrzymać awarię aplikacji, pamiętaj o przyznaniu usługom Google Play uprawnień do lokalizacji.

Konfiguracja -> Aplikacje -> Konfiguracja (ikona koła zębatego) -> Uprawnienia aplikacji -> Lokalizacja -> (menu w prawym górnym rogu) -> Pokaż system -> Włącz usługi Google Play

Richard
źródło
2

Wejdź na http://opengapps.org/ i pobierz wersję Pico swojej platformy i wersję Androida. Rozpakuj pobrany folder, aby uzyskać
1. GmsCore.apk
2. GoogleServicesFramework.apk
3. GoogleLoginService.apk
4. Phonesky.apk

Następnie zlokalizuj plik emulator.exe. Prawdopodobnie znajdziesz go w
C: \ Users \ <YOUR_USER_NAME> \ AppData \ Local \ Android \ sdk \ tools

Uruchom polecenie:
emulator -avd <NAZWA_EMULATORA TWOJEGO> -netdelay none -netspeed full -no-boot-anim -writable-system

Uwaga: Użyj -writable-system, aby uruchomić emulator z zapisywalnym obrazem systemu.

Następnie
adb root
adb
remount adb push <PATH_TO GmsCore.apk> / system / priv-app
adb push <PATH_TO GoogleServicesFramework.apk> / system / priv-app
adb push <PATH_TO GoogleLoginService.apk> / system / priv-app
adb push <PATH_TO Phonesky.apk> / system / priv-app

Następnie uruchom ponownie emulator
adb shell stop
adb shell start

Aby zweryfikować działanie, wyświetl
listę pakietów powłoki adb shell pm, a znajdziesz pakiet com.google.android.gms dla google

Saini Arun
źródło
1

W tej chwili /systemwydaje się , że instalowanie apek w katalogu działa za pomocą adb pushpolecenia.

Niektóre usługi ukryte automatycznie ponownie podłączały /systemkatalog w read-onlytrybie.

W każdym razie mogłem zainstalować sklep Play na normalnej maszynie wirtualnej (tj. Wirtualnej maszynie innej niż Google-Api), po prostu montując system.imgplik z mojego systemu operacyjnego i kopiując pliki.

# To be executed as root user in your Unix based OS
mkdir sys_temp
mount $SDK_HOME/system-images/android-23/default/x86/system.img sys_temp -o loop
cp Phonesky.apk GmsCore.apk GoogleLoginService.apk GoogleServicesFramework.apk ./sys_temp/priv-app/
umount sys_temp
rmdir sys_temp

Pliki APK można pobrać z dowolnego prawdziwego urządzenia z systemem Android, na którym działa Google Apps, za pomocą adb pullpolecenia

[Aby uzyskać dokładną ścieżkę do apek, możemy użyć polecenia pm list packages -fwewnątrz powłoki adb]

harish2704
źródło
Nie jestem przekonany, że działa jakaś "tajemnicza" usługa ... raczej, był błąd w emulatorze (lub obrazach systemu), który wydaje się być naprawiony, co pozwoliło apkna istnienie kilku kopii w /systemkatalogu. Zauważyłem, że umieszczenie każdego z nich apkwe właściwym folderze nie powoduje błędów zapisu. Zaktualizowałem moją odpowiedź - czy możesz spróbować, czy teraz zadziała?
Dev-iL
Stoję przed tym samym problemem, nie mogłem przekazać systemu plików tylko do odczytu, gdy apki push, myślę, że jedynym sposobem jest edycja obrazu systemu Android emulatora, a następnie jak edytować obraz Androida z Windows 8, dziękuję. Muszę zainstalować najnowszą usługę Google Play i grę Google Play na emulatorze Androida 6.0.
noname.cs
2
Zainstalowałem Linuksa i skopiowałem apki do 6.0 system.img za pomocą Google API, ale kiedy utworzyłem nowy emulator, nie miał on usługi Google Play ani sklepu Google Play. Spróbuję ponownie z romem apis bez Google.
noname.cs
0

Chcę tylko dodać kolejne rozwiązanie dla użytkowników React Native, którzy potrzebują tylko aplikacji Expo.

  1. Zainstaluj aplikację Expo
  2. Otwórz swój projekt
  3. Kliknij Urządzenie -> Otwórz na Androidzie - Na tym etapie Expo zainstaluje aplikację Expo na Androida i będziesz mógł ją otworzyć.
chenop
źródło