Bagaimana saya bisa terhubung ke Android dengan ADB melalui TCP? [Tutup]


879

Saya mencoba men-debug aplikasi pada Motorola Droid , tetapi saya mengalami beberapa kesulitan menghubungkan ke perangkat melalui USB. Server pengembangan saya adalah Windows 7 64-bit VM yang berjalan di Hyper-V , dan jadi saya tidak dapat terhubung langsung melalui USB di tamu atau dari tuan rumah.

Saya menginstal beberapa solusi USB-over-TCP yang berbeda, tetapi koneksi tampaknya memiliki masalah karena monitor ADB melaporkan "devicemonitor gagal memulai pemantauan" berulang kali. Apakah ada cara untuk terhubung langsung dari klien pada mesin pengembangan ke daemon pada perangkat menggunakan jaringan alih-alih koneksi USB atau mungkin opsi lain yang layak?


75
Ketika terhubung melalui USB: adb tcpip 5555. Putuskan sambungan USB, lihat IP telepon dari Settings > About Phone > Status. Sekarang adb connect 192.168.x.xdan hanya itu. Tidak ada alat, tidak ada perangkat lunak. Hanya bekerja.
andreszs

1
Apa yang dikatakan Andrew - ini adalah instruksi resmi dari situs web pengembang android Google , tidak perlu root. Hanya bekerja pada HTC One m8 saya yang tidak di-rooting (tentu saja memerlukan opsi pengembang yang memungkinkan).
Jeff Ward

Jika layanan adb berjalan di port 5037 lalu mengapa ia menemukan perangkat di kisaran 5555 hingga 5585?
Shivam Aggarwal

@Andrew Bisakah saya menggunakan aplikasi seperti ini untuk membuka dan menutup port tanpa komputer pada Nexus 6 tanpa akses root? Saya prihatin dengan masalah keamanan yang dapat timbul dari meninggalkan port 5555 terbuka ketika saya berada di jaringan publik dan tidak menggunakan telepon saya untuk berkembang.
DaveTheMinion

Jawaban:


1205

Proses Manual

Dari perangkat Anda, jika sudah di-root

Menurut posting di xda-developer , Anda dapat mengaktifkan ADB melalui Wi-Fi dari perangkat dengan perintah:

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

Dan Anda dapat menonaktifkannya dan mengembalikan ADB ke mendengarkan di USB dengan

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

Dari komputer, jika Anda sudah memiliki akses USB (tidak diperlukan root)

Lebih mudah untuk beralih menggunakan Wi-Fi, jika Anda sudah memiliki USB. Dari baris perintah di komputer yang perangkatnya terhubung melalui USB, keluarkan perintahnya

adb tcpip 5555
adb connect 192.168.0.101:5555

Pastikan untuk mengganti 192.168.0.101dengan alamat IP yang sebenarnya ditetapkan untuk perangkat Anda. Setelah selesai, Anda dapat memutuskan sambungan dari sesi adb tcp dengan menjalankan:

adb disconnect 192.168.0.101:5555

Anda dapat menemukan alamat IP tablet dalam dua cara:

Penemuan IP Manual:

Buka pengaturan WiFi Android, klik tombol menu di panel tindakan (ellipsis vertikal), tekan Advanced dan lihat alamat IP di bagian bawah layar.

Gunakan ADB untuk menemukan IP:

Jalankan perintah berikut melalui adb:

adb shell ip -f inet addr show wlan0

Untuk memberi tahu daemon ADB kembali mendengarkan melalui USB

adb usb

Aplikasi untuk mengotomatiskan proses

Ada juga beberapa aplikasi di Google Play yang mengotomatiskan proses ini. Pencarian cepat menyarankan adbWireless , WiFi ADB dan ADB WiFi . Semua ini memerlukan akses root, tetapi adbWireless membutuhkan lebih sedikit izin.


3
Apakah Anda memerlukan akses root untuk melakukan ini? Saya tampaknya dapat menjalankan perintah menggunakan terminal, tetapi sepertinya tidak benar-benar berfungsi ...
JJ

6
@ JJ - Sayangnya, ya. Diperlukan root.
Kingsolmn

