TCP를 통한 ADB로 Android에 어떻게 연결할 수 있습니까? [닫은]


879

Motorola Droid 에서 응용 프로그램을 디버깅하려고하는데 USB를 통해 장치에 연결하는 데 약간의 어려움이 있습니다. 내 개발 서버는 Hyper-V 에서 실행되는 Windows 7 64 비트 VM 이므로 게스트 또는 호스트에서 USB를 통해 직접 연결할 수 없습니다.

몇 가지 다른 USB-over-TCP 솔루션을 설치했지만 ADB 모니터에서 "devicemonitor가 모니터링을 시작하지 못했습니다"라는 메시지가 반복해서보고 되므로 연결에 문제가있는 것 같습니다 . USB 연결 또는 다른 가능한 옵션 대신 네트워크를 사용하여 개발 시스템의 클라이언트에서 디바이스의 디먼으로 직접 연결하는 방법이 있습니까?


75
USB를 통해 연결된 경우 : adb tcpip 5555. USB를 분리하고에서 전화 IP를 Settings > About Phone > Status봅니다. 이제 adb connect 192.168.x.x그게 다야. 도구 나 소프트웨어가 없습니다. 그냥 작동합니다.
andreszs

1
앤드류가 말한 것-이것들은 구글 안드로이드 개발자 웹 사이트 의 공식 지침이며 루트는 필요하지 않습니다. 루트가 아닌 HTC One m8에서 작업했습니다 (물론 개발자 옵션을 활성화해야 함).
Jeff Ward

adb 서비스가 포트 5037에서 실행되면 5555-5585 범위의 장치를 찾는 이유는 무엇입니까?
Shivam Aggarwal

앤드류는 내가 같은 응용 프로그램을 사용할 수 열없이 루트 액세스 권한이있는 넥서스 6 컴퓨터없이 포트를 닫으려면? 공용 네트워크에있을 때 포트 5555를 열어두고 개발에 내 전화를 사용하지 않아 발생할 수있는 보안 문제에 대해 우려하고 있습니다.
DaveTheMinion

답변:


1205

수동 프로세스

기기에서 루팅 된 경우

xda-developers의 게시물에 따르면 다음 명령을 사용하여 장치에서 Wi-Fi를 통한 ADB를 활성화 할 수 있습니다.

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

그리고 당신은 그것을 비활성화하고 ADB를 사용하여 USB에서 청취로 되돌릴 수 있습니다.

setprop service.adb.tcp.port -1
stop adbd
start adbd

컴퓨터에서 USB 액세스 권한이 이미있는 경우 (루트 필요 없음)

이미 USB가 있다면 Wi-Fi 사용으로 전환하는 것이 훨씬 쉽습니다. 장치가 USB를 통해 연결된 컴퓨터의 명령 줄에서 명령을 실행하십시오.

adb tcpip 5555
adb connect 192.168.0.101:5555

192.168.0.101실제로 장치에 할당 된 IP 주소 로 교체하십시오 . 완료되면 다음을 실행하여 adb tcp 세션에서 연결을 끊을 수 있습니다.

adb disconnect 192.168.0.101:5555

두 가지 방법으로 태블릿의 IP 주소를 찾을 수 있습니다.

수동 IP 검색 :

Android의 WiFi 설정으로 이동하여 작업 표시 줄 (세로 줄임표)에서 메뉴 버튼을 클릭하고 고급을 누른 다음 화면 하단의 IP 주소를 확인하십시오.

ADB를 사용하여 IP를 발견하십시오.

adb를 통해 다음 명령을 실행하십시오.

adb shell ip -f inet addr show wlan0

ADB 데몬에게 USB를 통한 청취로 돌아가려면

adb usb

프로세스를 자동화하는 앱

Google Play에는이 프로세스를 자동화하는 여러 앱이 있습니다. 빠른 검색은 adbWireless , WiFi ADBADB WiFi를 제안 합니다. 이들 모두 루트 액세스 가 필요 하지만 adbWireless 는 더 적은 권한이 필요합니다.


3
이렇게하려면 루트 액세스 권한이 필요합니까? 터미널을 사용하여 명령을 실행할 수있는 것 같지만 실제로 작동하지 않는 것 같습니다.
JJ

6
@ JJ-불행히도 그렇습니다. 루트가 필요합니다.
Kingsolmn

