Предположим, что я пользователь, которому не нравится, что некоторые системные приложения автоматически заносятся в белый список в настройках оптимизации батареи и невосприимчивы к оптимизации батареи, или мне надоели сервисы Play, потребляющие больше, чем их справедливая доля батареи. Я ищу решение, которое отменило бы эту привилегию, которой пользуются эти приложения, и добавило бы их в строку, где остальные обычные приложения-товарищи ждут, пока пользователь пометит их как «Не оптимизировать» .
(Нажмите на изображение, чтобы увеличить)
Я уже видел этот ответ , и, как отмечено в комментарии , он не работает для приложений, занесенных в белый список системой.
На данный момент это приложения, внесенные в белый список Android 6.0.1 в моем Nexus 6 с root-доступом:
Меня больше всего интересует удаление com.google.android.gms .
Необязательный:
Полная резервная копия ПЗУ, сделанная через кастомное рекавери. Это для вашего же удобства. Если что-то, предложенное в следующем разделе, вызывает проблемы с загрузкой или сбои системы/приложения, у вас будет что-то хорошее, чтобы вернуться к более раннему состоянию.
Оптимизация сервисов Play может привести к непредвиденным последствиям (в том числе к некорректной работе диспетчера устройств Android или приложений для отслеживания устройств). Вам рекомендуется рассчитать количество установленных приложений, которые зависят от Google Cloud Messaging и на которые повлияет этот шаг . Ответы здесь могут помочь: есть ли способ узнать, какие приложения используют GCM?
Я предпочел свой собственный ответ для простоты.
Если вы ориентируетесь только на сервисы Google Play и хотите избежать проблем с редактированием системных файлов , вы можете использовать модуль Enable Doze для GMS или SysConfig Patcher Magisk. Вам понадобится фреймворк Magisk и Magisk Manager .
Как я уже отмечал здесь , сервисы Google Play внесены в белый список Google через файл google.xml , расположенный в /system/etc/sysconfig/ . Среди прочего в файле отмечается:
<!-- GmsCore всегда должен иметь доступ к сети для GCM и прочего. --> < пакет энергосбережения = "com.google.android.gms" />
Закомментируйте выделенную строку, используя <!--
в начале и -->
в конце. Теперь строка должна выглядеть так:
<!-- < allow-in-power-save package="com.google.android.gms" /> -->
(Нажмите на картинку чтобы увеличить ее)
Перезагрузите устройство и увидите, что сервисы Google Play теперь недоступны на вкладке « Не оптимизировано », но доступны для оптимизации.
(Нажмите на картинку чтобы увеличить ее)
Я заметил, что список приложений тоже уменьшился:
Примечание. Я использовал ES File Explorer для перехода в каталог /system/etc/sysconfig и использовал QuickEdit для редактирования google.xml . Использование этих инструментов не является обязательным. Вы можете использовать все, что считаете удобным.
Теперь, чтобы узнать об остальных именах в списке, обратитесь к соответствующим файлам, указанным ниже:
Закомментируйте соответствующую строку, перезагрузитесь и ваш твик должен заработать.
Примечание. Здесь я экстраполировал свои выводы на сервисы Google Play.
SystemConfig.java используется для чтения конфигурации из каталога /system/etc/permissions и /system/etc/sysconfig . Итак, если у вас есть системное приложение из белого списка, не добавленное вручную и не описанное в этом ответе, сначала сосредоточьте поиск на этих двух каталогах.
adb shell dumpsys deviceidle whitelist -"com.yourcompany.yourapp"
Используя эту команду в adb, вы можете удалить приложения из исключений энергосбережения, протестированные в Oreo, без рута. И используя знак плюс (+) вместо минуса, вы можете добавить приложения в список исключений.
Редактирую снова. Ошибка. Это не работает всегда
пользователь42850
Повелитель огня
Повелитель огня