178
Untuk solusi kedua ( adb tcipip 5555dan adb connect ...tidak diperlukan root.
Ridcully

11
adb tcpip <port>masih membutuhkan salah satu ro.kernel.qemuproperti yang akan diatur (berjalan dalam mode emulator), ro.securemenjadi 0 (yaitu perangkat yang di-rooting), atau ro.debuggabledan service.adb.rootharus diatur ke 1. adbdtidak akan membuka koneksi TCP / IP jika tidak satu pun dari yang disebutkan di atas terpenuhi. Lihat bagian netmite.com/android/mydroid/system/core/adb/adb.c adb_main tentang securevariabel tersebut. adbdpada 2.3.7 Android saya unroot tidak masuk mode TCP / IP sama sekali.
soulseekah

2
Bagus! Solusi kedua benar-benar tidak memerlukan root!
Grzegorz D.

132

Ini sangat sederhana jika ponsel Anda di-rooting.

Unduh emulator terminal dari Google Play (ada banyak yang gratis). Pastikan perangkat Android Anda terhubung ke Wi-Fi Anda dan dapatkan alamat IP Wi-Fi . Buka program terminal dan ketik:

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

Sekarang pergi ke komputer Anda (dengan asumsi bahwa Anda menggunakan Windows) dan buat pintasan di desktop untuk "cmd.exe" (tanpa kutipan).

Klik kanan pada shortcut cmd dan pilih "Run as Administrator"

Ubah ke android-sdk-windows\toolsfolder Anda

Tipe:

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

(example: adb connect 192.168.0.105:5555)

adb sekarang harus mengatakan bahwa Anda terhubung.

Catatan: jika Anda terlalu cepat untuk memberikan perintah koneksi, mungkin gagal. Jadi cobalah setidaknya dua kali lima detik terpisah sebelum Anda mengatakan ini tidak berhasil.


6
Jawaban ini lebih baik bagi saya karena menjelaskan bagian mana yang harus dilakukan pada perangkat dan pada komputer.
Eduardo

5
SEBELUM "adb tcpip 5555" DO "adb kill-server". SETELAH "adb connect 192.168.0.101-5555" DO "adb devices" ATAU "adb shell" (terhubung tidak memulai shell).
samis

Saya mencoba adb tcpip 5555dan kemudian orang lain dieksekusi adb connect myIP:5555di PC mereka. Dia bisa menginstal aplikasi ke telepon saya tetapi dia tidak bisa men-debugnya dari jarak jauh. Apakah mungkin melakukan debug jarak jauh? Di ponsel saya ada dialog waiting for debuggerselamanya.
Angelina

Apakah ini membuat pengaturan tetap di seluruh reboot?
Hritik

Apakah ini berfungsi dengan alamat ipv6 melalui internet seluler?
CaptainFreedom

94
  1. Sambungkan perangkat melalui USB dan pastikan debugging berfungsi, lalu jalankan:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. Putuskan sambungan USB dan lanjutkan dengan debugging nirkabel.

  3. Setelah selesai dan ingin kembali ke USB debugging, jalankan:

    adb -s <DEVICE_IP_ADDRESS>:5555

Untuk menemukan alamat IP perangkat Anda, buka Settings > Wi-Fi > Advanced > IP Address di perangkat Anda atau jalankan adb shell netcfg.

Tidak diperlukan root. Hanya satu perangkat yang dapat di-debug pada suatu waktu.

Lihat posting XDA ini .

The adbperintah terletak di platform-toolsfolder SDK Android.


2
Sebenarnya, Anda dapat menghubungkan banyak perangkat sekaligus, jika Anda mengikuti urutan yang benar. Cukup atur tcpip ke 5555 satu per satu untuk setiap telepon, kemudian berikan perintah sambung untuk setiap telepon dan voilá, semuanya terhubung ke adb.
andreszs

Debugging sedikit lebih lambat jika ponsel saya terhubung dengan cara ini. Juga, kadang-kadang tertidur dan itu menyebabkan putuskan langsung.
Aron Lorincz

Pada beberapa perangkat, penundaan antara perintah adb tcpip dan perintah adb connect harus sangat rendah jika tidak maka tidak akan berfungsi. Juga, bagi saya itu berhasil dengan melakukanadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon

61

Asumsikan Anda menyimpan jalur adb ke jalur lingkungan Windows Anda

  1. Aktifkan mode debug di Android

  2. Terhubung ke PC melalui USB

  3. Buka jenis prompt perintah: adb tcpip 5555

  4. Putuskan koneksi tablet atau smartphone Anda dari pc

  5. Jenis prompt perintah terbuka: adb connect IPADDRESS(IPADDRESS adalah alamat DHCP / IP tablet atau ponsel cerdas Anda, yang dapat Anda temukan dengan Wi-Fi -> jaringan yang terhubung saat ini)

Sekarang di command prompt Anda akan melihat hasilnya seperti: terhubung ke xxx.xxx.xxx.xxx=555


Terima kasih atas urutan langkah-langkahnya dan menyebutkan kapan harus memutuskan sambungan PC.
Manju

53

Dari adb --help:

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

Omong-omong, itu opsi baris perintah.

Anda harus mencoba menghubungkan ponsel ke Wi-Fi Anda, dan kemudian mendapatkan alamat IP-nya dari router Anda. Itu tidak akan berfungsi pada jaringan sel.

Port adalah 5554.


1
Saya telah mencobanya dengan 5555-5558 dan sekarang 5554 dan tidak berhasil karena alasan tertentu. Pada dasarnya dari baris perintah: adb kill-server adb connect 10.10.10.100-5554 dengan hasil menjadi * daemon tidak berjalan. mulai sekarang * * daemon mulai berhasil * tidak dapat terhubung ke 10.10.10.100-5554 Saya dapat melakukan ping ip perangkat dari workstation dev. Ketika output menyatakan "daemon mulai berhasil" bukankah seharusnya mengacu pada daemon pada perangkat? Apakah mungkin mencoba menggunakan emulator? Bagaimana cara memastikan / memvalidasi daemon berjalan pada perangkat? terima kasih
JDM

2
Anda harus terlebih dahulu adb tcpip portkarena defaultnya adalah debugging melalui usb. Setelah yang terakhir, Anda dapat terhubung connect host:portdan berfungsi
Aiden Strydom

"adb tcpip port" secara harfiah? yang baru saja mengembalikan string "error: device not found" - apakah ada kesalahan ketik? Atau haruskah saya mengganti sesuatu di sini?
BrainSlugs83

3
AHHH !! Mencari tahu, nomor port default untuk CyanogenMod adalah 5555! BAGUS. : D
BrainSlugs83

@Michael ini mungkin berfungsi pada beberapa jaringan sel, tetapi konfigurasi jaringan mereka pada dasarnya adalah kotak hitam - Anda tidak tahu kapan / jika Anda berada di belakang firewall, apakah port sedang diblokir, apakah terjemahan NAT sedang berlangsung, dll.
BrainSlugs83

45

Untuk pengguna Windows:

Langkah 1:
Anda harus mengaktifkan opsi Pengembang di ponsel Android Anda.
Anda dapat mengaktifkan opsi Pengembang menggunakan cara ini.
• Buka Pengaturan> Tentang> Informasi Perangkat Lunak> Lainnya.
• Lalu ketuk “Build number” tujuh kali untuk mengaktifkan opsi Developer.
• Kembali ke menu Pengaturan dan sekarang Anda akan dapat melihat "Opsi pengembang" di sana.
• Ketuk dan nyalakan USB Debugging dari menu di layar berikutnya.

Langkah 2:

Buka cmd dan ketik adb.
jika Anda menemukan bahwa adb bukan perintah yang valid maka Anda harus menambahkan path ke variabel lingkungan.

• Pertama buka folder yang diinstal SDK Anda.
Ikuti jalur ini dan jalur ini hanya sebagai contoh. D: \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \; D: \ softwares \ Development \ Andoird \ SDK \ sdk \ tools;
• Sekarang cari di pengaturan lanjutan sistem windows

masukkan deskripsi gambar di sini

Buka variabel Lingkungan.

masukkan deskripsi gambar di sini

kemudian buka jalur dan tempel jalur berikut ini contohnya.
Anda jalur SDK berbeda dari jalur saya, harap gunakan jalur Anda. D: \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \;
D: \ softwares \ Development \ Andoird \ SDK \ sdk \ tools;

masukkan deskripsi gambar di sini

Langkah 3:

Buka cmd dan ketik adb. jika Anda masih melihat bahwa adb bukan perintah yang valid maka jalur Anda belum ditetapkan dengan benar ikuti langkah-langkah di atas.

masukkan deskripsi gambar di sini

Sekarang Anda dapat menghubungkan ponsel Android Anda ke PC.

Buka cmd dan ketik perangkat adb dan Anda dapat melihat perangkat Anda. Temukan alamat ip telepon Anda.

masukkan deskripsi gambar di sini

Ketik: - adb tcpip 5555

masukkan deskripsi gambar di sini

Dapatkan alamat IP telepon Anda

adb shell netcfg

Sekarang,

adb connect "IP address of your phone"

Sekarang jalankan proyek android Anda dan jika tidak melihat perangkat Anda, ketikkan lagi adb sambungkan alamat IP telepon Anda

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Untuk pengguna Linux dan macOS :

Langkah 1: buka terminal dan instal adb menggunakan

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

Hubungkan ponsel Anda melalui kabel USB ke PC. Ketik perintah berikut di terminal

adb tcpip 5555

Menggunakan adb, hubungkan alamat ip ponsel android Anda.

Lepaskan ponsel Anda.


36

Dari komputer di perangkat yang tidak di-root

(Perhatikan bahwa ini dapat dilakukan dengan menggunakan perangkat yang di-rooting juga, tetapi Anda dapat menggunakan shell pada perangkat yang di-rooting yang tidak memerlukan koneksi USB)

Pertama, buka command prompt (CMD). Jika Anda menggunakan Android Studio atau IntelliJ ada konsol yang disertakan di sana yang dapat Anda gunakan.

Jika Anda memiliki adb yang ditambahkan ke path, Anda dapat melewati bagian cd.


Jika memungkinkan, buka lokasi SDK, klik kanan, dan tekan "mulai prompt perintah di sini". Tidak semua memiliki opsi ini sehingga Anda harus melakukan ini (/ ini) perintah juga:

Windows: ubah drive (jika ada)

D: 

Dan akses sdk dan alat platform. Ganti jalur ini dengan lokasi SDK Anda:

cd /sdk/path/here/platform-tools

Sekarang Anda memiliki akses ke jembatan debug Android.


Dengan perangkat yang terhubung ke komputer, lakukan:

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

Di mana <port>port yang ingin Anda hubungkan (standarnya adalah 5555) dan<ip> merupakan IP perangkat yang ingin Anda hubungkan.

Harap dicatat: 5555adalah port default dan hanya menulis alamat IP yang menghubungkannya. Jika Anda menggunakan port khusus, Anda setidaknya dapat sedikit meningkatkan keamanan. USB debugging melalui Wi-Fi dapat disalahgunakan, tetapi hanya jika perangkat terhubung ke komputer yang ingin menyalahgunakan perangkat. Menggunakan port non-default setidaknya membuatnya agak sulit untuk dihubungkan.

Jika Anda menggunakan port khusus, pastikan untuk menambahkannya setelah IP. Penulisan no port terhubung ke 5555dan jika Anda tidak menggunakannya koneksi akan gagal.

Anda dapat menemukan alamat IP suatu perangkat dengan dua cara:

  • Tergantung pada perangkat Anda, nama pastinya dapat bervariasi. Buka pengaturan dan buka Tentang perangkat -> Status -> alamat IP

  • Gunakan ADB untuk mendapatkan IP

Dari konsol, lakukan:

adb shell ip -f inet addr show wlan0

Dan setelah Anda selesai dengan koneksi, Anda dapat memutuskan koneksi perangkat dari komputer Anda dengan melakukan:

adb disconnect <ip>:<port>

Atau tidak ada IP untuk memutuskan semua perangkat. Jika Anda menggunakan port khusus, Anda harus menentukan port mana yang harus dilepaskan . Defaultnya adalah 5555 di sini juga.

Untuk menonaktifkan port (jika itu adalah sesuatu yang ingin Anda lakukan), Anda melakukan perintah ini dengan perangkat yang terhubung:

adb usb

Atau Anda dapat me-restart perangkat untuk menghapus koneksi tcpip

Dari komputer di perangkat yang di-rooting

Pertama, Anda perlu akses ke shell. Anda menghubungkan perangkat menggunakan kabel usb dan menggunakanadb shell atau mengunduh aplikasi dari Google Play, FDroid, atau sumber lain.

Maka Anda melakukannya:

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

Dan untuk menghubungkan perangkat, Anda melakukannya dengan melakukan versi non-root adb connect <ip>:<port>.

Dan jika Anda ingin menonaktifkan port dan kembali ke mendengarkan USB:

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

Anda juga dapat menggunakan plugin Android Studio untuk melakukannya untuk Anda (tidak ingat namanya sekarang), dan untuk pengguna yang di-rooting ada juga opsi untuk mengunduh aplikasi Android untuk mengatur koneksi telepon (koneksi adb mungkin masih diperlukan ).

Beberapa ponsel memiliki pengaturan dalam opsi pengembang (ini berlaku untuk beberapa ponsel yang tidak di-root, meskipun mungkin juga beberapa ponsel yang di-rooting) yang memungkinkan untuk beralih ADB melalui Wi-Fi dari perangkat itu sendiri tanpa root atau koneksi komputer untuk memulainya. Padahal ada beberapa ponsel yang memilikinya


adb shell ip -f inet addr show wlan0 Apakah alamat IP dan dukungan port akan diganti di suatu tempat di sana?
Michael

tidak di baris itu. Itulah cara shell untuk mendapatkan IP. Tidak ada yang harus diganti di baris itu
Zoe

33

Saya perlu untuk mendapatkan baik USB dan TCPIP bekerja untuk ADB (jangan tanya), jadi saya melakukan hal berikut (menggunakan arah lain telah diposting dari xda-developer)

Menggunakan 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

Tidak berfungsi: adbd tidak ditemukan. adbd biasanya diluncurkan melalui start adbd. Tapi mungkin ada skrip / executable di beberapa folder?
KrisWebDev

1
Di gnex saya, itu /sbin/adbd. Itu mungkin berbeda di telepon. Tentu saja, Anda harus di-root ... Jika Anda tidak di-root, Anda tidak akan dapat mengakses / sbin.
transistor1

32

Untuk menghubungkan tablet Anda menggunakan port TCP. Pastikan sistem dan perangkat Anda terhubung ke jaringan yang sama.

  1. Buka konsol cmd.exe
  2. Tipe adb tcpip 5555
  3. Pergi ke Sistem -> Opsi pengembangan -> USB debugging -> Hapus centang untuk koneksi TCPIP
  4. Ketikkan adb connect 192.168.1.2ini adalah alamat IP perangkat Anda
  5. Terhubung ke 192.168.1.2

Terhubung menggunakan port forward Cobalah melakukan port forwarding,

adb forward tcp: <PC port>tcp:<device port>

Suka:

adb maju tcp: 5555 tcp: 5555.

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

C: \ Users \ abc> adb tcpip 7612 memulai kembali dalam port mode TCP: 7612

C: \ Users \ abc> adb connect 10.0.0.1:7612

terhubung ke 10.0.0.1:7612

Jika Anda mendapatkan pesan kesalahan: perangkat tidak ditemukan hubungkan perangkat usb ke sistem kemudian ikuti prosedur yang sama.
untuk perangkat yang di-rooting

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

2
Di konsol, tulis sudulu untuk mendapatkan konsol yang telah di-root.
Grim

30

Saya tidak tahu bagaimana menghubungkan perangkat tanpa koneksi USB sama sekali, tetapi jika Anda berhasil menghubungkannya mungkin di komputer lain Anda dapat mengganti adbd ke mode TCP dengan mengeluarkan

adb tcpip <port>

dari terminal dan sambungkan ke perangkat Anda melalui wifi dari PC mana pun di jaringan dengan:

adb connect <ip>:<port>

Mungkin juga dimungkinkan untuk beralih ke mode TCP dari terminal pada perangkat.


Dari semua jawaban rumit yang menerima upvotes besar, anak berusia 8 tahun ini menjawab yang paling sederhana dan bekerja. Tidak diperlukan rooting. Cukup ketik 'adb connect <ip>: 5555' dan itu akan tersedia untuk digunakan.
RogerW

29

Pertama, Anda harus menghubungkan perangkat Anda melalui USB

Kemudian hubungkan perangkat Anda ke WIFI dan dapatkan alamat IP. Sementara masih terhubung melalui usb ketik ini di baris perintah atau melalui Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Anda akan melihat pesan-pesan ini:

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

Sekarang lepaskan kabel USB dan Anda masih akan melihat logcat Anda seperti biasa

Selesai Nikmati


Ini berhasil. Namun. Setelah melakukan langkah-langkah ini, saya tidak bisa lagi beralih ke emulator. Saran?
Tim Scott

Anda perlu memulai ulang adb Anda dengan: <adb kill-server> dan kemudian <adb start-server>
Joolah

21

Jika Anda ingin dengan mudah menghubungkan perangkat Anda untuk menjalankan, men-debug atau menggunakan aplikasi Android Anda melalui WiFi, Anda dapat menggunakan Plugin open source IntelliJ yang telah saya kembangkan. Ini kodenya dan di sini plugin siap digunakan.

Penggunaannya cukup sederhana. Di sini Anda memiliki gif:

masukkan deskripsi gambar di sini


Kesalahan ini terjadi: "'adb'command tidak ditemukan. Tinjau pemasangan Android SDK Anda
rostamiani

1
Anda harus mendeklarasikan variabel lingkungan dengan nama ANDROID_HOME. Tapi saya punya PR menunggu untuk meninjau untuk menghindari ini. Dengan versi 1.2 saya akan menerbitkan minggu depan plugin akan bekerja hanya dengan IntelliJ diinstal :)
Pedro Vicente Gómez Sánchez

Saya menggunakan mac, tidak melihat ikon di AS? Apakah saya perlu melakukan sesuatu manual terlebih dahulu?
powder366

1
Saya sudah menerbitkan versi baru di mana variabel lingkungan ANDROID_HOME tidak diperlukan lagi. @ powder366 Anda perlu menginstal plugin dari toko plugin IntelliJ untuk menginstalnya secara manual. Semua instruksi yang diperlukan untuk menginstal dan menggunakan plugin ini ada dalam readme proyek, lihat github.com/pedrovgs/AndroidWiFiADB
Pedro Vicente Gómez Sánchez

@ PedroVicenteGómezSánchez Terima kasih. Saya memilih plugin yang salah, ada plugin lain dengan nama yang mirip ...
powder366

11

Seperti yang dikatakan Brian:

Menurut sebuah posting di xda-developer, Anda dapat mengaktifkan ADB melalui WiFi dari perangkat dengan perintah

setprop service.adb.tcp.port 5555

hentikan adbd

mulai adbd

Dan Anda dapat menonaktifkannya dan mengembalikan ADB ke mendengarkan di USB dengan

setprop service.adb.tcp.port -1

hentikan adbd

mulai adbd

Jika Anda sudah memiliki akses USB, bahkan lebih mudah untuk beralih menggunakan WiFi. Dari baris perintah di komputer yang perangkatnya terhubung melalui USB, keluarkan perintahnya