178
두 번째 해결책 ( adb tcipip 5555그리고 adb connect ...루트가 필요하지 않습니다.
Ridcully

11
adb tcpip <port>여전히 중 하나가 필요합니다 ro.kernel.qemu(에뮬레이터 모드에서 실행)으로 설정되는 속성을 ro.secure(즉, 뿌리 장치), 또는 0으로 ro.debuggable하고 service.adb.root1로 설정 될 수 adbd위의 어느 것도 충족되지 않는 경우 단순히 TCP / IP 연결을 열 수 없습니다. 변수 에 대해서는 netmite.com/android/mydroid/system/core/adb/adb.c adb_main 부분을 참조하십시오 secure. adbd뿌리가없는 2.3.7에서 안드로이드는 전혀 TCP / IP 모드로 들어 가지 않습니다.
soulseekah

2
큰! 두 번째 솔루션은 실제로 루트가 필요하지 않습니다!
Grzegorz D.

132

휴대 전화가 루팅 된 경우에는 매우 간단합니다.

Google Play 에서 터미널 에뮬레이터를 다운로드하십시오 (무료 버전이 많이 있습니다). Android 기기가 Wi-Fi에 연결되어 있고 Wi-Fi IP 주소를 가져와야합니다. 터미널 프로그램을 열고 다음을 입력하십시오.

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

이제 컴퓨터를 사용하고 (Windows를 사용한다고 가정) 바탕 화면에 "cmd.exe"에 대한 바로 가기를 따옴표없이 만듭니다.

cmd 단축키를 마우스 오른쪽 버튼으로 클릭하고 "Run as Administrator"

android-sdk-windows\tools폴더로 변경

유형:

adb connect ***wifi.ip.address***:5555

(example: adb connect 192.168.0.105:5555)

이제 adb는 연결되었다고 말해야합니다.

참고 : 연결 명령을 수행하기에 너무 빠르면 실패 할 수 있습니다. 따라서 작동하지 않는다고 말하기 전에 5 초 이상 두 번 시도하십시오.


6
이 대답은 장치에서 수행해야 할 부분과 컴퓨터에서 수행해야 할 부분을 설명했기 때문에 나에게 더 좋았습니다.
Eduardo

5
전에 "ADB 5555 TCPIP" DO "ADB 죽 서버". AFTER "ADB 연결 192.168.0.101:5555" DO "ADB 장치" 또는 "ADB 쉘"(쉘을 시작되지 않습니다 연결).
samis

나는 adb tcpip 5555다른 사람 adb connect myIP:5555이 그들의 PC에서 실행 을 시도했다 . 그는 내 휴대 전화에 앱을 설치할 수 있지만 원격으로 디버깅 할 수는 없습니다. 원격으로 디버깅 할 수 있습니까? 내 전화에는 대화가 waiting for debugger영원히있었습니다.
Angelina

이렇게하면 재부팅시에도 설정이 유지됩니까?
Hritik

모바일 인터넷을 통한 ipv6 주소에서도 작동합니까?
CaptainFreedom

94
  1. USB를 통해 장치를 연결하고 디버깅이 작동하는지 확인한 후 다음을 실행하십시오.

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. USB를 분리하고 무선 디버깅을 진행하십시오.

  3. 완료 후 USB 디버깅으로 다시 전환하려면 다음을 실행하십시오.

    adb -s <DEVICE_IP_ADDRESS>:5555

장치의 IP 주소를 찾으려면 장치로 이동하거나을 Settings > Wi-Fi > Advanced > IP Address실행하십시오 adb shell netcfg.

루트가 필요하지 않습니다. 한 번에 하나의 장치 만 디버깅 할 수 있습니다.

이 XDA 게시물을 참조하십시오 .

adb명령은 platform-toolsAndroid SDK 폴더에 있습니다.


2
실제로 올바른 순서를 따르면 한 번에 많은 장치를 연결할 수 있습니다. 각 전화기에 대해 tcpip를 5555로 개별적으로 설정 한 다음 각 전화기에 대해 connect 명령을 실행하면 모든 adb에 연결됩니다.
andreszs

내 전화가 이런 식으로 연결되면 디버깅이 약간 느려집니다. 또한 때로는 잠 들어 즉시 연결이 끊어집니다.
Aron Lorincz

일부 장치에서는 adb tcpip 명령과 adb connect 명령 간의 지연 이 매우 낮아야합니다. 그렇지 않으면 작동하지 않습니다. 또한 나를 위해 일했습니다adb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon

61

Windows 환경 경로에 adb 경로를 저장했다고 가정하십시오.

  1. 안드로이드에서 디버그 모드 활성화

  2. USB를 통해 PC에 연결

  3. 열린 명령 프롬프트 유형 : adb tcpip 5555

  4. PC에서 태블릿 또는 스마트 폰 연결 끊기

  5. 열린 명령 프롬프트 유형 : adb connect IPADDRESS(IPADDRESS는 태블릿 또는 스마트 폰의 DHCP / IP 주소이며 Wi-Fi-> 현재 연결된 네트워크에서 찾을 수 있습니다)

이제 명령 프롬프트에 다음과 같은 결과가 나타납니다. connected to xxx.xxx.xxx.xxx:5555


일련의 단계를 수행하고 PC 연결을 끊을 때를 정확하게 언급 해 주셔서 감사합니다.
Manju

53

보낸 사람 adb --help:

connect <host>:<port>         - Connect to a device via TCP/IP

그건 그렇고 명령 행 옵션입니다.

휴대 전화를 Wi-Fi에 연결 한 다음 라우터에서 IP 주소를 가져와야합니다. 셀 네트워크에서는 작동하지 않습니다.

포트는 5554입니다.


1
나는 5555-5558과 지금 5554로 시도했지만 어떤 이유로 작동하지 않습니다. 기본적으로 명령 행에서 : adb kill-server adb connect 10.10.10.100:5554 * 결과는 데몬이 실행되지 않습니다. 지금 시작 * * 데몬이 성공적으로 시작되었습니다 * 10.10.10.100:5554에 연결할 수 없습니다 dev 워크 스테이션에서 장치의 IP를 ping 할 수 있습니다. 출력에 "데몬이 성공적으로 시작되었습니다"라고 표시되면 장치의 데몬을 참조해서는 안됩니까? 에뮬레이터를 사용하려고 시도하고 있습니까? 장치에서 데몬이 실행 중인지 확인 / 확인하는 방법 감사합니다
JDM

2
adb tcpip port기본값은 usb를 통한 디버깅 이므로 먼저해야합니다 . 후자 당신은 연결할 수 connect host:port있고 작동해야합니다
Aiden Strydom

문자 그대로 "adb tcpip port"? "error : device not found"라는 문자열 만 반환합니다. 오타가 있습니까? 아니면 여기서 뭔가를 교체해야합니까?
BrainSlugs83

3
아아 !! 알아 냈습니다. CyanogenMod의 기본 포트 번호는 5555입니다! 좋은. : D
BrainSlugs83

@Michael 일부 셀 네트워크에서는 작동하지만 네트워크 구성은 기본적으로 블랙 박스입니다. 방화벽 뒤에 있는지 여부, 포트가 차단되었는지, NAT 변환이 진행 중인지 등을 알 수 없습니다.
BrainSlugs83

45

Windows 사용자의 경우 :

1 단계 :
Android 휴대 전화에서 개발자 옵션을 활성화해야합니다.
이 방법으로 개발자 옵션을 활성화 할 수 있습니다.
• 설정> 정보> 소프트웨어 정보> 자세히를 엽니 다.
• 그런 다음 "빌드 번호"를 7 번 눌러 개발자 옵션을 활성화하십시오.
• 설정 메뉴로 돌아 가면 "개발자 옵션"이 표시됩니다.
•이를 누르고 다음 화면의 메뉴에서 USB 디버깅을 켭니다.

2 단계:

cmd를 열고 adb를 입력하십시오.
adb가 유효하지 않은 명령 인 경우 환경 변수에 경로를 추가해야합니다.

• 먼저 SDK 설치 폴더로 이동하십시오.
이 경로를 따르십시오.이 경로는 단지 예일뿐입니다. D : \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \; D : \ softwares \ Development \ Andoird \ SDK \ sdk \ tools;
• 이제 Windows 시스템 고급 설정에서 검색

여기에 이미지 설명을 입력하십시오

환경 변수를여십시오.

여기에 이미지 설명을 입력하십시오

그런 다음 경로를 열고 다음 경로를 붙여 넣으십시오.이 예입니다.
SDK 경로가 내 경로와 다르므로 사용하십시오. D : \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \;
D : \ softwares \ Development \ Andoird \ SDK \ sdk \ tools;

여기에 이미지 설명을 입력하십시오

3 단계 :

cmd를 열고 adb를 입력하십시오. 여전히 adb가 유효하지 않은 명령 인 경우 경로가 올바르게 설정되지 않은 것입니다.

여기에 이미지 설명을 입력하십시오

이제 안드로이드 폰을 PC에 연결할있습니다.

cmd를 열고 adb 장치를 입력하면 장치를 볼 수 있습니다. 전화 IP 주소를 찾으십시오.

여기에 이미지 설명을 입력하십시오

유형 :-adb tcpip 5555

여기에 이미지 설명을 입력하십시오

휴대 전화의 IP 주소를 얻습니다

adb shell netcfg

지금,

adb connect "IP address of your phone"

이제 안드로이드 프로젝트를 실행하고 장치가 보이지 않으면 다시 입력하십시오.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

Linux 및 macOS 사용자의 경우 :

1 단계 : 터미널을 열고 다음을 사용하여 adb 설치

sudo apt-get 설치 android-tools-adb android-tools-fastboot

USB 케이블을 통해 휴대폰을 PC에 연결하십시오. 터미널에 다음 명령을 입력하십시오

adb tcpip 5555

adb를 사용하여 안드로이드 전화 IP 주소를 연결하십시오.

전화기를 제거하십시오.


36

루팅되지 않은 장치의 컴퓨터에서

(이것은 루팅 된 장치를 사용하여 수행 할 수 있지만 USB 연결이 필요없는 루팅 된 장치에서 쉘을 사용할 수 있습니다)

먼저 명령 프롬프트 (CMD)를 엽니 다. Android Studio 또는 IntelliJ를 사용하는 경우 사용할 수있는 콘솔이 포함되어 있습니다.

경로에 adb를 추가 한 경우 CD 부분을 건너 뛸 수 있습니다.


가능하면 SDK 위치를 열고 마우스 오른쪽 단추를 클릭 한 다음 "start command prompt here"를 누르십시오. 모든 사람에게이 옵션이있는 것은 아니므로 다음과 같은 명령을 수행해야합니다.

Windows : 드라이브 변경 (적용 가능한 경우)

D: 

SDK 및 플랫폼 도구에 액세스하십시오. 이 경로를 SDK 위치로 바꾸십시오.

cd /sdk/path/here/platform-tools

이제 Android 디버그 브리지에 액세스 할 수 있습니다.


장치가 컴퓨터에 연결된 상태에서 다음을 수행하십시오.

adb tcpip <port> 
adb connect <ip>:<port>

<port>연결하려는 포트는 어디에 있으며 (기본값은 5555) <ip>연결하려는 장치의 IP입니다.

참고 : 5555기본 포트이며 IP 주소를 쓰면 연결됩니다. 사용자 정의 포트를 사용하면 최소한 보안을 약간 향상시킬 수 있습니다. Wi-Fi를 통한 USB 디버깅은 장치를 악용하려는 컴퓨터에 연결된 경우에만 남용 될 수 있습니다. 기본 포트가 아닌 포트를 사용하면 연결하기가 조금 더 어려워집니다.

사용자 정의 포트를 사용하는 경우 IP 뒤에 추가해야합니다. 포트에 연결 5555하지 않고 연결하지 않으면 연결에 실패합니다.

두 가지 방법으로 장치의 IP 주소를 찾을 수 있습니다.

  • 장치에 따라 정확한 이름이 다를 수 있습니다. 설정을 열고 장치 정보 -> 상태 -> IP 주소로 이동하십시오.

  • ADB를 사용하여 IP 가져 오기

콘솔에서 다음을 수행하십시오.

adb shell ip -f inet addr show wlan0

연결이 완료되면 다음을 수행하여 컴퓨터에서 장치를 분리 할 수 ​​있습니다.

adb disconnect <ip>:<port>

또는 모든 장치를 연결 해제하기위한 IP가 없습니다. 사용자 정의 포트를 사용한 경우 연결을 끊을 포트를 지정해야합니다 . 여기에서도 기본값은 5555입니다.

포트를 비활성화하려면 (원하는 경우) 장치가 연결된 상태에서이 명령을 수행하십시오.

adb usb

또는 tcpip 연결을 제거하기 위해 장치를 다시 시작할 수 있습니다

루팅 된 기기의 컴퓨터에서

먼저, 쉘에 액세스해야합니다. USB 케이블을 사용하여 기기를 연결하고 adb shellGoogle Play, FDroid 또는 기타 소스에서 앱을 사용 하거나 다운로드합니다.

그런 다음

su
setprop service.adb.tcp.port <port>
stop adbd
start adbd

그리고 장치를 연결하려면 루트가 아닌 버전에서와 같이하십시오 adb connect <ip>:<port>.

포트를 비활성화하고 USB 청취로 돌아가려면 다음을 수행하십시오.

setprop service.adb.tcp.port -1
stop adbd
start adbd

Android Studio 플러그인을 사용하여 직접 할 수도 있습니다 (지금 이름을 기억하지 마십시오). 루트 된 사용자에게는 전화 연결을 설정하기 위해 Android 앱을 다운로드하는 옵션도 있습니다 (adb 연결이 여전히 필요합니다) ).

