USB 충전 비활성화


22

배터리 수명과 관련이없는 몇 가지 이유로 USB 호스트가 휴대 전화 (루팅 된 Nexus 4)에 연결된 경우 배터리 충전을 사용 중지해야합니다. 인터넷 ( link1 , link2 )을 살펴보면 시스템 파일을 수정 해야하는 것처럼 보입니다. /sys/class/power_supply/batteryand 에 위치한 일련의 흥미로운 파일을 찾았는데 /sys/class/power_supply/usb, 이는 USB 충전 비활성화 (예 :)를 달성하기 위해 수정할 수있는 올바른 파일 일 수 있습니다 /sys/class/power_supply/usb/present 0/1.

누구든지 그런 것을 시도 했습니까 (소프트웨어를 통해 USB 충전을 제어하고 시스템 파일을 수정하십시오)? 해당 시스템 파일을 수정하는 가장 좋은 방법은 무엇입니까? adb 쉘 또는 다른 도구를 사용해야합니까?

해당 파일을 수정하기 위해 "루트 탐색"앱을 시도했지만 파일을 수정하면 (권한을 변경 한 후) 자동으로 원래 값으로 유지되었습니다.


2
이것이 질문에 기여할 수도 있고 그렇지 않을 수도 있지만 USB 충전을 비활성화하려는 이유가 궁금합니다.
dotVezz

내가 가지고있는 것은 임베디드 시스템과 더 비슷한 것입니다 : 전화 (USB 액세서리)와 하드웨어를 통해 USB를 통해 연결된 것입니다. 전화기 배터리는 특정 연결 (Vdd)을 통해 연결된 하드웨어를 공급합니다. 그러나 USB HOST는 USB의 VBUS 회선을 통해 전화를 공급 (또는 충전)해야합니다. 내가 피하고 싶은 것은 전화와 연결된 하드웨어 사이의 충전 루프입니다. 연결된 하드웨어는 HOST이지만 전체 시스템을 공급하는 것은 Android 폰입니다. 내 설명이 당신에게 분명하기를 바랍니다.
STiLLeN

2
/ sys는 커널이 노브와 스위치를 노출하여 커널 구성을 변경하고 찾는 가상 파일 시스템입니다. 파일 권한을 변경할 수 없습니다. 당신의 넥서스 폰이 잠금 해제되고 루팅 된 것 같습니다. 충전 회로는 아마도 구성 수 있는 Maxim 칩을 기반 으로합니다. 전력 충전에 대한 감지를 무시할 수있는 변경된 커널이 있습니다. 반대도 가능해야합니다. 그래도 커널을 패치하고 다시 컴파일해야 할 수도 있습니다.
ce4

1
nexus 4 용 Franco Kernel은 빠른 충전을 가능하게하며 소스를 사용할 수 있습니다. 아마 당신은 그것을보고 그것을 끄는 방법을 알아낼 수 있습니다 : github.com/franciscofranco
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_enabledCM11이 포함 된 Sony Z1 Compact에서 저에게 효과적 임을 확인할 수 있습니다 . 정말 고마워! :)
seanlano

/ sys 인터페이스는 가상이고 재부팅을 지속하지 않습니다.
kevinf


2

특정 휴대 전화 충전기에서 작동하는지 확실하지 않지만 전원과 데이터를 모두 전송하는 케이블과 함께 케이블 내부에 전원 코드와 별도의 코드가 있습니다.

나는 내 생각을 확인하기 위해 전화 충전기를 찢어 버리는 데 관심이 없지만 케이블의 일부를 벗겨 내고 케이블 내부의 전원 코드를 식별하고 절단 한 다음 전기 테이프로 다시 포장 할 수 있습니다.

이 작업을 수행하는 더 쉬운 방법 이있을 수 있지만 잘 모르겠습니다.


USB에는 일반적으로 4 개의 핀이 있습니다. 2 개는 5V 전원용이고 2 개는 데이터 용입니다.
NoBugs

1
Vbus 및 Ground를 자르면 데이터 라인의 작동이 중지됩니다. 전원에서 USB 케이블 연결이 감지되었습니다 (A 커넥터 참조, 전원 핀이 약간 길어 먼저 연결됩니다).
diidu

1

컴퓨터 USB 포트에 연결하면 전화 요금이 청구되므로 소프트웨어에서 변경할 수있는 것이 아니라고 확신합니다. 휴대 전화 자체에서 손을 더럽 히고 연결 상태를 유지해야 할 수도 있습니다.