adb tcpip 5555

adb connect 192.168.0.101-5555

Untuk memberi tahu daemon ADB kembali mendengarkan melalui USB

adb usb

Ada juga beberapa aplikasi di Android Market yang mengotomatiskan proses ini.

Ini bekerja. Anda hanya perlu mengakses shell android dan ketik perintah-perintah itu ...

Satu lagi (lebih mudah) solusi ada di Pasar: adbWireless, itu akan secara otomatis mengatur telepon Anda.

Diperlukan root! untuk berdua...


2
... tetapi hanya jika telepon di-root.
android.weasel

Asus Transformer 301 - Bekerja tanpa root
Aiden Strydom

9
adb tcpip 5555

Aneh, tetapi ini hanya bekerja untuk saya jika saya memiliki kabel USB yang terhubung, maka saya dapat mencabut USB dan pergi dengan adb lainnya.

dan sama ketika kembali ke usb,

adb usb

hanya akan berfungsi jika usb terhubung.

Tidak masalah jika saya mengeluarkan

setprop service.adb.tcp.port 5555

atau

setprop service.adb.tcp.port -1

kemudian berhenti & mulai adbd, saya masih membutuhkan kabel usb atau tidak berfungsi.

Jadi, jika ADB saya melalui usb tidak berfungsi, saya yakin saya tidak akan bisa mengaktifkan ADB lebih dari WiFi.


