USB चार्जिंग अक्षम करें


22

बैटरी जीवन से संबंधित कुछ कारणों के लिए, जब एक यूएसबी होस्ट मेरे फोन (एक रूटेड नेक्सस) से जुड़ा होता है, तो मुझे बैटरी चार्जिंग को अक्षम करना होगा। इंटरनेट (पर एक नज़र चारों ओर ले रहा है link1 , link2 ), यह है कि मैं एक प्रणाली फ़ाइल को संशोधित करना चाहिए लग रहा है। मैं पाया है दिलचस्प में स्थित फ़ाइलों की एक श्रृंखला /sys/class/power_supply/batteryऔर /sys/class/power_supply/usb, यह सही लोगों को हो सकता है अक्षम करने (जैसे चार्ज आदेश usb प्राप्त करने के लिए संशोधित किया जाना /sys/class/power_supply/usb/present 0/1)।

क्या किसी ने ऐसा कुछ करने की कोशिश की है (सॉफ्टवेयर के माध्यम से यूएसबी चार्जिंग को नियंत्रित करें और ऐसी सिस्टम फ़ाइलों को संशोधित करें)? उन सिस्टम फ़ाइलों को संशोधित करने का सबसे अच्छा तरीका कौन सा है? क्या मुझे एडीबी शेल या किसी अन्य उपकरण का उपयोग करना चाहिए?

मैंने उन फ़ाइलों को संशोधित करने के लिए "रूट एक्सप्लोर" ऐप की कोशिश की, हालांकि जब मैंने एक फ़ाइल को संशोधित किया (इसकी अनुमतियों को बदलने के बाद), तो यह स्वचालित रूप से अपने मूल मूल्य पर वापस रखा गया था।


2
हालांकि यह प्रश्न में योगदान दे भी सकता है और नहीं भी, मैं उत्सुक हूं कि आप यूएसबी चार्जिंग को क्यों निष्क्रिय करना चाहते हैं।
dotVezz

मेरे पास यहां एक एम्बेडेड सिस्टम के समान कुछ है: एक फोन (USB ACCESSORY) और एक टुकड़ा हार्डवेयर (USB HOST), जो USB के माध्यम से जुड़ा हुआ है। फोन की बैटरी एक विशिष्ट कनेक्शन (Vdd) के माध्यम से संलग्न हार्डवेयर की आपूर्ति करती है। हालाँकि, USB HOST USB के VBUS लाइन के माध्यम से फोन की आपूर्ति (या चार्ज) करने वाला है। मैं जो बचना चाहता हूं वह फोन और अटैच्ड हार्डवेयर के बीच का चार्ज है। संलग्न हार्डवेयर के बावजूद HOST है, यह एंड्रॉइड फोन है जो पूरे सिस्टम की आपूर्ति करता है। आशा है कि मेरी व्याख्या आपके लिए स्पष्ट थी।
STLLeN

2
/ sys एक वर्चुअल फाइल सिस्टम है, जहां कर्नेल घुंडी और स्विच को बदल देता है और कर्नेल कॉन्फ़िगरेशन को देखता है। आप फ़ाइल अनुमतियां नहीं बदल सकते। मुझे लगता है कि आपका नेक्सस फोन अनलॉक और निहित है। चार्जिंग सर्किट संभवतः एक मैक्सिम चिप पर आधारित है जिसे कॉन्फ़िगर किया जा सकता है। वहाँ बदल गुठली उपलब्ध हैं जो बिजली चार्ज करने के लिए पता लगाने की अनुमति देते हैं। रिवर्स भी संभव होना चाहिए। हालांकि आपको कर्नेल को पैच करना और फिर से जोड़ना पड़ सकता है।
CE4

1
नेक्सस 4 के लिए फ्रेंको कर्नेल फास्ट चार्जिंग की अनुमति देता है, स्रोत उपलब्ध हैं। शायद आप इसे देख सकते हैं और यह पता लगा सकते हैं कि इसे कैसे स्विच किया जाए: github.com/franciscofranco
ce4

1
यहाँ ड्राइवर है: github.com/franciscofranco/mako/blob/nightlies-4.3-JWR/drivers/…
Ce4

जवाबों:


7

मैंने बस कोशिश की और पाया कि आपको एक फ़ाइल को संशोधित करने की आवश्यकता है:
sys/class/power_supply/usb/device/charge

इसकी डिफ़ॉल्ट सामग्री '1' है, जिसका अर्थ है 'चार्जिंग सक्षम करें' आपको इसे 'निष्क्रिय करने के लिए' 0 पर सेट करने की आवश्यकता है '

$ su

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

मैंने Nexus 4 पर परीक्षण किया और यह सफलतापूर्वक काम कर रहा है।


मैं पुष्टि कर सकता हूं कि echo 0 > /sys/class/power_supply/battery/charging_enabledमेरे लिए काम करता है, CM11 के साथ Sony Z1 कॉम्पैक्ट पर। बहुत बहुत धन्यवाद! :)
शीनलानो

कृपया ध्यान दें कि / sys इंटरफ़ेस वर्चुअल है और रिबूट को जारी नहीं
रखता है


2

मुझे यकीन नहीं है कि यह आपके विशेष फोन के चार्जर के साथ काम करेगा, लेकिन अक्सर उन केबलों के साथ जो बिजली और डेटा दोनों को स्थानांतरित करते हैं, बिजली के लिए केबल के अंदर अलग-अलग डोरियां हैं, और डेटा।

मुझे अपने विचार की पुष्टि करने के लिए अपने फ़ोन चार्जर को फाड़ने में विशेष रूप से दिलचस्पी नहीं है, लेकिन आप केबल के अलग-अलग हिस्से की कोशिश कर सकते हैं, केबल के अंदर बिजली के तार को पहचान सकते हैं और काट सकते हैं, और इसे इलेक्ट्रिक टेप के साथ वापस लपेट सकते हैं।

संभावना है कि ए आसान तरीका , लेकिन मुझे इसकी जानकारी नहीं है।


यूएसबी में आम तौर पर 4 पिन होते हैं - 5 के लिए 5 वी पावर और 2 डेटा के लिए।
NoBugs

1
यदि आप Vbus और ग्राउंड काटते हैं तो यह डेटा लाइनों को काम करने से भी रोक देगा। यूएसबी केबल कनेक्शन को पावर से पता लगाया जाता है (ए-कनेक्टर देखें, पावर पिन थोड़ा लंबा है इसलिए वे पहले कनेक्ट होंगे)।
दिद्दू

1

मुझे पूरा यकीन है कि यह कुछ ऐसा नहीं है जिसे आप सॉफ्टवेयर में तब बदल सकते हैं जब फोन को कंप्यूटर के यूएसबी पोर्ट में प्लग किया जाता है। शायद आपको अपने हाथों को गंदा और छोटा या एक कनेक्शन या फोन पर दो ही प्राप्त करने की आवश्यकता होगी।


हाँ यह सॉफ्टवेयर के माध्यम से भी किया जा सकता है। नेक्सस 4 स्टॉपचार्ज के
STLLeN

1

आप एडीबी शेल डंपस बैटरी सेट यूएसबी 0 का उपयोग कर सकते हैं; // USB चार्जिंग अक्षम करने के लिए और

एडीबी शेल डंप्स बैटरी सेट यूएसबी 1; // USB चार्जिंग सक्षम करने के लिए


1
यह आसान है, लेकिन दुर्भाग्य से यह चार्जिंग को अक्षम नहीं करता है। यह केवल ऐसा दिखता है जैसे यह अक्षम है।
दीवदु

0

आप माइक्रो-यूएसबी कनेक्टर पक्ष पर पिन को संशोधित करके हार्डवेयर में समस्या को हल कर सकते हैं। एक स्पष्ट तरीका पिन # 1 (VBUS) को कनेक्ट नहीं करना है और दूसरा तरीका पिन # 4 (आईडी) को अपने होस्ट (पीसी) को दिखाने के लिए एक OTG डिवाइस है। यदि आप ऐसा करते हैं, तो आपको करना होगा पिन # 1 (VBUS) डिस्कनेक्ट करना होगा अन्यथा एक, यदि दोनों नहीं, तो आपके डिवाइस जल जाएंगे।

कमांड लाइन समाधान के लिए, आपको बस /sys/...खेलने के लिए सही (डिवाइस पर निर्भर) फ़ाइलों को ढूंढना होगा । लेकिन जैसा कि पहले ही उल्लेख किया गया है, आपको इन्हें बदलने के लिए लिखने और रूट अनुमतियों की आवश्यकता है, और जो कुछ भी आप करते हैं वह केवल अगले रिबूट या यूएसबी परिधीय के परिवर्तन तक चलेगा।


2
सुझाए गए हार्डवेयर समाधान गलत है। लगभग हर एंड्रॉइड फोन में एक यूएसबी डिवाइस होता है जो यूएसबी होस्ट (जैसे लैपटॉप) से बिजली की आपूर्ति प्राप्त करता है, इस प्रकार एक्सेसरी मोड में काम करता है। यदि आप VBUS लाइन काटते हैं तो USB डेटा संचार काम करना बंद कर देता है। मैंने खुद इसका परीक्षण किया है। मैं दूसरे तरीके (आईडी पिन) के लिए भी यही कहूंगा, हालांकि मैंने इसका परीक्षण नहीं किया। आप सॉफ्टवेयर समाधान के बारे में सही हैं, हालांकि सभी एंड्रॉइड फोन में /sys/...ऐसा करने के लिए आवश्यक फाइलें नहीं हैं (Nexus 4 हां, Nexus 5 नहीं)। एक अन्य समाधान कर्नेल में चार्जिंग ड्राइवर व्यवहार को बदलना चाहिए।
STLLeN

0

ऑप के समान, मेरा होस्ट जो USB के माध्यम से जुड़ा हुआ है वह भी डमी बैटरी के रूप में जुड़ा हुआ है। बस USB केबल और बैटरी का उपयोग नहीं कर सकते, android बूट नहीं होगा, और न ही USB पर्याप्त वर्तमान प्रदान करता है।

आप इसे सॉफ़्टवेयर में ठीक नहीं कर सकते क्योंकि Android बूट के दौरान Vbus का उपयोग करेगा। जब तक आप भी बूटलोडर कोड हैक नहीं करना चाहते।

चार्जिंग सर्किट को बैटरी वोल्टेज लूप बनाम यूएसबी चार्जिंग से बचने के लिए संशोधित करने की आवश्यकता है।

मैंने गैलेक्सी एस 3 पर पुष्टि की कि डेटा को सक्षम करने के लिए 5 वी बस की आवश्यकता है (डी + डी-) यह यूएसबी मानक का हिस्सा है।

OTG समस्या को विद्युत रूप से हल कर सकता है लेकिन तब होस्ट क्लाइंट नियम सही नहीं हैं। इसके अलावा यह फोन OTG और चार्ज करने में सक्षम है (मैं y- केबल + गेमपैड का उपयोग करता हूं)

संदर्भ संपादित करें: https://forum.xda-developers.com/showthread.php?t=1863303


एक बार जब मैं चार्ज सर्किट परिवर्तन का पता लगा
लूंगा

0

मैंने अपने सहयोगी से पूछा, जो बैटरी ड्राइवर का विशेषज्ञ है। हमारे नट प्रो 2 पर, जिसका कर्नेल संस्करण 4.4.21 है, पर / बंद बैटरी चार्ज करने के लिए नोड है /sys/class/power_supply/battery/input_suspend:।


0

आप हमेशा एक्सेसरी की तरफ ब्लॉकिंग साइड के साथ पिन 1 के बीच एक शॉट्की डायोड का उपयोग कर सकते हैं। जिस तरह से पिन को 5v सिग्नल मिलता है, इसलिए संचार कार्य करता है, लेकिन आपके फोन पर एसेसरी से कोई करंट प्रवाहित नहीं होगा। या यदि आप इसे दूसरे तरीके से चाहते हैं तो डायोड को अलग दिशा में रखें।


-1

नहीं, यह उन उपकरणों पर संभव नहीं है जो अभी तक जड़ नहीं हैं। यह ADB_ENABLED के साथ Settings.System का उपयोग करता है, लेकिन ADB_ENABLED एक सिक्योर-सिस्टम-सेटिंग है जिसे किसी एप्लिकेशन द्वारा नहीं बदला जा सकता है।

हां, इसे रूट किए गए फोन पर किया जा सकता है।

एक अनुमति android.permission.WRITE_SECURE_SETTINGS जोड़ने की आवश्यकता है। मुझे पता है कि आप पूछ रहे होंगे कि मैं ऐसा कैसे करूँ: यहाँ एक परिचित ऐप के लिए लिंक है: https://play.google.com/store/apps/details?id=com.jim2&hl=en


1
ADB_ENABLEDयूएसबी चार्जिंग के साथ क्या करने के लिए मिला है? क्या आप जिस ऐप को लिंक करते हैं, वह यूएसबी चार्जिंग को निष्क्रिय करने की अनुमति देता है?
दान हुलमे

एप्लिकेशन थोरा आपको सुरक्षित सेटिंग लिखने में परिवर्तन करने के बाद USB चार्जिंग को अक्षम करने की अनुमति देता है।
रवींद्र सहाय

"इस किस्म की"? पालन ​​करने के लिए कदम क्या हैं?
दान हुलमे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.