首页 > 其他分享 >nexus5获取csi数据

nexus5获取csi数据

时间:2023-04-05 19:35:00浏览次数:28  
标签:ndk nexmon csi make r11c 获取 git nexus5

记录一下在阅读WiFi感知系列文章中对csi(信道状态信息)的获取过程

收集设备:nexus5   安卓版本6.0.1   版本号M4B302    root过

系统:虚拟机Ubuntu18.0.4

发送设备:小米路由器4C(R4CM){准备用别的路由器再测测,这2.4g的路由器收到的数据很怪}

 

  1. 首先sudo su获取权限,进入根目录,输入以下依赖安装:
    apt-get install git gawk qpdf adb flex bison
  2. 64位操作系统安装库
    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
  3.  获取nexmon包,这边推荐在Gitee上直接搜nexmon就会发现一些快捷的项目包镜像。比从github上下载快多了。
    git clone https://gitee.com/mirrors_seemoo-lab/nexmon.git
  4. 安装Andriod NDK r11c,类似于驱动
    cd /opt/
    mkdir ndk
    cd ndk
    //下载,如果网络慢也可以去gitee上找
    wget -c https://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip
    //解压
    apt-get install fastjar
    jar xvf android-ndk-r11c-linux-x86_64.zip

     

    然后vi打开/etc/profile/,在最底下添加环境变量
    export NDK_ROOT=/opt/ndk/android-ndk-r11c
    export PATH=$NDK_ROOT:$PATH
  5.  刷新环境变量,赋权限
    source /etc/profile
    chmod a+x -R andriod-ndk-r11c

    此时输入ndk-build -v可以检查是否成功。

  6. 进入nexmon文件执行命令
    source setup_env.sh
    //然后make
    make

     

    接着进入utilities文件夹继续make
  7. 连接手机,允许USB调试,然后执行 make install
  8. 进入pathes/bcm4339/6_37_34_43/路径下,下载nexmon_csi
    git clone https://gitee.com/hjqsuccess/nexmon_csi.git

    进入nexmon_csi,给手机安装补丁,make install-firmware

  9. cd utils/makecsiparams,执行 make 配置提取器makecsiparams
  10. 通过命令
    ./makecsiparams -c 157/80 -C 1 -N 1 -m 00:11:22:33:44:55

    生成一段代码(后面需要复制用),157是信道,80是带宽,根据自己的设置(我的是12/20,还测试了12/40的,80带宽的也测试过),m后面是路由器mac地址。(注意:一开始我怎么也收集不到数据,后来发现是mac地址的问题,实际的mac地址和你用命令收显示的可能差一两位,自己注意)

  11. 重开一个客户端进入手机端
    adb shell
    su
    ifconfig wlan0 up

    打开wlan0

  12. 设置nexutil的参数
    nexutil -Iwlan0 -s500 -b -l34 -vm+IBEQGIAgAAESIzRFWqu6q7qrsAAAAAAAAAAAAAAAAAAA==
    

    -v后面是之前生成的代码

  13. 设置成monitor模式
    nexutil -Iwlan0 -m1
    
  14.  收集数据
    tcpdump -i wlan0 -v dst port 5500 -w /sdcard/1.pcap -c 1000
    

    1000是收集1000个数据包,放在sdcard的里面,名字自己设置。前面的参数我都看过了,可以不用调整。

标签:ndk,nexmon,csi,make,r11c,获取,git,nexus5
From: https://www.cnblogs.com/cjl520/p/17169476.html

相关文章

  • Python platform模块获取操作系统信息
    一、概述1、python中,platform模块给我们提供了很多方法去获取操作系统的信息importplatformprint(platform.platform())#获取操作系统名称和版本号:macOS-10.14.6-x86_64-i386-64bitprint(platform.system())#获取操作系统:Darwinprint(platform.version())#获取计算机操作......
  • python flask 框架后端如何获取前端的表单数据 文本 单选框 多选框
    文本pyhon后端用request.values.get("name")去获取  if request.method == "POST":        username = request.values.get("username")     sex = request.values.get("sex") 二、多选按钮checkbox  <......
  • 【树莓派】电脑无法获取树莓派的ip地址
    问题参照以下方法,用网线连接树莓派和电脑后,无法查询到树莓派的ip地址。【树莓派网线连接电脑】https://www.bilibili.com/video/BV16U4y1879Q?p=5   在cmd中输入命令arp-a,未找到树莓派的地址,仅有一个广播地址,如下图所示。 解决过程  将服务都打上勾,点击确定,再点......
  • MySQL AutoIncrement--PXC集群批量插入操作获取自增ID异常问题
    问题描述由于MySQLPXC集群的所有节点均可读写,因此当PXC集群中节点增加和减少时,PXC集群会自动调整集群各节点的自增ID步长,避免不同集群节点生成相同自增ID值产生冲突。当PXC集群中读节点数量发生变化时,客户端执行BatchInsert方法可能返回错误的自增ID值。问题原因由于MySQL数......
  • DOM概述&Element对象获取与使用
    概述Document Object Model文档对象模型将标记语言的各个组成部分封装为对象JavaScript 通过DOM,就能够对HTML进行操作了Document:整个文档对象Element:元素对象Attribute:属性对象Text: 文本对象Comment:注释对象改变HTML元素的内容改变HTML元素的样式(CSS)对H......
  • 【openwrt】获取设备的IMEI
    随身wifi刷了openwrt的固件,如何查询IMEIroot@HandsomeMod:~#mmcli-L/org/freedesktop/ModemManager1/Modem/0[1]0root@HandsomeMod:~#mmcli-m0-----------------------------------General|path:/org/freedesktop/ModemManager1......
  • IOS获取蓝牙状态
    IOS获取蓝牙状态监听蓝牙状态在LinkBinariesWithLibraries中添加CoreBluetooto.framework创建CBCentralManager对象为了避免每次都获取蓝牙状态都弹窗,配置一下options将CBCentralManagerOptionShowPowerAlertKey设置为falseletoptions=[CBCentralManagerOptionShowPo......
  • 如何在vue3获取 DOM 元素
    获取dom的ref元素名称,要对应暴露的名称,不然会出现无效的dom报错,也就是拿到的是null在setup中,使用ref(null)获取dom不能直接在setup里面拿到dom的值,因为setup对应的生命周期是created,所以必须在后续的生命周期钩子里面拿到,比如onMounted注意:ref不要加冒号,直接写dom元素名称......
  • Js/Jquery获取自定义属性的方法
    html:<spanid="item"data-test='test'></span>方法一、原生JS的getAttribute获取自定义属性设置属性.setAttribute("属性","值")获取属性.getAttribute("属性")varspan=document.getElementById('item').ge......
  • js和jquery获取屏幕宽高以及加margin和padding等边距的宽高
    Javascript:网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth(包括边线的宽)网页可见区域高:document.body.offsetHeight(包括边线的高)网页正文全文宽:document.body.scrollWidth网页正文......