예, 소프트웨어를 통해서도 가능합니다. 루팅 된 Nexus 4 stopCharge
STiLLeN

1

adb shell dumpsys 배터리 세트 usb 0을 사용할 수 있습니다. // USB 충전을 비활성화하고

adb 쉘 dumpsys 배터리 세트 usb 1; // USB 충전 활성화


1
이것은 쉽지만 불행히도 충전을 비활성화하지는 않습니다. 비활성화 된 것처럼 보이게합니다.
diidu

0

마이크로 USB 커넥터 쪽의 핀을 수정하여 하드웨어 문제를 해결할 수 있습니다. 한 가지 확실한 방법은 Pin # 1 (VBUS)을 연결하지 않고 다른 방법은 Pin # 4 (ID)를 접지하여 호스트 (PC)를 OTG 장치로 가장하는 것입니다. 그렇게하면 Pin # 1 (VBUS)의 연결 끊어야합니다. 그렇지 않으면 둘 중 하나라도 장치가 타 버릴 수 있습니다.

커맨드 라인 솔루션에 관해서는, 올바른 (장치 의존) /sys/...파일을 찾아야합니다 . 그러나 이미 언급했듯이,이를 변경하려면 쓰기 액세스 및 루트 권한이 필요하며, 다음에 다시 부팅하거나 USB 주변 장치를 변경할 때까지 지속됩니다.


2
제안 된 하드웨어 솔루션이 올바르지 않습니다. 거의 모든 안드로이드 폰에는 USB 호스트 (예 : 랩탑)로부터 전원을 공급 받아 액세서리 모드로 작동하는 USB 장치가 있습니다. VBUS 라인을 차단하면 USB 데이터 통신이 작동을 멈 춥니 다. 나는 이것을 직접 테스트했다. 테스트하지는 않았지만 다른 방법으로 (ID 핀) 동일하게 말할 것입니다. 귀하는 소프트웨어 솔루션에 대해 맞지만 모든 Android 휴대 전화에 /sys/...필요한 파일이있는 것은 아닙니다 (Nexus 4 예, Nexus 5 아니요). 또 다른 해결책은 충전 드라이버 동작을 커널로 변경하는 것입니다.
STiLLeN

0

op와 마찬가지로 USB를 통해 연결된 호스트도 더미 배터리로 연결됩니다. 단순히 USB 케이블을 사용할 수 없으며 배터리가 없으며 안드로이드가 부팅되지 않으며 USB가 충분한 전류를 제공하지 않습니다.

Android는 부팅 중에 Vbus를 사용하므로 소프트웨어에서이 문제를 해결할 수 없습니다. 부트 로더 코드를 해킹하고 싶지 않다면.

USB 충전 대 배터리 전압 루프를 피하려면 충전 회로를 수정해야합니다.

Galaxy S3에서 USB 표준의 일부인 데이터 (d + d-)를 활성화하려면 5V 버스가 필요하다는 것을 확인했습니다.

OTG는 문제를 전기적으로 해결할 수 있지만 호스트 클라이언트 규칙이 올바르지 않습니다. 또한이 전화는 OTG 할 수 있고 충전 할 수 있습니다 (나는 y 케이블 + 게임 패드를 사용합니다)

참조 편집 : https://forum.xda-developers.com/showthread.php?t=1863303


충전 회로 변경 사항을 파악하면 업데이트됩니다.
kevinf

0

배터리 드라이버 전문가 인 동료에게 물었습니다. 커널 버전이 4.4.21 인 Nut Pro 2에서 배터리 충전 켜기 / 끄기 노드는 다음과 같습니다 /sys/class/power_supply/battery/input_suspend.


0

블로킹면이 액세서리 쪽을 향한 상태에서 핀 1 사이에 쇼트 키 다이오드를 사용할 수 있습니다. 그렇게하면 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=ko


1
ADB_ENABLEDUSB 충전과 어떤 관련이 있습니까? 연결 한 앱에서 USB 충전을 사용 중지 할 수 있습니까?
Dan Hulme

응용 프로그램은 쓰기 보안 설정을 변경 한 후 USB 충전을 비활성화 할 수 있습니다.
Ravindra Sahay

"킨다"? 따라야 할 단계는 무엇입니까?
Dan Hulme
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.