Aus Gründen, die nicht mit der Akkulaufzeit zusammenhängen, muss ich das Aufladen des Akkus deaktivieren, wenn ein USB-Host an mein Telefon angeschlossen ist (ein gerootetes Nexus 4). Wenn ich mich im Internet umsehe ( link1 , link2 ), sollte ich eine Systemdatei ändern. Ich habe eine Reihe interessanter Dateien in /sys/class/power_supply/battery
und /sys/class/power_supply/usb
gefunden, die möglicherweise geändert werden müssen, um die Deaktivierung des USB-Ladevorgangs zu erreichen (z /sys/class/power_supply/usb/present 0/1
. B. ).
Hat jemand so etwas ausprobiert (den USB-Ladevorgang über Software steuern und solche Systemdateien modifizieren)? Wie können diese Systemdateien am besten geändert werden? Soll ich die AdB-Shell oder ein anderes Tool verwenden?
Ich habe versucht, die App "root explore" zu verwenden, um diese Dateien zu ändern. Wenn ich jedoch eine Datei änderte (nachdem ich ihre Berechtigungen geändert hatte), wurde sie automatisch auf ihren ursprünglichen Wert zurückgesetzt.
quelle
Antworten:
Ich habe gerade versucht und festgestellt, dass Sie eine Datei ändern müssen:
sys/class/power_supply/usb/device/charge
Der Standardinhalt ist "1", was bedeutet, dass Sie das Laden aktivieren müssen, um das Laden zu deaktivieren.
Ich habe es auf Nexus 4 getestet und es funktioniert erfolgreich.
quelle
echo 0 > /sys/class/power_supply/battery/charging_enabled
das bei mir funktioniert, auf einer Sony Z1 Compact mit CM11. Vielen Dank! :)quelle
Ich bin mir nicht sicher, ob es mit dem Ladegerät Ihres Telefons funktioniert, aber oft mit Kabeln, die sowohl Strom als auch Daten übertragen. Im Kabel befinden sich separate Kabel für Strom und Daten.
Ich bin nicht besonders daran interessiert, mein Telefonladegerät zu zerreißen, um meine Idee zu bestätigen, aber Sie könnten versuchen, einen Teil des Kabels abzuisolieren, die Netzkabel im Inneren des Kabels zu identifizieren und abzuschneiden und es wieder mit Klebeband einzuwickeln.
Es ist wahrscheinlich eine Art und Weise einfache Mittel, dies zu tun, aber ich bin davon nicht bewusst.
quelle
Ich bin mir ziemlich sicher, dass Sie dies nicht an der Software ändern können, da das Telefon aufgeladen wird, wenn es an einen USB-Anschluss eines Computers angeschlossen wird. Sie müssten sich wahrscheinlich die Hände schmutzig machen und ein oder zwei Verbindungen am Telefon selbst kurzschließen.
quelle
Sie können AdB Shell Dumpsys Batterie Set USB 0 verwenden; // zum Deaktivieren des USB-Ladevorgangs und
adb shell dumpsys akkusatz usb 1; // zum Aktivieren des USB-Ladevorgangs
quelle
Sie können das Hardwareproblem beheben, indem Sie die Pins auf der Seite des Micro-USB-Anschlusses ändern. Eine naheliegende Möglichkeit besteht darin, Pin 1 (VBUS) nicht zu verbinden, und die andere darin, Pin 4 (ID) zu erden, um so zu tun, als sei Ihr Host (PC) ein OTG-Gerät. Wenn Sie das tun, Sie müssen Disconnect Pin # 1 (VBUS) sonst ein, wenn nicht beide, Ihre Geräte verbrennen.
Für die Befehlszeilenlösung müssen Sie nur die richtigen (geräteabhängigen)
/sys/...
Dateien zum Spielen finden. Aber wie bereits erwähnt, benötigen Sie Schreibzugriff und Root-Berechtigungen, um diese zu ändern, und was auch immer Sie tun, es wird nur bis zum nächsten Neustart oder Wechsel des USB-Peripheriegeräts dauern.quelle
/sys/...
erforderlichen Dateien (Nexus 4 ja, Nexus 5 nein). Eine andere Lösung sollte die Änderung des Ladetreiberverhaltens in den Kernel sein.Ähnlich wie bei der Operation wird mein Host, der über USB angeschlossen ist, auch als Dummy-Batterie angeschlossen. Kann nicht einfach ein USB-Kabel und keinen Akku verwenden, Android bootet nicht und USB liefert nicht genug Strom.
Sie können dies in der Software nicht beheben, da Android während des Startvorgangs Vbus verwendet. Es sei denn, Sie möchten auch Bootloader-Code hacken.
Die Ladeschaltung muss modifiziert werden, um ein Laden über USB im Vergleich zur Batteriespannungsschleife zu vermeiden.
Ich habe bestätigt, dass für das Galaxy S3 ein 5-V-Bus erforderlich ist, um Daten zu aktivieren (d + d-). Dies ist Teil des USB-Standards.
OTG könnte das Problem elektrisch lösen, aber dann sind die Host-Client-Regeln nicht korrekt. Auch dieses Telefon ist in der Lage, OTG und aufzuladen (ich benutze Y-Kabel + Gamepad)
Referenz bearbeiten: https://forum.xda-developers.com/showthread.php?t=1863303
quelle
Ich habe meinen Kollegen gefragt, der Experte für Akkutreiber ist. Auf unserer Mutter Pro 2, Version dessen Kern 4.4.21, wird der Knoten für Batterie Ein / Aus - Aufladung ist:
/sys/class/power_supply/battery/input_suspend
.quelle
Sie können immer eine Schottky-Diode zwischen Pin 1 mit der Sperrseite zum Zubehör verwenden. Auf diese Weise erhält der Pin 1 ein 5-V-Signal, sodass die Kommunikation funktioniert. Es fließt jedoch KEIN Strom vom Zubehör zum Telefon. oder wenn Sie es andersherum wollen, platzieren Sie die Diode einfach in die andere Richtung.
quelle
Nein, auf Geräten, die noch nicht gerootet sind, ist dies nicht möglich. Es verwendet Settings.System mit ADB_ENABLED, aber ADB_ENABLED ist eine sichere Systemeinstellung, die von einer Anwendung nicht geändert werden kann.
Ja, dies kann auf einem gerooteten Telefon erfolgen.
Es muss eine Berechtigung android.permission.WRITE_SECURE_SETTINGS hinzugefügt werden. Ich weiß, Sie würden fragen, wie ich das mache: Hier ist der Link für eine ähnliche App: https://play.google.com/store/apps/details?id=com.jim2&hl=de
quelle
ADB_ENABLED
Aufladen mit USB zu tun? Ermöglicht die von Ihnen verknüpfte App das Deaktivieren des USB-Ladevorgangs?