Автоматически ограничивать (останавливать) зарядку аккумулятора на заданном проценте

Устройство: Moto X Play (с рутом, Stock, Android 6.0.1, плата msm8916, XT1562)

Почему я хочу ограничить зарядку?

(Давайте не будем указывать, являются ли мои причины действительными или нет, и примем, что я хочу , если вы не согласны с моими причинами)

Чтобы увеличить срок службы батареи, я хочу ограничить зарядку, когда она достигает 90%, как описано здесь. Идеальный процент зарядки/разрядки для максимального срока службы батареи?

Является ли это возможным?

Да, по крайней мере, на моем предыдущем устройстве Honor 6, как указано здесь . Как переопределить ток зарядки на Huawei Honor 6? , с двумя разными способами сделать это

Я безуспешно пытался определить ответственный файл, в котором изменение значений ограничило бы зарядку.

Ищу системный файл отвечающий за остановку зарядки, с указанием его истинного пути (без симлинков)

(как я видел на своем предыдущем устройстве, найти путь к файлу было большой проблемой после его идентификации)


Я знаю, что вы очень опытны в этом вопросе, но это может быть проблемой XY , и было бы полезно указать, какова ваша главная цель — увеличить срок службы батареи? Беспокоитесь о взрывах? Так что мы все можем попытаться помочь вам с этим.
Почему вы настаиваете на том, чтобы здесь не было символических ссылок? Файлы, связанные с питанием, удобно связаны символическими ссылками /sys/class/power_supply/практически в любой системе Linux, которую я видел. Зачем вам нужно размещать их, например, внутри дерева i2c?
@DmitryGrigoryev Хороший вопрос с простым ответом. Я не разбираюсь в Linux и не понимаю, поэтому я хотел знать место, откуда я могу напрямую манипулировать ими, как я сделал в своем ответе :-)
Теперь есть Chargie — комбинация USB-накопителя и приложения для Android, которая ограничивает внешнюю зарядку. Просто установите флешку между зарядным устройством и телефоном и используйте приложение, чтобы выбрать уровень заряда. Просто как тот. Найдите в Google «зарядную палку».
Связанный (и с гораздо лучшими ответами, на мой взгляд): Как ограничить зарядку до определенного пользователем предела? .

Ответы (3)

Хорошо, понял :)

  • Первое, что нужно отметить, это то, что на Honor 6, моем предыдущем устройстве, был один файл, с которым я мог поиграть, чтобы автоматически остановить зарядку.

  • В Moto X play есть два разных файла: один для отключения зарядного устройства, а другой для удаления символа зарядки (другими словами, вы можете остановить зарядку, но при этом будет отображаться символ подключенного зарядного устройства). Пока я не понял это, я бегал по кругу, так как я взял символ зарядки, чтобы показать, что происходит зарядка (и предполагая, что я имел дело с неправильным файлом). Во время экспериментов, когда я заметил падение заряда, несмотря на отображение символа зарядки, я проверил приложение Ampere, и меня осенило!

Какие файлы?

( Редактировать: 30 марта 20 Джекпот! Нашел этот потрясающий репозиторий файлов для различных устройств разработчиком модуля Magisk Advanced Charging Controller . Вам лучше использовать этот универсальный модуль, но если вы хотите сделать все своими руками, это отличное начало).

Могут быть и другие файлы, но файлы, на которые я тоже обратил внимание:

  1. Для значка зарядки: /sys/devices/soc.0/78d9000.usb/power_supply/usb/online(Для отключения значка изменить значение файла с 0 to 1)

  2. Для зарядки: /sys/devices/soc.0/78b5000.i2c/i2c-1/1-001c/power_supply/battery/charging_enabled(Для отключения зарядки измените значение файла с 1 to 0)

Для автоматизации подход был аналогичен моему ответу здесь с использованием эмулятора терминала и Macrodroid, как описано здесь — Как автоматизировать командную строку при запуске определенного приложения?

Как я нашел файлы?

Неэлегантно , и я надеюсь, что кто-то опубликует хороший способ. Вот способ, который может помочь вам определить файл и путь

Предположения

  • Долгие часы в сети и некоторое кодирование на GitHub (в котором я совсем не разбираюсь) заставили меня посмотреть на i2cсвязанные usbфайлы с именами типа charger_enabledили enable_charger. Похоже, это верно для Honor 6, Moto X и некоторых устройств Nexus. Я понятия не имею, зависит ли это от чипсета или устройства

  • Истинный путь к этому файлу находится в /sys. Опять же, может варьироваться

