Як я можу підключитися до Android з ADB через TCP? [зачинено]


879

Я намагаюся налагодити додаток на Motorola Droid , але у мене виникають певні труднощі з підключенням до пристрою через USB. Мій сервер розробки - це 64-бітний VM Windows 7, що працює в Hyper-V , і тому я не можу підключитися безпосередньо через USB у гостя або від хоста.

Я встановив декілька різних USB-over-TCP рішень, але, схоже, у зв'язку з цим зв’язком проблеми, оскільки монітор АБР повідомляє про те, що "devicemonitor не вдається запустити моніторинг" кілька разів. Чи є спосіб підключитися безпосередньо від клієнта на розроблювальній машині до демона на пристрої, використовуючи мережу замість USB-підключення або, можливо, інші життєздатні варіанти?


75
При підключенні через USB : adb tcpip 5555. Від'єднайте USB, перегляньте IP-адресу телефону від Settings > About Phone > Status. Тепер adb connect 192.168.x.xі все. Ні інструментів, ні програмного забезпечення. Просто працює.
andreszs

1
Що сказав Ендрю - це офіційні вказівки з веб-сайту розробників Android для Android , не вимагаючи кореня. Щойно працював над моїм не вкоріненим HTC One m8 (звичайно, потрібно включити параметри розробника).
Джефф Уорд

Якщо служба adb працює на порту 5037, то чому вона розміщує пристрої в діапазоні від 5555 до 5585?
Шивам Аггарвал

@Andrew Чи можу я використовувати такий додаток, як цей, щоб відкрити і закрити порт без комп’ютера на Nexus 6 без кореневого доступу? Мене турбують проблеми безпеки, які можуть виникнути внаслідок відкриття порту 5555 відкритим, коли я перебуваю у загальнодоступній мережі та не використовую свій телефон для розробки.
DaveTheMinion

Відповіді:


1205

Ручний процес

З вашого пристрою, якщо він укорінений

Відповідно до публікації розробників xda , ви можете ввімкнути ADB через Wi-Fi з пристрою за допомогою команд:

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

І ви можете відключити його і повернути ADB для прослуховування через USB

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

Якщо у вас вже є доступ до USB (не потрібен корінь)

Ще простіше перейти на використання Wi-Fi, якщо у вас вже є USB. З командного рядка на комп’ютері, на якому пристрій підключено через USB, видайте команди

adb tcpip 5555
adb connect 192.168.0.101:5555

Обов’язково замініть 192.168.0.101IP-адресу, яка фактично призначена вашому пристрою. Після завершення роботи можна відключитися від сеансу adb tcp, запустивши:

adb disconnect 192.168.0.101:5555

Ви можете знайти IP-адресу планшетного ПК двома способами:

Ручне відкриття IP-адреси:

Зайдіть у налаштування Wi-Fi для Android, натисніть кнопку меню на панелі дій (вертикальний еліпсис), натисніть кнопку « Додатково» та побачите IP-адресу внизу екрана.

Використовуйте ADB для виявлення IP:

Виконайте таку команду через adb:

adb shell ip -f inet addr show wlan0

Щоб сказати демону ADB, поверніться до прослуховування через USB

adb usb

Програми для автоматизації процесу

У Google Play також є кілька додатків, які автоматизують цей процес. Швидкий пошук пропонує adbWireless , WiFi ADB та ADB 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.rootповинні бути встановлені в 1. adbdпросто не відкриває з'єднання TCP / IP , якщо жоден з перерахованого вище не буде виконаний. Дивіться розділи netmite.com/android/mydroid/system/core/adb/adb.c adb_main про secureзмінну. adbdна моєму не вкоріненому 2.3.7 Android взагалі не переходить у режим TCP / IP.
соулсееках

2
Чудово! Друге рішення дійсно не вимагає кореня!
Гжегож Д.

132

Це дуже просто, якщо телефон укорінений.

Завантажте емулятор терміналу з Google Play (є безкоштовні партії). Переконайтеся, що ваш пристрій Android підключено до вашого Wi-Fi та отримайте IP-адресу Wi-Fi . Відкрийте програму терміналу та введіть:

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 повинен сказати, що ви підключені.

