triochi / QtAdb

Android File Manager using Android Debug Bridge and based on Qt
http://qtadb.wordpress.com
165 stars 69 forks source link

busybox arp not found #2

Open Nushio opened 12 years ago

Nushio commented 12 years ago

This happened on my Galaxy S2 with CM7.2 installed.

adb shell busybox arp arp: applet not found

The alternative is to use netcfg, which does return IPs:

netcfg

lo UP 127.0.0.1 255.0.0.0 0x00000049 svnet0 UP 0.0.0.0 0.0.0.0 0x000000d1 usb0 DOWN 0.0.0.0 0.0.0.0 0x00001002 tunl0 DOWN 0.0.0.0 0.0.0.0 0x00000080 gre0 DOWN 0.0.0.0 0.0.0.0 0x00000080 sit0 DOWN 0.0.0.0 0.0.0.0 0x00000080 pdp0 UP 10.127.52.94 255.255.255.0 0x000010d1 eth0 UP 192.168.11.110 255.255.255.0 0x00001043

However this requires creating a new parsing method in phone.cpp, and I'm familiar enough with c++ to do this.

triochi commented 12 years ago

OK. You can propose a patch then

Nushio commented 12 years ago

I'll see what I can do, but like I said, I'm not very familiar with c++/qt to work on this.

I hardcoded my phone's IP address to the source and the Android App (Qtadb) crashed too. Is the source for the Android App available elsewhere?

D/qtadb (26898): CLIENT IP= 192.168.11.108 D/qtadb (26898): Connecting... E/qtadb (26898): SMS: Error E/qtadb (26898): java.net.SocketException: No route to host E/qtadb (26898): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method) E/qtadb (26898): at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:357) E/qtadb (26898): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:204) E/qtadb (26898): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:183) E/qtadb (26898): at java.net.Socket.startupSocket(Socket.java:705) E/qtadb (26898): at java.net.Socket.(Socket.java:263) E/qtadb (26898): at com.qtadb.SmsReceiver.sendToClient(SmsReceiver.java:260) E/qtadb (26898): at com.qtadb.SmsReceiver.getSmsList(SmsReceiver.java:189) E/qtadb (26898): at com.qtadb.service$TCPServer.run(service.java:105) E/qtadb (26898): at java.lang.Thread.run(Thread.java:1019) D/qtadb (26898): CLIENT IP= 192.168.11.108 D/qtadb (26898): Connecting...

7ymekk commented 12 years ago

unfortunately it is not possible to unify netcfg for all android phones. it gives me:

tiwlan0 UP 192.168.2.3 255.255.255.0 0x00001043

for You it is:

eth0 UP 192.168.11.110 255.255.255.0 0x00001043

and as I know Android for other phones it can be something else...busybox arp is so cool that always returns the same output. it is phone independent. We have to find some other solution...

2012/2/28 Juan Rodriguez reply@reply.github.com:

pdp0     UP    10.127.52.94    255.255.255.0   0x000010d1 eth0     UP    192.168.11.110  255.255.255.0   0x00001043

Nushio commented 12 years ago

How about providing a list of interfaces with valid IP addresses (Discard localhost and 0.0.0.0) and the user could just choose from that list.

If all else fails, having the user manually type the IP into a textbox as a fallback would also be a nice workaround.

On Tue, Feb 28, 2012 at 1:55 PM, 7ymekk < reply@reply.github.com

wrote:

unfortunately it is not possible to unify netcfg for all android phones. it gives me:

tiwlan0 UP 192.168.2.3 255.255.255.0 0x00001043

for You it is:

eth0 UP 192.168.11.110 255.255.255.0 0x00001043

and as I know Android for other phones it can be something else...busybox arp is so cool that always returns the same output. it is phone independent. We have to find some other solution...

2012/2/28 Juan Rodriguez reply@reply.github.com:

pdp0 UP 10.127.52.94 255.255.255.0 0x000010d1 eth0 UP 192.168.11.110 255.255.255.0 0x00001043


Reply to this email directly or view it on GitHub: https://github.com/triochi/QtAdb/issues/2#issuecomment-4224027

Ing. Juan M. Rodriguez Moreno Desarrollador de Sistemas Abiertos Sitio: http://proyectofedora.org/mexico

7ymekk commented 12 years ago

I just remembered that 'busybox arp' is used only for the first time when You try to connect with Your phone. when You press "connect wifi" then wifi window appears. if busybox arp returns ip, then this ip is provided in window so You don't have to type it by yourself. if it fails then You have to pass ip on Your own...so when You pass ip what happens? QtADB can't see Your phone or only messages panel doesn't work?

2012/2/28 Juan Rodriguez reply@reply.github.com:

How about providing a list of interfaces with valid IP addresses (Discard localhost and 0.0.0.0) and the user could just choose from that list.

If all else fails, having the user manually type the IP into a textbox as a fallback would also be a nice workaround.

On Tue, Feb 28, 2012 at 1:55 PM, 7ymekk < reply@reply.github.com

wrote:

unfortunately it is not possible to unify netcfg for all android phones. it gives me:

tiwlan0  UP    192.168.2.3     255.255.255.0   0x00001043

for You it is:

eth0     UP    192.168.11.110  255.255.255.0   0x00001043

and as I know Android for other phones it can be something else...busybox arp is so cool that always returns the same output. it is phone independent. We have to find some other solution...

2012/2/28 Juan Rodriguez reply@reply.github.com:

pdp0     UP    10.127.52.94    255.255.255.0   0x000010d1 eth0     UP    192.168.11.110  255.255.255.0   0x00001043


Reply to this email directly or view it on GitHub: https://github.com/triochi/QtAdb/issues/2#issuecomment-4224027

Ing. Juan M. Rodriguez Moreno Desarrollador de Sistemas Abiertos Sitio: http://proyectofedora.org/mexico


Reply to this email directly or view it on GitHub: https://github.com/triochi/QtAdb/issues/2#issuecomment-4224931

Nushio commented 12 years ago

I tried both the "Master" branch and the "Work" branch.

When I do a connection via wifi, it asks for my IP (Despite being plugged via usb). That's fine, I type in my IP and unplug my phone. I can continue to browse files and everything as if it was plugged in.

When I try to access the Messages window, this appears:

MainWindow::showPageMessages() Phone::getIP(): arp: applet not found

Phone::getIP(), gotIP: found: MainWindow::showPageMessages(): demo is over dude Phone::getGoogleAccounts(): "<authority id="20" account="my-gmail-address@gmail.com" type="com.google" authority="gmail-ls" enabled="true" syncable="true"> <authority id="28" account="my-other-email-address@domain.net" type="com.google" authority="gmail-ls" enabled="true" syncable="true"> " MainWindow::showPageMessages(): user is verified showPageMessages

The service is running on the Android phone.