일부 전화는 개발자 옵션 ( 루팅 된 전화 일 수도 있지만 일부 루팅 된 전화 에도 적용됨 )에 설정이있어 루트 또는 컴퓨터 연결없이 장치 자체에서 Wi-Fi를 통해 ADB를 전환하여 시작할 수 있습니다. 전화기가 몇 개 있지만


adb shell ip -f inet addr show wlan0 IP 주소와 포트 지원이 다른 곳에서 대체되어야합니까?
Michael

그 줄에 없습니다. 그것이 IP를 얻는 쉘 웨이입니다. 이 줄에는 아무것도 교체하지 않아야합니다.
Zoe

33

ADB에서 USB와 TCPIP를 모두 작동 시켜야 했기 때문에 (요청하지 않음) 다음을 수행했습니다 (다른 사람들이 xda 개발자로부터 게시 한 지시 사항 사용).

사용 adb shell:

su
#Set the port number for adbd
setprop service.adb.tcp.port 5555

#Run the adbd daemon *again* instead of doing stop/start, so there
#are two instances of adbd running.
adbd &

#Set the port back to USB, so the next time ADB is started it's
#on USB again.
setprop service.adb.tcp.port -1

exit

작동하지 않습니다 : adbd를 찾을 수 없습니다. adbd는 일반적으로 start adbd를 통해 시작됩니다. 그러나 일부 폴더에 스크립트 / 실행 파일이 있습니까?
KrisWebDev

