news 2026/10/29 1:20:02

关闭和打开wifi流程分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关闭和打开wifi流程分析

一、背景:

    wifi流程分析基于高通8155,android 11进行分析。

二、关闭流程分析

WifiService->ActiveModeWarden->ClientModeManager->StateMachine->WifiNative->WifiVendorHal->HalDeviceManager>wifi_chip->wifi_legacy_hal->Wifi->wifi_mode_controller->driver_tool->wifi_hal_common  

   1.framework关闭流程分析

   2.hal 关闭流程分析

三、打开和关闭的完整日志

------------------------------------------stop wifi------------------------------------- 05-16 16:14:01.178 1309 10121 I WifiService: setWifiEnabled package=com.android.car uid=1000 enable=false 05-16 16:14:01.184 1309 1494 D WifiActiveModeWarden: Shutting down all client mode managers 05-16 16:14:01.184 1309 1494 D WifiClientModeManager: currentstate: ConnectModeState 05-16 16:14:01.190 1309 1494 D WifiClientModeManager: Active SubscriptionInfo list not found 05-16 16:14:01.190 1309 1494 D WifiClientModeManager: The target role -1 05-16 16:14:01.190 1309 1494 D WifiClientModeManager: Continue to stop wifi 05-16 16:14:01.213 1309 1309 D WifiP2pService: Wifi enabled=false, P2P Interface availability=true 05-16 16:14:01.216 594 594 I android.hardware.wifi@1.0-service: Adding interface handle for wlan1 05-16 16:14:01.216 594 594 I android.hardware.wifi@1.0-service: Adding interface handle for p2p0 05-16 16:14:01.216 594 594 I android.hardware.wifi@1.0-service: Adding interface handle for wlan0 05-16 16:14:01.217 594 594 W android.hardware.wifi@1.0-service: No active wlan interfaces in use! Using default 05-16 16:14:01.269 1309 1347 I EthernetTracker: interfaceLinkStateChanged, iface: wlan0, up: false 05-16 16:14:01.269 1309 1551 D EthernetNetworkFactory: [GDC]updateInterfaceLinkState, iface: wlan0, up: false 05-16 16:14:01.270 594 1590 V WifiHAL : event received NL80211_CMD_DISCONNECT 05-16 16:14:01.284 1309 1492 D NetworkPolicy: updateRuleForRestrictBackgroundUL(10073): isForeground=false, isBlacklisted=false, isWhitelisted=false, isRestrictedByAdmin=false, oldRule=0 (NONE), newRule=0 (NONE), newUidRules=0 (NONE), oldUidRules=0 (NONE) 05-16 16:14:01.297 1309 1309 D WifiP2pService: Wifi enabled=false, P2P Interface availability=true 05-16 16:14:01.439 1309 1378 W SupplicantP2pIfaceHal: ISupplicant/ISupplicantP2pIface died: cookie=0 05-16 16:14:01.439 1309 1378 D SupplicantStaIfaceHal: ISupplicant died: cookie=5238226950689809904 05-16 16:14:01.440 1309 1494 D WifiNl80211Manager: tearing down interfaces in wificond //调用stopHalAndWificondIfNecessary,开始stop 05-16 16:14:01.481 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi::stop enter 05-16 16:14:01.481 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi::stopInternal enter 05-16 16:14:01.488 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi::stopInternal -> stopLegacyHalAndDeinitializeModeController 05-16 16:14:01.488 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi::stopLegacyHalAndDeinitializeModeController enter 05-16 16:14:01.488 594 594 I WifiHAL : Sent msg on exit sock to unblock poll() 05-16 16:14:01.488 594 1590 I WifiHAL : exit_event_handler, buf=E 05-16 16:14:01.488 594 1590 I CLD80211: android.hardware.wifi@1.0-service: Sent msg on exit sock to unblock poll() 05-16 16:14:01.488 594 1590 V WifiHAL : Successfully removed event handler for vendor 0x1374 05-16 16:14:01.488 594 1590 D WifiHAL : wlan_service_update_sys_param: /proc/sys/net/ipv4/tcp_limit_output_bytes 1048576 05-16 16:14:01.489 594 1590 D WifiHAL : wlan_service_update_sys_param: /proc/sys/net/ipv4/tcp_use_userconfig 0 05-16 16:14:01.489 594 1590 D WifiHAL : wlan_service_update_sys_param: /proc/sys/net/ipv4/tcp_adv_win_scale 1 05-16 16:14:01.489 594 1590 V WifiHAL : Successfully removed event handler for vendor 0x1374 05-16 16:14:01.489 594 1590 I android.hardware.wifi@1.0-service: Legacy HAL stop complete callback received 05-16 16:14:01.489 594 1590 I WifiHAL : wifi_event_loop() exits success 05-16 16:14:01.489 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi::stopLegacyHalAndDeinitializeModeController -> modo_controller::deinitialize 05-16 16:14:01.489 594 594 I android.hardware.wifi@1.0-service: NOBOTEST WifiModeController::deinitialize enter 05-16 16:14:01.489 594 594 E android.hardware.wifi@1.0-service: GWMSTR >> DriverTool::UnloadDriver() called //卸载wifi驱动 05-16 16:14:01.489 594 594 E android.hardware.wifi@1.0-service: GWMSTR >> wifi_unload_driver() called, is_wifi_driver_loaded(): 1 05-16 16:14:01.489 594 594 E android.hardware.wifi@1.0-service: GWMSTR >> wifi_unload_driver() -- if (is_wifi_driver_loaded()) -- line:214 05-16 16:14:01.494 594 594 E android.hardware.wifi@1.0-service: GWMSTR >> wifi_unload_driver() -- END -- line:219 05-16 16:14:01.494 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi::stopInternal -> stopLegacyHalAndDeinitializeModeController 111 05-16 16:14:01.494 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi::stopInternal -> stopLegacyHalAndDeinitializeModeController 111, callback:0xb4000078be9dff50 05-16 16:14:01.495 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi HAL stopped 05-16 16:14:01.495 594 594 I android.hardware.wifi@1.0-service: NOBOTEST Wifi::stopInternal end //hal层wifi关闭成功 05-16 16:14:01.496 1309 1494 I WifiVendorHal: Vendor Hal stopped //FW收到wifi关闭成功 05-16 16:14:01.496 1309 1494 D WifiClientModeManager: STA iface wlan0 was destroyed, stopping client mode 05-16 16:14:01.496 1309 1494 E SupplicantStaIfaceHal: Can't call setPowerSave, ISupplicantStaIface is null 05-16 16:14:01.496 1309 1494 E SupplicantStaIfaceHal: Can't call setBtCoexistenceMode, ISupplicantStaIface is null 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: stopIpClient IpClientWithPreConnection: false 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: java.lang.Throwable 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.ClientModeImpl.stopIpClient(ClientModeImpl.java:1076) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.ClientModeImpl.stopDhcpSetup(ClientModeImpl.java:1091) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.ClientModeImpl.handleNetworkDisconnect(ClientModeImpl.java:2773) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.ClientModeImpl.handleIfaceDestroyed(ClientModeImpl.java:1576) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.ClientModeManager$ClientModeStateMachine$1.onDestroyed(ClientModeManager.java:423) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.WifiNative.onInterfaceDestroyed(WifiNative.java:634) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.WifiNative.access$1300(WifiNative.java:83) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.WifiNative$InterfaceDestoyedListenerInternal.onDestroyed(WifiNative.java:661) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.WifiVendorHal$StaInterfaceDestroyedListenerInternal.onDestroyed(WifiVendorHal.java:433) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.HalDeviceManager$InterfaceDestroyedListenerProxy.action(HalDeviceManager.java:2244) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.HalDeviceManager$ListenerProxy.trigger(HalDeviceManager.java:2209) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.HalDeviceManager.dispatchDestroyedListeners(HalDeviceManager.java:2160) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.HalDeviceManager.removeIfaceInternal(HalDeviceManager.java:2079) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.HalDeviceManager.removeIface(HalDeviceManager.java:266) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.WifiVendorHal.removeStaIface(WifiVendorHal.java:482) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.WifiNative.removeStaIface(WifiNative.java:921) 05-16 16:14:01.497 1309 1494 V WifiClientModeImpl: at com.android.server.wifi.WifiNative.teardownInterface(WifiNative.java:1366) 05-16
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/29 1:19:27

Android fw DeviceStorageMonitorService

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 1:18:00

【GATT】规范精讲[10]: GATT 服务自述——服务变更与能力对账

GATT系列精讲前九篇把 GATT 的数据交换机制讲完了:发现、读写、推送、承载、连接。但有一个更根本的问题还没解决:客户端连上服务器后,怎么知道对方的服务表长什么样?怎么知道对方支持哪些高级特性?如果服务表变了,客户端怎么感知?这些问题的答案不在某个具体的业务服务…

作者头像 李华
网站建设 2026/10/29 1:16:15

RS485通信电路设计笔记

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 1:15:57

Postman - 安装及汉化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 1:15:07

GoFrame+Vue+ElementUI框架基本使用和搭建教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 1:14:51

EasyGoAdmin GoFrame 接口与 Vue3+ElementPlus 表格

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华