Следующие шаги

  • Выполните поиск charger enabledили enable_chargerили поиск по подстановочным знакам с похожими словами в/sys

  • Изменить rwразрешения, чтобы разрешить изменение содержимого с 1на 0или наоборот

  • Подключите зарядное устройство и посмотрите значение в файле, отключите и повторите. Если значение меняется, это похоже на правильный файл. Пока зарядное устройство подключено, измените значение в файле, и если зарядка прекратится, вы попали в него (тем более, если путь находится в i2cкаталоге). Подтвердите с помощью приложения Ampere, чтобы подтвердить статус зарядки

  • Пока вы этим занимаетесь, можете также копировать исходные и измененные файлы в отдельный каталог в вашем хранилище. Нужно для автоматизации

  • Если ваше устройство похоже на мое, где зарядка может быть остановлена, но отображается значок зарядки, нужно больше усилий, чтобы идентифицировать этот файл по ключевым словам, таким как onlineили connectedили ???

Если вам повезет, вышеописанное должно сработать для вас


В качестве дополнительной информации для потомков ярлыки эмулятора терминала:

  • Для отключения зарядки и удаления значка зарядки

su –c "cp /storage/emulated/0/moto_charging/disable_charging/charging_enabled /sys/devices/soc.0/78b5000.i2c/i2c-1/1-001c/power_supply/battery/" ; su -c "cp /storage/emulated/0/moto_charging/no_symbol_charging/online /sys/devices/soc.0/78d9000.usb/power_supply/usb/"

  • Для включения зарядного устройства и значка зарядки

su -c "cp /storage/emulated/0/moto_charging/show_charging/online /sys/devices/soc.0/78d9000.usb/power_supply/usb/" ; su –c "cp /storage/emulated/0/moto_charging/enable_charging/charging_enabled /sys/devices/soc.0/78b5000.i2c/i2c-1/1-001c/power_supply/battery/"

moto_chargingэто папка, созданная на Внутренней SD, в которой есть оригинальные и измененные копии (для включения и отключения зарядки), и эти файлы копируются в систему. Конечно требует рут

Я тоже хочу зарядить свою батарею только до 85-90%. Я признаю, что ваш ответ впечатляет и хорошо документирован (и я проголосовал). Но делать это чертовски хлопотно. Можно ли сделать сценарий/приложение для достижения всего этого с меньшими усилиями? :)
Кажется, есть приложение для этого. Я ЕЩЕ не привязывал: android.gadgethacks.com/how-to/…
@FreeAndNil спасибо. 1. В сноске моего ответа уже есть ссылка на приложение 2. Я не пробовал приложение, на которое вы ссылаетесь (спасибо за это), но если я не знаю, что в него входит, я был бы осторожным 3. Я не знаю Я не знаю сценариев, но их можно легко преобразовать в сценарии, а Macrodroid также поддерживает сценарии.
@FreeAndNil: проверено. Ваш источник указывает на то же приложение, на которое я ссылался - в последний раз я проверял форум разработчиков XDA, сценарий не был с открытым исходным кодом - может быть, это известно.
@beeshyams это действительно так . К сожалению, 1) APK доступны только через, например. AndroidFileHost (без Playstore или F-Droid) и 2) для меня он просто запускается, утверждает, что мое устройство (пока) не поддерживается, и завершает работу. Одно из моих устройств всегда зависает по утрам (после того, как всю ночь был «на линии»), поэтому я подумал, что стоит попробовать ограничить зарядку, скажем, 95%…
@beeshyams боюсь, что я «недостаточно проницателен»; У меня скорее не хватает времени, чтобы исследовать источники так глубоко, извините.
@OvidiuSandru спасибо, но я хотел настроить устройство, чтобы освободиться от внешнего оборудования. Это было три года назад. Теперь у вас есть модуль Magisk ACC, который делает это намного проще и мощнее .
Я вообще не понимаю этого ответа. Я бы хотел, чтобы мой телефон не заряжался, как только он заполнится на 80%, но все, что в этом ответе, говорит о том, как отключить зарядку и значок зарядки. Итак....какой ответ? Как отключить зарядку на 80%? Подразумевается ли, что вам нужно написать собственное программное обеспечение, которое теперь использует эти 2 управляющих файла для отключения зарядки, как только оно считывает состояние заряда на определенном проценте? Если это так, то это нигде не указано в этом ответе ... Я обсуждаю вопрос о понижении этого ответа. Опять же, я понятия не имею, что делать с этим «ответом», который даже не отвечает на вопрос.
В ответе @GabrielStaples рассказывается: а) как найти управляющие файлы (если этот метод работает для вас) б) как автоматизировать отключение зарядки (см. Отключение зарядки и удаление значка зарядки ). Не гарантируется работа на вашем устройстве, если вы не можете найти управляющие файлы (они специфичны для каждого устройства и версии ОС) // мне нужно было это для этого устройства, ага, нашел способ, задокументировал его // в моем комментарий выше. Я указал на решение Magisk, которое гораздо более универсально, и вы можете проверить это, включая их группу Telegram.

