- 16 de junho de 2020
- Blog
Google Approval, a certificação para dispositivos Android
O Android, como alguns já sabem, é um sistema operacional (SO) disponibilizado pela Google sob licença de código aberto. Ele tem como foco dispositivos móveis como smartphones e tablets, mas também está presente em interfaces específica para TVs (Android TV), carros (Android Auto) e relógios de pulso (Android Wear).
O Android é o sistema operacional móvel mais utilizado no mundo, chegando a vender mais que produtos eletrônicos com outros sistemas operacionais. As razões para que sua popularidade seja tão alta estão relacionadas a fatores como: código aberto, calendário de atualizações regulares, otimização periódica do SO e suporte ao desenvolvimento.
A Google, hoje detentora da “marca” Android, possui uma série de aplicativos e serviços que são executados em dispositivos com SO Android. Essa variedade de aplicativos proprietários do Google e de serviços que compõem a sua essência — como YouTube, Gmail, Google Play Store, Google Maps, Google Photos etc. — é conhecida como GMS, que significa Google Mobile Services (ou Serviços Móveis da Google).
A maioria dos usuários de dispositivos com SO Android esperam que esses aplicativos básicos do GMS estejam disponíveis imediatamente Out-Of-The-Box (OOTB) — vindo pré-instalados no dispositivo — ou com funcionalidade suave e sem falhas. Essa expectativa é uma consideração importante no planejamento e desenvolvimento de um novo dispositivo baseado no Android.
A Google possui uma série de exigências para produtores de dispositivos, os famosos OEM (Original Equipment Manufacturer ou Fabricante Original do Equipamento), que querem vender aparelhos móveis com a GMS já instalada. Para garantir que essas exigências são realizadas, a Google utiliza processos de licenciamento da empresa fabricante e certificação do produto a ser comercializado.
Sendo assim, há duas formas para OEMs comercializarem aparelhos com o sistema operacional (SO) Android:
- Como dito anteriormente, o Android é um sistema operacional de código aberto. Dessa forma, sua comercialização é independente do GMS, não sendo necessário à sua certificação.
- Caso a OEM queira embarcar em seu dispositivo todos os aplicativos de propriedade e/ou serviços que compõem a essência do Google, será necessário obter a certificação da Google.
Para os OEMs que desejam vender aparelhos baseados no SO Android, com todas as aplicações Google, é importante ter em mente que é necessário submeter estes aparelhos a vários testes e processos de compatibilidade projetados pela Google para obter sua certificação.
Licença GMS e Certificação GMS
A licença GMS, também conhecida como MADA (Mobile Application Distribution Agreement ou Acordo de Distribuição de Aplicação Móvel), é a permissão concedida pelo Google para uma OEM usar o conjunto de aplicativos e serviços GMS nos dispositivos que ela fabrica. Ela é um pré-requisito para uma certificação GMS — o fabricante precisa ter a licença GMS ou ser associado a uma organização licenciada. A licença GMS é uma permissão intransferível e não exclusiva.
A certificação GMS é a confirmação de que um dispositivo específico atende aos requisitos de desempenho do Google, executa corretamente o Google Apps e pode ser lançado no mercado com o conjunto de aplicativos e serviços GMS. Simplificando, a licença GMS é para a marca ou fabricante, enquanto a certificação é para o dispositivo fabricado.
Solicitando uma licença GMS
Para a solicitação da licença GMS, é necessário preencher um site. A solicitação deve ser feita com antecedência à data de lançamento do produto para o qual se deseja ter a licença, pois pode levar um longo tempo até o Google responder.
Depois de todas as informações serem enviadas, o Google analisará a solicitação, a empresa e os produtos. Após uma análise bem-sucedida do Google, ele fornecerá o MADA, que é a licença GMS.
Solicitando uma Certificação GMS
O processo de solicitação e obtenção da Certificação GMS possui diferentes etapas que precisam ser cumpridas e que impactam diretamente no dispositivo sendo desenvolvido. É muito importante considerar o processo de solicitação da certificação junto com o planejamento do desenvolvimento do produto, pois o tempo não estimado para a obtenção da certificação pode parar a linhas de produção e gerar grandes prejuízos.
As diferentes etapas do processo de solicitação e obtenção da Certificação GMS são descritas em mais detalhes a seguir:
Ciclo Inicial
Normalmente, o design do produto começa com a fase de conceituação e/ou prova de conceito. É nesta fase inicial que são definidos os componentes de hardware do produto, tais como o tipo do LCD que será usado, a qualidade e quantidade de câmeras que o dispositivo terá, design do produto e tipo de acabamento (se será de plástico duro ou metal), por exemplo. Este ciclo pode se repetir inúmeras vezes, passando por várias melhorias até se atingir a qualidade desejada para então ser finalizado.
Após a aprovação dos componentes de hardware do dispositivo, devem ser consideradas aspectos como: qual SO será utilizado, questões de tempo de produção, relações ligadas ao marketing do produto e aos testes, sejam estes testes para o hardware ou para o software.
Recursos do produto, fator de forma mecânico, orçamento para atividades de GMS etc. devem ser considerados durante a fase inicial do ciclo de vida do produto, evitando surpresas futuras. A certificação GMS também é um recurso que não pode ser deixado para uma fase posterior do design do produto.
Ciclo de Pré-verificação de GMS
Este é um ciclo relacionado diretamente com o desenvolvimento do software que será embarcado no dispositivo.
Para que o produto Android receba a Certificação GMS, o dispositivo deverá atender a todos os requisitos mencionados no documento chamado CDD (Compatibility Definition Document ou Documento de Definição de Compatibilidade). Este documento enumera os requisitos que devem ser atendidos para que os dispositivos sejam compatíveis com a versão mais recente do Android. O CDD representa uma “política” da compatibilidade do Android.
O Android Open Source Project (Projeto de Código Aberto Android ou AOSP) — site e repositórios que disponibilizam informações e o código fonte necessários para criar novos produtos que utilizam o Android como SO — é a referência e a implementação preferida do Android. A recomendação é que os desenvolvedores devem se basear suas implementações no código-fonte “upstream” o máximo que puderem.
O documento, como um todo, contém 13 seções, distribuídas entre recomendações para: Tipos de Dispositivos, Software, Compatibilidade de Multimídias, Segurança etc. Com base nelas, desenvolvedores podem garantir que o novo produto seja compatível com a plataforma Android e, portanto, seja apto a solicitar a certificação GMS.
Ciclo de Desenvolvimento
Os ciclos de Pré-verificação de GMS e Desenvolvimento são complementares e iniciados muitas vezes em paralelo. O ciclo de Desenvolvimento é focado na implementação de Software do dispositivo. Nele, é feito o download do código-fonte do Android, através do Android Open Source Project, e realizadas as alterações conforme o desejo do OEM, seguindo as sugestões feitas no CDD.
As alterações podem ser as mais diversas, desde aparências das UIs (User Interfaces ou Interfaces do Usuários) até implementações de novas funções e a adição de novos aplicativos no SO, se assim for o desejo do OEM.
Uma vez feitas todas as implementações, é gerado um binário, que será utilizado para “flashar” (gravar) os dispositivos que serão fabricados.
Uma observação: não basta simplesmente baixar o binário e tentar usá-lo em qualquer dispositivo, ele não irá funcionar. Cada “binário” é único, pois em cada um desses binários serão embarcados os drivers dos componentes daquele modelo em especifico. Há SOs do Android Open Source Project que vêm com os drivers padrão da Google, podendo ser utilizados em seu modelo, o Pixel. Para os demais, será preciso embarcar todos os drivers daquele modelo.
Resumidamente temos esses passos:
- A equipe do Android publica o código-fonte aberto para a versão mais recente;
- Os fabricantes OEM, as empresas que fabricam os chips que alimentam os dispositivos Android, modificam a nova versão para seu hardware específico;
- Os fabricantes OEM transmitem a nova versão modificada aos fabricantes de dispositivos, os ODMs (Original Design Manufacturer ou Fabricante de Design Original) — as empresas que projetam e fabricam dispositivos Android. Os ODMs modificam a nova versão conforme necessário para seus dispositivos;
- Os ODMs e OEMs trabalham para testar e certificar o produto;
- Os ODMs disponibilizam a nova versão para os usuários.
Ciclo de Testes
Quando o produto estiver pronto e com o Android embarcado, é hora de executar um conjunto de testes pré-definidos pelo Google. Os testes irão verificar a segurança, o desempenho e a compatibilidade do dispositivo com o sistema operacional Android e dos Google Apps. Os testes são baseados no Tradefed (Trade Federation, Federação Comercial), um framework de testes contínuos da Android projetado para rodar testes em dispositivos usando SO Android.
O intuito desse artigo não é mostrar todos os testes que serão executados durante o processo de certificação, porém, iremos mencionar alguns para dar noção do que se tratam estes testes.
VTS – Vendor Test Suite
O VTS (Vendor Test Suite ou Conjunto de Testes de Fornecedores) consiste em um conjunto de estruturas e casos de teste projetados para ajudar a aprimorar a robustez, a confiabilidade e a conformidade do sistema Android (por exemplo, HALs e bibliotecas) e do software de sistema de baixo nível (por exemplo, kernel, módulo e firmware). Para tanto, o VTS possui dois tipos principais de conjuntos de teste: automatizados e estruturais.
Embora o VTS e os casos de teste sejam projetados para binários de depuração/engenharia (comumente chamados de eng), alguns casos de teste podem ser executados em binários de usuário através do VTS Agent App.
O VTS está ligado diretamente ao projeto Project Treble, um projeto da Google que tem como conceito principal a separação das implementações dos fornecedores — o software de nível inferior específico do dispositivo, escrito em grande parte pelos fabricantes — do Framework do SO Android. Assim, o VTS realiza testes destinados à camada inferior da arquitetura do Android, verificando aspectos relacionados de compatibilidade do dispositivo do OEM e o sistema Android.