1
내 gnex에서는 /sbin/adbd입니다. 전화에 따라 다를 수 있습니다. 물론, 당신은 루팅해야합니다 ... 당신이 루팅되지 않은 경우, / sbin에 액세스 할 수 없습니다.
트랜지스터 1

32

TCP 포트를 사용하여 태블릿을 연결합니다. 시스템과 장치가 동일한 네트워크에 연결되어 있는지 확인하십시오.

  1. 콘솔 cmd.exe 열기
  2. 유형 adb tcpip 5555
  3. 시스템-> 개발 옵션-> USB 디버깅으로 이동하여 TCPIP 연결을 확인하십시오.
  4. adb connect 192.168.1.2장치 IP 주소를 입력 하십시오
  5. 192.168.1.2에 연결

포트 전달을 사용하여 연결 포트 전달을 시도하십시오.

adb 전달 TCP : <PC port>TCP :<device port>

처럼:

adb forward tcp : 5555 tcp : 5555입니다.

C : \ Users \ abc> adb forward tcp : 7612 tcp : 7612

C : \ Users \ abc> adb tcpip 7612 TCP 모드 포트에서 다시 시작 : 7612

C : \ Users \ abc> adb 연결 10.0.0.1:7612

10.0.0.1:7612에 연결

메시지 오류가 발생하면 : 장치를 찾을 수 없음 USB 장치를 시스템에 연결 한 다음 동일한 절차를 따르십시오.
루팅 된 기기

