Android'e TCP üzerinden ADB ile nasıl bağlanabilirim? [kapalı]


879

Motorola Droid'de bir uygulamada hata ayıklamaya çalışıyorum , ancak cihaza USB yoluyla bağlanmakta zorluk çekiyorum. Geliştirme sunucum Hyper-V'de çalışan bir Windows 7 64 bitlik VM'dir ve bu nedenle konuk veya ana bilgisayardan doğrudan USB üzerinden bağlanamıyorum.

Birkaç farklı TCP üzerinden USB çözümü kurdum, ancak ADB monitörü "aygıt izleyici izlemeye başlayamadı" raporlarını bildirdiği için bağlantıda sorunlar var gibi görünüyor . USB bağlantısı veya başka bir uygulanabilir seçenek yerine ağ kullanarak doğrudan geliştirme makinesindeki istemciden cihazdaki arka plan programına bağlanmanın bir yolu var mı?


75
Ne zaman USB üzerinden bağlantı: adb tcpip 5555. USB bağlantısını kesin, telefonun IP'sini görüntüleyin Settings > About Phone > Status. Şimdi adb connect 192.168.x.xve hepsi bu. Alet yok, yazılım yok. Sadece Çalışır.
andreszs

1
Andrew ne dedi - bunlar Google'ın android geliştirici web sitesinden resmi talimatlar , kök gerekli değil. Köklü olmayan HTC One m8 üzerinde çalıştım (elbette geliştirici seçeneklerini etkinleştirmeyi gerektirir.).
Jeff Ward

Adb hizmeti bağlantı noktası 5037'de çalışıyorsa neden 5555 ila 5585 aralığındaki aygıtları bulur?
Shivam Aggarwal

@ Andrew ben gibi bir uygulama kullanabilir misiniz bu açmak ve hiçbir kök erişimi olan bir Nexus 6 bilgisayar olmadan bağlantı noktasını kapatmak için? Halka açık bir ağdayken 5555 numaralı bağlantı noktasını açık bırakmak ve telefonumu geliştirmek için kullanmamaktan kaynaklanabilecek güvenlik sorunlarıyla ilgileniyorum.
DaveTheMinion

Yanıtlar:


1205

Manuel İşlem

Köklüyse cihazınızdan

Xda-geliştiriciler üzerindeki bir yayına göre , komutlarla cihazdan Wi-Fi üzerinden ADB'yi etkinleştirebilirsiniz:

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

Ve devre dışı bırakabilir ve ADB'yi USB ile dinlemeye geri döndürebilirsiniz.

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

Bilgisayardan, zaten USB erişiminiz varsa (kök gerekmez)

Zaten USB'niz varsa Wi-Fi kullanmaya geçmek daha da kolaydır. Aygıtın USB üzerinden bağlı olduğu bilgisayardaki bir komut satırından komutları verin

adb tcpip 5555
adb connect 192.168.0.101:5555

192.168.0.101Cihazınıza gerçekten atanan IP adresiyle değiştirdiğinizden emin olun . İşiniz bittiğinde, çalıştırarak adb tcp oturumunun bağlantısını kesebilirsiniz:

adb disconnect 192.168.0.101:5555

Bir tabletin IP adresini iki şekilde bulabilirsiniz:

Manuel IP Keşfi:

Android'in WiFi ayarlarına gidin, işlem çubuğundaki (dikey üç nokta) menü düğmesini tıklayın, Gelişmiş'i tıklayın ve ekranın altındaki IP adresini görün.

IP'yi keşfetmek için ADB'yi kullanın:

Aşağıdaki komutu adb ile yürütün:

adb shell ip -f inet addr show wlan0

ADB arka plan programının USB üzerinden dinlemeye geri dönmesini söylemek için

adb usb

Süreci otomatikleştiren uygulamalar

Google Play'de bu işlemi otomatikleştiren birkaç uygulama da vardır. Hızlı arama, adbWireless , WiFi ADB ve ADB WiFi'yi önerir . Bunların tümü root erişimi gerektirir, ancak adbWireless daha az izin gerektirir.


3
Bunu yapmak için root erişimine ihtiyacınız var mı? Komutları terminal kullanarak çalıştırabiliyor gibiyim, ama aslında işe yaramıyor ...
JJ

6
@ JJ - Maalesef evet. Root gerekli.
Kingsolmn