Estrutura Android (fonte: Android Developers Blog)
CTS – Compatibility Test Suite
O CTS (Compatibility Test Suite ou Suite de Testes de Compatibilidade) é um conjunto de testes gratuito de nível comercial, disponível para download. Ele é executado em uma máquina desktop e realiza casos de teste diretamente nos dispositivos conectados a ela.
Seu conjunto de testes é projetado para ser integrado ao fluxo de trabalho diário (por meio de um sistema de construção contínuo) dos engenheiros que constroem um dispositivo. Sua intenção é revelar incompatibilidades desde o início e garantir que o software permanecerá compatível durante todo o processo de desenvolvimento.

Como usar o CTS (fonte: Informações obtidas através do site source.android, no qual você pode encontrar mais informações sobre os tipos de teste e suas áreas de cobertura, por exemplo)
CTS Verifier
O CTS Verifier é um complemento ao CTS, também disponível para download. Ele fornece testes para APIs (Application Programming Interfaces ou Interfaces de Programação de Aplicação) e funções que não podem ser testadas em um dispositivo estacionário sem entrada manual (por exemplo, qualidade de áudio, acelerômetro etc.).
Assim, o CTS Verifier é uma ferramenta para teste manual, que verifica as APIs e os componentes de software que não podem ser automatizados. Ele é executado no DUT (Device Under Test ou Dispositivo Em Teste) e coleta os resultados. Os scripts são executados na máquina da área de trabalho para fornecer dados ou controle adicional para alguns casos de teste no aplicativo CTS Verifier.
Há, porém, alguns testes que OEMs só conseguirão obter através do Google, pois eles não são encontrados ou comercializados. São eles:
GTS – GMS Test Suite
O GTS é um conjunto de testes automatizado proprietários do Google. Eles testam a compatibilidade do Google Apps com o dispositivo Android. Assim, esses testes validam se os aplicativos GMS estão integrados corretamente e se outras configurações de dispositivos estão alinhadas com os termos contratuais com os quais as empresas parceiras concordaram. Além disso, os conjuntos de testes do GMS também realizam vários testes relacionados a segurança, para verificar se os dados do usuário no dispositivo são seguros ou não.
STS – Security Test Suite
Além de testes que verificam aspectos de compatibilidade e performance, a Google também requer que a segurança de dispositivos seja garantida. Por isso, conjuntos de testes de segurança são obrigatórios para a certificação GMS. O STS (Security Test Suite ou Suite de Testes de Segurança) é um novo conjunto de testes de segurança para testes do CTS.
Para garantir a segurança dos dispositivos, é importante que os testes sejam sempre atualizados. Mensalmente, serão abertos bulletins (boletins) que listam possíveis vulnerabilidades de segurança para que os fabricantes de dispositivos possam corrigi-los.
Assim, o STS é atualizado mensalmente e ajuda os OEMs a validar:
- Se o dispositivo não está vulnerável;
- Se as vulnerabilidades foram corretamente corrigidas;
- Se os testes de segurança foram devidamente aplicados.
Ciclo de Submissão
Depois que todos os resultados dos conjuntos de testes são aprovados, o dispositivo está pronto. Porém, antes de submete-lo diretamente à Google, ele deve ser enviado a uma 3PL, para as verificações e garantias de que aquele modelo está seguindo todas as diretrizes impostas pela Google.
3PLs (Third-party Logistics ou Operadores de Logística Terceirizados) são laboratórios autorizados pela Google, sejam da própria OEM ou de terceiros, para fornecer a Certificação GMS. Eles realizam testes independentes em nome do Google, em uma ampla variedade de recursos e requisitos de desempenho.
Assim, as 3PLs garantem que o dispositivo e o OEM respeitam o CDD através da realização de uma série de diferentes conjuntos de testes (os citados anteriormente e alguns outros) para validar o produto e verificar a compatibilidade da certificação GMS. Depois de passar por esta revisão, o software é enviado à Google para aprovação do certificado GMS.
Ciclo de Aprovação
Depois que o dispositivo obtiver a certificação GMS, ela será registrada na Google. Essa certificação pode ser vista no menu de configuração da loja do Google Play, no item Certificação do Play Protect.
Para manter a certificação GMS ativa, é necessário seguir as regras acordadas no MADA e garantir que possíveis bugs dos OEM ou do SO Android da Google sejam resolvidos. Para tanto, geralmente são disponibilizados releases de manutenção de software (Maintenance Releases ou MRs). Os MRs devem passar pelas mesmas etapas de testes que uma submissão para a certificação GMS, em suas versões atualizadas. Para casos de atualizações focadas em garantir a segurança do SO Android, podem ser realizados SMRs (Secutiry Maintenance Releases), MRs de Segurança, que realizam modificações e testes de forma a garantir sempre que o SO seja o mais atualizado e seguro possível.
Lançamento do produto
Depois que o dispositivo obtém a certificação GMS, ele é aprovado pelo Google para ser lançado no mercado com todos os seus aplicativos e serviços.
Conclusão
Este pequeno texto descreve o processo que os fabricantes de dispositivos Androids precisam seguir caso queiram que seus produtos contemplem os aplicativos e serviços do Google. Este não é um processo tão simples, pois seus ciclos podem precisar ser repetidos inúmeras vezes.
Os testes podem levar cerca de 3h a 20h de execução, sem contar as inúmeras repetições e tentativas para se chegar à meta desejada, de 0 casos falhos. Lembrando que um ciclo de Testes do CTS, aqui tomado como exemplo, pode chegar a ter por volta de 1.166.202 de casos de testes executados, isto sem mencionar os testes de GTS e STS.
Com uma política ainda mais rigorosa em relação a dispositivos não certificados, a Google tenta desativar os aplicativos e serviços GMS que compõem sua essência (como Play Store, Mapas, GMail, YouTube etc.) para todos os dispositivos que não possuem certificação GMS e usam todos esses serviços ilegalmente. Em alguns dispositivos não certificados, estas aplicações podem ainda funcionar, mas ninguém pode garantir que os aplicativos móveis compatíveis com esses dispositivos não sejam interrompidos. Isso pode acontecer inesperadamente e sem notificações adicionais.
A certificação garantirá algumas vantagens aos dispositivos, vantagens como:
- Disponibilidade de atualizações de software OTA;
- Compatibilidade completa do dispositivo com o Google OS e aplicativos;
- Estabilidade das aplicações;
- Atualizações mais recentes para aplicativos;
- Segurança comprovada;
- Acesso a um grande conjunto de aplicativos da Google no Google Play.
A Google procura certificar-se de que todos os dispositivos mais recentes sejam desenvolvidos de acordo com os mais recentes requisitos de hardware e garantam a estabilidade e o desempenho do sistema operacional Android. Tudo isso relacionado à reputação do Android e à satisfação dos clientes finais.