안녕하세요 파일입니다. 오늘은 ADB로 무선 디버깅 하는 2가지 방법에 대해 소개해볼까 합니다.
대부분 유선으로 ADB 디버깅 하는 방법은 아실테고.. 오늘은 간편하게 무선 디버깅을 하는 방법입니다.
자세한 설명은 생략하고 방법만 다뤄보도록 하겠습니다.
ADB 디버깅 환경
사용기기 : Galaxy S10 5G
안드로이드 버전 : 12
One UI 버전 : 4.1
작업 수행 이전
- 작업하기 전에 개발자 옵션을 활성화 해야 합니다. 이 글을 읽는 분들이시라면 대부분 활성화 되어 있을겁니다. 활성화 되어 있지 않다면 구글에서 검색하면 됩니다. (빌드번호 연타하는거 대부분 아실거라 믿습니다)
- 당연하지만 디버깅할 스마트폰과 PC가 같은 네트워크에 묶여 있어야 합니다. 같은 공유기에 연결되어 있어야 한다는 뜻입니다. 유선이던 무선이던 관계없이 같은 와이파이, 같은 인터넷(로컬 네트워크)에 있으면 됩니다. 보통 PC는 유선으로 공유기에 꼽혀있을거고, 스마트폰은 무선으로 공유기에 연결되어 있을겁니다. 이러면 같은 네트워크에 있는겁니다. 물론 포트만 개방하면 외부에서 원격으로 디버깅도 가능하겠다만, 보안 문제도 있고 이런 방법은 따로 다루지 않겠습니다.
Method A - 유선 연결 없이 무선 디버깅 수행
첫 번째로 페어링 과정을 거쳐서 유선으로 연결할 필요 없이 완전 무선으로 디버깅 할 수 있는 방법입니다.
"무선 디버깅" 이라는 이름에 가장 걸맞은 방법입니다.
1. 개발자 도구에 들어와 USB 디버깅, 무선 디버깅을 활성화 합니다.
- 재연결을 염두에 둔다면 adb 권한 타임아웃 해제를 체크해도 좋습니다. (선택)
체크를 활성화 했으면 "무선 디버깅" 텍스트를 터치합니다.
2. 페어링 코드로 기기 페어링 부분을 터치합니다
- 위에 보이는 IP 주소 및 포트는 페어링 이후에 adb로 접속할 ip주소입니다. 먼저 페어링 후 접속합니다.
3. 아래에 표시되는 페어링 코드, IP주소 및 포트를 메모합니다.
- 위에 IP 주소 및 포트 부분은 무시하고 일단 아래 부분만 메모합니다.
여기서 기기 페어링 창을 닫지 마세요. 바로 아래로 이어갑니다.
adb pair 192.168.1.180:42467 872017
4. PC로 돌아와 명령어를 입력합니다.
- 명령어 형식은 adb pair [IP주소:포트] [Wi-Fi 페어링 코드] 입니다.
- 스마트폰 화면에 뜬 대로 값을 입력해주시면 됩니다.
- 주의 : 위에서 얘기했듯이 기기 페어링 창을 띄어놓은 상태서 연결해야 합니다. 기기 페어링 창을 닫은 상태선 페어링이 불가합니다.
Successfully paired to 192.168.1.180:44195 [guid=your_uid]
만약 페어링 성공했다면 다음과 같은 메세지가 나타납니다.
페어링을 완료했으므로, 스마트폰과 페어링된 PC는 ADB 접속 권한을 얻게 됩니다.
5. IP 주소 및 포트를 보고 메모합니다.
- 사진엔 나타나 있지 않지만 페어링이 완료됬다면 페어링된 기기 아래에 페어링된 PC의 이름이 표시됩니다.
adb connect 192.168.1.180:46053
6. 다시 PC로 돌아와 해당 명령어를 입력하면 최종적으로 ADB 접속이 완료됩니다.
- adb connect 명령어는 반드시 adb pair 이후에 수행 가능합니다.
connected to 192.168.1.180:46053
ADB 무선 접속에 성공하였습니다.
adb devices
해당 명령어 실행 시 ~~~ device 라고 표시된 것이 보이면 제대로 성공한 것.
정리 : 페어링 창 띄어놓고 adb pair -> 페어링 성공 후 adb connect
해당 방법의 장점 : 완전 무선 연결 가능
해당 방법의 단점 : ADB 연결을 다시 해야될 때 분명 PC 이름은 같은데 페어링이 유지되지 않아 페어링을 다시하고 connect 해야 하는 번거로움이 있음. 즉, 재연결을 할 때 매우 번거롭다. 무선 디버깅을 해보면 아시겠지만 무선 디버깅을 다시 시작할때마다 접속 포트가 매번 바뀌고, 페어링 포트 역시 매번 변경됩니다. 또 공유기에서 IP를 고정해두지 않았으면 스마트폰으로 할당된 접속 IP 역시 변경될 수 있습니다. 대환장
재접속 까지 편하게 하려면 아래 Method B에서 ADB 포트 개방을 하는 방법을 참고해보시면 좋을 거 같습니다.
Method B - 1회 유선 연결 있이 무선 디버깅 수행
두 번째로 이건 앞의 방법보다 처음엔 조금 더 번거롭지만, 스마트폰 재부팅 전까지는 ADB 재연결에 있어서 편의를 가져갈 수 있는 방법입니다. 처음에 더 번거로운 이유로는 해당 방법으로 무선 디버깅을 하려면 먼저 유선으로 먼저 1회 연결후, 무선 디버깅으로 전환해야 합니다.
물론 위에 소개한 방법 A대로 먼저 페어링 후 ADB를 연결한 다음에 해당 방법을 사용해서 포트를 개방해 재접속을 조금 더 편하게 할 수 있긴 합니다. 이건 개인의 선택으로 두겠습니다.
adb tcpip 5555
1. 우선 처음 스마트폰과 유선 연결해 위 ADB 명령어를 실행해서, tcp 통신에 대한 5555포트를 개방합니다
- 확인 결과 5555포트가 ADB 접속시 사용되는 포트로 보입니다. 보안 정책상 같은 로컬 네트워크의 누군가가 내 스마트폰에 함부로 디버깅 할 수 없도록 당연히 막혀있습니다, 그러므로 공공 장소 WIFI 에서 스마트폰의 해당 포트를 개방하는 건 아주 아주 주의가 필요합니다. (해킹 위험성)
- 재부팅 이전까지 해당 adb 접속 포트가 계속 개방되기 때문에 페어링도 필요 없이 그냥 ip만 같다는 전제하에 쉽게 재접속 가능합니다.
- 재부팅 되면 해당 포트 개방은 다시 유지되지 않기 때문에 처음부터 다시 포트를 열어줘야 합니다. (또는 스마트폰을 루팅해서 스케줄링을 걸어 5555 포트를 자동 개방하게 허용할 수 있습니다. 이것도 보안상 권장하진 않습니다. 루팅을 하는 분이 요새 얼마나 될까 싶습니다만;)
2. 스마트폰과 PC 유선 연결을 해제합니다.
adb connect 192.168.1.180
3. adb connect 명령어를 이용해 스마트폰 IP에 바로 연결해줍니다.
스마트폰에 할당된 IP는 Method A 부분에 설명한 무선 디버깅 탭으로 이동하거나, WIFI 창을 열고 확인하면 됩니다. (생략)
ADB 무선 접속에 성공하였습니다.
adb devices
해당 명령어 실행 시 ~~~ device 라고 표시된 것이 보이면 제대로 성공한 것.
정리 : 우선 유선 연결해서 adb 연결한 다음 5555 포트 개방 (Method A를 이용해 1회 유선 연결을 피할 수 있긴함), 이후 무선으로 adb 접속
해당 방법의 장점 : 페어링 과정이 필요 없으며, 포트 자체를 개방하기 때문에 무선 디버깅에서 재접속 시 매번 포트가 바뀌는것에 대해 스트레스 받을 필요가 없음.
해당 방법의 단점 : 반드시 1회 ADB 접속이 필요하다는 점. 유선으로 먼저 연결하던, Method A 방법대로 페어링 후 무선 연결을 하던 간에 어떻게 하던 1회 adb 접속을 성공한 후에, 다시 편하게 디버깅이 가능함. 또 5555 포트 자체를 개방하는 것이기 때문에 잠정적으로 보안상의 문제가 발생할 수 있음. (외부 접속은 공유기 단에서 막혀서 대부분 크게 상관 없겠지만 공용 WIFI 안에서 디버깅 하는 경우 문제가 발생할 수 있음)
여담 - 어떤 방법을 사용하면 좋은가?
위 MethodA 와 MethodB 중에 어떤 방법을 사용할까 고민되시는 분이 있으실탠데, 일반적으로 ADB를 재접속 없이 1회 정도만 연결해서 사용하실 분들은 MethodA로 하고, 스마트폰 재부팅 전까지 계속 ADB 를 재접속 할 일이 생길 거 같다 하시면 초반 조금의 불편함을 감수하고 MethodB를 사용하시는 게 낫습니다.
setprop service.adb.tcp.port 5555
루팅된 스마트폰이라면 다음 명령어를 사용하여 스마트폰에서 adb 포트 5555를 영구적으로 개방할 수도 있습니다만.. 아까도 말했듯이 보안때문에 좀 비추합니다. 애초에 포트만 개방해두면 adb connect 로 인증 과정 없이 그냥 접속이 되기 때문에 ^;
'모바일 > ADB' 카테고리의 다른 글
[ADB] 안드로이드 DB 파일 (/data/data/) 루팅 없이 추출하기 (2) | 2023.03.29 |
---|