关注我,更多程序猿的日常信息等你哦
1、功能实现
disable powersave需要修改WCNSS_qcom_cfg.ini中的以下参数:
gEnableImps=0
gEnableBmps=0
如果不行,再增加下面俩个参数:
gEnablePowerSaveOffload=0
gAutoBmpsTimerValue =0
步骤:
#1、adb root;adb remount
#2、adb pull /vendor/etc/wifi/WCNSS_qcom_cfg.ini ~/
#3、将文件pull到电脑上修改参数,然后通过第三步的命令push回手机
#4、adb push WCNSS_qcom_cfg.ini /vendor/etc/wifi/
#5、adb reboot 重启手机
2、验证
1)验证修改参数是否生效
#1、open WiFi
#2、adb shell iwpriv wlan0 getConfig
#3、adb shell dmesg >~/dmesg.txt
检查WCNSS_qcom_cfg.ini中修改的参数值是否正确
iwpriv 工具放到手机system/xbin即可
2)验证powersave是否开启
1、抓取802.11协议包,检查是否有以下字段:
开启后,抓包能看到NULL data PM=1或者0的置位,等于1时,sta休眠,AP缓存sta的数据包,为0时,通知AP,sta醒来收包。
如果关闭,STA 的NULL data PM一直为0,长醒。
…1 … = PWR MGT: STA will go to sleep
如果有以下字段,则说明powersave是开启的,这个是powersave的行为,即开启powersave时,会不停在休眠和唤醒之前切换
2、抓包可以用WireShark抓取
sudo apt-get install aircrack-ng
wireshark libcap2-bin
sudo airmon-ng start wlan0