178
İkinci çözüm için ( adb tcipip 5555ve adb connect ...kök gerekli değildir.
Ridcully

11
adb tcpip <port>Hala ya gerektirir ro.kernel.qemu, (emülatör modunda çalışırken) ayarlanması özelliği ro.secure(yani köklü cihaz) veya 0 olması ro.debuggableve service.adb.root1 olarak ayarlanmış olması adbdyukarıdakilerden hiçbiri yerine ise sadece TCP / IP bağlantısı açılmaz. Değişken hakkında netmite.com/android/mydroid/system/core/adb/adb.c adb_main bölümlerine bakın secure. adbdbenim köksüz 2.3.7 Android TCP / IP moduna hiç girmiyor.
soulseekah

2
Harika! İkinci çözüm gerçekten kök gerektirmez!
Grzegorz D.

132

Telefonunuz rootlanmışsa bu gerçekten basittir.

Google Play'den bir terminal emülatörü indirin (ücretsiz olan çok şey var). Android cihazınızın Wi-Fi'nize bağlı olduğundan emin olun ve Wi-Fi IP adresini alın. Terminal programını açın ve şunu yazın:

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

Şimdi bilgisayarınıza gidin (Windows kullandığınızı varsayarak) ve masaüstünde "cmd.exe" için bir kısayol oluşturun (alıntılar olmadan).

Cmd kısayoluna sağ tıklayın ve "Run as Administrator"

android-sdk-windows\toolsKlasörünüzde değiştirin

Tür:

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

(example: adb connect 192.168.0.105:5555)

adb şimdi bağlı olduğunuzu söylemelidir.

Not: connect komutunu vermek için çok hızlıysanız başarısız olabilir. Bu yüzden, bunun işe yaramadığını söylemeden önce en az iki kez beş saniye arayla deneyin.


6
Bu cevap benim için daha iyiydi çünkü hangi parçanın cihazda ve hangi parçanın bilgisayarda yapılması gerektiğini açıkladı.
Eduardo

5
ÖNCE "adb tcpip 5555" DO "adb kill-server". SONRA "adb connect 192.168.0.101:5555" DO "adb cihazlar" VEYA "adb shell" (kabuk başlamaz bağlantı).
samis

Denedim adb tcpip 5555ve sonra diğer kişi adb connect myIP:5555bilgisayarında idam etti. Telefonuma bir uygulama yükleyebilir, ancak uzaktan hata ayıklayamadı. Uzaktan hata ayıklamak mümkün mü? Telefonumda waiting for debuggersonsuza dek bir iletişim vardı .
Angelina

Bu, ayarları yeniden başlatmalarda kalıcı hale getirir mi?
Hritik

Bu mobil internet üzerinden ipv6 adresi ile çalışıyor mu?
CaptainFreedom

94
  1. Cihazı USB üzerinden bağlayın ve hata ayıklamanın çalıştığından emin olun, ardından çalıştırın:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
    
  2. USB bağlantısını kesin ve kablosuz hata ayıklamaya devam edin.

  3. İşiniz bittiğinde ve USB hata ayıklamaya geri dönmek istediğinizde şunu çalıştırın:

    adb -s <DEVICE_IP_ADDRESS>:5555

Cihazınızın IP adresini bulmak için cihazınızda adresine gidin Settings > Wi-Fi > Advanced > IP Addressveya çalıştırın adb shell netcfg.

Kök gerekmez. Aynı anda yalnızca bir cihazda hata ayıklanabilir.

Bu XDA yayınına bakın .

adbKomut bulunan platform-toolsAndroid SDK klasörünün.


2
Aslında, doğru siparişi takip ederseniz, aynı anda birçok cihazı bağlayabilirsiniz. Sadece tcpip'i her telefon için ayrı ayrı 5555'e ayarlayın, ardından her telefon ve voilá için connect komutunu verin, hepsi adb'ye bağlı.
andreszs

Telefonum bu şekilde bağlanırsa hata ayıklama biraz daha yavaştır. Ayrıca, bazen uykuya dalar ve bu anında bir bağlantı kesilmesine neden olur.
Aron Lorincz

Bazı cihazlarda, adb tcpip komutu ile adb connect komutu arasındaki gecikme çok düşük olmalıdır, aksi takdirde çalışmaz. Ayrıca, benim için çalıştıadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon

61

Adb yolunu Windows ortam yolunuza kaydettiğinizi varsayalım

  1. Android'de hata ayıklama modunu etkinleştirme

  2. USB ile PC'ye bağlanma

  3. Komut istemi türünü aç: adb tcpip 5555

  4. Tabletinizin veya akıllı telefonunuzun bilgisayarla bağlantısını kesin

  5. Açık komut istemi türü: adb connect IPADDRESS(IPADDRESS, tabletinizin veya akıllı telefonunuzun Wi-Fi ile bulabileceğiniz DHCP / IP adresidir -> mevcut bağlı ağ)

Komut isteminde şu sonucu görmelisiniz: xxx.xxx.xxx.xxx:5555'e bağlı


Adımların sırası ve PC'nin ne zaman kesileceğini belirttiğiniz için teşekkürler.
Manju

53

Gönderen adb --help:

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

Bu arada bir komut satırı seçeneği.

Telefonu Wi-Fi'nize bağlamayı ve IP adresini yönlendiricinizden almayı denemelisiniz. Hücre ağında çalışmayacak.

Liman 5554'tür.


1
Ben 5555-5558 ve şimdi 5554 ile denedim ve bir nedenle işe yaramıyor. Temel olarak bir komut satırından: adb kill-server adb connect 10.10.10.100:5554 sonucu * daemon çalışmaz. şimdi başlıyor * * daemon başarıyla başlatıldı * 10.10.10.100:5554'e bağlanamıyor Aygıtın ipini dev iş istasyonundan ping atabilirim. Çıktı "daemon başarılı bir şekilde başlatıldı" ifadesini aldığında, cihazdaki arka plan programına atıfta bulunmamalı mı? Öykünücüyü kullanmaya çalışıyor mu? Cihazda daemon'un çalıştığından nasıl emin olurum / doğrularım? teşekkürler
JDM

2
ilk önce adb tcpip portvarsayılan usb üzerinden hata ayıklama olmalıdır . İkincisi sonra bağlayabilirsiniz connect host:portve çalışması gerekir
Aiden Strydom

"adb tcpip port" tam anlamıyla? sadece "error: device not found" dizesini döndüren bir yazım hatası var mı? Yoksa burada bir şey mi değiştirmeliyim?
BrainSlugs83

3
Ahhh !! Anladım, CyanogenMod için varsayılan port numarası 5555! GÜZEL. : D
BrainSlugs83

@Michael bazı hücre ağlarında çalışabilir, ancak ağ yapılandırmaları temelde kara kutulardır - bir güvenlik duvarının arkasındayken / olup olmadığınızı, bağlantı noktalarının engellenip engellenmediğini, NAT çevirisi devam ediyorsa vb.
BrainSlugs83

45

Windows kullanıcıları için:

1. Adım:
Android telefonunuzda Geliştirici seçeneklerini etkinleştirmeniz gerekir.
Geliştirici seçeneklerini bu şekilde etkinleştirebilirsiniz.
• Ayarlar> Hakkında> Yazılım Bilgileri> Diğer'i açın.
• Ardından Geliştirici seçeneklerini etkinleştirmek için "Yapı numarası" na yedi kez dokunun.
• Ayarlar menüsüne dönün, şimdi orada “Geliştirici seçenekleri” ni görebileceksiniz.
• Dokunun ve bir sonraki ekrandaki menüden USB Hata Ayıklama'yı açın.

Adım 2:

Cmd'yi açın ve adb yazın.
adb'nin geçerli bir komut olmadığını görürseniz, ortam değişkenine bir yol eklemeniz gerekir.

• Önce SDK yüklü klasörüne gidin
Bu yolu izleyin; bu yol sadece örnek içindir. D: \ yazılımlar \ Geliştirme \ Andoird \ SDK \ sdk \ platform araçları \; D: \ yazılımlar \ Geliştirme \ Andoird \ SDK \ sdk \ araçları;
• Şimdi Windows sistem gelişmiş ayarında arama yapın

resim açıklamasını buraya girin

Ortam değişkenini açın.

resim açıklamasını buraya girin

sonra yolu açın ve aşağıdaki yolu yapıştırın bu bir örnektir.
SDK yolunuz benimkinden farklı, lütfen sizinkini kullanın. D: \ yazılımlar \ Geliştirme \ Andoird \ SDK \ sdk \ platform araçları \;
D: \ yazılımlar \ Geliştirme \ Andoird \ SDK \ sdk \ araçları;

resim açıklamasını buraya girin

Aşama 3:

Cmd'yi açın ve adb yazın. adb'nin geçerli bir komut olmadığını görüyorsanız, yolunuz düzgün ayarlanmamışsa yukarıdaki adımları izleyin.

resim açıklamasını buraya girin

Artık android telefonunuzu PC'ye bağlayabilirsiniz.

Cmd'yi açın ve adb cihazlarını yazın ve cihazınızı görebilirsiniz. Telefonunuzun ip adresini bulun.

resim açıklamasını buraya girin

Tür: - adb tcpip 5555

resim açıklamasını buraya girin

Telefonunuzun IP adresini alın

adb shell netcfg

Şimdi,

adb connect "IP address of your phone"

Şimdi android projenizi çalıştırın ve cihazınızı görmüyorsanız, tekrar yazın adb connect IP adresini telefonunuzun

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Linux ve macOS kullanıcıları için :

1.Adım: Terminali açın ve ADB'yi kullanarak

sudo uygun-almak yüklemek android-araçları-adb android-araçları-fastboot

Telefonunuzu USB kablosuyla PC'ye bağlayın. Terminalde aşağıdaki komutu yazın

adb tcpip 5555

Adb kullanarak, android telefon ip adresini bağlayın.

Telefonunuzu kaldırın.


36

Köklü olmayan bir cihazdaki bir bilgisayardan

(Bunun köklü bir cihazla da yapılabileceğini unutmayın, ancak köklü bir cihazda USB bağlantısı gerektirmeyen bir kabuk kullanabilirsiniz)

İlk olarak, komut istemini (CMD) açın. Android Studio veya IntelliJ kullanıyorsanız, içinde kullanabileceğiniz bir konsol vardır.

Yola adb eklediyseniz, cd bölümünü atlayabilirsiniz.


Mümkünse, SDK konumunu açın, sağ tıklayın ve "burada komut istemini başlat" a basın. Hepsi bu seçeneğe sahip değildir, bu yüzden bu (/ these) komutlarını da yapmanız gerekir:

Windows: sürücüyü değiştirin (varsa)

D: 

Ve sdk ve platform araçlarına erişin. Bu yolu SDK konumunuzla değiştirin:

cd /sdk/path/here/platform-tools

Artık Android hata ayıklama köprüsüne erişiminiz var.


Aygıt bilgisayara bağlıyken şunları yapın:

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

<port>Bağlanmak istediğiniz bağlantı noktası nerede (varsayılan 5555) ve <ip>bağlanmak istediğiniz cihazın IP'sidir.

Lütfen dikkat: 5555varsayılan bağlantı noktasıdır ve sadece IP adresini yazmak bağlanır. Özel bir bağlantı noktası kullanırsanız, güvenliği en azından biraz artırabilirsiniz. Wi-Fi üzerinden USB hata ayıklama, ancak cihaz yalnızca cihazı kötüye kullanmak isteyen bilgisayara bağlıysa kötüye kullanılabilir. Varsayılan olmayan bir bağlantı noktasını kullanmak en azından bağlanmayı biraz zorlaştırır.

Özel bir bağlantı noktası kullanıyorsanız, IP'den sonra eklediğinizden emin olun. Bağlantı noktası yazmadığında bağlantı kurulur 5555ve kullanmadıysanız bağlantınız başarısız olur.

Bir cihazın IP adresini iki şekilde bulabilirsiniz:

  • Cihazınıza bağlı olarak, tam adlar değişebilir. Ayarları açın ve Cihaz hakkında -> Durum -> IP adresi bölümüne gidin

  • IP'yi almak için ADB'yi kullanın

Konsoldan şunları yapın:

adb shell ip -f inet addr show wlan0

Bağlantıyı bitirdiğinizde, aşağıdakileri yaparak cihazın bilgisayarınızla olan bağlantısını kesebilirsiniz:

adb disconnect <ip>:<port>

Veya tüm cihazların bağlantısını kesmek için IP yok. Özel bir bağlantı noktası kullandıysanız hangi bağlantı noktasının bağlantısını keseceğinizi belirtmeniz gerekir . Burada da varsayılan 5555'tir.

Bağlantı noktasını devre dışı bırakmak için (bu yapmak istediğiniz bir şeyse) bu komutu cihaz bağlıyken yaparsınız:

adb usb

Veya tcpip bağlantısını kaldırmak için cihazı yeniden başlatabilirsiniz

Köklü bir cihazdaki bir bilgisayardan

İlk olarak, kabuğa erişmeniz gerekir. Cihazı bir usb kablosu kullanarak bağlar ve adb shellGoogle Play, FDroid veya başka bir kaynaktan bir uygulama kullanır veya indirirsiniz.

Sonra şunları yaparsınız:

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

Ve cihazı bağlamak için, rootsuz sürümde olduğu gibi yapın adb connect <ip>:<port>.

Bağlantı noktasını devre dışı bırakmak ve USB dinlemeye geri dönmek istiyorsanız:

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

Ayrıca sizin için yapmak için bir Android Studio eklentisi de kullanabilirsiniz (şu anda adı hatırlamayın) ve köklü kullanıcılar için telefon bağlantısını ayarlamak için bir Android uygulaması indirme seçeneği de vardır (adb connect muhtemelen hala gereklidir ).

Bazı telefonlar geliştirici seçeneklerinde bir ayar var (bu geçerli olduğu bazı , köksüz telefonlar olsa muhtemelen çok bazı köklü telefonlar) kök veya başlatmak için bir bilgisayar bağlantısı olmadan cihazın kendisinden Wi-Fi üzerinden ADB geçiş sağlar. Buna rağmen birkaç telefon olmasına rağmen


adb shell ip -f inet addr show wlan0 IP adresi ve bağlantı noktası desteği bir yerde değiştirilecek mi?
Michael

o çizgide değil. IP almanın kabuk yolu budur. Orada hiçbir şey bu hatta değiştirilmemeli
Zoe

33

Ben almak için gerekli her ikisi için çalışan USB ve TCPIP'yi ADB aşağıdaki yaptım bu yüzden (kullanarak yol diğerleri XDA-geliştiricilerin gönderdiniz), (sormayın)

Kullanma 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

Çalışmıyor: adbd bulunamadı. adbd normalde start adbd ile başlatılır. Ama belki bazı klasörlerde bir script / çalıştırılabilir dosya var?
KrisWebDev

1
Benim gnimde, öyle /sbin/adbd. Bu telefona göre değişebilir. Tabii ki, root olmanız gerekir ... Eğer root değilseniz, / sbin'e erişemezsiniz.
transistör1

32

Tabletinizi TCP bağlantı noktasını kullanarak bağlamak için. Sisteminizin ve cihazınızın aynı ağa bağlı olduğundan emin olun.

  1. Konsol cmd.exe dosyasını açın
  2. tip adb tcpip 5555
  3. Git > Geliştirme seçenek - -> USB hata ayıklama Sistemi TCPIP bağlantısı için> konudaki geçersiz o -
  4. Tip adb connect 192.168.1.2Bu cihaz IP adresidir
  5. 192.168.1.2'ye bağlı

Bağlantı noktası ileri kullanılarak bağlandı Bağlantı noktası yönlendirme yapmaya çalışın,

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

sevmek:

adb ileri tcp: 5555 tcp: 5555.

C: \ Kullanıcılar \ abc> adb forward tcp: 7612 tcp: 7612

C: \ Users \ abc> adb tcpip 7612 TCP modu bağlantı noktasında yeniden başlatılıyor: 7612

C: \ Kullanıcılar \ abc> adb connect 10.0.0.1:7612

10.0.0.1:7612'ye bağlı

Mesaj hatası alırsanız : cihaz bulunamadı bir usb cihazını sisteme bağlayın ve aynı prosedürü uygulayın.
rootlanmış bir cihaz için

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

2
Kök konsolu sualmak için önce konsolda yazın .
Grim

30

Hiçbir USB bağlantısı olmadan cihazı nasıl bağlayacağımı bilmiyorum, ancak başka bir bilgisayarda bağlamayı başarırsanız, adbd'yi TCP moduna geçirerek değiştirebilirsiniz.

adb tcpip <port>

bir terminalden ve ağdaki herhangi bir bilgisayardan wifi üzerinden cihazınıza bağlanın:

adb connect <ip>:<port>

Cihazdaki bir terminalden TCP moduna geçmek de mümkündür.


Büyük upvotes alan tüm karmaşık cevaplar arasında, bu 8 yaşındaki en basit cevap ve çalışır Köklendirme gerekmez. 'Adb connect <ip>: 5555' yazmanız yeterlidir ve dağıtılabilir.
RogerW

29

İlk önce cihazınızı USB ile bağlamalısınız

Ardından cihazınızı WIFI'ye bağlayın ve IP adresini alın. Yine de usb ile bağlanırken bunu komut satırına veya Android Studio Terminali ile yazın

adb tcpip 5555
adb connect <device IP>:5555

Şu mesajları göreceksiniz:

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

Şimdi USB kablosunu çıkarın ve hala logcat'inizi normal olarak göreceksiniz

Bitti. Zevk almak


Bu işe yaradı. Ancak. Bu adımları uyguladıktan sonra artık öykünücüye geri dönemem. Öneriler?
Tim Scott


21

Android uygulamalarınızı WiFi üzerinden çalıştırmak, hata ayıklamak veya dağıtmak için cihazınızı kolayca bağlamak istiyorsanız, geliştirdiğim açık kaynaklı bir IntelliJ Eklentisini kullanabilirsiniz. İşte kod ve burada eklenti kullanıma hazır.

Kullanımı oldukça basittir. Burada bir gif var:

resim açıklamasını buraya girin


Bu hata oluşur: "'adb'command bulunamadı. Android SDK kurulumunuzu gözden geçirin.
rostamiani

1
ANDROID_HOME adında bir ortam değişkeni bildirmeniz gerekir. Ancak bu önlemek için gözden geçirmeyi bekleyen bir halkla ilişkiler var. 1.2 sürümü ile gelecek hafta yayınlayacağım eklenti sadece IntelliJ yüklü olarak çalışacaktır :)
Pedro Vicente Gómez Sánchez