8

Untuk beralih antara mode TCP dan USB hanya dengan satu perintah, Anda dapat menambahkan ini ke /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

Dan sekarang Anda dapat menggunakan properti service.adb.tcp.enableuntuk mengaktifkan atau menonaktifkan mendengarkan di port 5555. Jalankan netstatuntuk memeriksa apakah itu mendengarkan. Seperti yang Anda lihat, itu juga akan memicu jika Anda ingin mengubahnya service.adb.tcp.portsecara manual.


8

Fungsi Bash util:

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

7

LANGKAH 1.

Pastikan kedua komputer Anda adb host dan perangkat Android berada di jaringan Wifi yang sama.

LANGKAH 2.

Hubungkan perangkat Android dengan komputer menggunakan kabel USB Anda. Segera setelah Anda melakukannya, komputer host Anda akan mendeteksi perangkat Anda dan adb akan mulai berjalan dalam mode USB di komputer. Anda dapat memeriksa perangkat yang terpasang dengan adb devicessementara memastikan bahwa adb berjalan dalam mode USB dengan menjalankan adb usb.

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


LANGKAH 3.

Mulai ulang adb dalam mode tcpip dengan perintah ini:

$ adb tcpip 5556
restarting in TCP mode port: 5556


LANGKAH 4.

Cari tahu alamat IP perangkat Android. Ada beberapa cara untuk melakukan itu:

  • CARA: 1 Buka Pengaturan -> Tentang ponsel / tablet -> Status -> alamat IP.
  • CARA: 2 Pergi ke daftar jaringan Wi-fi yang tersedia. Yang terhubung dengan Anda, ketuk itu dan kenali IP Anda.
  • CARA: 3 Coba $ adb shell netcfg.

