5

Brief problem

In short I am trying to mount an external USB wireless adapter to my Nexus 4 so that I can put the wireless adapter into monitor mode to use a tool called reaver.

System

I have a Google Nexus 4, running CyanogenMod 11 (11-20140308-SNAPSHOT-M4-mako), (Android 4.4.2) I have also flashed kali nethunter 1.21.

The problem

I can't get the wireless card into monitor mode using airmon-ng. After some searching I discovered that the wireless chip-set does not support monitor mode. So the only way I was going to obtain monitor mode was to use an external wireless adapter.

What I have tried so far

When I plugged the a USB wireless adapter into the Nexus 4, it was not getting picked up. I used the ifconfig command to try to detect it but then realised that the problem must lie with the Nexus 4 not providing the 5V needed to power the adapter. So I bought an otg y cable:

image of OTG Y adapter cable

After using this I could see that any device plugged in was receiving power, but it still wasn't working. So I tried mounting a flash drive to see how that would work. It turned out that there was a software limitation preventing me from mounting a flash drive as the OS was missing the OTG components.

After doing some more searching I came across this. I then flashed it in recovery mode, and after rebooting I was able to mount flash-drives. I then plugged the external wireless adapter into the Nexus 4 hoping that it would detect it but still no luck. I also tried an alternative wireless adapter but still nothing.

Wireless adapter

I am using a "wireless 11n usb adapter". I am not certain but I believe it may be a driver problem. If so, I have no idea on how I would go about installing a driver on android. My wireless chip set is RTL8188EE.

The question

How do I mount an external USB wireless adapter to a Nexus 4?

1
  • I think you need chroot ubuntu for that
    – samnaction
    Commented Apr 15, 2015 at 14:36

2 Answers 2

2
+100

You don't say much about the wireless adapter and which chipset it uses. This is critically important as it will determine which kernel wifi module you'll need. I'm pretty sure Nethunter as distributed already has native support for OTG/host mode as well as some kernel patches to support monitor mode, but not 100% which chipsets are supported/recommended.

You're right that the N4 is lacking a lot of power to the external USB, but a Y-splitter should do the job.

FWIW-- I am guessing here, but I think the mako (Nexus 4) kernel source for Nethunter is here. OTG is turned on here in the lollipop branch (not sure what version of android you're using).

As for how to install a driver in Android-- the drivers are usually created at the same time as the kernel and pre-included with Android itself if necessary. I won't go into the ugly details of how to manually load the wifi module (or if it's even necessary as it may be built in), but given the lack of specifics that I think will help here (which wifi chipset, which version of Android, etc.), the best practical solution I can suggest is that you jump on the #nethunter channel in freenode IRC and ask for suggestions. Binkybear, one of the lead developers of nethunter, owns and tests w/his Nexus 4, so he probably has some solid advice. You may also want to visit the nethunter forums, particularly this thread.

The easy solution now that you've worked out the power issue will likely be to use an external wifi module that is definitely supported.

(Full disclosure-- I've contributed a little to NH.)

7
  • Thanks for your response, i am running android 4.4.2, and my wireless chip set is RTL8188EE.
    – 09stephenb
    Commented Apr 17, 2015 at 16:04
  • Okay, I think you want CONFIG_RTL8188EE=Y set in your kernel .config. CONFIG_RTL8187 is there- here's the source in the 3.10 kernel. It's not in binkybear's kernel, but you might ask him to backport it.
    – fattire
    Commented Apr 17, 2015 at 22:11
  • Update- the major commits: github.com/torvalds/linux/commit/… , github.com/torvalds/linux/commit/… ) , github.com/torvalds/linux/commit/… , plus a few more. Looks like maybe six for the whole directory. (Also, there's a Lollipop build of NH that might have it already in the source.) I spoke to Binkybear- he is looking into it.
    – fattire
    Commented Apr 17, 2015 at 22:36
  • Thank you for your help, i will look it to manually installing the driver. Has Binkybear, for anything that may help?
    – 09stephenb
    Commented Apr 20, 2015 at 12:54
  • 1
    He told me he was going to look into it, but if you know or are willing to learn how to build and replace a kernel, it shouldn't be too difficult. Still, if it's too challenging, you could drop by the #nethunter IRC channel I linked to above and discuss with Binkybear directly. He's almost always online and a nice guy who expressed some interest in your issue and might be able to do it for ya. I'm in the same channel sometimes so I might be able to help if I'm around too.
    – fattire
    Commented Apr 20, 2015 at 19:17
4

There is a very good chance that you may not have a driver problem.

There is a very important detail everyone seemed to miss about using network connections via USB: they must be plugged in before the phone is powered on! The phone must also have Wifi and Data turned off, and potentially Airplane Mode! All before the device is turned on. Some devices can get away with not needing a reboot sesh, but this is the general rule explained with BobjGear and their Android ethernet adapters.

Secondly, another very important detail, is that sometimes, you need to manually configure the adapter and its ip address through ADB or Terminal Emulator. The commands follow this format, as described in this article:

ifconfig [eth0|eth1|eth2|etc] [IP] netmask [NETMASK]
route add default gw [GATEWAY] dev eth0

ifconfig is not a typo. You will have to figure out which network "slot" your dongle is attached on via netcfg. It will list all network components in use or idle, usually wlan0 is built-in wifi, rmnet listings are mobile data, and p2p0 is VPN. Your dongle will probably fall under eth0 or 1, or wlan1 or 2.

Finally, if all else fails, you may need to find an adapter that either a) has matching (or close to matching--starts with RTL8) chipsets, or b) a (Android/linux-confirmed) truly universal wifi dongle.

If that cannot be done, this XDA post explains how to modify a Nexus CM11 kernel (your lucky day) via modprobe to enable additonal drivers. You may want to contact him for help, as his flashable kernel is specific to a custom CM11 ROM posted on XDA, just to match the checksums.

Good luck!

2
  • Thank you for your help, i have tryed configuring the addapter and rebooting with the wireless card aleady pluged in, but still no luck. It isnt been detected by ifconfig
    – 09stephenb
    Commented Apr 20, 2015 at 12:51
  • Okay, then there is a hardware problem then. I'll give it to fattire's answer/comments as he seems to be very knowledgeable about the drivers. Commented Apr 20, 2015 at 14:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .