Nonaktifkan pengisian USB

22

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/batterydan /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.

STiLLeN
sumber
2
Meskipun ini mungkin atau mungkin tidak berkontribusi pada pertanyaan, saya ingin tahu mengapa Anda ingin menonaktifkan pengisian USB.
dotVezz
Apa yang saya miliki di sini adalah sesuatu yang lebih mirip dengan sistem tertanam: telepon (USB ACCESSORY) dan perangkat keras (USB HOST), terhubung melalui USB. Baterai telepon memasok perangkat keras yang terpasang melalui koneksi tertentu (Vdd). Namun, USB HOST seharusnya memasok (atau mengisi) ponsel melalui jalur VBUS USB. Yang ingin saya hindari adalah lingkaran biaya antara telepon dan perangkat keras yang terpasang. Meskipun perangkat keras yang terpasang adalah HOST, itu adalah ponsel Android yang memasok seluruh sistem. Semoga penjelasan saya jelas bagi Anda.
STiLLeN
2
/ sys adalah sistem file virtual di mana kernel memperlihatkan tombol dan switch untuk mengubah dan mencari konfigurasi kernel. Anda tidak dapat mengubah izin file. Saya kira ponsel nexus Anda dibuka dan di-root. Sirkuit pengisian mungkin didasarkan pada chip Maxim yang dapat dikonfigurasi. Ada kernel yang diubah yang memungkinkan penggantian deteksi untuk pengisian daya. Kebalikannya juga harus dimungkinkan. Anda mungkin perlu menambal dan mengkompilasi ulang kernel.
ce4
1
Franco Kernel untuk nexus 4 memungkinkan pengisian cepat, sumber tersedia. mungkin Anda bisa melihatnya dan mencari tahu cara mematikannya: github.com/franciscofranco
ce4

Jawaban:

7

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'

$ su

$ echo 0 > /sys/class/power_supply/usb/device/charge

Saya menguji pada Nexus 4 dan berhasil.

pengguna3395818
sumber
Saya dapat mengkonfirmasi bahwa ini echo 0 > /sys/class/power_supply/battery/charging_enabledberfungsi untuk saya, pada Sony Z1 Compact dengan CM11. Terima kasih banyak! :)
seanlano
Harap dicatat bahwa antarmuka / sys adalah virtual dan tidak
tahan
3
adb shell dumpsys battery set ac 0; dumpsys battery set usb 0;
Nir Duan
sumber
2

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
Ada 4 pin di USB umumnya - 2 untuk daya 5v dan 2 untuk data.
NoBugs
1
Jika Anda memotong Vbus dan Ground, ini juga akan menghentikan jalur data agar tidak berfungsi. Koneksi kabel USB terdeteksi dari daya (lihat konektor-A, pin daya sedikit lebih panjang sehingga mereka akan terhubung terlebih dahulu).
diidu
1

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.

Mobilecrackers
sumber
Ya itu juga bisa dilakukan melalui perangkat lunak. Lihatlah aplikasi ini untuk Nexus 4 stopCharge yang telah di
rooting
1

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

Himanshu Rautela
sumber
1
Ini mudah, tetapi sayangnya tidak menonaktifkan pengisian daya. Itu hanya membuatnya tampak seperti dinonaktifkan.
diidu
0

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.

not2qubit
sumber
2
Solusi perangkat keras yang disarankan salah. Hampir setiap ponsel Android di luar sana adalah perangkat USB yang mendapatkan catu daya dari host USB (misalnya laptop), sehingga bekerja dalam mode Aksesori. Jika Anda memotong jalur VBUS, komunikasi data USB berhenti berfungsi. Saya sudah menguji ini sendiri. Saya akan mengatakan hal yang sama untuk cara lain (pin ID) meskipun saya tidak mengujinya. Anda benar tentang solusi perangkat lunak, namun tidak semua ponsel Android memiliki /sys/...file yang diperlukan untuk melakukannya (Nexus 4 ya, Nexus 5 tidak). Solusi lain adalah perubahan perilaku driver pengisian ke dalam kernel.
STiLLeN
0

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

kevinf
sumber
Akan diperbarui setelah saya mengetahui perubahan sirkuit pengisian daya
kevinf
0

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.

Bao Haojun
sumber
0

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.

pengguna300447
sumber
-1

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

Ravindra Sahay
sumber
1
Apa ADB_ENABLEDhubungannya dengan pengisian USB? Apakah aplikasi yang Anda tautkan memungkinkan untuk menonaktifkan pengisian daya USB?
Dan Hulme
Aplikasi ini agaknya memungkinkan Anda untuk menonaktifkan pengisian usb setelah Anda mengubah pengaturan keamanan tulis.
Ravindra Sahay
"Agak"? Apa langkah yang harus diikuti?
Dan Hulme