Sekarang setelah Anda mengetahui alamat IP perangkat Anda, hubungkan adb host Anda ke sana.

$ 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


LANGKAH 5.

Lepaskan kabel USB dan Anda harus terhubung ke perangkat Anda. Jika Anda tidak melihatnya adb devicesmaka hubungkan kembali menggunakan perintah langkah sebelumnya:

$ 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

Entah Anda baik untuk pergi sekarang atau Anda harus membunuh server adb Anda dengan mengeksekusi adb kill-serverdan pergi melalui semua langkah sekali lagi.

Semoga itu bisa membantu!


Referensi:


Selain itu, Anda bisa mendapatkan IP perangkat Anda dengan skrip ini di Unix: adb shell ip -f inet addr show wlan0 | grep inet | echo -n $ (grep -Eo '[0-9 \. \ /]') | echo -n $ (grep -Eo '^ [^ \ /] *') | sed 's / // g'
ahsan.dev

@ Eddy One meragukan bahwa sistem dan ponsel / Tablet harus terhubung melalui WiFi atau sistem yang terhubung melalui LAN dan tablet yang terhubung menggunakan router WIFi dari jaringan yang sama. Tolong Jelaskan itu
iSrinivasan27

@ i-Droid Saya tidak tahu mengapa keduanya harus terhubung dalam jaringan yang sama. mungkin ADB menggunakan protokol perutean jaringan khusus. Saya tidak punya ide dan penelitian mendalam tentang hal itu. Jika Anda tertarik, selamat untuk memperjelas dan membagikannya kepada saya, terima kasih!
Eddy

6

Ini adalah langkah-langkah yang saya ikuti dan itu berhasil untuk saya,

  1. adb shell ifconfig (dapatkan alamat ip perangkat dari sini)

  2. adb tcpip 7777 (hubungkan adb ke beberapa port)

  3. adb sambungkan "ipaddress": 7777


5

Anda juga dapat menggunakan penerusan port lokal SSH. Tapi itu masih melibatkan kabel USB. Hubungkan ponsel Anda menggunakan USB ke komputer (host) dengan sshd yang berjalan. Pada komputer remote (tamu) mulai klien SSH yang mampu melakukan portforwarding / tunneling. Contoh:

plink -L 5037:localhost:5037 <host_IP_address>

Saya menggunakan konstruksi ini untuk menghubungkan perangkat saya ke mesin virtual. Eltima USB ke Ethernet tidak cukup stabil (batas waktu selama debug).

Terowongan SSH bekerja secara gratis dan lebih dapat diandalkan.


4

Saya menemukan jawaban lain membingungkan. Jauh lebih mudah untuk menggunakan adbWireless:

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

Cukup instal aplikasi di ponsel Anda untuk beralih debugging melalui wifi, instal plug-in gerhana dan Anda selesai.


Apa plug-in gerhana yang Anda maksud? Sunting: Nevermind. Temukan dengan mengikuti tautan di jawaban Anda.
ArtOfWarfare

Ini hanya root
Zoe

3

Saya mengumpulkan file batch untuk mengaktifkan secara otomatis dan menghubungkan ADB melalui TCP, ke perangkat yang terhubung melalui USB. Dengan itu Anda tidak perlu memasukkan IP secara manual.

@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

Berikut ini adalah ekstensi untuk jawaban Brian menggunakan Bluetooth:

  1. Di Linux, gunakan Blueman untuk berbagi internet PC dengan perangkat Anda melalui 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. Gunakan jaringan Bluetooth untuk perintah 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

Setelah selesai untuk kembali ke mode USB:

$ adb disconnect
$ adb usb

Catatan: Bluetooth 3.0 dan 4.0 dapat mencapai 24 Mbit / s .


3

Langkah :

  1. su - Untuk beralih ke pengguna super.
  2. setprop service.adb.tcp.port 5555 - Untuk menentukan Port tcp - 5555 adalah nomor port di sini
  3. stop adbd - Untuk menghentikan layanan adbd.
  4. start adbd - Untuk memulai layanan adbd.

ini bekerja dengan sempurna sshdari PC windows saya

Saya mencoba melakukan ini saat boot di ponsel cyanogen saya atau meluncurkan ini dengan plink. Dengan plink saya tidak dapat menjalankan shell dengan su ... sudo atau perintah su tidak berfungsi. Saat boot, saya tidak tahu cara kerjanya! Program shell saya bekerja dari ssh dengan su -c "sh /storage/sdcard1/start_adb.sh"dengan 3 perintah terakhir (tanpa su -)

Terima kasih


2

Satu catatan tambahan (pelajari dengan susah payah): Anda seharusnya tidak mengaktifkan koneksi VPN perusahaan Anda secara bersamaan ...


2

Anda perlu melakukan hal-hal berikut:

  • Pertama, Tambahkan ADB ke jalur lingkungan Anda.
  • Dari CLI Anda ketik perintah ini adb connect YOUR_DEVICE_IP: PORT_NUMBER ( mis. Adb connect 192.168.100.100-5555 )

2

Ada dua cara untuk menghubungkan perangkat Android Anda dengan ADB melalui TCP?

Cara pertama

Ikuti langkah-langkah ini

Pertama-tama gunakan perintah di bawah ini untuk mendapatkan Alamat IP perangkat Anda

adb shell ifconfig

OUTPUT dari perintah di atas

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

Dengan bantuan perintah di atas Anda akan menemukan Alamat IP perangkat yang terhubung

Sekarang gunakan perintah di bawah ini

adb tcpip 5555

Perintah di atas akan memulai kembali port TCP ini: 5555

Sekarang gunakan perintah di bawah ini untuk menghubungkan perangkat Anda

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

Cara kedua

Anda dapat menggunakan Plugin Android Studio Android device with ADB

Android WiFi ADB - Plugin IntelliJ / Android Studio

Plugin IntelliJ dan Android Studio dibuat untuk menghubungkan perangkat Android Anda dengan cepat melalui WiFi untuk menginstal, menjalankan, dan men-debug aplikasi Anda tanpa USB yang terhubung. Tekan satu tombol dan lupakan kabel USB Anda

Silakan periksa artikel ini untuk informasi lebih lanjut

Hubungkan Perangkat Android dengan Wifi dalam Android Studio


2

Saya struct pada masalah yang sama tetapi hack sederhana adb reverse tcp:<PORT> tcp:<PORT> bekerja untuk saya. Ini memungkinkan sistem untuk menerima permintaan tcp.

Terima kasih telah membaca


1

Gunakan aplikasi adbwireless untuk mengaktifkan ponsel, lalu gunakan adb connect dari mesin Windows untuk berbicara dengannya. Aplikasi adbwireless di ponsel memberi tahu Anda cara menghubungkannya, memberikan alamat IP dan semuanya.

Alternatif yang jauh lebih tidak menyenangkan adalah terhubung melalui USB, beri tahu telepon untuk menggunakan TCPIP melalui adb tcpip 5555, lalu lepaskan USB, kemudian gunakan adb connect. Ini jauh lebih sulit karena dengan cara ini Anda harus mengetahui sendiri alamat IP telepon (adbwireless memberi tahu Anda IP), Anda harus terhubung melalui USB, dan Anda harus menjalankan adb tcpip (adbwireless juga mengurusnya).

Jadi: instal adbwireless di ponsel Anda. Gunakan. Mungkin saja, saya melakukannya secara rutin di Linux dan Windows.


1

Di sistem saya itu berjalan seperti ini:

Di perangkat Android saya di shell Linux saya, "ifconfig" yang sederhana tidak memberikan saya alamat IP saya. Saya harus mengetik:

ifconfig eth0

-atau-

netcfg

untuk mendapatkan alamat IP saya. (Saya tahu eth0 dikonfigurasi karena saya melihatnya di dmesg saya.) Lalu saya melakukan:

setprop service.adb.tcp.port -1

hentikan adbd

mulai adbd

Kemudian pada kotak Win7 saya (yang menjalankan Eclipse 3.7.1). Saya membuka prompt perintah untuk

\ android-sdk \ platform-tools>

tanpa berjalan sebagai admin. Lalu aku melakukan

adb terhubung 12.345.678.90

Saya tidak pernah menaruh port. Jika saya melakukan

adb tcpip 5555

katanya tidak dapat menemukan perangkat maka tidak ada yang muncul dalam daftar "perangkat adb" saya. Yaitu hanya berfungsi jika saya TIDAK melakukan perintah tcpip di atas.

Saya dapat melakukan "adb shell" dan mengacaukan dengan Perangkat Android saya. Tetapi Perangkat Android saya tidak muncul di Run-> Run Configurations-> Target sekarang. Di sisi lain, jika saya menjaga Target Tab diatur ke otomatis. Kemudian ketika saya menjalankan aplikasi saya melalui Run-> Run itu berjalan di perangkat Android saya meskipun perangkat Android saya bahkan tidak terdaftar sebagai salah satu target saya.


1

Saya memang mendapatkan ini berfungsi. Tidak menggunakan kabel usb.

  • app adb wireless.
  • Menjalankannya. Itu akan mengatur ip dan port; Kemudian dalam dos

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

Terhubung

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.