Correção de bateria: Wakelocks do Google Play Services

O Google Play Services esgota as baterias com wakelocks em ROMs 5.x personalizadas. Aqui estão as correções do Cyanogen e da comunidade de desenvolvedores em um resumo interessante.

Wakelocks são a ruína da preocupação com a bateria, e esse bug de wakelock tem atormentado as ROMs do Android há algum tempo. Sim, o problema não é novo nem único e não será resolvido definitivamente até que o Google tome uma atitude, mas o lançamentos recentes do CyanogenMod 12 e CyanogenOS (entre outros) geraram uma nova rodada de interesse no Bug de Wakelock do SystemUpdateService do Google Play Services 7.x. A boa notícia é que o CM12 teve uma correção implementada ontem e o CyanogenOS deve ser corrigido na próxima semana. O mal? Todos os outros fabricantes de ROM ainda precisam levar em conta o problema mais recente, e a causa raiz está mais problemática do que nunca. Esta não é a última vez que teremos essa conversa, mas por enquanto vamos discutir o problema, apontar os patches e relatórios de progresso e trazer a energia da bateria de volta à forma de combate.

É fácil ver que a energia de um telefone está diminuindo mais rápido do que deveria, mas quais telefones/ROMs são afetados e qual é a causa raiz? Vamos começar com a última pergunta. O Google Play Services contém um verificador de atualização OTA, chamado SystemUpdateService, cuja função é procurar e responder a solicitações over-the-air. Em ROMs personalizadas, as atualizações vêm do fabricante da ROM, não do Google ou da operadora, portanto, esse serviço não faz nada além de atrapalhar. Por exemplo, reagir continuamente a atualizações que não podem ser instaladas é uma maneira rápida de maximizar seu plano de dados – outro problema comum. Da mesma forma, as verificações de atualização ativam o telefone e descarregam a bateria. A solução fácil para ambos é simplesmente fazer com que os fabricantes de ROM desabilitem o serviço e encerrem o dia, o que é precisamente o que a maioria fez até o Android 5.x, inclusive. Infelizmente, Lollipop joga uma chave inglesa em os trabalhos.

A partir do Android 5.0 e do Gooogle Play Services 7.x, o mecanismo de atualização inclui um verificador de wakelock. Em essência, o telefone agora é ativado para realizar uma verificação, não consegue entrar em contato com o SystemUpdateService (desativado) e continua esperando indefinidamente por uma resposta que nunca chegará. Obviamente, isso é um problema e leva a capturas de tela de medidores de bateria em queda livre e linhas sólidas de “Acordado” inundando todos os fóruns ao alcance da voz. Voltando à questão original, a natureza global deste bug significa que o seu alcance é igualmente generalizado. Qualquer dispositivo em execução qualquer A ROM que não limitou o SystemUpdateService ou está no Lollipop sem um patch específico do Lollipop verá esses wakelocks. Mas não tema, as soluções já estão a ser implementadas para esta última ronda de problemas.

Existem várias maneiras de resolver esse problema irritante, desde versões personalizadas do Play Services até patches de ROM oficiais mais resilientes para CyanogenMod e OS. A solução Cyanogen reativa elegantemente o SystemUpdateService, mas restringe seus receptores. O resultado líquido é que, quando o serviço verifica atualizações, ele falha e é encerrado imediatamente. Obviamente, isso ainda é imperfeito, mas é um truque inteligente que esperançosamente aparecerá em outras ROMs do Lollipop em breve. Para suas necessidades de bateria, aqui está um resumo completo de suas opções de patch, da mais para a menos eficaz.

  • Patch do Google - Este é um problema conhecido. Uma solução do Google é a única maneira de garantir que este artigo nunca exija acompanhamento. Não há nenhuma palavra sobre movimento.
  • CyanogenMod 11 - Resolvido no mês passado. Atualize sua ROM.
  • Cyanogen Mod 12.0 - Dobrado no repositório estável ontem. Atualize sua ROM.
  • CyanogenMod 12.0 noturno - Dobrado no repositório ontem. Atualize seu todas as noites.
  • CyanogenOS - Correção chegando na próxima semana? Continue lendo para obter uma solução temporária e volte com a Cyanogen para obter mais detalhes.
  • Truque para acertar uma toupeira - Se você chegou até aqui no post, meus sentimentos estão com você e sua bateria. Desenvolvedor reconhecido Calculina felizmente intensificou-se com um correção parcial no fórum OnePlus One, mas vem com algumas ressalvas. Em vez da solução preferível para todo o sistema, este arquivo flash é uma versão modificada do Play Services com o código incorreto removido. Por sua própria natureza, esse arquivo será substituído pelo Google quando a próxima atualização do Play Service for enviada, matando silenciosamente o seu dispositivo mais uma vez. Calkulin gentilmente se comprometeu a atualizar seu post sempre que isso acontecer, mas é uma tarefa árdua e exige vigilância por parte de todos. O aspecto mais preocupante é que este arquivo é específico do modelo e do sistema operacional. A versão atual, Google Play Services v7.3.27-438, é a versão 7.3.27, para Android Lollipop (4), arquitetura armeabi-v7a (3) e display de 480 DPI (8). Se este é você, ótimo! Caso contrário, atualize por sua própria conta e risco, pois os aplicativos que dependem dos serviços (que são a maioria deles) podem conter problemas. Para verificar o identificador de três dígitos que seu dispositivo usa, encontre "Google Play Services" em "Aplicativos" do Android seção de configurações e procure os três últimos dígitos do número da versão (por exemplo: versão 7.0.99 (1809214-430) ). Boa sorte!

Problemas de bateria são irritantes e caros, mas pelo menos esta é uma música e uma dança com as quais estamos familiarizados. Paciência é a virtude operativa aqui. Paciência e um desenvolvedor de ROM responsivo. Um Google responsivo também não faria mal, mas isso pode ser pedir demais.