2019-10-30 23:22:47 +00:00
## RTL8812AU/21AU and RTL8814AU drivers
Only for use with Linux & Android
[![Monitor mode ](https://img.shields.io/badge/monitor%20mode-working-brightgreen.svg )](#)
[![Frame Injection ](https://img.shields.io/badge/frame%20injection-working-brightgreen.svg )](#)
2019-10-31 00:02:19 +00:00
[![GitHub version ](https://raster.shields.io/badge/version-v5.6.4.2-lightgrey.svg )](#)
2019-10-30 23:22:47 +00:00
[![GitHub issues ](https://img.shields.io/github/issues/aircrack-ng/rtl8812au.svg )](https://github.com/aircrack-ng/rtl8812au/issues)
[![GitHub forks ](https://img.shields.io/github/forks/aircrack-ng/rtl8812au.svg )](https://github.com/aircrack-ng/rtl8812au/network)
[![GitHub stars ](https://img.shields.io/github/stars/aircrack-ng/rtl8812au.svg )](https://github.com/aircrack-ng/rtl8812au/stargazers)
2019-10-31 00:02:19 +00:00
[![Build Status ](https://travis-ci.org/aircrack-ng/rtl8812au.svg?branch=v5.6.4.2 )](https://travis-ci.org/aircrack-ng/rtl8812au)
2019-10-30 23:22:47 +00:00
[![GitHub license ](https://img.shields.io/github/license/aircrack-ng/rtl8812au.svg )](https://github.com/aircrack-ng/rtl8812au/blob/master/LICENSE)
< br >
[![Kali ](https://img.shields.io/badge/Kali-supported-blue.svg )](https://www.kali.org)
[![Arch ](https://img.shields.io/badge/Arch-supported-blue.svg )](https://www.archlinux.org)
[![Armbian ](https://img.shields.io/badge/Armbian-supported-blue.svg )](https://www.armbian.com)
[![ArchLinux ](https://img.shields.io/badge/ArchLinux-supported-blue.svg )](https://img.shields.io/badge/ArchLinux-supported-blue.svg)
[![aircrack-ng ](https://img.shields.io/badge/aircrack--ng-supported-blue.svg )](https://github.com/aircrack-ng/aircrack-ng)
[![wifite2 ](https://img.shields.io/badge/wifite2-supported-blue.svg )](https://github.com/derv82/wifite2)
2019-11-14 20:04:07 +00:00
### What's new
```
2019-11-14 20:12:02 +00:00
Realtek released a new multichip 'base', the v5.6.4.2 which supports Android 10, kernel v5.3+
2019-11-14 20:14:39 +00:00
and they fixed the P2P NoA potentially buffer overflow. (See ReleaseNotes.pdf)
2019-11-14 20:09:06 +00:00
2019-11-14 20:05:34 +00:00
While we on our side added our patchset for penetration testing abilities,
added monitor mode & frame injection, unlocked channels, adding txpower control and others,
keeping it running as kernels are pushed faster then lightning these days.
2019-11-14 20:09:06 +00:00
2019-11-14 20:05:34 +00:00
Follow the README.md, 'iwconfig' is deprecated, use 'iw' .. allways kill
2019-11-14 20:04:07 +00:00
interference with 'airmon-ng check kill' or 'kill -9 < pid > ' first!
```
2019-10-30 23:22:47 +00:00
### Supports
```
2019-11-14 19:52:56 +00:00
* Android 10 supported
2019-10-30 23:22:47 +00:00
* Monitor mode
* Frame injection
2019-11-14 22:19:48 +00:00
* MESH Mode (IBSS)
2019-10-30 23:22:47 +00:00
* WPA3 SAE
* Wi-Fi Direct
2019-11-14 19:52:56 +00:00
* wpa_supplicant
2019-10-30 23:22:47 +00:00
* Hostapd
2019-11-14 22:19:48 +00:00
* USB 3.0 (currently forced down to 2)
2019-10-30 23:22:47 +00:00
* Kernel up to v5.3+
2019-11-14 22:19:48 +00:00
* RTKMPtool Android app (low level debug)
2019-10-30 23:22:47 +00:00
```
### Known Issues
```
2019-11-14 19:55:49 +00:00
* Adapter interference has to be 'killed' with "airmon-ng check kill" or it may not go into monitor mode,
it should anyway always be a good thing to do before doing research in monitor mode.
2019-11-14 19:52:56 +00:00
2019-10-30 23:22:47 +00:00
* VMware Workstation has issues, giving kernel oops on module load.
2019-11-14 19:55:49 +00:00
* Ubuntu has enabled module signing (kernel) by default,
workaround: run the 'install-and-sign-ubuntu.sh' in 'tools' folder
2019-10-30 23:22:47 +00:00
```
### TODO
` ``
2019-11-14 19:52:56 +00:00
* Do a walkthrough in the code, use some time and
2019-11-14 22:19:48 +00:00
check every corner of HAL and PHYDM for more junk & bugs.
2019-10-30 23:22:47 +00:00
```
### IPERF3 benchmark
< b > [Device]< / b > Alfa Networks AWUS036ACH< br >
< b > [Chipset]< / b > 88XXau (rtl8812au)< br >
< b > [Branch]< / b > v5.6.4.1< br >
< b > [Distance]< / b > 10m free sight
```
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 11.6 MBytes 97.4 Mbits/sec 0 96.2 KBytes
[ 5] 1.00-2.00 sec 11.2 MBytes 93.8 Mbits/sec 0 100 KBytes
[ 5] 2.00-3.00 sec 11.2 MBytes 93.8 Mbits/sec 0 100 KBytes
[ 5] 3.00-4.00 sec 11.2 MBytes 93.8 Mbits/sec 0 100 KBytes
[ 5] 4.00-5.00 sec 11.2 MBytes 93.8 Mbits/sec 0 100 KBytes
[ 5] 5.00-6.00 sec 11.4 MBytes 95.9 Mbits/sec 0 105 KBytes
[ 5] 6.00-7.00 sec 11.2 MBytes 93.8 Mbits/sec 0 105 KBytes
[ 5] 7.00-8.00 sec 11.3 MBytes 94.9 Mbits/sec 0 157 KBytes
[ 5] 8.00-9.00 sec 11.2 MBytes 93.8 Mbits/sec 0 157 KBytes
[ 5] 9.00-10.00 sec 11.2 MBytes 94.3 Mbits/sec 0 157 KBytes
[ 5] 10.00-11.00 sec 11.2 MBytes 93.8 Mbits/sec 0 157 KBytes
[ 5] 11.00-12.00 sec 11.2 MBytes 93.8 Mbits/sec 0 157 KBytes
[ 5] 12.00-13.00 sec 11.2 MBytes 94.4 Mbits/sec 0 157 KBytes
[ 5] 13.00-14.00 sec 11.2 MBytes 93.8 Mbits/sec 0 157 KBytes
[ 5] 14.00-15.00 sec 11.2 MBytes 94.4 Mbits/sec 0 157 KBytes
[ 5] 15.00-16.00 sec 10.9 MBytes 91.7 Mbits/sec 0 157 KBytes
[ 5] 16.00-17.00 sec 11.2 MBytes 94.4 Mbits/sec 0 157 KBytes
[ 5] 17.00-18.00 sec 11.2 MBytes 94.4 Mbits/sec 0 157 KBytes
[ 5] 18.00-19.00 sec 11.2 MBytes 94.4 Mbits/sec 0 157 KBytes
[ 5] 19.00-20.00 sec 11.2 MBytes 93.8 Mbits/sec 0 157 KBytes
[ 5] 20.00-21.00 sec 11.2 MBytes 93.8 Mbits/sec 0 157 KBytes
[ 5] 21.00-22.00 sec 11.2 MBytes 93.8 Mbits/sec 0 157 KBytes
[ 5] 22.00-23.00 sec 11.2 MBytes 93.8 Mbits/sec 0 157 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-23.15 sec 260 MBytes 94.2 Mbits/sec 0 sender
[ 5] 0.00-23.15 sec 0.00 Bytes 0.00 bits/sec receiver
```
### DKMS
This driver can be installed using [DKMS]. This is a system which will automatically recompile and install a kernel module when a new kernel gets installed or updated. To make use of DKMS, install the `dkms` package, which on Debian (based) systems is done like this:
```
2019-11-14 22:19:48 +00:00
$ sudo apt-get install dkms
2019-10-30 23:22:47 +00:00
```
### Installation of Driver
In order to install the driver open a terminal in the directory with the source code and execute the following command:
```
2019-11-14 22:19:48 +00:00
$ sudo ./dkms-install.sh
2019-10-30 23:22:47 +00:00
```
### Removal of Driver
In order to remove the driver from your system open a terminal in the directory with the source code and execute the following command:
```
2019-11-14 22:19:48 +00:00
$ sudo ./dkms-remove.sh
2019-10-30 23:22:47 +00:00
```
### Make
For building & installing the driver with 'make' use
```
2019-11-14 22:19:48 +00:00
$ make
$ make install
2019-10-30 23:22:47 +00:00
```
### Notes
Download
```
2019-11-14 22:19:48 +00:00
$ git clone -b v5.6.4.2 https://github.com/aircrack-ng/rtl8812au.git
2019-10-30 23:22:47 +00:00
cd rtl*
```
Package / Build dependencies (Kali)
```
2019-11-14 22:19:48 +00:00
$ sudo apt-get install build-essential
$ sudo apt-get install bc
$ sudo apt-get install libelf-dev
$ sudo apt-get install linux-headers-`uname -r`
2019-10-30 23:22:47 +00:00
```
#### For Raspberry (RPI)
```
2019-11-14 22:19:48 +00:00
$ sudo apt-get install bc raspberrypi-kernel-headers
2019-10-30 23:22:47 +00:00
```
Then run this step to change platform in Makefile, For RPI 1/2/3/ & 0/Zero:
```
$ sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
$ sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/g' Makefile
```
But for RPI 3B+ & 4B you will need to run those below which builds the ARM64 arch driver:
```
$ sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
$ sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile
```
In addition, if you receive an error message about `unrecognized command line option ‘ -mgeneral-regs-only’ ` (i.e., Raspbian Buster), you will need to run the following commands:
```
2019-11-14 22:19:48 +00:00
$ sed -i 's/^dkms build/ARCH=arm dkms build/' dkms-install.sh
$ sed -i 's/^MAKE="/MAKE="ARCH=arm\ /' dkms.conf
2019-10-30 23:22:47 +00:00
```
For setting monitor mode
1. Fix problematic interference in monitor mode.
```
2019-11-14 22:19:48 +00:00
$ airmon-ng check kill
2019-10-30 23:22:47 +00:00
```
You may also uncheck the box "Automatically connect to this network when it is avaiable" in nm-connection-editor. This only works if you have a saved wifi connection.
2. Set interface down
```
2019-11-14 22:19:48 +00:00
$ sudo ip link set wlan0 down
2019-10-30 23:22:47 +00:00
```
3. Set monitor mode
```
2019-11-14 22:19:48 +00:00
$ sudo iw dev wlan0 set type monitor
2019-10-30 23:22:47 +00:00
```
4. Set interface up
```
2019-11-14 22:19:48 +00:00
$ sudo ip link set wlan0 up
2019-10-30 23:22:47 +00:00
```
For setting TX power
```
2019-11-14 22:19:48 +00:00
$ sudo iw wlan0 set txpower fixed 3000
2019-10-30 23:22:47 +00:00
```
### LED control
#### You can now control LED behaviour statically by Makefile, for example:
```sh
CONFIG_LED_ENABLE = n
```
value can be y or n
#### statically by module parameter in /etc/modprobe.d/8812au.conf or wherever, for example:
```sh
options 88XXau rtw_led_enable=0
```
value can be 0 or 1
#### or dynamically by writing to /proc/net/rtl8812au/$(your interface name)/led_enable, for example:
```sh
$ echo "0" > /proc/net/rtl8812au/$(your interface name)/led_enable
```
value can be 0 or 1
#### check current value:
```sh
$ cat /proc/net/rtl8812au/$(your interface name)/led_enable
```
### USB Mode Switch
0: doesn't switch, 1: switch from usb2.0 to usb 3.0 2: switch from usb3.0 to usb 2.0
```sh
$ rmmod 88XXau
$ modprobe 88XXau rtw_switch_usb_mode:int (0: no switch 1: switch from usb2 to usb3 2: switch from usb3 to usb2)
```
### NetworkManager
Newer versions of NetworkManager switches to random MAC address. Some users would prefer to use a fixed address.
Simply add these lines below
```
[device]
wifi.scan-rand-mac-address=no
```
at the end of file /etc/NetworkManager/NetworkManager.conf and restart NetworkManager with the command:
```
2019-11-14 22:19:48 +00:00
$ sudo service NetworkManager restart
2019-10-30 23:22:47 +00:00
```
### Credits / Contributors
```
2019-11-14 22:19:48 +00:00
Alfa Networks - https://www.alfa.com.tw/
Realtek. - https://www.realtek.com
aircrack-ng - https://www.aircrack-ng.org
2019-10-30 23:22:47 +00:00
2019-11-14 22:19:48 +00:00
astsam - https://github.com/astsam
evilphish - https://github.com/evilphish
fariouche - https://github.com/fariouche
CGarces - https://github.com/CGarces
ZerBea - https://github.com/ZerBea
lwfinger - https://github.com/lwfinger
Ulli-Kroll. - https://github.com/Ulli-Kroll
2019-10-30 23:22:47 +00:00
```