android增加5G热点

busybox ifconfig -a 查看网口

sudo iw list|grep MHz 查看信道
Android平台API直接通过mWifiManager.setWifiEnabled来打开热点,即调用WifiManager的方法:
Z:\KK\frameworks\base\wifi\java\android\net\wifi\WifiManager.java
这里写图片描述

到服务器端进程:
Z:\KK\frameworks\base\services\java\com\android\server\wifi\WifiService.java
这里写图片描述
从而调用到Wifi状态机中的实例,接着会调到mSoftApStartingState
Z:\KK\frameworks\base\wifi\java\android\net\wifi\WifiStateMachine.java

这里写图片描述

加载AP对应的驱动,通过JNI调用本地方法加载驱动:
这里写图片描述
加载驱动成功后状态又被迁移至mSoftApStartingState
这里写图片描述
SoftApStartingState 会检测上层传下的参数的有效性并调用startSoftApWithConfig 配置、打开SoftAP
这里写图片描述
接着调用到startAccessPoint()函数
Z:\KK\frameworks\base\services\java\com\android\server\NetworkManagementService.java

这里写图片描述

在此可强制修改热点的信道,如上已将mConnector.execute直接写入了36信道。

下载AP对应的 firmware
wifiFirmwareReload(wlanIface, “AP”);
设置ap的ssid 信道 加密方式 以及密码
mConnector.execute(“softap”, “set”, wlanIface, wifiConfig.SSID,
“broadcast”, “36”, getSecurityType(wifiConfig),
new SensitiveArg(wifiConfig.preSharedKey));3、运行softap
mConnector.execute(“softap”, “startap”);
这里通过一个NativeDaemonConnector的实例mConnector 调用c++程序

这里写图片描述

最后调用到了 “./system/netd/CommandListener.cpp” 中的CommandListener::SoftapCmd::runCommand
这里写图片描述

调用”set“ 命令, 调用到 rc = sSoftapCtrl->setSoftap(argc, argv);来配置网络
这里写图片描述

asprintf(&wbuf, “interface=%s\ndriver=nl80211\nctrl_interface=”
“/data/misc/wifi/hostapd\nssid=%s\nchannel=%d\nieee80211n=1\n”
“hw_mode=a\nignore_broadcast_ssid=%d\n”,
argv[2], argv[3], channel, hidden);
则是热点打开生成的配置文件内容,会接收到上层传来的信道和接口进行配置,此处我们若要改成5G热点,需如上修改协议hw_mode=a,至此热点配置修改已完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值