Mac kullanıyorum, AS'de bir simge görmüyor musunuz? Önce manuel bir şey yapmam gerekir mi?
powder366

1
ANDROID_HOME ortam değişkeninin artık gerekli olmadığı yeni bir sürüm yayınladım. @ powder366 eklentiyi manuel olarak kurabileceğiniz IntelliJ eklenti deposundan yüklemeniz gerekir. Eklentiyi yüklemek ve kullanmak için gereken tüm talimatlar proje benioku içindedir
Pedro Vicente Gómez Sánchez

@ PedroVicenteGómezSánchez Teşekkürler. Yanlış eklentiyi seçtim, benzer ada sahip başka bir eklenti var ...
powder366

11

Brian'ın dediği gibi:

Xda-geliştiriciler üzerindeki bir gönderiye göre, komutlar ile cihazdan WiFi üzerinden ADB'yi etkinleştirebilirsiniz

setprop service.adb.tcp.port 5555

durdurmak

başlamak

Ve devre dışı bırakabilir ve ADB'yi USB ile dinlemeye geri döndürebilirsiniz.

setprop service.adb.tcp.port -1

durdurmak

başlamak

Zaten USB erişiminiz varsa WiFi kullanmaya geçmek daha da kolaydır. Aygıtın USB üzerinden bağlı olduğu bilgisayardaki bir komut satırından komutları verin

