admin管理员组文章数量:1026989
1.背景
偶现车机自身有网,开启热点,手机连接无法上网问题,经过分析找出必现步骤:
- 车机使用移动网络打开热点
- 车机连接wifi网络
- 车机断开wifi网络
2.问题原因
手机连接车机热点,想要访问外网,需要车机添加一条转发路由:
“from all iif wlan1 lookup vlan9”
按必现步骤操作之后,wifi断掉,车机没有重新为移动网络添加对应的路由,手机的数据包就不会被转发到APN3网卡,导致无法上网。
3.分析
根本原因如上述代码所示,高通将ro.radio.noril
被设置为了true,ConnectivityService源码中读取ro.radio.noril
属性,来决定是否把Mobile类型的网络加入到支持列表,如果对应的网络不在支持列表,则发生网络切换的时候(例如关闭wifi,默认网络重新切换到APN3时),系统不会发送新的默认网络连接广播,代码如下:
问题发生的时候,即断掉wifi之后,会走到上述代码流程,isTypeSupported(type)
判断新的网络是否是支持的类型,由于ro.radio.noril
为true,所以直接return,后续不会再发送新的网络连接的广播。
而且热点模块监听了网络连接广播,只有收到新的网络连接,才会为新的网络添加转发路由,代码如下:
最终调到netd,配置新网络转发路由:
将ro.radio.noril
改为 false之后,正常配置路由的log流程:
1.背景
偶现车机自身有网,开启热点,手机连接无法上网问题,经过分析找出必现步骤:
- 车机使用移动网络打开热点
- 车机连接wifi网络
- 车机断开wifi网络
2.问题原因
手机连接车机热点,想要访问外网,需要车机添加一条转发路由:
“from all iif wlan1 lookup vlan9”
按必现步骤操作之后,wifi断掉,车机没有重新为移动网络添加对应的路由,手机的数据包就不会被转发到APN3网卡,导致无法上网。
3.分析
根本原因如上述代码所示,高通将ro.radio.noril
被设置为了true,ConnectivityService源码中读取ro.radio.noril
属性,来决定是否把Mobile类型的网络加入到支持列表,如果对应的网络不在支持列表,则发生网络切换的时候(例如关闭wifi,默认网络重新切换到APN3时),系统不会发送新的默认网络连接广播,代码如下:
问题发生的时候,即断掉wifi之后,会走到上述代码流程,isTypeSupported(type)
判断新的网络是否是支持的类型,由于ro.radio.noril
为true,所以直接return,后续不会再发送新的网络连接的广播。
而且热点模块监听了网络连接广播,只有收到新的网络连接,才会为新的网络添加转发路由,代码如下:
最终调到netd,配置新网络转发路由:
将ro.radio.noril
改为 false之后,正常配置路由的log流程:
本文标签: 热点
版权声明:本文标题:Android11 连接车机热点无法上网问题分析 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1740333811a1752902.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论