commit:     fdf580a1422bb5ebcbe7a8218eaea67341901d77
Author:     Zero_Chaos <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 21 02:30:33 2018 +0000
Commit:     Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Tue Aug 21 02:32:07 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fdf580a1

net-wireless/aircrack-ng: minor airmon-ng fixes

Package-Manager: Portage-2.3.47, Repoman-2.3.10

 ...-ng-1.3-r2.ebuild => aircrack-ng-1.3-r3.ebuild} |   0
 .../aircrack-ng/files/aircrack-ng-1.3-8812au.patch | 157 +++++++++++++++++++--
 2 files changed, 142 insertions(+), 15 deletions(-)

diff --git a/net-wireless/aircrack-ng/aircrack-ng-1.3-r2.ebuild 
b/net-wireless/aircrack-ng/aircrack-ng-1.3-r3.ebuild
similarity index 100%
rename from net-wireless/aircrack-ng/aircrack-ng-1.3-r2.ebuild
rename to net-wireless/aircrack-ng/aircrack-ng-1.3-r3.ebuild

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
index 6ce0fbc51eb..e5343023aae 100644
--- a/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch
+++ b/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch
@@ -1,14 +1,28 @@
-commit 3cc9de5e7cbe6565c7e1fe12ebbcf2c6f7413c8d
-Author: Rick Farina (Zero_Chaos) <zeroch...@gentoo.org>
-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
+index 7f488391..4d0a5e0c 100755
 --- a/scripts/airmon-ng.linux
 +++ b/scripts/airmon-ng.linux