adb tcpip 5555

adb connect 192.168.0.101:5555

ADB arka plan programının USB üzerinden dinlemeye geri dönmesini söylemek için

adb usb

Android Market'te bu işlemi otomatikleştiren birkaç uygulama da var.

Android kabuğuna erişmeniz ve bu komutları yazmanız yeterlidir ...

Bir başka (daha kolay) çözüm Piyasada: adbWireless, telefonunuzu otomatik olarak ayarlayacaktır.

Kök gerekli! her ikisi için ...


2
... ancak telefon köklü ise.
android.weasel

Asus Transformer 301 - Kök gerekmez
Aiden Strydom

9
adb tcpip 5555

Garip, ama bu sadece benim için USB kablosu bağlıysa çalışır, o zaman usb fişini çıkarıp diğer her şey ile gidebilirim adb.

ve usb'ye dönerken aynı,

adb usb

sadece usb bağlıysa çalışır.

Sorun çıkarsam önemli değil

setprop service.adb.tcp.port 5555

veya

setprop service.adb.tcp.port -1

sonra durdurmak ve başlatmak adbd, hala usb kablosuna ihtiyacım var veya çalışmıyor.

Yani, usb üzerinden ADB'm çalışmazsa, bahse girerim, WiFi üzerinden ADB'yi de etkinleştiremezdim.


