Услугите на Google Play изтощават батериите с wakelocks на персонализирани 5.x ROM. Ето корекциите от Cyanogen и общността на разработчиците в хубав, чист преглед.
Wakelocks са проклятието на съзнанието за батерията и този бъг за wakelock тормози Android ROM от известно време. Да, проблемът не е нито нов, нито уникален и няма да бъде решен окончателно, докато Google не се засили, но скорошните стартирания на CyanogenMod 12 и CyanogenOS (наред с други) предизвикаха нов кръг от интерес към Грешка в Wakelock на услугите на Google Play 7.x SystemUpdateService. Добрата новина е, че CM12 видя корекция, сгъната вчера, а CyanogenOS трябва да бъде коригиран до следващата седмица. Лошото? Всеки друг производител на ROM все още трябва да отчете най-новия проблем, а основната причина е бъгова както винаги. Това не е последният път, когато ще водим този разговор, но засега нека обсъдим проблема, да посочим корекциите и докладите за напредъка и да върнем мощността на батерията си обратно в бойна форма.
Лесно е да се види, че мощността на телефона намалява по-бързо, отколкото би трябвало, но кои телефони/ROM са засегнати и каква е първопричината? Да започнем с последния въпрос. Услугите на Google Play съдържат OTA инструмент за проверка на актуализацията, наречен SystemUpdateService, чиято задача е да търси и отговаря на заявки по въздуха. При персонализираните ROM актуализации идват от производителя на ROM, а не от Google или оператора, така че тази услуга не прави нищо, освен да пречи. Например, непрекъснатото реагиране на актуализации, които не могат да бъдат инсталирани, е бърз начин за максимално използване на плана ви за данни – друг често срещан проблем. По същия начин проверките за актуализация събуждат телефона и изтощават батерията. Лесното решение и за двете е просто да накарате създателите на ROM да деактивират услугата и да я прекратят, което е точно това, което повечето са правили до и включително Android 5.x. За съжаление, Lollipop хвърля гаечен ключ работите.
Започвайки с Android 5.0 и услугите на Gooogle Play 7.x, механизмът за актуализиране включва проверка на wakelock. По същество телефонът сега се събужда, за да извърши проверка, не успява да се свърже с (деактивираната) SystemUpdateService и продължава да чака за неопределено време отговор, който никога няма да пристигне. Това очевидно е проблем и води до екранни снимки на рязко падащи измервателни уреди на батерията и плътни линии „Събуди се“, наводняващи всеки форум в рамките на чутото. Връщайки се към първоначалния въпрос, глобалният характер на този бъг означава, че обхватът му е също толкова широко разпространен. Всякакви работещо устройство всякакви ROM, който или не е ограничил SystemUpdateService, или е на Lollipop без специфичен за Lollipop кръпка, ще види тези wakelocks. Но не се страхувайте, решенията вече идват на мястото си за този последен кръг от проблеми.
Има няколко начина за разрешаване на този досаден проблем, от персонализирани флаш версии на Play Services до по-устойчивите официални ROM пачове за CyanogenMod и OS. Решението Cyanogen елегантно активира повторно SystemUpdateService, но ограничава неговите приемници. Крайният резултат е, че когато услугата проверява за актуализации, тя незабавно се проваля и се прекратява. Очевидно това все още е несъвършено, но е хитър трик, който се надяваме скоро да се появи в други Lollipop ROM. За вашите нужди от батерия, ето пълното описание на вашите опции за корекция от най-до най-малко ефективните.
- Gooogle Patch - Това е известен проблем. Решение от Google е единственият начин да се гарантира, че тази статия никога не изисква последващи действия. Няма дума за движение.
- CyanogenMod 11 - Решено миналия месец. Актуализирайте вашия ROM.
- CyanogenMod 12.0 - Сгъната в стабилното репо вчера. Актуализирайте вашия ROM.
- CyanogenMod 12.0 Всяка нощ - Сгъната в репото вчера. Актуализирайте вашата вечер.
- CyanogenOS - Поправката идва следващата седмица? Прочетете за временно решение и проверете отново с Cyanogen за повече подробности.
- Whack-a-mole хак - Ако сте стигнали дотук в поста, моите съчувствия са с вас и вашата батерия. Признат разработчик Калкулин за щастие се засили с a частична корекция във форума на OnePlus One, но идва с няколко предупреждения. Вместо предпочитаното решение за цялата система, този флаш файл е модифицирана версия на Play Services с премахнат код на нарушение. Поради самото си естество този файл ще бъде презаписан от Google, когато бъде изпратена следващата актуализация на услугата за възпроизвеждане, безшумно убивайки вашето устройство отново. Калкулин любезно обеща да актуализира публикацията си всеки път, когато това се случи, но това е трудна задача и изисква бдителност от страна на всички. По-тревожният аспект е, че този файл е специфичен за модела и операционната система. Текущата версия, Google Play Services v7.3.27-438, е версия 7.3.27 за Android Lollipop (4), архитектура armeabi-v7a (3) и 480 DPI дисплей (8). Ако това сте вие, страхотно! Ако не, флашвайте на свой собствен риск, защото приложенията, разчитащи на услугите (които са повечето от тях), могат да съдържат прекъсвания. За да проверите трицифрения идентификатор, който вашето устройство използва, намерете „Услуги за Google Play“ в „Приложения“ на Android раздел на настройките и потърсете последните три цифри в номера на версията (напр.: версия 7.0.99 (1809214-430) ). Късмет!
Проблемите с батерията са досадни и скъпи, но поне това е песен и танц, с които сме запознати. Търпението е оперативната добродетел тук. Търпение и отзивчив разработчик на ROM. Отзивчивият Google също не би навредил, но това може да изисква твърде много.