Теперь есть Chargie — комбинация USB-накопителя и приложения для Android, которая ограничивает внешнюю зарядку. Просто установите флешку между зарядным устройством и телефоном и используйте приложение, чтобы выбрать уровень заряда. Просто как тот. Найдите в Google «зарядную палку».

Раскрытие информации: я являюсь генеральным директором Lighty Electronics. Мы разработали Chargie и хотели бы, чтобы люди, столкнувшиеся с этой проблемой, наслаждались нашим продуктом так же, как и мы. Никакого спама, только решение проблемы.

Chargie отлично работает на телефонах Android и Apple! Загрузите приложение (правильное приложение, так как теперь есть 2 разных приложения с таким названием), подключите устройство к зарядному устройству, кабель для зарядки к устройству и телефон к кабелю для зарядки. Затем откройте приложение, подтвердите необходимые разрешения, подождите, пока приложение автоматически подключится к устройству через Bluetooth, перетащите ползунок на желаемый уровень заряда, готово! Я установил свой на 70%, и теперь он автоматически поддерживает мой телефон в диапазоне от 66% до 70%. Я просто подключаю свой телефон и больше ничего не делаю, так как теперь все происходит автоматически.
Купить Chargie можно здесь: chargie.org .

Вы беспокоитесь о чем-то, а также сосредотачиваетесь на чем-то несущественном.

Большинство современных телефонов имеют встроенную технологию, которая автоматически прекращает зарядку при уровне заряда от 90% до 100%.

Не покупайтесь на всю ерунду во всем цикле зарядки. Если у вас хороший телефон, вы будете золотыми в 100% случаев (при условии, что вы заряжаете свой телефон, когда его нужно заряжать. Это означает, что не каждую ночь ). Я протестировал много-много телефонов и еще не убедился, что эта «теория» цикла зарядки верна.

Ваш телефон уже построен таким образом. Когда вы видите, что он заряжен на 100%, это не буквально его емкость. OEM-производители делают это, чтобы люди не перезаряжали устройства. (То есть, если у вас телефон где ОЕМ шустрый).

Также важно отметить, что обычное использование телефона может разрядить аккумулятор за год. Выживание батареи не вечно, независимо от того, насколько здоров ваш цикл зарядки. Это зависит от того, как вы используете устройство, какие приложения загружаете и как они взаимодействуют с вашей батареей (потребление) и т. д.

В любом случае, вы можете использовать Safe Charge , приложение из Google Play, чтобы уведомлять вас, когда зарядка превышает определенный процент.


Источники

Помимо шести лет опыта, что само по себе немного, вот несколько соответствующих статей.

Существует также множество форумов, организованных сверстниками, на которых люди с многолетним опытом проверяли эту теорию и оказывались ложными. Устройства обрабатывают заряд самостоятельно и останавливаются, когда это необходимо.

Предположим, что я хочу по какой-то причине, и мне нужен способ для этого 2. Мне не нужно дополнительное приложение, чтобы уведомить меня, я могу легко сделать это с помощью приложения автоматизации Macrodroid, которое я использую. Ваш ответ в настоящей форме бесполезен
Большинство современных телефонов имеют встроенную технологию, которая автоматически прекращает зарядку при уровне заряда от 90% до 100%. - Вы можете подтвердить это какими-либо доказательствами??
Я не уверен, так как они недостаточно техничны, как те, на которые я ссылался, и, кроме того, это не центральное место в моем вопросе (сейчас отредактировано)
Возможно, вы захотите прочитать ссылки, которые вы публикуете в качестве доказательств, это цитата из единственной технически подробной: «Как мы указывали ранее [со ссылкой на целую статью доказательств], если вы хотите продлить жизнь вашей батареи, вы хотите постоянно поддерживать ее на уровне 40–80 %». Дело в том, что существует компромисс между временем между зарядками и сроком службы батареи, и только первое появляется в спецификациях устройства и рекламе, так что, по вашему мнению, производитель отдаст приоритет? Фактические данные указывают на 40% для хранения, а цикличность 75-65% является оптимальным диапазоном для использования.
ЗАМЕЧАТЕЛЬНО: один из ваших источников (первый), который вы процитировали, на самом деле противоречит вам: «Как мы указывали ранее, если вы хотите продлить срок службы батареи, вы должны постоянно поддерживать ее на уровне 40–80%». . Так же ваш источник говорит, что ВАМ НЕ СЛЕДУЕТ заряжать телефон до 100% и что за ночь он будет заряжен до 100%!!!!!!
И вот надежный источник (не такой, как те, которые вы предоставили), чтобы доказать, что вы не правы: batteryuniversity.com/learn/article/…