Примітка: якщо ви занадто швидкі, щоб дати команду підключення, вона може вийти з ладу. Тому спробуйте, принаймні, два рази п’ять секунд, перш ніж ви скажете, що це не працює.


6
Ця відповідь була кращою для мене, оскільки вона пояснювала, яку частину слід виконувати на пристрої, а яка на комп’ютері.
Едуардо

5
ПЕРЕД "adb tcpip 5555" DO "adb kill-server". ПІСЛЯ "adb connect 192.168.0.101what555" DO "adb пристрої" АБО "adb shell" (підключення не запускає оболонку).
Саміс

Я спробував, adb tcpip 5555а потім іншу людину стратили adb connect myIP:5555на своєму ПК. Він міг встановити додаток на мій телефон, але він не міг налагоджувати його віддалено. Чи можна налагоджувати віддалено? На моєму телефоні був waiting for debuggerвічний діалог .
Анджеліна

Це робить налаштування стійкими для перезавантаження?
Хрітік

Чи працює це з ipv6 адресою через мобільний Інтернет?
Капітан Свобода

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-toolsпапці Android SDK.


2
Насправді ви можете підключити багато пристроїв одночасно, якщо дотримуватись правильного порядку. Просто встановіть tcpip на 5555 індивідуально для кожного телефону, після чого видайте команду підключення для кожного телефону та voilá, всі вони підключені до adb.
andreszs

Налагодження трохи повільніше, якщо мій телефон підключений таким чином. Також іноді він засинає, і це викликає негайне відключення.
Арон Лорінц

На деяких пристроях затримка між командою adb tcpip та командою adb connect повинна бути дуже низькою, інакше вона не працює. Також для мене це спрацьовувалоadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon

61

Припустимо, що ви зберегли adb шлях у свій шлях оточення Windows

  1. Активуйте режим налагодження в Android

  2. Підключіться до ПК через USB

  3. Відкрити тип командного рядка: adb tcpip 5555

  4. Відключіть планшетний ПК або смартфон від ПК

  5. Відкрити тип командного рядка: adb connect IPADDRESS(IPADDRESS - це DHCP / IP-адреса вашого планшета чи смартфона, яку ви можете знайти за допомогою Wi-Fi -> поточної підключеної мережі)

Тепер у командному рядку слід побачити такий результат, як: підключено до xxx.xxx.xxx.xxxjanju555


Дякуємо за послідовність дій та зазначили, коли саме потрібно відключити ПК.
Манджу

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 BENZ554, в результаті чого * daemon не працює. запустивши його зараз * * демон розпочався успішно * не вдається підключитися до 10.10.10.100 BENZ554 Я можу пінг-версію пристрою з робочої станції розробника. Коли у висновку зазначено "демон почався успішно", чи не повинен він посилатися на демон на пристрої? Чи можлива спроба використовувати емулятор? Як забезпечити / перевірити, чи працює демон на пристрої? дякую
JDM

2
спочатку вам слід adb tcpip portвстановити налагодження через usb. Після останнього ви можете підключитися, connect host:portі це повинно працювати
Ейден Стридом

"порт adb tcpip" буквально? що просто повертає рядок "помилка: пристрій не знайдено" - чи є помилка друку? Або я повинен щось замінити тут?
BrainSlugs83

3
AHHH !! Зрозуміло це, стандартний номер порту для CyanogenMod становить 5555! НІСЕ. : D
BrainSlugs83

@Michael це може працювати в деяких стільникових мережах, але їх мережеві конфігурації - це в основному чорні поля - ви не знаєте, коли / якщо ви стоїте за брандмауером, якщо порти заблоковані, чи відбувається переклад NAT тощо.
BrainSlugs83

45

Для користувачів Windows:

Крок 1.
У телефоні Android потрібно включити параметри розробника.
Ви можете ввімкнути параметри розробника таким чином.
• Відкрийте Налаштування> Про програму> Інформація про програмне забезпечення> Детальніше.
• Потім натисніть «Номер збірки» сім разів, щоб увімкнути параметри розробника.
• Поверніться до меню "Налаштування", і там ви зможете побачити "Параметри розробника" там.
• Торкніться її та увімкніть налагодження USB у меню на наступному екрані.