-@@ -354,21 +354,21 @@ ifaceIsUp() {
+@@ -106,7 +106,18 @@ else
+ fi
+ 
+ if [ -d /sys/bus/pci ] || [ -d /sys/bus/pci_express ] || [ -d /proc/bus/pci 
]; then
+-      if [ ! -x "$(command -v lspci 2>&1)" ]; then
++      PCI_DEVICES=0
++      if [ -d /sys/bus/pci/devices ] && [ "$(ls -1 /sys/bus/pci/devices 
2>/dev/null | wc -l)" != '0' ]; then
++              PCI_DEVICES=1
++      elif [ -r /proc/bus/pci/devices ] && [ -n "$(cat /proc/bus/pci/devices 
2>/dev/null)" ]; then
++              PCI_DEVICES=1
++      elif [ -d /sys/bus/pci_express/devices ] && [ -n "$(ls -1 
/sys/bus/pci_express/devices 2>/dev/null | wc -l)" != '0' ]; then
++              PCI_DEVICES=1
++      fi
++
++      if [ ${PCI_DEVICES} -eq 0 ]; then
++              LSPCI=0
++      elif [ ! -x "$(command -v lspci 2>&1)" ]; then
+               printf "Please install lspci from your distro's package 
manager.\n"
+               exit 1
+       else
+@@ -347,21 +358,21 @@ ifaceIsUp() {
  #     fi
  #}
  
@@ -45,7 +59,7 @@ index 14e4bdcd..d7328f4b 100755
  
  yesorno() {
        read input
-@@ -426,7 +426,7 @@ startMac80211Iface() {
+@@ -419,7 +430,7 @@ startMac80211Iface() {
                done
        fi
        #we didn't bail means we need a monitor interface
@@ -54,11 +68,11 @@ index 14e4bdcd..d7328f4b 100755
                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() {
+@@ -431,10 +442,16 @@ startMac80211Iface() {
                fi
                #we didn't bail means our target interface is available
                setLink ${1} down
-+              if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = "8814au" ] || 
[ "${DRIVER}" = "rtl8812au" ]; then
++              if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = "8814au" ]; 
then
 +                      #grumble grumble, seriously crap vendor driver
 +                      startDeprecatedIface ${1}
 +                      setChannelMac80211 ${1}
@@ -72,7 +86,55 @@ index 14e4bdcd..d7328f4b 100755
                                setChannelMac80211 ${1}mon
                        else
                                printf "\nNewly created monitor mode interface 
${1}mon is *NOT* in monitor mode.\n"
-@@ -569,12 +575,12 @@ setChannelMac80211() {
+@@ -456,15 +473,12 @@ startMac80211Iface() {
+                       printf "\nPlease run \"airmon-ng check kill\" and/or 
kill your network manager."
+               fi
+       else
+-              iw ${1} del
++              isRPiWireless && iw ${1} del
+               printf "\t\t(mac80211 station mode vif disabled for 
[${PHYDEV}]${1})\n"
+       fi
+ }
+ 
+-NEXMON_FIRMWARE_DIR=/opt
+-NEXMON_DRIVER_DIR=/opt
+-
+-hasRPiWireless() {
++isRPiWireless() {
+       local HW_REV=$(grep Revision /proc/cpuinfo | awk '{print $3}')
+       [ -z "${HW_REV}" ] && return 0
+       # 
http://www.raspberrypi-spy.co.uk/2012/09/checking-your-raspberry-pi-board-version/
+@@ -475,29 +489,6 @@ hasRPiWireless() {
+       return 0
+ }
+ 
+-isNexutilPresent() {
+-      type nexutil >/dev/null 2>/dev/null
+-      if [ $? -eq 0 ]; then
+-              return 1
+-      fi
+-      return 0
+-}
+-
+-startNexmonIface() {
+-      [ -z $1 ] && return
+-
+-      if [ -n "$(iwconfig $1 | grep 'Mode:Monitor')" ] && [ -n "$(nexutil -m 
| grep 'monitor: 2')" ]; then
+-              printf "\n\tInterface $1 is already in monitor mode\n"
+-      else
+-              ifconfig $1 up 2>/dev/null
+-              iwconfig $1 mode monitor 2>/dev/null
+-              [ "$1" = "wlan0" ] && nexutil -m2
+-              [ "$1" = "wlan0" ] || nexutil -m2 -I $1
+-              iwconfig $1 channel ${CH}
+-              printf "\n\t\t(monitor mode enabled for [${PHYDEV}]${1})\n"
+-      fi
+-}
+-
+ startwlIface() {
+       if [ -f "/proc/brcm_monitor0" ]; then
+               if [ -r "/proc/brcm_monitor0" ]; then
+@@ -587,12 +578,12 @@ setChannelMac80211() {
        fi
  }
  
@@ -91,11 +153,11 @@ index 14e4bdcd..d7328f4b 100755
  
  stopMac80211Iface() {
        if [ -f /sys/class/net/${1}/type ]; then
-@@ -587,6 +593,11 @@ stopMac80211Iface() {
+@@ -605,6 +596,11 @@ stopMac80211Iface() {
                        printf "please report it.\n"
                        exit 1
                else
-+                      if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = 
"8814au" ] || [ "${DRIVER}" = "rtl8812au" ]; then
++                      if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = 
"8814au" ]; then
 +                              #grumble grumble, seriously crap vendor driver
 +                              stopDeprecatedIface ${1}
 +                              return
@@ -103,7 +165,48 @@ index 14e4bdcd..d7328f4b 100755
                        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
+@@ -665,18 +661,6 @@ stopMac80211Iface() {
+       fi
+ }
+ 
+-stopNexmonIface() {
+-      [ -z $1 ] && return
+-      ifconfig $1 down
+-      # Running nexutil is not necessary, it gets reset when putting 
interface down
+-      [ "$1" = "wlan0" ] && nexutil -m0
+-      [ "$1" = "wlan0" ] || nexutil -m0 -I $1
+-      ifconfig $1 down
+-      ifconfig $1 up 2> /dev/null
+-      iwconfig $1 mode managed 2> /dev/null
+-      printf "\n\t\t(monitor mode disabled for [${PHYDEV}]${1})\n"
+-}
+-
+ stopwlIface() {
+       if [ -f "/proc/brcm_monitor0" ]; then
+               if [ -r "/proc/brcm_monitor0" ]; then
+@@ -751,6 +735,12 @@ getDriver() {
+       if [ "$DRIVER" = "rtl8187" ] && [ "$STACK" = "ieee80211" ]; then
+               DRIVER="r8187"
+       fi
++      if [ "$DRIVER" = "rtl88xxau" ]; then
++              DRIVER="88XXau"
++      fi
++      if [ "$DRIVER" = "rtl8812au" ]; then
++              DRIVER="8812au"
++      fi
+ 
+       #Here we will catch the broken lying drivers not caught above
+       #currently this only functions for pci devices and not usb since lsusb 
has no -k option
+@@ -795,6 +785,8 @@ getFrom() {
+                               FROM="V"
+                       elif [ "$DRIVER" = "rt5390sta" ]; then
+                               FROM="V"
++                      elif [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = 
"8814au" ]; then
++                              FROM="V"
+                       fi
+               elif modinfo -F filename $DRIVER 2>&1 | grep -q 
'updates/drivers'
+               then
+@@ -1346,8 +1338,10 @@ if [ "$DEBUG" = "1" ]; then
        fi
  fi
  if [ "$VERBOSE" = "1" ]; then
@@ -116,3 +219,27 @@ index 14e4bdcd..d7328f4b 100755
        uname -a
  
        checkvm
+@@ -1493,23 +1487,6 @@ for iface in $(printf "${iface_list}"); do
+               if [ "$1" = "stop" ] && [ "$2" = "$iface" ]; then
+                       stopwlIface $iface
+               fi
+-      elif [ "${CHIPSET}" = 'Broadcom 43430' ] || [ "${CHIPSET}" = 'Broadcom 
43455' ]; then
+-              hasRPiWireless
+-              if [ $? -eq 0 ]; then
+-                      printf "\n\tNot a Raspberry Pi 3, 3B+ or Zero Wireless, 
cannot put in monitor mode.\n"
+-              else
+-                      isNexutilPresent
+-                      if [ $? -eq 0 ]; then
+-                              printf "\n\tMissing nexutil, cannot switch to 
monitor mode.\n"
+-                      else
+-                              if [ "$1" = "start" ] && [ "$2" = "$iface" ]; 
then
+-                                      startNexmonIface $iface
+-                              fi
+-                              if [ "$1" = "stop" ] && [ "$2" = "$iface" ]; 
then
+-                                      stopNexmonIface $iface
+-                              fi
+-                      fi
+-              fi
+       elif [ "$MAC80211" = "1" ]; then
+               if [ "$1" = "start" ] && [ "$2" = "$iface" ]; then
+                       startMac80211Iface $iface

Reply via email to