setprop service.adb.tcp.port 5555
stop adbd
start adbd

2
콘솔에서 su먼저 루트 콘솔을 작성하십시오.
그림

30

USB 연결없이 장치를 연결하는 방법을 모르지만 다른 컴퓨터에서 연결하면 adbd를 발행하여 TCP 모드로 전환 할 수 있습니다

adb tcpip <port>

터미널에서 다음을 통해 네트워크의 모든 PC에서 wifi를 통해 장치에 연결하십시오.

adb connect <ip>:<port>

장치의 터미널에서 TCP 모드로 전환 할 수도 있습니다.


이 8 살짜리 소녀는 방대한 투표를받은 모든 복잡한 답변 중에서 가장 간단한 답변을 제공하며 응원 할 필요가 없습니다. 'adb connect <ip> : 5555'를 입력하면 배포 할 수 있습니다.
RogerW

29

먼저 USB를 통해 장치를 연결해야합니다

그런 다음 장치를 WIFI에 연결하고 IP 주소를 얻습니다. 명령 줄 또는 Android Studio 터미널에서 USB 유형을 통해 여전히 연결

adb tcpip 5555
adb connect <device IP>:5555

다음과 같은 메시지가 나타납니다.

restarting in TCP mode port: 5555
connected to 172.11.0.16:5555

이제 USB 케이블을 제거하면 평소와 같이 여전히 logcat이 표시됩니다

끝난. 즐겨


이것은 효과가 있었다. 하나. 이 단계를 수행 한 후에는 더 이상 에뮬레이터로 다시 전환 할 수 없습니다. 제안?
Tim Scott

<adb kill-server>와 <adb start-server>를 사용하여 adb를 다시 시작해야합니다.
Joolah

21

WiFi를 통해 Android 앱을 실행, 디버그 또는 배포하기 위해 장치를 쉽게 연결하려면 내가 개발 한 오픈 소스 IntelliJ 플러그인을 사용할 수 있습니다. 여기 코드가 있습니다 사용할 준비가 플러그인.

사용법은 매우 간단합니다. 여기에 GIF가 있습니다.

여기에 이미지 설명을 입력하십시오


" 'adb'명령을 찾을 수 없습니다. Android SDK 설치를 검토하십시오.
rostamiani

1
이름이 ANDROID_HOME 인 환경 변수를 선언해야합니다. 그러나 이것을 피하기 위해 검토 대기중인 PR이 있습니다. 1.2 버전에서는 다음 주에 플러그인이 IntelliJ가 설치된 상태에서 작동합니다 :)
Pedro Vicente Gómez Sánchez

Mac을 사용하고 있는데 AS에 아이콘이 보이지 않습니까? 먼저 수동으로해야합니까?
powder366

1
ANDROID_HOME 환경 변수가 더 이상 필요하지 않은 새 버전을 이미 게시했습니다. @ powder366 당신은 수동으로 설치의 IntelliJ 플러그인 저장소에서 플러그인을 설치해야합니다. 플러그인을 설치하고 사용하는 데 필요한 모든 지침은 프로젝트 readme에 있습니다. github.com/pedrovgs/AndroidWiFiADB를보십시오
Pedro Vicente Gómez Sánchez

@ PedroVicenteGómezSánchez 감사합니다. 나는 ... 비슷한 이름을 가진 다른 플러그인이 존재 잘못된 플러그인을 집어
powder366

11

브라이언이 말했듯이 :

xda 개발자의 게시물에 따르면 명령을 사용하여 장치에서 WiFi를 통한 ADB를 활성화 할 수 있습니다

setprop service.adb.tcp.port 5555

adbd 중지

adbd 시작

그리고 당신은 그것을 비활성화하고 ADB를 사용하여 USB에서 청취로 되돌릴 수 있습니다.

setprop service.adb.tcp.port -1

adbd 중지

adbd 시작

이미 USB에 액세스 할 수 있으면 WiFi 사용으로 전환하는 것이 훨씬 쉽습니다. 장치가 USB를 통해 연결된 컴퓨터의 명령 줄에서 명령을 실행하십시오.

