Виправлення батареї: блокування служб Google Play

Служби Google Play витрачають заряд акумулятора за допомогою wakelocks на користувацьких ПЗУ 5.x. Ось виправлення від Cyanogen і спільноти розробників у гарному, охайному огляді.

Wakelocks є бідою для тих, хто свідомо витрачає заряд батареї, і ця помилка wakelock вже деякий час мучить ПЗУ Android. Так, проблема не є ні новою, ні унікальною, і її не буде вирішено назавжди, доки Google не вживе заходів, але нещодавні запуски CyanogenMod 12 і CyanogenOS (серед інших) викликали новий виток інтересу до Помилка Wakelock у службах Google Play 7.x SystemUpdateService. Хороша новина полягає в тому, що CM12 бачив виправлення, складене вчора, і CyanogenOS має бути виправлено наступного тижня. Поганий? Кожному іншому виробнику ПЗУ все ще потрібно враховувати найновішу проблему, а основна причина так само несправна, як завжди. Це не востаннє, коли ми ведемо цю розмову, але поки що давайте обговоримо проблему, вкажемо на виправлення та звіти про хід роботи та повернемо заряд батареї до бойової форми.

Легко помітити, що живлення телефону падає швидше, ніж слід, але які телефони/ПЗУ це стосується та яка основна причина? Почнемо з останнього питання. Сервіси Google Play містять засіб перевірки оновлень OTA під назвою SystemUpdateService, завдання якого полягає в тому, щоб шукати бездротові запити та відповідати на них. На користувальницьких ПЗУ оновлення надходять через виробника ПЗУ, а не через Google чи оператора зв’язку, тому ця служба лише заважає. Наприклад, постійна реакція на оновлення, які неможливо встановити, є швидким способом максимально використати ваш тарифний план – ще одна поширена проблема. Так само перевірка оновлень виводить телефон із режиму сну та розряджає акумулятор. Найпростішим рішенням для обох є просто попросити виробників ПЗУ вимкнути службу та припинити її роботу саме те, що більшість робила до Android 5.x включно. На жаль, Lollipop кидає гайковий ключ роботи.

Починаючи з Android 5.0 і Gooogle Play Services 7.x, механізм оновлення включає перевірку wakelock. По суті, телефон тепер пробуджується для виконання перевірки, не вдається зв’язатися з (вимкненою) системною службою оновлення й продовжує чекати необмежений час відповіді, яка ніколи не надійде. Це, очевидно, проблема, і вона призводить до скріншотів лічильників заряду батареї, які різко падають, і суцільних рядків «Прокидайся», які заповнюють усі форуми в межах чутності. Повертаючись до початкового запитання, глобальний характер цієї помилки означає, що вона так само широко поширена. Будь-який пристрій працює будь-який ПЗУ, яке або не обмежило SystemUpdateService, або працює на Lollipop без спеціального патча для Lollipop, бачитиме ці блокування. Але не бійтеся, рішення для цієї останньої серії проблем уже знайшли місце.

Є кілька способів вирішення цієї неприємної проблеми: від користувацьких версій Play Services, які можна прошивати, до більш стійких офіційних патчів ПЗУ для CyanogenMod і ОС. Рішення Cyanogen елегантно повторно вмикає SystemUpdateService, але обмежує його приймачів. Кінцевим результатом є те, що коли служба перевіряє наявність оновлень, вона негайно виходить з ладу та завершує роботу. Очевидно, що це все ще недосконало, але це хитрий трюк, який, сподіваюся, незабаром з’явиться в інших дисках Lollipop. Для ваших потреб у акумуляторі ось повний список варіантів виправлення від найбільш ефективних до найменш ефективних.

  • Патч Google – Це відома проблема. Рішення від Google є єдиним способом гарантувати, що ця стаття ніколи не потребуватиме подальших дій. Про рух не йдеться.
  • CyanogenMod 11 - Вирішено минулого місяця. Оновіть ПЗУ.
  • CyanogenMod 12.0 - Вчора складено до стабільного репо. Оновіть ПЗУ.
  • CyanogenMod 12.0 Щоночі - Вчора складено в репо. Оновіть свою ніч.
  • CyanogenOS - Виправити наступного тижня? Читайте далі, щоб дізнатися про тимчасове вирішення проблеми, і зверніться до Cyanogen для отримання додаткової інформації.
  • Злом Whack-a-mole - Якщо ви зайшли так далеко на посаді, мої співчуття вам і вашій батареї. Визнаний розробник Калькулін на щастя підійшов до a часткове виправлення на форумі OnePlus One, але він має кілька застережень. Замість бажаного загальносистемного рішення цей флеш-файл є модифікованою версією Play Services із видаленим шкідливим кодом. За своєю природою цей файл буде перезаписано Google під час наступного оновлення сервісу Play, знову тихо вбиваючи ваш пристрій. Калькулін люб’язно пообіцяв оновлювати свою публікацію кожного разу, коли це станеться, але це важке завдання і вимагає пильності з боку кожного. Більш тривожним аспектом є те, що цей файл залежить від моделі та ОС. Поточна версія 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) ). Удачі!

Проблеми з акумулятором дратують і дорого коштують, але принаймні це пісня і танець, з якими ми знайомі. Терпіння тут є оперативною чеснотою. Терпіння та чуйний розробник ПЗУ. Чуйний Google також не завадить, але це може вимагати занадто багато.