Крок 2:

Відкрийте cmd та введіть adb.
якщо ви виявите, що adb не є дійсною командою, вам доведеться додати шлях до змінної середовища.

• Спочатку перейдіть до вас, встановленої папкою SDK.
Дотримуйтесь цього шляху, і цей шлях є лише прикладом. D: \ програмне забезпечення \ Розробка \ Andoird \ SDK \ sdk \ platform-tools \; D: \ програмне забезпечення \ розробка \ Andoird \ SDK \ sdk \ інструменти;
• Тепер шукайте розширені налаштування системи Windows

введіть тут опис зображення

Відкрийте змінну Environment.

введіть тут опис зображення

потім відкрийте шлях і вставте наступний шлях, це приклад.
Ви шлях SDK відрізняється від мого, будь ласка, використовуйте свій. D: \ програмне забезпечення \ Розробка \ Andoird \ SDK \ sdk \ platform-tools \;
D: \ програмне забезпечення \ розробка \ Andoird \ SDK \ sdk \ інструменти;

введіть тут опис зображення

Крок 3:

Відкрийте cmd та введіть adb. якщо ви все ще бачите, що adb не є дійсною командою, то ваш шлях не встановлений належним чином, виконайте наведені вище кроки.

введіть тут опис зображення

Тепер ви можете підключити свій андроїд телефон до ПК.

Відкрийте cmd і введіть adb пристрої, і ви зможете побачити свій пристрій. Знайдіть вам ip-адресу телефону.

введіть тут опис зображення

Тип: - adb tcpip 5555

введіть тут опис зображення

Отримайте IP-адресу свого телефону

adb shell netcfg

Тепер,

adb connect "IP address of your phone"

Тепер запустіть проект Android, і якщо вас не побачить пристрій, введіть знову adb connect IP-адресу вашого телефону

введіть тут опис зображення

введіть тут опис зображення

Для користувачів Linux та macOS :

Крок 1: відкрийте термінал і встановіть adb за допомогою

sudo apt - встановіть android-tools-adb android-tools-fastboot

Підключіть телефон через USB-кабель до ПК. Введіть наступну команду в термінал

adb tcpip 5555

За допомогою adb підключіть ip-адресу свого телефону Android.

Вийміть телефон.


36

З комп’ютера на не вкоріненому пристрої

(Зверніть увагу, що це можна зробити і за допомогою вкоріненого пристрою, але ви можете використовувати оболонку на укоріненому пристрої, який не потребує з'єднання USB)

По-перше, відкрийте командний рядок (CMD). Якщо ви користуєтесь Android Studio або IntelliJ, там є консоль, яку ви можете використовувати.

Якщо на шлях додано adb, можна пропустити частину CD.


Якщо можливо, відкрийте розташування SDK, клацніть правою кнопкою миші та натисніть «тут розпочати командний рядок». Не всі мають цю опцію, тому вам також потрібно виконати ці (/ ці) команди:

Windows: змініть диск (якщо застосуємо)

D: 

І отримати доступ до інструментів sdk та платформи. Замініть цей шлях своїм розташуванням SDK:

cd /sdk/path/here/platform-tools

Тепер у вас є доступ до мосту налагодження Android.


З пристроєм, підключеним до комп'ютера, виконайте:

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

Де <port>знаходиться порт, до якого ви хочете підключитися (за замовчуванням 5555) та <ip>IP-адреса пристрою, до якого ви хочете підключитися.

Зверніть увагу: 5555це порт за замовчуванням, і просто запис IP-адреси з'єднує його. Якщо ви використовуєте користувацький порт, ви можете принаймні трохи покращити безпеку. Налагодження USB через Wi-Fi можна зловживати, але лише якщо пристрій підключено до комп'ютера, який хоче зловживати пристроєм. Використання порту, який не використовується за замовчуванням, принаймні ускладнює підключення.

Якщо ви використовуєте користувацький порт, обов’язково додайте його після 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 shellабо завантажуєте додаток з Google 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 connect ).

