Program Tip

TCP를 통해 ADB로 Android에 연결하려면 어떻게해야합니까?

programtip 2020. 9. 28. 09:55
반응형

TCP를 통해 ADB로 Android에 연결하려면 어떻게해야합니까?


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

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


수동 프로세스

기기에서 루팅 된 경우

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 에는 더 적은 권한이 필요합니다.


휴대 전화가 루팅 된 경우 정말 간단합니다.

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 초 간격으로 두 번 시도하십시오.


  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 폴더에 있습니다.


adb 경로를 Windows 환경 경로에 저장했다고 가정합니다.

  1. Android에서 디버그 모드 활성화

  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


에서 adb --help:

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

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

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

포트는 5554입니다.


PC 사용자의 경우 :

1 단계 :
Android 휴대폰에서 개발자 옵션을 활성화해야합니다.
이 방법으로 개발자 옵션을 활성화 할 수 있습니다.
• 설정> 정보> 소프트웨어 정보> 추가를 엽니 다.
• 그런 다음 "빌드 번호"를 일곱 번 눌러 개발자 옵션을 활성화합니다.
• 설정 메뉴로 돌아 가면 "개발자 옵션"을 볼 수 있습니다.
• 그것을 누르고 다음 화면의 메뉴에서 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"

이제 안드로이드 프로젝트를 실행하고 장치가 보이지 않으면 다시 입력하십시오 adb connect IP address of your phone

여기에 이미지 설명 입력

여기에 이미지 설명 입력

Linux 및 MAC 사용자의 경우 :

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

sudo apt-get install android-tools-adb android-tools-fastboot

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

adb tcpip 5555

adb를 사용하여 Android 전화 IP 주소를 연결하십시오.

전화기를 제거하십시오.


