Created
February 28, 2014 21:02
-
-
Save jtrindade/9279850 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Google Play Services e Google Store no emulador de Android | |
========= | |
À data corrente (Fevereiro de 2014), o emulador de Android não suporta devidamente a utilização dos Google Play Services. | |
Criando uma imagem com a opção Google APIs e usando-a para executar um projecto baseado na biblioteca incluída com o SDK, resulta numa mensagem de erro indicando a necessidade de actualizar os Google Play Services, em que essa actualização falha. | |
Para resolver o problema, são necessários os seguintes passos: | |
1. Criar uma dispositivo virtual com o AVD Manager. | |
1. Obter o pacote de Google Apps correspondente em CyanogenMod. | |
1. Obter o utilitário mkfs.yaffs2 para ARM. | |
1. Obter versões recentes dos Google Play Services e da Google Play Store a partir de um dispositivo Android actualizado. | |
1. Arrancar com o emulador abrindo espaço na partição _system_. | |
1. Instalar os pacotes Google Login Service, Google Services Framework, Google Play Services e Google Play Store na partição _system_. | |
1. Copiar o utilitário _mkfs.yaffs2_ para a imagem do emulador. | |
1. Utilizar o _mkfs.yaffs2_ para criar uma nova imagem da partição _system_ | |
1. Substituir a imagem da partição _system_ no SDK. | |
Dispositivo Virtual | |
-------- | |
Usando o AVD Manager, criar um dispositivo virtual com uma versão de Android >= 4.0.3 (API 15) sem Google APIs. Usei Android 4.2.2 com API 17. Deve ser configurado um SD Card com 512 MiB. | |
Downloads | |
-------- | |
### Google Apps ### | |
Escolher a versão de [Google Apps](http://wiki.rootzwiki.com/Google_Apps) apropriada para o dispositivo criado no passo anterior. | |
Extrair do _zip_ os seguintes ficheiros da directoria _system_: | |
- GoogleLoginService.apk | |
- GoogleServicesFramework.apk | |
### mkfs.yaffs2 ### | |
Obter o utilitário [_mkfs.yaffs2_ para ARM](http://code.google.com/p/android-group-korea/downloads/detail?name=mkfs.yaffs2.arm). | |
Obter APKs recentes | |
-------- | |
Ligar um dispositivo Android >= 4.0.3 actualizado ao PC. Usando o adb, obter os pacotes Google Messaging Service e Android Vending: | |
### Confirmar nomes completos dos pacotes ### | |
Imprimir a lista completa de pacotes instalados no dispositivo real com: | |
``` | |
adb -d shell pm list packages | |
``` | |
Deverá encontrar os seguintes: | |
- **com.google.android.gms** : Google Play Services | |
- **com.android.vending** : Google Play Store | |
### Obter o caminho dos pacotes ### | |
Obter o caminho para os pacotes seleccionados do dispositivo real com: | |
``` | |
adb -d shell pm path com.google.android.gms | |
adb -d shell pm path com.android.vending | |
``` | |
Poderá obter algo como: | |
- /data/app/com.google.android.gms-2.apk | |
- /data/app/com.android.vending-1.apk | |
### Obter os pacotes ### | |
Obter os pacotes seleccionados do dispositivo real com: | |
``` | |
adb -d pull /data/app/com.google.android.gms-2.apk | |
adb -d pull /data/app/com.android.vending-1.apk | |
``` | |
Alterar os nomes dos ficheiros obtidos para: | |
- com.google.android.gms-2.apk -> **GmsCore.apk** | |
- com.android.vending-1.apk -> **Vending.apk** | |
Lançar o emulador | |
-------- | |
O emulador tem de ser lançado com espaço extra na partição _system_, o que, para um dispositivo virtual chamado AVD17 pode ser feito na linha de comando com: | |
``` | |
emulator -partition-size 768 -avd AVD17 | |
``` | |
Instalar os pacotes seleccionados | |
-------- | |
Permitir acessos de escrita na partição _system_ e copiar os 4 pacotes para a directoria _/system_: | |
``` | |
adb -e mount -o remount,rw /system | |
adb -e push GoogleLoginService.apk /system/app/ | |
adb -e push GoogleServicesFramework.apk /system/app/ | |
adb -e push GmsCore.apk /system/app/ | |
adb -e push Vending.apk /system/app/ | |
adb -e mount -o remount,ro /system | |
``` | |
Instalar mkfs.yaffs2 | |
-------- | |
Copiar o ficheiro _mkfs.yaffs2_ para a directoria _/data_ do dispositivo virtual: | |
``` | |
adb -e push mkfs.yaffs2 /data/ | |
adb -e shell chmod 755 /data/mkfs.yaffs2 | |
``` | |
Gerar uma nova system.img | |
-------- | |
Produzir uma nova versão da imagem de sistema do dispositivo virtual: | |
``` | |
adb -e shell | |
/data/mkfs.yaffs2 /system /sdcard/system.img | |
exit | |
adb -e pull /sdcard/system.img | |
``` | |
Substituir system.img no SDK | |
-------- | |
Copiar a nova imagem para cima da antiga, dentro da estrutura de directorias do SDK (ex.: `sdk/system-images/android-17/armeabi-v7a/system.img`) | |
** NÃO ESQUECER O BACKUP DA VERSÃO ANTERIOR. ** |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment