ปิดใช้งานการชาร์จ USB


22

ด้วยเหตุผลบางอย่างที่ไม่เกี่ยวข้องกับอายุการใช้งานของแบตเตอรี่ฉันต้องปิดการใช้งานการชาร์จแบตเตอรี่เมื่อโฮสต์ USB เชื่อมต่อกับโทรศัพท์ของฉัน (Nexus 4 ที่รูทเครื่อง) ลองมองดูในอินเทอร์เน็ต ( link1 , link2 ) ดูเหมือนว่าฉันควรจะแก้ไขไฟล์ระบบ ฉันพบไฟล์ที่น่าสนใจหลายชุดที่อยู่ใน/sys/class/power_supply/batteryและ/sys/class/power_supply/usbอาจเป็นไฟล์ที่ถูกต้องที่จะแก้ไขเพื่อให้สามารถปิดการชาร์จ usb ได้ (เช่น/sys/class/power_supply/usb/present 0/1)

มีใครลองอะไรแบบนั้นบ้าง (ควบคุมการชาร์จ usb ผ่านซอฟต์แวร์และแก้ไขไฟล์ระบบดังกล่าว)? วิธีใดที่ดีที่สุดในการแก้ไขไฟล์ระบบเหล่านั้น ฉันควรใช้ adb shell หรือเครื่องมืออื่นหรือไม่?

ฉันลองใช้แอพ "root Explore" เพื่อแก้ไขไฟล์เหล่านั้นอย่างไรก็ตามเมื่อฉันแก้ไขไฟล์ (หลังจากเปลี่ยนการอนุญาต) มันก็จะถูกเก็บกลับไปเป็นค่าดั้งเดิมโดยอัตโนมัติ


2
แม้ว่าสิ่งนี้อาจช่วยหรือไม่สนับสนุนคำถามนี้ แต่ฉันอยากรู้ว่าทำไมคุณถึงต้องการปิดการชาร์จ USB
dotVezz

สิ่งที่ฉันมีที่นี่คือสิ่งที่คล้ายกับระบบฝังตัว: โทรศัพท์ (อุปกรณ์ USB) และฮาร์ดแวร์ (USB HOST) ที่เชื่อมต่อผ่าน USB แบตเตอรี่โทรศัพท์ให้อุปกรณ์ฮาร์ดแวร์ที่เชื่อมต่อผ่านการเชื่อมต่อเฉพาะ (Vdd) อย่างไรก็ตาม USB HOST ควรจะจัดหา (หรือชาร์จ) โทรศัพท์ผ่านสาย VBUS ของ USB สิ่งที่ฉันต้องการหลีกเลี่ยงคือการคิดค่าธรรมเนียมระหว่างโทรศัพท์และฮาร์ดแวร์ที่ต่อพ่วง แม้จะมีฮาร์ดแวร์ที่แนบมาเป็นโฮสต์ แต่ก็เป็นโทรศัพท์ Android ที่ให้บริการทั้งระบบ หวังว่าคำอธิบายของฉันจะชัดเจนสำหรับคุณ
STiLLeN

2
/ sys เป็นระบบไฟล์เสมือนที่เคอร์เนล exposes ลูกบิดและสวิตช์เพื่อปรับเปลี่ยนและค้นหาการกำหนดค่าเคอร์เนล คุณไม่สามารถเปลี่ยนการอนุญาตไฟล์ ฉันเดาว่าโทรศัพท์ Nexus ของคุณถูกปลดล็อกและรูตแล้ว วงจรการชาร์จอาจขึ้นอยู่กับชิป Maxim ที่อาจถูกกำหนดค่า มีการเปลี่ยนแปลงของเมล็ดซึ่งทำให้สามารถตรวจจับการชาร์จพลังงานได้ ย้อนกลับควรจะเป็นไปได้ คุณอาจต้องแก้ไขและคอมไพล์เคอร์เนลใหม่
ce4

1
เคอร์เนล Franco สำหรับ Nexus 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เหมาะกับฉันบน Sony Z1 Compact ด้วย CM11 ขอบคุณมาก! :)
seanlano

โปรดทราบว่าอินเทอร์เฟซ / sys เป็นเสมือนจริงและไม่มีการรีบูตเครื่อง
kevinf


2

ฉันไม่แน่ใจว่ามันจะทำงานกับที่ชาร์จโทรศัพท์ของคุณหรือไม่ แต่บ่อยครั้งที่มีสายเคเบิลที่ถ่ายโอนทั้งพลังงานและข้อมูลมีสายแยกต่างหากภายในสายเคเบิลเพื่อจ่ายไฟและข้อมูล

ฉันไม่สนใจที่จะฉีกที่ชาร์จโทรศัพท์ของฉันโดยเฉพาะเพื่อยืนยันความคิดของฉัน แต่คุณสามารถลองปอกสายเคเบิลส่วนหนึ่งระบุและตัดสายไฟที่อยู่ภายในสายเคเบิลและห่อด้วยเทปไฟฟ้า

อาจมีวิธีที่ง่ายกว่าในการทำเช่นนี้ แต่ฉันไม่ทราบ


โดยทั่วไปจะมี 4 พินใน USB - 2 สำหรับพลังงาน 5v และ 2 สำหรับข้อมูล
NoBugs

1
ถ้าคุณตัด Vbus และ Ground มันจะหยุดสายข้อมูลไม่ให้ทำงาน ตรวจพบการเชื่อมต่อสาย USB จากแหล่งจ่ายไฟ (ดูขั้วต่อ A, พินพลังงานจะยาวขึ้นเล็กน้อยเพื่อให้เชื่อมต่อก่อน)
diidu

1

ฉันค่อนข้างแน่ใจว่าไม่ใช่สิ่งที่คุณสามารถเปลี่ยนซอฟต์แวร์ได้เนื่องจากจะชาร์จโทรศัพท์เมื่อเสียบเข้ากับพอร์ต USB ของคอมพิวเตอร์ คุณอาจจำเป็นต้องทำให้มือของคุณสกปรกและขาดการเชื่อมต่อหรือสองทางโทรศัพท์


ใช่มันสามารถทำได้ผ่านซอฟต์แวร์ ดูแอพนี้เพื่อรับค่า Nexus 4 ที่ หยุดทำงานรูต
STiLLeN

1

คุณสามารถใช้ adb shell dumpsys ชุดแบตเตอรี่ usb 0; // สำหรับปิดการใช้งานการชาร์จ USB และ

adb shell dumpsys ชุดแบตเตอรี่ usb 1; // สำหรับการเปิดใช้งานการชาร์จ USB


1
นี่เป็นเรื่องง่าย แต่น่าเสียดายที่มันไม่ได้ปิดการชาร์จ มันทำให้ดูเหมือนว่าจะปิดการใช้งาน
diidu

0

คุณสามารถแก้ไขปัญหาในฮาร์ดแวร์ได้โดยการปรับเปลี่ยนหมุดที่ด้านขั้วต่อ micro-USB วิธีหนึ่งที่ชัดเจนคือการไม่เชื่อมต่อ Pin # 1 (VBUS) และอีกวิธีหนึ่งคือกราวด์ Pin # 4 (ID) เพื่อทำการโฮสต์ของคุณ (PC) เป็นอุปกรณ์ OTG หากคุณทำเช่นนั้นคุณจะต้องตัดการเชื่อมต่อ Pin # 1 (VBUS) ไม่เช่นนั้นอุปกรณ์ของคุณจะถูกเบิร์น

สำหรับโซลูชันบรรทัดคำสั่งคุณเพียงแค่ค้นหาไฟล์ที่ถูกต้อง (ขึ้นอยู่กับอุปกรณ์) ที่/sys/...จะเล่นด้วย แต่ดังที่กล่าวไปแล้วคุณต้องมีสิทธิ์ในการเขียนและการอนุญาตรูทเพื่อเปลี่ยนสิ่งเหล่านี้และสิ่งที่คุณทำจะคงอยู่จนกว่าจะรีบูตหรือเปลี่ยนอุปกรณ์ต่อพ่วง USB ครั้งถัดไป


2
โซลูชันฮาร์ดแวร์ที่แนะนำไม่ถูกต้อง โทรศัพท์ Android เกือบทุกเครื่องมีอุปกรณ์ USB ที่ได้รับแหล่งจ่ายไฟจากโฮสต์ USB (เช่นแล็ปท็อป) ซึ่งทำงานในโหมดอุปกรณ์เสริม หากคุณตัดสาย VBUS การสื่อสารข้อมูล USB จะหยุดทำงาน ฉันได้ทำการทดสอบตัวเองแล้ว ฉันจะพูดเหมือนกันสำหรับวิธีอื่น ๆ (รหัส PIN) แม้ว่าฉันไม่ได้ทดสอบ คุณมีความถูกต้องเกี่ยวกับโซลูชันซอฟต์แวร์ แต่โทรศัพท์ Android บางรุ่นมี/sys/...ไฟล์ที่จำเป็นสำหรับการทำเช่นนั้น (Nexus 4 ใช่, Nexus 5 ไม่) อีกวิธีหนึ่งคือการเปลี่ยนพฤติกรรมการชาร์จไดรเวอร์ลงในเคอร์เนล
STiLLeN

0

คล้ายกับ op, Host ของฉันที่เชื่อมต่อผ่าน USB นั้นเชื่อมต่อด้วยแบตเตอรี่จำลอง ไม่เพียงแค่ใช้สายเคเบิล USB และไม่มีแบตเตอรี่ Android จะไม่สามารถบูตได้และ usb ก็ไม่สามารถให้กระแสได้เพียงพอ

คุณไม่สามารถแก้ไขได้ในซอฟต์แวร์เนื่องจาก Android จะใช้ Vbus ในระหว่างการบู๊ต นอกจากว่าคุณต้องการแฮ็ครหัส bootloader

วงจรการชาร์จจะต้องได้รับการแก้ไขเพื่อหลีกเลี่ยงการชาร์จ usb เทียบกับห่วงแรงดันไฟฟ้าของแบตเตอรี่

ฉันยืนยันใน Galaxy S3 ต้องใช้ 5V บัสเพื่อเปิดใช้งานข้อมูล (d + d-) เป็นส่วนหนึ่งของมาตรฐาน USB

OTG สามารถแก้ปัญหาไฟฟ้าได้ แต่กฎของโฮสต์ไคลเอ็นต์ไม่ถูกต้อง โทรศัพท์นี้ยังสามารถ OTG และชาร์จ (ฉันใช้ y-cable + gamepad)

แก้ไขการอ้างอิง: https://forum.xda-developers.com/showthread.php?t=1863303


จะอัปเดตเมื่อฉันคิดการเปลี่ยนแปลงวงจรการชาร์จ
kevinf

0

ฉันถามเพื่อนร่วมงานของฉันซึ่งเป็นผู้เชี่ยวชาญด้านแบตเตอรี่ขับ อ่อนนุชเรา Pro 2 ซึ่งเคอร์เนลรุ่น 4.4.21, โหนดสำหรับชาร์จแบตเตอรี่ / /sys/class/power_supply/battery/input_suspendปิดคือ:


0

คุณสามารถใช้ไดโอด shottky ระหว่าง pin 1 กับด้านการบล็อกต่ออุปกรณ์เสริม วิธีการที่ขาหนึ่งได้รับสัญญาณ 5v เพื่อให้การสื่อสารทำงานได้ แต่จะไม่มีกระแสไหลจากอุปกรณ์เสริมไปยังโทรศัพท์ของคุณ หรือถ้าคุณต้องการวิธีอื่นเพียงวางไดโอดในทิศทางที่ต่างกัน


-1

ไม่มันเป็นไปไม่ได้ในอุปกรณ์ที่ยังไม่ได้รูท มันใช้ Settings.System กับ ADB_ENABLED แต่ ADB_ENABLED เป็นการตั้งค่าความปลอดภัยของระบบซึ่งไม่สามารถเปลี่ยนแปลงได้โดยแอปพลิเคชัน

ใช่มันสามารถทำได้บนโทรศัพท์รูท

ไม่จำเป็นต้องเพิ่มการอนุญาต ฉันรู้ว่าคุณจะถามว่าฉันจะทำอย่างไร: นี่คือลิงค์สำหรับแอพที่คล้ายกัน: https://play.google.com/store/apps/details?id=com.jim2&hl=th


1
การADB_ENABLEDชาร์จ USB ทำอะไรได้บ้าง แอพที่คุณลิงค์อนุญาตให้ปิดการชาร์จ USB หรือไม่
Dan Hulme

แอป kinda อนุญาตให้คุณปิดใช้งานการชาร์จ usb หลังจากที่คุณแก้ไขการตั้งค่าการเขียนที่ปลอดภัย
Ravindra Sahay

"คิน"? ขั้นตอนในการปฏิบัติตามคืออะไร?
Dan Hulme
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.