commit:     e26377c50b9cf56f36ca30d91fee1eeca4b9baab
Author:     Zero_Chaos <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  7 02:14:16 2018 +0000
Commit:     Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Tue Aug  7 02:14:33 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e26377c5

net-wireless/aircrack-ng: support 8812au

add upstream patch to support realtek 8812au and variants

Package-Manager: Portage-2.3.44, Repoman-2.3.10

 ...ack-ng-1.3.ebuild => aircrack-ng-1.3-r1.ebuild} |   1 +
 .../aircrack-ng/files/aircrack-ng-1.3-8812au.patch | 118 +++++++++++++++++++++
 2 files changed, 119 insertions(+)

diff --git a/net-wireless/aircrack-ng/aircrack-ng-1.3.ebuild 
b/net-wireless/aircrack-ng/aircrack-ng-1.3-r1.ebuild
similarity index 98%
rename from net-wireless/aircrack-ng/aircrack-ng-1.3.ebuild
rename to net-wireless/aircrack-ng/aircrack-ng-1.3-r1.ebuild
index af3515cb463..c35e3fb3d4a 100644
--- a/net-wireless/aircrack-ng/aircrack-ng-1.3.ebuild
+++ b/net-wireless/aircrack-ng/aircrack-ng-1.3-r1.ebuild
@@ -60,6 +60,7 @@ pkg_setup() {
 }
 
 src_prepare() {
+       eapply "${FILESDIR}/${P}-8812au.patch"
        eapply_user
        eautoreconf
 }

diff --git a/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch 
b/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch
new file mode 100644
index 00000000000..6ce0fbc51eb
--- /dev/null
+++ b/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch
@@ -0,0 +1,118 @@
+commit 3cc9de5e7cbe6565c7e1fe12ebbcf2c6f7413c8d
+Author: Rick Farina (Zero_Chaos) <[email protected]>
+Date:   Tue Aug 7 01:27:05 2018 +0000
+
+    airmon-ng support 8812au
+
+diff --git a/scripts/airmon-ng.linux b/scripts/airmon-ng.linux
+index 14e4bdcd..d7328f4b 100755
+--- a/scripts/airmon-ng.linux
++++ b/scripts/airmon-ng.linux
+@@ -354,21 +354,21 @@ ifaceIsUp() {
+ #     fi
+ #}
+ 
+-#startDeprecatedIface() {
+-#     iwconfig ${1} mode monitor > /dev/null 2>&1
+-#     if [ -n "${2}" ]; then
+-#             if [ ${2} -lt 1000 ]; then
+-#                     iwconfig ${1} channel ${2} > /dev/null 2>&1
+-#             else
+-#                     iwconfig ${1} freq ${2}000000 > /dev/null 2>&1
+-#             fi
+-#     else
+-#             iwconfig ${1} channel ${CH} > /dev/null 2>&1
+-#     fi
+-#     iwconfig ${1} key off > /dev/null 2>&1
+-#     setLink ${1} up
+-#     printf " (monitor mode enabled)"
+-#}
++startDeprecatedIface() {
++      iwconfig ${1} mode monitor > /dev/null 2>&1
++      if [ -n "${2}" ]; then
++              if [ ${2} -lt 1000 ]; then
++                      iwconfig ${1} channel ${2} > /dev/null 2>&1
++              else
++                      iwconfig ${1} freq ${2}000000 > /dev/null 2>&1
++              fi
++      else
++              iwconfig ${1} channel ${CH} > /dev/null 2>&1
++      fi
++      iwconfig ${1} key off > /dev/null 2>&1
++      setLink ${1} up
++      printf " (monitor mode enabled)"
++}
+ 
+ yesorno() {
+       read input
+@@ -426,7 +426,7 @@ startMac80211Iface() {
+               done
+       fi
+       #we didn't bail means we need a monitor interface
+-        if [ ${#1} -gt 12 ]; then
++      if [ ${#1} -gt 12 ]; then
+               printf "Interface ${1}mon is too long for linux so it will be 
renamed to the old style (wlan#) name.\n"
+               findFreeInterface monitor
+       else
+@@ -438,10 +438,16 @@ startMac80211Iface() {
+               fi
+               #we didn't bail means our target interface is available
+               setLink ${1} down
++              if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = "8814au" ] || 
[ "${DRIVER}" = "rtl8812au" ]; then
++                      #grumble grumble, seriously crap vendor driver
++                      startDeprecatedIface ${1}
++                      setChannelMac80211 ${1}
++                      return
++              fi
+               IW_ERROR="$(iw phy ${PHYDEV} interface add ${1}mon type monitor 
2>&1)"
+               if [ -z "${IW_ERROR}" ]; then
+                       sleep 1
+-                      if [ "$(cat 
/sys/class/ieee80211/${PHYDEV}/device/net/${1}mon/type)" = "803" ]; then
++                      if [ -r 
"/sys/class/ieee80211/${PHYDEV}/device/net/${1}mon/type" ] && [ "$(cat 
/sys/class/ieee80211/${PHYDEV}/device/net/${1}mon/type)" = "803" ]; then
+                               setChannelMac80211 ${1}mon
+                       else
+                               printf "\nNewly created monitor mode interface 
${1}mon is *NOT* in monitor mode.\n"
+@@ -569,12 +575,12 @@ setChannelMac80211() {
+       fi
+ }
+ 
+-#stopDeprecatedIface() {
+-#     setLink $1 down
+-#     iwconfig $1 mode Managed > /dev/null 2>&1
+-#     setLink $1 up
+-#     printf " (monitor mode disabled)"
+-#}
++stopDeprecatedIface() {
++      setLink $1 down
++      iwconfig $1 mode Managed > /dev/null 2>&1
++      setLink $1 up
++      printf " (monitor mode disabled)"
++}
+ 
+ stopMac80211Iface() {
+       if [ -f /sys/class/net/${1}/type ]; then
+@@ -587,6 +593,11 @@ stopMac80211Iface() {
+                       printf "please report it.\n"
+                       exit 1
+               else
++                      if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = 
"8814au" ] || [ "${DRIVER}" = "rtl8812au" ]; then
++                              #grumble grumble, seriously crap vendor driver
++                              stopDeprecatedIface ${1}
++                              return
++                      fi
+                       if [ "${ELITE}" = "0" ]; then
+                               local need_sta=1
+                               if [ -d 
/sys/class/ieee80211/${PHYDEV}/device/net ]; then
+@@ -1316,8 +1327,10 @@ if [ "$DEBUG" = "1" ]; then
+       fi
+ fi
+ if [ "$VERBOSE" = "1" ]; then
+-      lsb_release -a
+-      printf "\n"
++      if [ -n "$(command -v lsb_release 2> /dev/null)" ]; then
++              lsb_release -a
++              printf "\n"
++      fi
+       uname -a
+ 
+       checkvm

Reply via email to