USB şarjını devre dışı bırak


22

Pil ömrü ile ilgili olmayan bazı nedenlerden dolayı, telefona bir USB ana bilgisayarı (köklü bir Nexus 4) bağlıyken pil şarjını devre dışı bırakmam gerekiyor. İnternete göz atarak ( link1 , link2 ), bir sistem dosyasını değiştirmem gerekiyor gibi görünüyor. İlginç bulunan dosyaların bir dizi bulduk /sys/class/power_supply/batteryve /sys/class/power_supply/usbsağ olanları olabilir, (örneğin devre dışı bırakılması şarj usb ulaşmak için değiştirilecek /sys/class/power_supply/usb/present 0/1).

Kimse böyle bir şey denedi mi (USB şarjını yazılım üzerinden kontrol edin ve bu tür sistem dosyalarını değiştirin)? Bu sistem dosyalarını değiştirmenin en iyi yolu hangisidir? Adb kabuk mu yoksa başka bir araç mı kullanmalıyım?

Bu dosyaları değiştirmek için "root Keşfet" uygulamasını denedim, ancak bir dosyayı değiştirdiğimde (izinlerini değiştirdikten sonra) otomatik olarak orijinal değerine geri getirildi.


2
Bu soruya katkıda bulunabilir veya olmayabilir, ancak neden USB şarj etmeyi devre dışı bırakmak istediğinizi merak ediyorum.
dotVezz 11:13

Burada sahip olduğum şey, yerleşik bir sisteme daha çok benzeyen bir şey: bir telefon (USB AKSESUAR) ve USB ile bağlı bir donanım (USB HOST). Telefonun bataryası takılı donanımı belirli bir bağlantı (Vdd) ile sağlar. Ancak, USB HOST'un telefonu USB'nin VBUS hattı üzerinden beslemesi (veya şarj etmesi) gerekir. Sakınmak istediğim şey, telefonla takılı donanım arasında bir şarj döngüsü. Ekteki donanıma rağmen HOST, tüm sistemi sağlayan Android telefon. Umarım açıklamam senin için açıktı.
STILLeN

2
/ sys, çekirdeğin topuzları ortaya çıkardığı ve çekirdek yapılandırmasını değiştirip aradığı bir sanal dosya sistemidir. Dosya izinlerini değiştiremezsiniz. Nexus telefonunuzun kilidi açılmış ve rootlu. Şarj devresi muhtemelen Maxim çip dayanır olabilir yapılandırılabilir. Güç şarjı algılamasının geçersiz kılınmasına izin veren değiştirilmiş taneler vardır. Bunun tersi de mümkün olmalıdır. Yine de çekirdeği yama yapmanız ve derlemeniz gerekebilir.
ce4

1
Nexus 4 için Franco Kernel hızlı şarj sağlar, kaynaklar mevcuttur. belki bir göz atabilir ve nasıl kapatılacağını bulabilirsin: github.com/franciscofranco
ce4

Yanıtlar:


7

Az önce denedim ve bir dosyayı değiştirmeniz gerektiğini öğrendim:
sys/class/power_supply/usb/device/charge

varsayılan içeriği '1' dır, bu da 'şarj etmeyi devre dışı bırakmak' için '0' olarak ayarlamanız gereken 'şarj etmeyi etkinleştir' anlamına gelir

$ su

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

Nexus 4'te test ettim ve başarılı bir şekilde çalışıyor.


Bunun echo 0 > /sys/class/power_supply/battery/charging_enabledbenim için çalıştığını onaylayabilirim, CM11'li Sony Z1 Compact'ta. Çok teşekkürler! :)
seanlano

Lütfen / sys arayüzünün sanal olduğunu ve yeniden başlatmaya devam etmediğini unutmayın
kevinf

3
adb shell dumpsys battery set ac 0; dumpsys battery set usb 0;

2

Telefonunuzun şarj cihazıyla çalışıp çalışmayacağından emin değilim, ancak genellikle hem güç hem de veri aktaran kablolarla güç ve veri için kablo içinde ayrı kablolar vardır.

Fikrimi onaylamak için telefonumun şarj aletini yırtmakla özellikle ilgilenmiyorum, ancak kablonun bir kısmını çıkarmayı, kablonun içindeki güç kablolarını tespit edip kesmeyi ve elektrik bandı ile geri sarmayı deneyebilirsiniz.

Bunu yapmanın daha kolay bir yolu olabilir , ama bunun farkında değilim.


Genel olarak USB'de 4 pim vardır - 5v güç için 2 ve veri için 2.
NoBugs

1
Vbus ve Ground'u keserseniz, veri hatlarının çalışmasını da durduracaktır. USB kablosu bağlantısı güçten algılanıyor (bkz. A-konektörü, güç pimleri biraz daha uzundur, bu nedenle ilk önce bağlanacaktır).
diidu

1

Bir bilgisayarın USB portuna takıldığında telefonun şarj olacağı için yazılımda değiştirebileceğiniz bir şey olmadığından eminim. Muhtemelen ellerinizi kirletmeniz ve telefonunuzda bir veya iki bağlantı kurmanız gerekebilir.