8

TCP ve USB modları arasında tek bir komutla geçiş yapmak için şunu ekleyebilirsiniz /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

Artık service.adb.tcp.enable5555 numaralı bağlantı noktasında dinlemeyi etkinleştirmek veya devre dışı bırakmak için özelliği kullanabilirsiniz. Dinleyip dinlemediğini denetlemek için çalıştırın netstat. Gördüğünüz gibi, service.adb.tcp.portmanuel olarak değiştirmek isterseniz de tetiklenir .


8

Bash util işlevi:

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

7

AŞAMA 1.

Hem adb ana bilgisayarınızın hem de Android cihazınızın aynı Kablosuz ağda olduğundan emin olun .

ADIM 2.

USB kablosunu kullanarak Android cihazı bilgisayara bağlayın. Bunu yapar yapmaz, ana bilgisayarınız cihazınızı algılar ve adb bilgisayardaki USB modunda çalışmaya başlar. Takılı cihazları kontrol ederek kontrol ederek adb devicesadb'nin USB modunda çalıştığından emin olabilirsiniz adb usb.

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


AŞAMA 3.

Bu komutla adb'yi tcpip modunda yeniden başlatın:

$ adb tcpip 5556
restarting in TCP mode port: 5556


4.ADIM

Android cihazın IP adresini bulun. Bunu yapmanın birkaç yolu vardır:

  • YOL: 1 Ayarlar -> Telefon / tablet hakkında -> Durum -> IP adresi bölümüne gidin.
  • YOL: 2 Kullanılabilir Wi-fi ağları listesine gidin. Bağlandığınız ağa dokunun ve IP'nizi öğrenin.
  • YOL: 3 Deneyin $ adb shell netcfg.

