Untuk beberapa alasan yang tidak terkait dengan masa pakai baterai, saya harus menonaktifkan pengisian baterai ketika host USB terhubung ke ponsel saya (Nexus 4 yang di-root). Melihat-lihat di internet ( link1 , link2 ), sepertinya saya harus memodifikasi file sistem. Saya telah menemukan serangkaian file menarik yang terletak di /sys/class/power_supply/battery
dan /sys/class/power_supply/usb
, itu bisa menjadi yang tepat untuk dimodifikasi untuk mencapai penonaktifan pengisian daya usb (mis /sys/class/power_supply/usb/present 0/1
.).
Adakah yang pernah mencoba sesuatu seperti itu (mengontrol pengisian usb melalui perangkat lunak dan memodifikasi file sistem tersebut)? Mana cara terbaik untuk memodifikasi file sistem itu? Haruskah saya menggunakan adb shell atau alat lain?
Saya mencoba aplikasi "root explore" untuk memodifikasi file-file itu, namun ketika saya memodifikasi file (setelah mengubah izinnya), secara otomatis disimpan kembali ke nilai aslinya.
sumber
Jawaban:
Saya baru saja mencoba dan menemukan bahwa Anda perlu memodifikasi file:
sys/class/power_supply/usb/device/charge
konten default-nya adalah '1' yang berarti 'aktifkan pengisian' Anda harus mengaturnya ke '0' untuk 'nonaktifkan pengisian'
Saya menguji pada Nexus 4 dan berhasil.
sumber
echo 0 > /sys/class/power_supply/battery/charging_enabled
berfungsi untuk saya, pada Sony Z1 Compact dengan CM11. Terima kasih banyak! :)sumber
Saya tidak yakin apakah itu akan berfungsi dengan charger ponsel khusus Anda, tetapi seringkali dengan kabel yang mentransfer daya dan data, ada kabel terpisah di dalam kabel untuk daya, dan data.
Saya tidak terlalu tertarik untuk merobek charger ponsel saya untuk mengkonfirmasi ide saya, tetapi Anda bisa mencoba melepaskan bagian kabel, mengidentifikasi dan memotong kabel listrik di dalam kabel, dan membungkusnya kembali dengan pita listrik.
Mungkin ada cara yang lebih mudah untuk melakukan ini, tetapi saya tidak menyadarinya.
sumber
Saya cukup yakin itu bukan sesuatu yang dapat Anda ubah dalam perangkat lunak karena biaya telepon akan ketika dicolokkan ke port USB komputer. Anda mungkin harus membuat tangan Anda kotor dan koneksi pendek atau dua pada telepon itu sendiri.
sumber
Anda dapat menggunakan adb shell dumpsys battery set usb 0; // untuk menonaktifkan pengisian USB dan
adb shell dumpsys battery set usb 1; // untuk mengaktifkan pengisian USB
sumber
Anda dapat menyelesaikan masalah di perangkat keras dengan memodifikasi pin di sisi konektor micro-USB. Satu cara yang jelas adalah tidak menyambungkan Pin # 1 (VBUS) dan cara lainnya adalah dengan menghubungkan Pin # 4 (ID) dengan alasan host Anda (PC) adalah perangkat OTG. Jika Anda melakukannya, Anda harus melepaskan Pin # 1 (VBUS) jika tidak, jika tidak keduanya, perangkat Anda akan terbakar.
Sedangkan untuk solusi baris perintah, Anda hanya perlu menemukan file yang tepat (tergantung perangkat)
/sys/...
untuk dimainkan. Tetapi seperti yang telah disebutkan, Anda perlu akses tulis dan izin root untuk mengubahnya, dan apa pun yang Anda lakukan hanya akan berlangsung sampai reboot berikutnya atau perubahan perangkat USB.sumber
/sys/...
file yang diperlukan untuk melakukannya (Nexus 4 ya, Nexus 5 tidak). Solusi lain adalah perubahan perilaku driver pengisian ke dalam kernel.Mirip dengan op, Host saya yang terhubung melalui USB juga terhubung sebagai baterai tiruan. Tidak bisa hanya menggunakan kabel USB dan tanpa baterai, Android tidak bisa boot, usb juga tidak menyediakan arus yang cukup.
Anda tidak dapat memperbaikinya dalam perangkat lunak karena Android akan menggunakan Vbus selama boot. Kecuali Anda juga ingin meretas kode bootloader.
Sirkuit pengisian perlu dimodifikasi untuk menghindari pengisian usb vs loop tegangan baterai.
Saya mengkonfirmasi pada Galaxy S3 itu membutuhkan 5V bus untuk mengaktifkan data (d + d-) itu bagian dari standar USB.
OTG dapat menyelesaikan masalah secara elektrik tetapi kemudian aturan klien host tidak benar. Juga ponsel ini dapat OTG dan mengisi (saya menggunakan y-cable + gamepad)
Edit referensi: https://forum.xda-developers.com/showthread.php?t=1863303
sumber
Saya bertanya kepada kolega saya, yang merupakan ahli dalam driver baterai. Pada Nut kami Pro 2, yang versi kernel adalah 4.4.21, node untuk pengisian daya baterai on / off adalah:
/sys/class/power_supply/battery/input_suspend
.sumber
Anda selalu dapat menggunakan dioda shottky antara pin 1 dengan sisi yang menghalangi ke arah aksesori. dengan cara itu pin satu mendapat sinyal 5v sehingga komunikasi berfungsi, tetapi tidak akan ada arus yang mengalir dari aksesoris ke telepon Anda. atau jika Anda menginginkannya, letakkan saja dioda di arah yang berbeda.
sumber
Tidak, itu tidak mungkin pada perangkat yang belum di-root. Ini menggunakan Pengaturan. Sistem dengan ADB_ENABLED, tetapi ADB_ENABLED adalah Pengaturan Sistem-Aman yang tidak dapat diubah oleh aplikasi.
Ya, itu bisa dilakukan di ponsel yang di-rooting.
Anda perlu menambahkan izin android.permission.WRITE_SECURE_SETTINGS. Saya tahu Anda akan bertanya bagaimana cara melakukannya: Berikut ini tautan untuk aplikasi serupa: https://play.google.com/store/apps/details?id=com.jim2&hl=id
sumber
ADB_ENABLED
hubungannya dengan pengisian USB? Apakah aplikasi yang Anda tautkan memungkinkan untuk menonaktifkan pengisian daya USB?