По некоторым причинам, не связанным с временем работы от батареи, мне нужно отключить зарядку батареи, когда USB-хост подключен к моему телефону (укорененный Nexus 4). Взглянув в Интернете ( link1 , link2 ), похоже, я должен изменить системный файл. Я нашел ряд интересных файлов , расположенных в /sys/class/power_supply/battery
и /sys/class/power_supply/usb
, которые могут быть правильными , чтобы быть изменен для того , чтобы достичь USB зарядки отключения (например /sys/class/power_supply/usb/present 0/1
).
Кто-нибудь пробовал что-то подобное (контролировать зарядку usb через софт и модифицировать такие системные файлы)? Какой лучший способ изменить эти системные файлы? Должен ли я использовать оболочку adb или другой инструмент?
Я попытался использовать приложение «Изучение корня», чтобы изменить эти файлы, однако, когда я изменил файл (после изменения его разрешений), он автоматически вернулся к исходному значению.
источник
Ответы:
Я только что попробовал и обнаружил, что вам нужно изменить файл:
sys/class/power_supply/usb/device/charge
его значение по умолчанию - «1», что означает «включить зарядку», вам нужно установить «0», чтобы «отключить зарядку».
Я тестировал на Nexus 4, и он успешно работает.
источник
echo 0 > /sys/class/power_supply/battery/charging_enabled
у меня работает, на Sony Z1 Compact с CM11. Спасибо! :)источник
Я не уверен, что он будет работать с зарядным устройством вашего телефона, но часто с кабелями, которые передают и питание, и данные, внутри кабеля есть отдельные шнуры для питания и данных.
Я не особенно заинтересован в том, чтобы порвать зарядное устройство для телефона, чтобы подтвердить мою идею, но вы можете попробовать оторвать часть кабеля, определить и обрезать шнуры питания внутри кабеля и обмотать его изолентой.
Существует вероятно способ проще средство сделать это, но я не знаю об этом.
источник
Я почти уверен, что это не то, что вы можете изменить в программном обеспечении, так как телефон заряжается при подключении к USB-порту компьютера. Вам, вероятно, нужно испачкать руки и замкнуть одно или два соединения на самом телефоне.
источник
Вы можете использовать adb shell dumpsys battery set usb 0; // для отключения зарядки от USB и
Батарея ADB Shell Dsdsys комплект батарей USB 1; // для включения зарядки через USB
источник
Вы можете решить проблему аппаратно, изменив контакты на стороне разъема micro-USB. Один очевидный способ - не подключать контакт № 1 (VBUS), а другой способ - заземлить контакт № 4 (ID), чтобы показать, что ваш хост (ПК) является устройством OTG. Если вы это сделаете, вам придется отключить контакт №1 (VBUS), иначе один, если не оба ваших устройства будут сожжены.
Что касается решения для командной строки, вам просто нужно найти нужные (зависящие от устройства)
/sys/...
файлы для воспроизведения. Но, как уже упоминалось, для их изменения необходимы права на запись и права root, и что бы вы ни делали, это будет продолжаться только до следующей перезагрузки или смены периферийного устройства USB.источник
/sys/...
необходимые для этого файлы (Nexus 4 да, Nexus 5 нет). Другим решением должно быть изменение поведения драйвера зарядки в ядре.Подобно оператору, мой Хост, подключенный через USB, также подключается как фиктивная батарея. Невозможно просто использовать USB-кабель и батарею, Android не загружается, и USB не обеспечивает достаточный ток.
Вы не можете исправить это в программном обеспечении, так как Android будет использовать Vbus во время загрузки. Если только вы не хотите взломать код загрузчика.
Цепь зарядки должна быть изменена, чтобы избежать зарядки USB от петли напряжения батареи.
Я подтвердил, что на Galaxy S3 требуется шина 5 В, чтобы данные (d + d-) были частью стандарта USB.
OTG может решить проблему электрически, но тогда правила хост-клиента не верны. Также этот телефон способен OTG и заряжать (я использую Y-кабель + геймпад)
Изменить ссылку: https://forum.xda-developers.com/showthread.php?t=1863303
источник
Я спросил моего коллегу, который является экспертом в области драйверов батареи. На нашем Нут Pro 2, ядро которого версия 4.4.21, узел для зарядки аккумулятора включения / выключения:
/sys/class/power_supply/battery/input_suspend
.источник
Вы всегда можете использовать диод Шотки между контактом 1 стороной блокировки к аксессуару. Таким образом, контакт 1 получает сигнал 5 В, поэтому связь работает, но ток не будет течь от аксессуара к вашему телефону. или, если вы хотите по-другому, просто поместите диод в другом направлении.
источник
Нет, это невозможно на устройствах, которые еще не рутированы. Он использует Settings.System с ADB_ENABLED, но ADB_ENABLED - это параметр Secure-System, который не может быть изменен приложением.
Да, это можно сделать на рутированном телефоне.
Необходимо добавить разрешение android.permission.WRITE_SECURE_SETTINGS. Я знаю, что вы спросите, как мне это сделать: вот ссылка на похожее приложение: https://play.google.com/store/apps/details?id=com.jim2&hl=en.
источник
ADB_ENABLED
общего с зарядкой через USB? Позволяет ли приложение, на которое вы ссылаетесь, отключить зарядку через USB?