Evet, yazılım üzerinden de yapılabilir. Köklü Nexus 4 stopCharge
STILLeN

1

Adb kabuk dökümünü kullanabilirsiniz pil seti usb 0; // USB şarjını devre dışı bırakmak için ve

adb kabuk dökümü pil seti usb 1; // USB şarjını etkinleştirmek için


1
Bu kolaydır, ancak ne yazık ki şarj işlemini devre dışı bırakmaz. Sadece devre dışı gibi görünmesini sağlar.
diidu

0

Mikro-USB konektör tarafındaki pimleri değiştirerek sorunu donanımda çözebilirsiniz. Bariz bir yol, Pin # 1'i (VBUS) bağlamak değil, diğeri ise, ana makinenizi (PC) taklit etmek için Pin # 4'ü (ID) topraklamaktır. Bunu yaparsanız, Pin # 1 (VBUS) bağlantısını kesmeniz gerekir, aksi halde ikisi de değilse, cihazlarınız yanacaktır.

Komut satırı çözümüne gelince, /sys/...oynatılacak doğru (cihaza bağlı) dosyaları bulmanız yeterlidir . Ancak, daha önce de belirtildiği gibi, bunları değiştirmek için yazma erişimine ve kök izinlerine ihtiyacınız vardır ve ne yaparsanız yapın, yalnızca bir sonraki yeniden başlatmaya veya USB çevre biriminin değiştirilmesine kadar devam eder.


2
Önerilen donanım çözümü yanlıştır. Hemen hemen her Android telefon, USB ana bilgisayarlarından (örn. Dizüstü bilgisayarlardan) güç kaynağını alan ve böylece Aksesuar modunda çalışan bir USB aygıtı var. VBUS hattını keserseniz, USB veri iletişimi çalışmayı durdurur. Bunu kendim test ettim. Test etmesem de aynı şeyi (ID pin) söylerdim. Yazılım çözümü konusunda haklısınız, ancak tüm Android telefonlarda /sys/...gerekli dosyalar yoktur (Nexus 4 evet, Nexus 5 hayır). Başka bir çözüm, şarj sürücü davranışının çekirdeğe dönüşmesi olmalıdır.
STILLeN

0

Op gibi, USB üzerinden bağlanan benim Host da sahte bir pil olarak bağlanır. Sadece USB kablosu kullanamazsınız ve pil kullanamazsınız, android önyükleme yapmaz veya usb yeterli akım sağlamaz.

Android, önyükleme sırasında Vbus kullanacağı için bunu yazılımda düzeltemezsiniz. Aynı zamanda bootloader kodunu da kesmek istemezseniz.

Akü voltaj döngüsüne karşı usb şarjını önlemek için şarj devresinin değiştirilmesi gerekir.

Galaxy S3'te verileri etkinleştirmek için 5V veri yolu gerektirdiğini onayladım (d + d-) USB standardının bir parçası.

OTG sorunu elektriksel olarak çözebilir, ancak ev sahibi istemci kuralları doğru değildir. Ayrıca bu telefon OTG ve şarj edebiliyor (y-cable + gamepad kullanıyorum)

Referansı düzenle: https://forum.xda-developers.com/showthread.php?t=1863303


Şarj devresi değişikliklerini
çözdüğümde bir

0

Akü sürücüsü konusunda uzman olan meslektaşıma sordum. Çekirdek versiyonu 4.4.21 olan Nut Pro 2'de pili şarj etmek için kullanılan düğüm:: /sys/class/power_supply/battery/input_suspend.


0

Pim 1 arasında, bloke tarafı aksesuara doğru her zaman güçlü bir diyot kullanabilirsiniz. bu şekilde pin bir 5V sinyal alır, böylece iletişim çalışır, ancak aksesuardan telefonunuza akan NO akımı olmaz. veya diğer şekilde isterseniz diyotu farklı yöne yerleştirin.


-1

Hayır, henüz köklü olmayan cihazlarda mümkün değildir. ADB_ENABLED ile Settings.System kullanır, ancak ADB_ENABLED bir uygulama tarafından değiştirilemeyen bir Güvenli Sistem Ayarıdır.

Evet, köklü telefonda yapılabilir.

Bir izin android.permission.WRITE_SECURE_SETTINGS eklemeniz gerekir. Bunu nasıl yapacağımı soracağınızı biliyorum: İşte benzer bir uygulamanın bağlantısı: https://play.google.com/store/apps/details?id=com.jim2&hl=tr


1
ADB_ENABLEDUSB şarj ile ne ilgisi var? Bağladığınız uygulama USB şarjını engellemeye izin veriyor mu?
Dan Hulme

Uygulamanın tür güvenli ayarları yazdıktan sonra usb şarj devre dışı bırakmanızı sağlar.
Ravindra Sahay

"Tür"? İzlenecek adımlar nelerdir?
Dan Hulme
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.