adb tcpip 5555

adb 연결 192.168.0.101:5555

ADB 데몬에게 USB를 통한 청취로 돌아가려면

adb usb

Android 마켓에는이 프로세스를 자동화하는 여러 앱이 있습니다.

작동합니다 .Android 쉘에 액세스하여 해당 명령을 입력하면됩니다 ...

하나의 다른 (더 쉬운) 솔루션이 시장에 있습니다 : adbWireless, 그것은 자동으로 전화를 설정합니다.

루트가 필요합니다! 모두...


2
... 전화가 루팅 된 경우에만 가능합니다.
android.weasel

아수스 변압기 (301) - 작업은 뿌리가 필요하지 않습니다
에이든 Strydom에게

9
adb tcpip 5555

이상하지만 USB 케이블이 연결되어있는 경우에만 작동합니다 .USB를 뽑고 다른 모든 항목으로 처리 할 수 ​​있습니다.

USB로 돌아올 때도 마찬가지입니다.

adb usb

USB가 연결된 경우에만 작동합니다.

내가 발행해도 상관 없습니다

setprop service.adb.tcp.port 5555

또는

setprop service.adb.tcp.port -1

그런 다음 adbd를 중지하고 시작하십시오. 여전히 USB 케이블이 필요하거나 작동하지 않습니다.

따라서 USB를 통한 ADB가 작동하지 않으면 WiFi를 통해 ADB를 활성화 할 수 없을 것입니다.


8

하나의 명령으로 TCP와 USB 모드를 전환하려면 다음을 추가하십시오 /init.rc.

on property:service.adb.tcp.port=*
    restart adbd

on property:service.adb.tcp.enable=1
    setprop service.adb.tcp.port 5555

on property:service.adb.tcp.enable=0
    setprop service.adb.tcp.port -1

그리고 속성 service.adb.tcp.enable을 사용하여 포트 5555에서 청취를 활성화 또는 비활성화 할 수 있습니다 netstat. 청취 중인지 확인하기 위해 실행 합니다. 보시다시피 service.adb.tcp.port수동으로 변경하려는 경우에도 트리거됩니다 .


8

배쉬 유틸리티 기능 :

function adb-connect-to-wifi {
    ip="$(adb shell ip route | awk '{print $9}')"
    port=5555
    adb tcpip ${port}
    adb connect ${ip}:${port}
}

7

1 단계.

확인 모두 당신의 ADB 호스트 컴퓨터와 안드로이드 장치가 같은 와이파이 네트워크에 있습니다.

2 단계.

USB 케이블을 사용하여 Android 장치를 컴퓨터와 연결하십시오. 그렇게하면 호스트 컴퓨터가 장치를 감지하고 컴퓨터의 USB 모드에서 adb가 실행되기 시작합니다. 연결된 장치를 adb devices확인하면서 adb가 USB 모드에서 실행 중인지 확인할 수 있습니다 adb usb.

$ adb usb
restarting in USB mode
$ adb devices
List of devices attached
ZX1D63HX9R  device


3 단계.

다음 명령을 사용하여 tcpip 모드에서 adb를 다시 시작하십시오.

$ adb tcpip 5556
restarting in TCP mode port: 5556


단계 4.

Android 기기의 IP 주소를 찾으십시오. 여러 가지 방법이 있습니다.

  • 방법 : 1 설정-> 전화 / 태블릿 정보-> 상태-> IP 주소로 이동합니다.
  • 방법 : 2 사용 가능한 Wi-Fi 네트워크 목록으로 이동하십시오. 연결되어있는 것을 탭하고 IP를 알게됩니다.
  • 방법 : 3 시도하십시오 $ adb shell netcfg.

장치의 IP 주소를 알고 있으므로 adb 호스트를 장치에 연결하십시오.

$ adb connect 192.168.0.102:5556
already connected to 192.168.0.102:5556
$ adb devices
List of devices attached
ZX1D63HX9R  device
192.168.0.102:5556  device


5 단계.

USB 케이블을 제거하면 장치에 연결되어 있어야합니다. 표시되지 않으면 adb devices이전 단계의 명령을 사용하여 다시 연결 하십시오 .

$ adb connect 192.168.0.102:5556
connected to 192.168.0.102:5556
$ adb devices
List of devices attached
192.168.0.102:5556  device

지금 당장 나가거나 실행하여 adb 서버를 종료 adb kill-server하고 모든 단계를 다시 한 번 다시 수행해야합니다.

희망이 도움이됩니다!


참고:


또한 Unix에서이 스크립트를 사용하여 장치의 IP를 얻을 수 있습니다. adb shell ip -f inet addr show wlan0 | grep inet | echo -n $ (grep -Eo '[0-9 \. \ /]') | echo -n $ (grep -Eo '^ [^ \ /] *') | SED의 / // g '
ahsan.dev

@Eddy 시스템과 모바일 / 태블릿 모두 WiFi를 통해 연결하거나 LAN을 통해 연결된 시스템과 동일한 네트워크의 WIFi 라우터를 사용하여 연결된 태블릿을 의심해야합니다. 명확히하시오
iSrinivasan27

