Batterifix: Google Play Services Wakelocks

Google Play-tjänster dränerar batterierna med wakelocks på anpassade 5.x ROM-skivor. Här är korrigeringarna från Cyanogen och utvecklargemenskapen i en snygg, snygg sammanfattning.

Wakelocks är det batterimedvetnas elände, och denna wakelock-bugg har plågat Android ROM ett tag. Ja, problemet är varken nytt eller unikt, och det kommer inte att lösas för gott förrän Google tar steget, men de senaste lanseringarna av CyanogenMod 12 och CyanogenOS (bland andra) har föranlett en ny intresserunda för Google Play Services 7.x SystemUpdateService Wakelock-bugg. Den goda nyheten är att CM12 såg en fix infälld i går, och CyanogenOS bör vara korrigerad nästa vecka. Det dåliga? Alla andra ROM-tillverkare måste fortfarande ta reda på det senaste problemet, och grundorsaken är lika buggig som någonsin. Det är inte sista gången vi kommer att ha den här konversationen, men låt oss nu diskutera problemet, peka ut patchar och framstegsrapporter och återställa vår batterikraft till kampform.

Det är lätt att se att en telefons ström går ner snabbare än den borde, men vilka telefoner/ROM-skivor påverkas och vad är grundorsaken? Låt oss börja med den senare frågan. Google Play Services innehåller en OTA-uppdateringskontroll, kallad SystemUpdateService, vars uppgift är att leta efter och svara på förfrågningar över luft. På anpassade ROM-skivor kommer uppdateringar via ROM-tillverkaren, inte Google eller operatören, så den här tjänsten gör inget annat än att stå i vägen. Att kontinuerligt reagera på uppdateringar som inte kan installeras är till exempel ett snabbt sätt att maximera din dataplan - ett annat vanligt problem. På samma sätt väcker uppdateringskontroller telefonen och laddar ur batteriet. Den enkla lösningen för båda är att helt enkelt låta ROM-tillverkare inaktivera tjänsten och kalla det en dag, vilket är exakt vad de flesta har gjort fram till och inklusive Android 5.x. Tyvärr kastar Lollipop en skiftnyckel i verken.

Från och med Android 5.0 och Gooogle Play Services 7.x inkluderar uppdateringsmekanismen en wakelock-checkare. I huvudsak väcks telefonen nu för att utföra en kontroll, den misslyckas med att kontakta (inaktiverad) SystemUpdateService och fortsätter att vänta på obestämd tid på ett svar som aldrig kommer fram. Detta är uppenbarligen ett problem och leder till att skärmdumpar av sjunkande batterimätare och solida "Awake"-linjer översvämmar alla forum inom hörhåll. För att återgå till den ursprungliga frågan, den globala karaktären hos denna bugg innebär att dess räckvidd är lika utbredd. Några enheten igång några ROM som antingen inte har begränsat SystemUpdateService eller är på Lollipop utan en Lollipop-specifik patch kommer att se dessa wakelocks. Men frukta inte, lösningarna faller redan på plats för den här senaste omgången av problem.

Det finns flera sätt att lösa detta irriterande problem, från anpassade flashbara versioner av Play Services till de mer motståndskraftiga officiella ROM-patcharna för CyanogenMod och OS. Cyanogen-lösningen återaktiverar på ett elegant sätt SystemUpdateService, men begränsar dess mottagare. Nettoresultatet är att när tjänsten söker efter uppdateringar, misslyckas den omedelbart och avslutas. Uppenbarligen är detta fortfarande ofullkomligt, men är ett smart trick som förhoppningsvis kommer att dyka upp i andra Lollipop ROMs snart. För dina batteribehov, här är en fullständig genomgång av dina patchalternativ från mest till minst effektiva.

  • Google Patch – Det här är ett känt problem. En lösning från Google är det enda sättet att säkerställa att den här artikeln aldrig kräver en uppföljning. Det finns inga ord om rörelse.
  • CyanogenMod 11 - Löstes förra månaden. Uppdatera din ROM.
  • CyanogenMod 12.0 - Vikte in i stallrepan igår. Uppdatera din ROM.
  • CyanogenMod 12.0 Natt - Vikte in i repet igår. Uppdatera din natt.
  • CyanogenOS - Kommer fix nästa vecka? Läs vidare för en tillfällig lösning och kom tillbaka med Cyanogen för mer information.
  • Ett mullvad hacka – Har du kommit så här långt i inlägget så är mina sympatier med dig och ditt batteri. Erkänd utvecklare Calkulin har tack och lov tagit steget med en partiell fix i OnePlus One-forumet, men det kommer med några varningar. Istället för den föredragna systemomfattande lösningen är den här flashbara filen en modifierad version av Play Services med den felande koden borttagen. Till sin natur kommer den här filen att skrivas över av Google när nästa uppdatering av Play Service skjuts, vilket tyst dödar din enhet igen. Calkulin har nådigt lovat att uppdatera sitt inlägg varje gång detta händer, men det är en mödosam uppgift och kräver vaksamhet från allas sida. Den mer oroande aspekten är att den här filen är modell- och operativsystemspecifik. Den nuvarande versionen, Google Play Services v7.3.27-438, är version 7.3.27, för Android Lollipop (4), armeabi-v7a-arkitektur (3) och 480 DPI-skärmar (8). Om det här är du, bra! Om inte, flasha på egen risk eftersom appar som förlitar sig på tjänsterna (vilket är de flesta av dem) kan innehålla hickups. För att kontrollera den tresiffriga identifieraren din enhet använder, leta reda på "Google Play-tjänster" i Androids "Appar" avsnitt av inställningar och leta efter de tre sista siffrorna i versionsnumret (t.ex. version 7.0.99 (1809214-430) ). Lycka till!

Batteriproblem är irriterande och kostsamma, men det här är åtminstone en sång och dans som vi är bekanta med. Tålamod är den operativa dygden här. Tålamod och en lyhörd ROM-utvecklare. En responsiv Google skulle inte skada heller, men det kan vara för mycket begärt.