Artık cihazınızın IP adresini bildiğinize göre adb ana makinenizi bu adrese bağlayın.

$ 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


ADIM 5.

USB kablosunu çıkarın ve cihazınıza bağlı olmalısınız. Bunu görmüyorsanız adb devices, önceki adımın komutunu kullanarak yeniden bağlanmanız yeterlidir:

$ 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

Ya şimdi gitmekte iyisiniz ya da yürüterek adb sunucunuzu öldürmeniz adb kill-serverve tüm adımları bir kez daha atmanız gerekiyor .

Umarım yardımcı olur!


Referans:


Ayrıca, Unix üzerinde bu komut dosyası ile cihazınızın IP alabilirsiniz: 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 Hem sistemin hem de mobil / Tabletin WiFi üzerinden veya LAN üzerinden bağlanan başka bir sistemin ve aynı ağın WIFi yönlendiricisi kullanılarak bağlanan tabletin bağlı olması gerektiğine şüphe yok. Lütfen açıklığa kavuşturun
iSrinivasan27

@ i-Droid İkisinin de neden aynı ağa bağlanması gerektiğini bilmiyorum. belki ADB özel ağ yönlendirme protokolü kullanır. Bu konuda hiçbir fikrim ve derin bir araştırmam yok. Eğer ilgi varsa, netleştirmek ve benimle paylaşmak hoş geldiniz, teşekkürler!
Eddy