@ i-Droid 왜 둘 다 동일한 네트워크에 연결 해야하는지 모르겠습니다. 아마도 ADB는 특별한 네트워크 라우팅 프로토콜을 사용합니다. 나도 모르고 그것에 대한 깊은 연구가 없습니다. 관심이 있으시면 명확히하고 나와 공유하십시오. 감사합니다!
Eddy

6

이것들은 내가 따라 간 단계이며 나를 위해 일했습니다.

  1. adb shell ifconfig (여기에서 장치의 IP 주소를 얻습니다)

  2. adb tcpip 7777 (adb를 일부 포트에 연결)

  3. adb 연결 "ipaddress": 7777


5

SSH 로컬 포트 ​​전달을 사용할 수도 있습니다. 그러나 여전히 USB 케이블이 필요합니다. USB를 사용하여 sshd가 실행중인 컴퓨터 (호스트)에 전화를 연결하십시오. 원격 (게스트) PC에서 포트 포워딩 / 터널링이 가능한 SSH 클라이언트를 시작하십시오. 예:

plink -L 5037:localhost:5037 <host_IP_address>

이 구성을 사용하여 장치를 가상 컴퓨터에 연결합니다. Eltima USB- 이더넷이 충분히 안정적이지 않았습니다 (디버그 중 시간 초과).

SSH 터널링은 무료로 작동하며 더욱 안정적입니다.


4

다른 답변이 혼란 스럽다는 것을 알았습니다. adbWireless를 사용하는 것이 훨씬 간단합니다.

http://ppareit.github.com/AdbConnect/

휴대 전화에 앱을 설치하기 만하면 Wi-Fi를 통해 디버깅을 전환하고 일식 플러그인을 설치하면 완료됩니다.


어떤 이클립스 플러그인을 언급하고 있습니까? 편집 : 신경 쓰지 마라. 귀하의 답변에있는 링크를 따라 그것을 찾으십시오.
ArtOfWarfare

이것은 루트 일뿐입니다
Zoe

3

TCP를 통해 ADB를 자동으로 활성화하고 USB를 통해 연결된 장치에 연결하기위한 배치 파일을 모았습니다. 그것으로 당신은 수동으로 IP를 넣을 필요가 없습니다.

@echo off
setlocal

REM Use a default env variable to find adb if possible
if NOT "%AndroidSDK%" == "" set PATH=%PATH%;%AndroidSDK%\platform-tools

REM If off is first parameter then we turn off the tcp connection.
if "%1%" == "off" goto off

REM Set vars
set port=%1
set int=%2
if "%port%" == "" set port=5557
if "%int%" == "" set int=wlan0

REM Enable TCP
adb -d wait-for-device tcpip %port%

REM Get IP Address from device
set shellCmd="ip addr show %int% | grep 'inet [0-9]{1,3}(\.[0-9]{1,3}){3}' -oE | grep '[0-9]{1,3}(\.[0-9]{1,3}){3}' -oE"
for /f %%i in ('adb wait-for-device shell %shellCmd%') do set IP=%%i

REM Connect ADB to device
adb connect %IP%:%port%

goto end

:fail
echo adbWifi [port] [interface]
echo adbWifi off
goto end

:off
adb wait-for-device usb

:end

3

다음은 Bluetooth를 사용한 Brian의 답변에 대한 확장입니다.

  1. Linux에서 Blueman을 사용하여 Bluetooth를 통해 장치와 PC 인터넷을 공유하십시오.

    $ sudo apt-get install blueman
    $ blueman-manager
    Pair them: Search devices after enabling Bluetooth
    on your phone and making it visible
    $ blueman-services
    Network > [X] Network Access Point (NAP)
    Your Phone > Settings > Bluetooth > Paired Device > [X] Internet access
  2. ADB 명령에 Bluetooth 네트워크를 사용하십시오.

    $ adb tcpip 5555
    $ adb connect $(adb shell ip -f inet addr show bt-pan | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n1):5555

USB 모드로 돌아가려면 :

$ adb disconnect
$ adb usb

참고 : Bluetooth 3.0 및 4.0은 최대 24Mbit / s까지 가능합니다 .


3

단계 :

  1. su -수퍼 유저로 전환합니다.
  2. setprop service.adb.tcp.port 5555 -tcp 포트를 지정하려면-5555는 포트 번호입니다.
  3. stop adbd -adbd 서비스를 중지합니다.
  4. start adbd -adbd 서비스를 시작합니다.

이것은 ssh내 Windows PC에서 완벽하게 작동합니다.

시아 노겐 모바일 부팅시 이것을 시도하거나 plink로 시작하십시오. plink를 사용하면 su right ... sudo 또는 su 명령이 작동하지 않는 쉘을 시작할 수 없습니다. 부팅 할 때 어떻게 작동하는지 모르겠습니다! 내 쉘 프로그램은 ssh에서 작동합니다.su -c "sh /storage/sdcard1/start_adb.sh" 에서 마지막 3 명령 (su-없이)으로 작동합니다.