내가 얻을 필요 모두 를위한 작업 USB 및 TCPIP ADB를 나는 다음과 같은 한 때문에 (사용 방향을 다른 사람이 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

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 forward tcp : <PC port>tcp :<device port>

처럼:

adb 앞으로 tcp : 5555 tcp : 5555.

C : \ Users \ abc> adb 앞으로 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

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

(이 작업은 루팅 된 기기를 사용하여 수행 할 수도 있지만 USB 연결이 필요하지 않은 루팅 된 기기에서 셸을 사용할 수 있습니다.)

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

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


가능하면 SDK 위치를 열고 마우스 오른쪽 버튼을 클릭 한 다음 "여기에서 명령 프롬프트 시작"을 누르십시오. 모든 사람이이 옵션을 가지고있는 것은 아니므로이 명령 (/ these)도 수행해야합니다.

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를 전환하여 시작할 수 있는 개발자 옵션 ( 루팅되지 않은 일부 휴대폰 에도 적용됨 ) 설정이 있습니다. 이 기능이있는 전화기는 거의 없지만


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

adb tcpip <port>

터미널에서 다음을 수행하여 네트워크의 모든 PC에서 Wi-Fi를 통해 장치에 연결합니다.

adb connect <ip>:<port>

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


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

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

adb tcpip 5555
adb connect <device IP>:5555

다음 메시지가 표시됩니다.

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

이제 USB 케이블을 제거해도 정상적으로 logcat이 표시됩니다.

끝난. 즐겨


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

사용법은 아주 간단합니다. 여기에 gif가 있습니다.

여기에 이미지 설명 입력


Brian이 말했듯이 :

xda-developers에 대한 게시물에 따르면 다음 명령을 사용하여 장치에서 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는 자동으로 전화기를 설정합니다.

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


adb tcpip 5555

이상하지만 이것은 USB 케이블이 연결된 경우에만 작동합니다. 그러면 USB를 분리하고 다른 모든 adb를 사용할 수 있습니다.

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

adb usb

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

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

setprop service.adb.tcp.port 5555

또는

setprop service.adb.tcp.port -1

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

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


하나의 명령으로 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수동으로 변경하려는 경우에도 트리거됩니다 .


1 단계.

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

2 단계.

USB 케이블을 사용하여 Android 장치를 컴퓨터에 연결합니다. 그렇게하면 호스트 컴퓨터가 장치를 감지하고 adb가 컴퓨터의 USB 모드로 실행되기 시작합니다. 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를 알게됩니다.
  • WAY : 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하고 모든 단계를 다시 한 번 수행해야합니다.

도움이 되었기를 바랍니다.


참고:


Bash 유틸리티 기능 :

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

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

plink -L 5037:localhost:5037 <host_IP_address>

이 구성을 사용하여 내 장치를 가상 머신에 연결합니다. Eltima USB to Ethernet이 충분히 안정적이지 않았습니다 (디버그 중 시간 초과).

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


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

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

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


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

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까지 올라갈 수 있습니다 .


단계 :

  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 오른쪽으로 셸을 시작할 수 없습니다 ... sudo 또는 su 명령이 작동하지 않습니다. 부팅시 어떻게 작동하는지 모르겠습니다! 내 쉘 프로그램은 ssh su -c "sh /storage/sdcard1/start_adb.sh"에서 마지막 3 개의 명령으로 작동 합니다 (su-없음)

감사


추가 참고 사항 (어려운 방법으로 배움) : 회사 VPN 연결을 동시에 활성화해서는 안됩니다.


다음을 수행해야합니다.

  • 먼저 환경 경로에 ADB를 추가합니다.
  • CLI에서 다음 명령을 입력하십시오 adb connect YOUR_DEVICE_IP : PORT_NUMBER (예제 adb connect 192.168.100.100:5555 )

adbwireless 앱을 사용하여 전화를 활성화 한 다음 Windows 컴퓨터에서 adb connect를 사용하여 대화합니다. 전화기의 adbwireless 앱은 연결 방법을 알려주고 IP 주소와 모든 것을 제공합니다.

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

따라서 : 휴대폰에 adbwireless를 설치하십시오. 그걸 써. 가능합니다. Linux와 Windows에서 정기적으로 수행합니다.


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

내 Linux 셸의 Android 기기에서 간단한 "ifconfig"가 내 IP 주소를 제공하지 않았습니다. 나는 입력해야했다 :

ifconfig eth0

-또는-

netcfg

내 IP 주소를 얻으려면. (내 dmesg에서 봤기 때문에 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 셸"을 수행하고 내 Android 기기를 엉망으로 만들 수 있습니다. 하지만 내 Android 장치가 지금 내 실행-> 구성 실행-> 대상 탭에 나타나지 않습니다. 반면에 Target Tab을 자동으로 설정하면. 그런 다음 Run-> Run을 통해 내 앱을 실행하면 내 Android 기기가 내 대상 중 하나로 나열되지 않아도 내 Android 기기에서 실행됩니다.


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

  • app adb 무선.
  • 그것을 실행하십시오. 그러면 IP와 포트가 설정됩니다. 그런 다음 도스에서

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

연결되었습니다.


다음 단계를 따랐고 작동하기 시작하여 Android 장치에 연결할 수 있습니다.

1 단계 : Android 장치에서 터미널 창을 열고 다음 명령을 실행합니다.

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

2 단계 : ADB를 통해 다음 명령을 실행합니다. (ADB가 구성된 경로에서)

adb connect 10.10.10.50:5555-여기서 10.10.10.50은 Android 기기의 IP 주소이고 5555는 포트 번호입니다.


공유하고 싶은 편리한 방법을 찾았습니다.

Windows의 경우

한 번 USB 액세스

루트가 필요하지 않습니다

휴대폰과 PC를 핫스팟에 연결하거나 휴대폰에서 휴대용 핫스팟을 실행하고 PC를 연결하십시오.

Brian이 처방 한대로 휴대 전화의 IP를 가져옵니다 (휴대 전화에서 핫스팟을 만드는 경우 필요 없음).

adb shell ip -f inet addr show wlan0

메모장 열기

이 쓰기

@echo off
cd C:\android\android-sdk\platform-tools
adb tcpip 5555
adb connect 192.168.43.1:5555

위에 제공된 위치를 PC에 abd.exe 파일이 있는 위치로 변경하십시오.

IP를 전화 IP로 변경하십시오.

참고 : 위의 IP는 핫스팟을 만들 때 안드로이드 기기의 기본 IP입니다. Wi-Fi 네트워크에 연결 중이고 매번 핫스팟에 연결하는 동안 기기의 IP가 계속 변경되는 경우 Wi-Fi 설정 내에서 구성하여 고정 할 수 있습니다. Google it.

이제 파일을 ABD_Connect.bat (MS-DOS 배치 파일)로 저장합니다.

어딘가에 저장하고 바탕 화면 또는 시작 버튼에 대한 바로 가기를 참조하십시오.

USB를 통해 한 번 연결하고 일부 응용 프로그램을 실행 해보십시오. 그 후에 무선으로 연결하려면 바로 가기를 두 번 클릭하십시오.

참고 : 응용 프로그램을 디버깅 할 때마다 바로 가기를 열어야하는 경우가 있습니다. 따라서 바탕 화면에서 바로 가기에 대한 바로 가기 키를 만드는 것이 더 편리합니다. 같은 바로 가기 키를 만들었습니다 Ctrl+Alt+S. 내가 디버그 할 때마다, 내가 누를거야 그래서 Shift+F9Ctrl+Alt+S

참고 : cmd 창에서 device = null 오류가 발견되면 IP를 확인하십시오. 변경되었을 수 있습니다.


adb는 tcp 소켓을 통해 adb 서버와 통신 할 수 있습니다. 텔넷으로이를 확인할 수 있습니다.

$ telnet 127.0.0.1 5037
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
000chost:version
OKAY00040020

일반적으로 명령의 형식 %04x%s with <message.length><msg>은 다음과 같습니다. 루비 명령 마녀가 cmdtcp 소켓에 대해 adb 명령 보냅니다.socket

def send_to_adb(socket, cmd)
  socket.printf("%04x%s", cmd.length, cmd)
end

첫 번째 예제는 host:version길이가 12 ( 000c16 진수) 인 명령 보냅니다 . framebuffer:이름에서 짐작할 수 있듯이 프레임 버퍼에서 스크린 샷을 찍는 것과 같은 더 흥미로운 명령을 즐길 수 있습니다 .

참고 URL : https://stackoverflow.com/questions/2604727/how-can-i-connect-to-android-with-adb-over-tcp

반응형