Деякі телефони мають настройки в параметрах розробника (це відноситься і до деяких некореневим телефонами, хоча , можливо , деякі укорінені телефони теж) , що дозволяє перемикаючи ADB через Wi-Fi від самого пристрою без кореня або підключення до комп'ютера , щоб запустити його. Хоча є мало телефонів, які мають це


adb shell ip -f inet addr show wlan0 Чи IP-адресу та підтримку портів десь замінено?
Майкл

не в тому рядку Це звичайний спосіб отримати IP. Нічого там не слід замінювати в цьому рядку
Zoe

33

Мені потрібно було отримати як 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
У моєму гнексі це так /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 вперед tcp: 5555 tcp: 5555.

C: \ Users \ abc> adb вперед tcp: 7612 tcp: 7612

C: \ Users \ abc> adb tcpip 7612 перезапуск у порту режиму TCP: 7612

C: \ Users \ abc> adb connect 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>

з терміналу та підключіться до свого пристрою через wifi з будь-якого ПК у мережі:

adb connect <ip>:<port>

Можливо, також можливо перейти в режим TCP з терміналу на пристрої.


З усіх складних відповідей, які отримали масові відгуки, цей 8-річний відповідь на його найпростіший і працює: Вкорінення не потрібно. Просто введіть "adb connect <ip>: 5555", і він буде доступний для розгортання.
RogerW

29

Спочатку потрібно підключити свій пристрій через USB

Потім підключіть свій пристрій до WIFI та отримайте IP-адресу. Поки все ще підключаєтесь через usb, введіть це в командному рядку або через Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Ви побачите ці повідомлення:

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

Тепер вийміть USB-кабель, і ви все одно побачите свою реєстраційну систему як звичайну

Зроблено. Насолоджуйтесь


Це спрацювало. Однак. Після виконання цих кроків я більше не можу переключитися на емулятор. Пропозиції?
Тім Скотт

Вам потрібно перезапустити adb за допомогою: <adb kill-server>, а потім <adb start-server>
Joolah

21

Якщо ви хочете легко підключити свій пристрій для запуску, налагодження чи розгортання додатків для Android через WiFi, ви можете використовувати плагін IntelliJ з відкритим кодом, який я розробив. Ось код і тут плагін готовий до використання.

Використання досить просте. Тут у вас є gif:

введіть тут опис зображення


Ця помилка виникає: "'adb'команда не знайдена. Перегляньте свою установку SDK для Android.
rostamiani

1
Ви повинні оголосити змінну середовища з ім'ям ANDROID_HOME. Але я очікую на розгляд піару, щоб цього уникнути. З версією 1.2 я опублікую наступного тижня, плагін буде працювати тільки з встановленим IntelliJ :)
Педро Вісенте Гомес Санчес

Я використовую Mac, не бачу піктограму в AS? Чи потрібно спочатку щось робити вручну?
порошок 366

1
Я вже опублікував нову версію, де змінна середовища ANDROID_HOME більше не потрібна. @ powder366 вам потрібно встановити плагін із магазину плагінів IntelliJ, встановивши його вручну. Всі вказівки, необхідні для встановлення та використання плагіна, є у проекті readme, дивіться github.com/pedrovgs/AndroidWiFiADB
Pedro Vicente Gómez Sánchez

@ PedroVicenteGómezSánchez Спасибі Я вибрав неправильний плагін, є ще один плагін із подібною назвою ...
powder366

11

Як сказав Брайан:

Відповідно до публікації розробників xda, ви можете ввімкнути ADB через WiFi з пристрою за допомогою команд

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 connect 192.168.0.101what555

Щоб сказати демону ADB, поверніться до прослуховування через USB

adb usb

На Android Market також є кілька додатків, які автоматизують цей процес.

Це працює. Вам просто потрібно отримати доступ до оболонки Android і ввести ці команди ...

Ще одне (простіше) рішення є на ринку: adbWireless, воно автоматично встановить ваш телефон.

Корінь обов’язковий! для обох...


2
... але тільки якщо телефон укорінений.
android.weasel

Asus Transformer 301 - Робота без кореня не потрібна
Aiden Strydom

9
adb tcpip 5555