감사


2

한 가지 추가 참고 사항 (어려운 방법) : 회사 VPN 연결을 동시에 활성화하지 않아야합니다.


2

다음을 수행해야합니다.

  • 먼저 환경 경로에 ADB를 추가하십시오.
  • CLI 유형에서이 명령 adb connect YOUR_DEVICE_IP : PORT_NUMBER (예 : adb connect 192.168.100.100:5555 )

2

Android 장치를 ADB over TCP와 연결하는 방법에는 두 가지가 있습니까?

첫 번째 방법

이 단계를 따르십시오

먼저 아래 명령을 사용하여 장치 IP 주소를 얻으십시오.

adb shell ifconfig

위 명령의 출력

wlan0     Link encap:UNSPEC    Driver icnss
          inet addr:XXX.XXX.X.XX  Bcast:XXX.XXX.X.XXX

위의 명령을 사용하면 연결된 장치의 IP 주소를 찾을 수 있습니다

이제 아래 명령을 사용하십시오.

adb tcpip 5555

위의 명령은이 TCP 포트를 다시 시작합니다 : 5555

이제 아래 명령을 사용하여 장치를 연결하십시오.

adb connect XXX.XXX.X.XXX:5555
            ^^^ ^^^ ^ ^^^
        IP Address of device

두 번째 방법

Android Studio 플러그인을 사용할 수 있습니다 Android device with ADB

Android WiFi ADB-IntelliJ / Android Studio 플러그인

IntelliJ 및 Android Studio 플러그인은 WiFi를 통해 Android 장치를 빠르게 연결하여 USB 연결없이 애플리케이션을 설치, 실행 및 디버깅하기 위해 만들어졌습니다. 하나의 버튼을 누르고 USB 케이블을 잊어

자세한 내용은이 기사를 확인하십시오

Android Studio에서 Wi-Fi로 Android 기기 연결


2

나는 같은 문제이지만 간단한 해킹에 대해 struct하고 있습니다. adb reverse tcp:<PORT> tcp:<PORT> 이 나를 위해 일했다. 시스템이 TCP 요청을 승인 할 수 있습니다.

읽어 주셔서 감사합니다


1

adbwireless 앱을 사용하여 전화를 활성화 한 다음 Windows 시스템에서 adb connect를 사용하여 통화하십시오. 전화의 adbwireless 앱은 연결 방법을 알려 주어 IP 주소와 모든 것을 제공합니다.

훨씬 덜 재미있는 대안은 USB를 통해 연결하고 전화기에 adb tcpip 5555를 통해 TCPIP를 사용하도록 지시 한 다음 USB 연결을 끊은 다음 adb 연결을 사용하는 것입니다. 이렇게하면 전화의 IP 주소를 직접 파악해야하고 (adbwireless는 IP를 알려줍니다) USB를 통해 연결해야하며 adb tcpip를 실행해야합니다 (adbwireless도 처리합니다).

따라서 전화에 adbwireless를 설치하십시오. 사용해. Linux 및 Windows에서 일상적으로 수행 할 수 있습니다.


1

내 시스템에서 다음과 같이 진행되었습니다.

Linux 셸의 Android 장치에서 간단한 "ifconfig"로 IP 주소를 얻지 못했습니다. 나는 타이핑해야했다 :

ifconfig eth0

-또는-

netcfg

내 IP 주소를 얻을 수 있습니다. (내 dmesg에서 eth0을 보았 기 때문에 eth0이 구성되어 있음을 알았습니다.) 그런 다음 :

setprop service.adb.tcp.port -1

adbd 중지

adbd 시작

그런 다음 내 Win7 상자 (Eclipse 3.7.1을 실행하는 상자)에서. 나는 명령 프롬프트를 열었다

\ android-sdk \ platform-tools>

관리자 권한으로 실행하지 않고 그런 다음

adb 연결 12.345.678.90

나는 항구를 두지 않았다. 내가 한 경우

adb tcpip 5555

장치를 찾을 수 없다고 말했는데 "adb 장치"목록에 아무 것도 나타나지 않았습니다. 즉, 위의 tcpip 명령을 수행하지 않으면 작동합니다.

"adb shell"을 수행 할 수 있고 내 Android 장치로 혼란 스러울 수 있습니다. 그러나 현재 Android 장치가 실행-> 실행 구성-> 대상 탭에 나타나지 않습니다. 반면에 대상 탭을 자동으로 설정하면 그런 다음 Run-> Run을 통해 내 앱을 실행하면 내 Android 기기가 대상 중 하나로 나열되지 않아도 내 Android 기기에서 실행됩니다.


1

나는 이것을 작동시켰다. USB 케이블을 사용하지 않았습니다.

  • 앱 adb 무선.
  • 그것을 실행하십시오. 그러면 ip와 port가 설정됩니다. 그런 다음

    cd C:\Program Files\Android\android-sdk\platform-tools adb connect "192.168.2.22:8000 "enter"

연결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.