6

Bunlar benim izlediğim adımlar ve benim için çalıştı,

  1. adb shell ifconfig (cihazın IP adresini buradan alın)

  2. adb tcpip 7777 (adb'yi bazı bağlantı noktalarına bağlayın)

  3. adb connect "ipadresi": 7777


5

SSH yerel bağlantı noktası yönlendirmeyi de kullanabilirsiniz. Ama yine de bir USB kablosu var. Telefonunuzu USB kullanarak sshd çalıştıran bir bilgisayara (ana bilgisayara) bağlayın. Uzak (konuk) bir bilgisayarda, portforwarding / tunneling yeteneğine sahip bir SSH istemcisi başlatın. Misal:

plink -L 5037:localhost:5037 <host_IP_address>

Bu yapıyı cihazımı sanal bir makineye bağlamak için kullanıyorum. Eltima USB - Ethernet yeterince kararlı değildi (hata ayıklama sırasında zaman aşımları).

SSH tüneli ücretsiz çalışır ve daha güvenilirdir.


4

Diğer cevapları kafa karıştırıcı buluyorum. AdbWireless'ı kullanmak çok daha basit:

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

Wifi üzerinden hata ayıklamayı değiştirmek için telefonunuza bir uygulama yüklemeniz, bir tutulma eklentisi yüklemeniz yeterlidir.


Hangi tutulma eklentisinden bahsediyorsunuz? Düzenleme: Nevermind. Cevabınızdaki bağlantıyı takip ederek buldunuz.
ArtOfWarfare

Bu sadece kök olsa
Zoe

3

USB aracılığıyla ADB'yi TCP üzerinden otomatik olarak etkinleştirmek ve bağlamak için bir toplu iş dosyası bir araya getirdim. Bununla birlikte IP'yi manuel olarak koymak zorunda değilsiniz.

@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

İşte Brian'ın Bluetooth kullanarak cevabının bir uzantısı:

  1. Linux'ta, PC internetini Bluetooth ile cihazınızla paylaşmak için Blueman'ı kullanın:

    $ 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 komutları için Bluetooth ağını kullanın:

    $ 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 moduna dönmek için işiniz bittiğinde:

$ adb disconnect
$ adb usb

Not: Bluetooth 3.0 ve 4.0 24 Mbit / s'ye kadar çıkabilir .


3

Adımlar:

  1. su - Süper kullanıcıya geçmek için.
  2. setprop service.adb.tcp.port 5555 - tcp Portunu belirtmek için - 5555 buradaki port numarasıdır
  3. stop adbd - Adbd hizmetini durdurmak için.
  4. start adbd - Adbd hizmetini başlatmak için.

bu sshbenim Windows PC ile mükemmel çalışır

Bunu siyanojen cep telefonumdaki önyüklemede yapmaya çalışıyorum veya plink ile başlatıyorum. Plink ile su hakkı ile kabuk başlatamıyorum ... sudo veya su komutu çalışmıyor. Önyüklemede nasıl çalıştığını bilmiyorum! Kabuk programım ssh ile su -c "sh /storage/sdcard1/start_adb.sh"son 3 komutla çalışıyor (su olmadan -)

Teşekkürler


2

Bir ek not (zor yoldan öğrendiğiniz): Şirketinizin VPN bağlantınızı aynı anda aktif yapmamalısınız ...


2

Aşağıdaki şeyleri yapmanız gerekir:

  • İlk olarak, ortam yolunuza ADB ekleyin.
  • CLI'nizden bu komutu adb connect YOUR_DEVICE_IP: PORT_NUMBER yazın (örnek adb connect 192.168.100.100:5555 )

2

Android cihazınızı TCP üzerinden ADB'ye bağlamanın iki yolu var mı?

İlk yol

Bu adımları izleyin

Cihazınızın IP Adresini almak için ilk önce aşağıdaki komutu kullanın

adb shell ifconfig

Yukarıdaki komutun OUTPUT değeri

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

Yukarıdaki komutun yardımıyla, bağlı cihazın IP Adresini bulacaksınız

Şimdi aşağıdaki komutu kullan

adb tcpip 5555

Yukarıdaki komut bu TCP bağlantı noktasını yeniden başlatır: 5555

Şimdi cihazınızı bağlamak için aşağıdaki komutu kullanın

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

İkinci yol

Android Studio Eklentisini kullanabilirsiniz Android device with ADB

Android WiFi ADB - IntelliJ / Android Studio Eklentisi

IntelliJ ve Android Studio eklentisi, bir USB bağlı olmadan uygulamalarınızı yüklemek, çalıştırmak ve hatalarını ayıklamak için Android cihazınızı WiFi üzerinden hızlı bir şekilde bağlamak için oluşturulmuştur. Bir düğmeye basın ve USB kablonuzu unutun

Daha fazla bilgi için lütfen bu makaleye bakın

Android Studio'da Android Cihazı Wifi ile Bağlama


2

Aynı konuda yapıcıyım ama adb reverse tcp:<PORT> tcp:<PORT>benim için basit bir hack çalıştı. Sistemin tcp isteklerini kabul etmesini sağlar.

Okuduğunuz için teşekkürler


1

Telefonu etkinleştirmek için adbwireless uygulamasını kullanın, ardından konuşmak için Windows makinesinden adb connect kullanın. Telefondaki adbwireless uygulaması, ona nasıl bağlanacağınızı söyler, IP adresini ve her şeyi verir.

Çok daha az eğlenceli alternatif, USB üzerinden bağlanmak, telefona adb tcpip 5555 üzerinden TCPIP kullanmasını, sonra USB bağlantısını kesip adb connect kullanmasını söylemektir. Bu çok daha zordur, çünkü bu şekilde telefonun IP adresini kendiniz bulmanız gerekir (adbwireless size IP'yi söyler), USB ile bağlanmanız gerekir ve adb tcpip'i çalıştırmanız gerekir (adbwireless bunu da halleder).

Yani: telefonunuza kablosuz ağ yükleyin. Kullanın. Linux ve Windows üzerinde rutin olarak yapmam mümkün.


1

Sistemimde şöyle oldu:

Linux kabuğumdaki Android cihazımda, basit bir "ifconfig" IP adresimi vermedi. Yazmak zorunda kaldım:

ifconfig eth0

-veya-

netcfg

IP adresimi almak için. (Eth0'ın dmesg'de gördüğüm için yapılandırıldığını biliyordum.) Sonra şunu yaptım:

setprop service.adb.tcp.port -1

durdurmak

başlamak

Sonra Win7 kutumda (Eclipse 3.7.1 çalıştıran). İçin bir komut istemi açtım

\ Android-sdk \ platform araçları>

yönetici olarak çalıştırmadan. Sonra bir

adb connect 12.345.678.90

Asla bir liman koymam. Eğer bir

adb tcpip 5555

cihazı bulamadığını söyledi "adb cihazlar" listemde hiçbir şey görünmedi. Yani sadece yukarıdaki tcpip komutunu YAPMAMSAMIZ çalışır.

Bir "adb kabuğu" yapabilir ve Android Cihazımla karışıklık yapabilirim. Ancak Android Cihazım şu anda Run-> Run Configurations-> Target sekmesinde görünmüyor. Diğer yandan, Hedef Sekmesini otomatik olarak ayarlıyorsam. Ardından, uygulamanızı Run-> Run ile çalıştırdığımda, Android cihazım hedeflerimden biri olarak listelenmemiş olsa bile Android cihazımda çalışıyor.


1

Bu işe yaradı. Herhangi bir usb kablosu kullanmadı.

  • uygulama adb kablosuz.
  • Çalıştır. Bu ip ve port ayarlayacaktır; Sonra dos

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

Bağlandı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.