Дивно, але це працює тільки для мене, якщо у мене підключений USB-кабель, тоді я можу відключити usb і перейти до нього з усім іншим adb.

те саме, коли повертаєшся до usb,

adb usb

працюватиме лише за умови підключення usb.

Не має значення, чи видаю я

setprop service.adb.tcp.port 5555

або

setprop service.adb.tcp.port -1

потім зупинити і запустити adbd, мені все ще потрібен кабель usb або він не працює.

Отже, якщо мій ADB через usb не працював, я думаю, що я також не зможу ввімкнути ADB через WiFi.


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

Функція Bash:

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 хост - комп'ютер і Android пристрої знаходяться на одній і тій же Wi - Fi мережі.

КРОК 2.

Підключіть пристрій Android з комп’ютером за допомогою кабелю USB. Як тільки ви це зробите, ваш хост-комп'ютер виявить ваш пристрій, а adb почне працювати в режимі USB на комп'ютері. Ви можете перевірити приєднані пристрої, adb devicesтоді як переконайтесь, що adb працює в режимі USB, виконавши його adb usb.

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


КРОК 3.

Перезапустіть adb в режимі tcpip за допомогою цієї команди:

$ adb tcpip 5556
restarting in TCP mode port: 5556


КРОК 4.

Дізнайтеся IP-адресу пристрою Android. Існує кілька способів зробити це:

  • ШЛЯХ: 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і ще раз пройти всі кроки.

Сподіваюся, що це допомагає!


Довідка:


Крім того, ви можете отримати IP свого пристрою за допомогою цього сценарію на Unix: adb shell ip -f inet addr show wlan0 | grep inet | echo -n $ (grep -Eo '[0-9 \. \ /]') | відлуння -n $ (grep -Eo '^ [^ \ /] *') | sed 's / // g'
ahsan.dev

@Eddy Одно сумніви, що і система, і мобільний / планшетний ПК повинні бути підключені через WiFi або інша система, підключена через локальну мережу та планшет, підключені за допомогою WIFi-роутера тієї ж мережі.
Проясніть,

@ i-Droid Я не знаю, чому обом доводиться з'єднуватися в одній мережі. можливо, ADB використовує спеціальний чистий протокол маршрутизації. Я не маю уявлення і глибоких досліджень з цього приводу. Якщо у вас є інтерес до нього, ласкаво просимо уточнити його та поділіться зі мною, дякую!
Едді

6

Це кроки, які я виконував, і це працювало для мене,

  1. adb shell ifconfig (отримати тут IP-адресу пристрою)

  2. adb tcpip 7777 (підключіть adb до якогось порту)

  3. adb connect "ipaddress": 7777


5

Ви також можете використовувати переадресацію локального порту SSH. Але це все ще включає USB-кабель. Підключіть свій телефон за допомогою USB до комп’ютера (хоста) під керуванням sshd. На віддаленому (гостьовому) ПК запускайте SSH-клієнт, здатний здійснювати пересилання портів / тунелювання. Приклад:

plink -L 5037:localhost:5037 <host_IP_address>

Я використовую цю конструкцію для підключення свого пристрою до віртуальної машини. Eltima USB до Ethernet був недостатньо стабільним (тайм-аути під час налагодження).

Тунелювання SSH працює безкоштовно і є більш надійним.


4

Інші відповіді я вважаю заплутаними. Набагато простіше використовувати adbWireless:

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

Просто встановіть додаток на свій телефон, щоб переключити налагодження через Wi-Fi, встановити плагін затемнення і все закінчено.


На який плагін затемнення ви посилаєтесь? Edit: Nevermind. Знайшов це, перейшовши за посиланням у своїй відповіді.
ArtOfWarfare

Це лише корінь
Зоя,

3

Я зібрав пакетний файл для автоматичного включення та підключення ADB через TCP, до пристрою, підключеного через 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:

  1. У Linux використовуйте Blueman, щоб обмінюватися ПК з Інтернетом на своєму пристрої через Bluetooth:

    $ 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. Використовуйте мережу Bluetooth для команд ADB:

    $ 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 можуть підніматися до 24 Мбіт / с .


3

