Naprawa baterii: Wakelocki Usług Google Play

Usługi Google Play wyczerpują baterie za pomocą wakelocków na niestandardowych ROMach 5.x. Oto poprawki od Cyanogen i społeczności programistów w ładnym, schludnym podsumowaniu.

Wakelocki są zmorą osób dbających o baterię, a ten błąd wakelocka nęka ROMy Androida od jakiegoś czasu. Tak, problem nie jest ani nowy, ani wyjątkowy i nie zostanie rozwiązany na dobre, dopóki Google nie podejmie działań, ale niedawne premiery CyanogenMod 12 i CyanogenOS (między innymi) wywołały nową falę zainteresowania Błąd wybudzania usług Google Play 7.x SystemUpdateService. Dobra wiadomość jest taka, że ​​wczoraj do CM12 złożono poprawkę, a CyanogenOS powinien zostać załatany w przyszłym tygodniu. Złe? Każdy inny twórca ROM-ów wciąż musi uwzględnić najnowszy problem, a podstawowa przyczyna jest tak samo błędna jak zawsze. To nie jest ostatni raz, kiedy przeprowadzamy tę rozmowę, ale na razie omówmy problem, wskażmy poprawki i raporty z postępu oraz przywróćmy moc baterii do bojowej formy.

Łatwo zauważyć, że moc telefonu spada szybciej niż powinna, ale jakich telefonów/ROMów dotyczy to i jaka jest główna przyczyna? Zacznijmy od tego ostatniego pytania. Usługi Google Play zawierają narzędzie do sprawdzania aktualizacji OTA o nazwie SystemUpdateService, którego zadaniem jest wyszukiwanie żądań drogą bezprzewodową i odpowiadanie na nie. W przypadku niestandardowych ROM-ów aktualizacje są dostarczane przez twórcę ROM-u, a nie Google lub operatora, więc ta usługa jedynie przeszkadza. Na przykład ciągłe reagowanie na aktualizacje, których nie można zainstalować, to szybki sposób na maksymalne wykorzystanie pakietu danych – kolejny częsty problem. Podobnie sprawdzanie aktualizacji powoduje wybudzenie telefonu i rozładowywanie baterii. Najłatwiejszym rozwiązaniem obu sytuacji jest po prostu poproszenie twórców ROM-ów o wyłączenie usługi i zakończenie działania dokładnie to, co większość zrobiła aż do Androida 5.x włącznie. Niestety, Lollipop rzuca kluczem prace.

Począwszy od Androida 5.0 i Gooogle Play Services 7.x, mechanizm aktualizacji obejmuje moduł sprawdzania wakelocków. Zasadniczo telefon zostaje wybudzony w celu sprawdzenia, nie łączy się z (wyłączoną) usługą SystemUpdateService i nadal czeka w nieskończoność na odpowiedź, która nigdy nie nadejdzie. Jest to oczywiście problem, który prowadzi do zrzutów ekranu przedstawiających spadające wskaźniki naładowania baterii i ciągłe linie „Przebudźcie się” zalewające każde forum w zasięgu słuchu. Wracając do pierwotnego pytania, globalny charakter tego błędu oznacza, że ​​jego zasięg jest podobnie powszechny. Każdy urządzenie działa każdy ROM, który albo nie ogranicza usługi SystemUpdateService, albo jest na Lollipop bez łatki specyficznej dla Lollipopa, będzie widział te wakelocki. Ale nie martwcie się, rozwiązania tej ostatniej serii problemów już są gotowe.

Istnieje kilka sposobów rozwiązania tego irytującego problemu, od niestandardowych, flashowanych wersji Usług Play po bardziej odporne oficjalne łatki ROM dla CyanogenMod i systemu operacyjnego. Rozwiązanie Cyanogen w elegancki sposób ponownie włącza usługę SystemUpdateService, ale ogranicza jej odbiorców. Wynik końcowy jest taki, że gdy usługa sprawdza dostępność aktualizacji, natychmiast kończy się niepowodzeniem i kończy działanie. Oczywiście jest to nadal niedoskonałe, ale jest to sprytna sztuczka, która, miejmy nadzieję, wkrótce pojawi się w innych ROM-ach Lollipop. Poniżej znajduje się pełne zestawienie opcji poprawek od najbardziej do najmniej skutecznych, jeśli chodzi o potrzeby związane z baterią.

  • Poprawka Google'a - To znany problem. Rozwiązanie od Google to jedyny sposób, aby mieć pewność, że ten artykuł nigdy nie będzie wymagał dalszych działań. Nie ma ani słowa o ruchu.
  • CyanogenMod 11 - Rozwiązany w zeszłym miesiącu. Zaktualizuj swój ROM.
  • CyanogenMod 12.0 - Wczoraj złożono do stabilnego repo. Zaktualizuj swój ROM.
  • CyanogenMod 12.0 na noc - Wczoraj złożone w repozytorium. Zaktualizuj swój nocny.
  • CyanogenOS - Poprawka będzie w przyszłym tygodniu? Zapoznaj się z tymczasowym obejściem problemu i skontaktuj się z firmą Cyanogen, aby uzyskać więcej szczegółów.
  • Hack-a-mole hack - Jeśli dotarłeś tak daleko w poście, współczuję Tobie i Twojej baterii. Uznany programista Kalkulina na szczęście przyspieszył z częściowa poprawka na forum OnePlus One, ale wiąże się to z kilkoma zastrzeżeniami. Zamiast preferowanego rozwiązania ogólnosystemowego ten plik flashujący jest zmodyfikowaną wersją Usług Play z usuniętym szkodliwym kodem. Ze swojej natury plik ten zostanie nadpisany przez Google po wypchnięciu następnej aktualizacji Usługi Play, ponownie po cichu zabijając Twoje urządzenie. Calkulin łaskawie zobowiązał się do aktualizowania swojego postu za każdym razem, gdy coś takiego się wydarzy, jest to jednak trudne zadanie i wymaga czujności ze wszystkich stron. Bardziej niepokojącym aspektem jest to, że ten plik jest specyficzny dla modelu i systemu operacyjnego. Obecna wersja, Usługi Google Play v7.3.27-438, to wersja 7.3.27, dla Androida Lollipop (4), architektury armeabi-v7a (3) i wyświetlaczy 480 DPI (8). Jeśli to ty, świetnie! Jeśli nie, flashuj na własne ryzyko, ponieważ aplikacje korzystające z usług (a jest ich większość) mogą powodować zakłócenia. Aby sprawdzić trzycyfrowy identyfikator używany przez Twoje urządzenie, znajdź „Usługi Google Play” w „Aplikacjach” Androida sekcji ustawień i poszukaj trzech ostatnich cyfr numeru wersji (np.: wersja 7.0.99 (1809214-430) ). Powodzenia!

Problemy z baterią są irytujące i kosztowne, ale przynajmniej jest to piosenka i taniec, który znamy. Cierpliwość jest tutaj cnotą operacyjną. Cierpliwość i responsywny programista ROM. Responsywny Google też nie zaszkodzi, ale to może wymagać zbyt wiele.