Кроки:

  1. su - Для переходу на суперкористувача.
  2. setprop service.adb.tcp.port 5555 - Щоб вказати tcp Port - 5555 - номер порту тут
  3. stop adbd - Щоб зупинити службу adbd.
  4. start adbd - Запуск служби adbd.

це чудово працює з sshмоїм ПК з Windows

Я намагаюся зробити це під час завантаження на моєму ціаногенному мобільному телефоні або запускаю це з планкістю. За допомогою планкінгу я не можу запустити оболонку з права права ... sudo або su команда не працює. Під час завантаження я не знаю, як це працює! Моя програма оболонки працює з ssh з su -c "sh /storage/sdcard1/start_adb.sh"останніми 3 командами (без su -)

Дякую


2

Ще одна примітка (навчився важкому шляху): у вас не повинно бути одночасно активним VPN-з'єднання вашої компанії ...


2

Вам потрібно зробити наступні дії:

  • По-перше, додайте ADB до вашого оточуючого шляху.
  • З вашого типу CLI цю команду adb підключіть YOUR_DEVICE_IP: PORT_NUMBER (приклад adb connect 192.168.100.100what555 )

2

Існує два способи підключення пристрою Android до ADB через 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 створений для швидкого підключення вашого пристрою Android через WiFi для встановлення, запуску та налагодження ваших програм без підключення USB. Натисніть одну кнопку і забудьте про свій USB-кабель

Перегляньте цю статтю для отримання додаткової інформації

Підключіть Android-пристрій до Wi-Fi в межах Android Studio


2

Я структура в тому ж питанні, але простий хакер adb reverse tcp:<PORT> tcp:<PORT> працював для мене. Це дозволяє системі приймати запити tcp.

Дякую за прочитане


1

Використовуйте додаток adbwireless, щоб увімкнути телефон, а потім використовуйте adb connect з машини Windows, щоб поговорити з ним. Додаток без реклами в телефоні повідомляє, як підключитися до нього, вказавши IP-адресу та все.

Набагато менш цікавою альтернативою є підключення через USB, сказати телефону використовувати TCPIP через adb tcpip 5555, потім відключити USB, а потім використовувати adb connect. Це набагато складніше, оскільки таким чином вам доведеться самостійно визначити IP-адресу телефону (adbwireless повідомляє вам IP), вам потрібно підключитися через USB, і вам доведеться запускати adb tcpip (adbwireless теж піклується про це).

Отже: встановлюйте adbwireless на свій телефон. Використай це. Можливо, я це роблю звичайно на Linux і в Windows.


1

У моїй системі все вийшло так:

На моєму пристрої Android у моїй оболонці Linux проста "ifconfig" не дала мені моєї IP-адреси. Мені довелося набрати:

ifconfig eth0

або

netcfg

щоб отримати мою IP-адресу. (Я знав, що eth0 налаштовано, тому що я бачив це в dmesg.) Потім я зробив:

setprop service.adb.tcp.port -1

зупинити adbd

почати adbd

Потім у моєму вікні Win7 (той, що працює Eclipse 3.7.1). Я відкрив командний рядок до

\ android-sdk \ platform-tools>

без запуску адміністратора. Тоді я зробив а

adb connect 12.345.678.90

Я ніколи не ставив порт. Якби я зробив

adb tcpip 5555

він сказав, що не може знайти пристрій, тоді в списку "adb пристроїв" нічого не з’явилося. Тобто це працює лише в тому випадку, якщо я НЕ виконую команду tcpip, подана вище.

Я можу зробити "adb shell" і повозитися зі своїм пристроєм Android. Але мій пристрій Android не відображається на моїй вкладці «Запуск»> «Конфігурації запуску»> «Ціль». З іншого боку, якщо я буду тримати вкладку "Ціль" автоматичною. Потім, коли я запускаю додаток через Run-> Run, він працює на моєму пристрої Android, хоча мій пристрій Android навіть не вказаний як одна з моїх цілей.


1

У мене це спрацювало. Не використовував жоден usb-кабель.

  • додаток adb бездротовий.
  • Виконати його. Це встановить ip і порт; Тоді в дос

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

Підключено.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.