🗒️Android Network validation
2023-8-18
| 2023-8-18
字数 1374阅读时长 4 分钟
type
status
date
slug
summary
tags
category
icon
password
URL
基于andorid R梳理的wifi上网校验流程,其余android版本也差不多,相差不大
当我们连接wifi时,通常会遇到如下的log:
MtkConnectivityService: [113 WIFI] validation passed
此log显示当前网络为Wifi,并且validation passed。
notion image
那肯定是某个进程发送了EVENT_NETWORK_TESTED将valid/invalid的消息传了过来
notion image
notion image
notion image
 
NetworkMonitor里维护了一个状态机。
notion image
mThread.Start()将会启动isCapativePortal()函数
notion image
这个网址就是用来判断network validation的
notion image
这个也就对应上log中的:
notion image

network validation pass的流程

transitionTo(mEvalutingPrivateDnsState)
notion image
对应log中的

network validation failed的流程

第一次validation failed时会transmitionTo(mWaitingForNextProbeState),其实就是发送CMD_REEVALUTE,转到EvaluatingState进行处理,再转到ProbingState,进行isCapativePortal来继续去检测network
notion image
另外会在 1s 后继续校验,后续间隔时间会翻倍,即 1s-2s-4s, 上限是 600s,即 2^9-2^10,即最大间隔是 512s-600s,
无网络的network的log:
notion image
校验不成功会上报不成功
然后一样的流程会将validation failed上传到ConnectivityService中的EVENT_NETWORK_TESTED进行处理
notion image
插卡后执行下 adb shell dumpsys network_stack | grep "Validation logs"
  • andorid
  • validation
  • wifi
  • connectivity
  • Android系统中各image文件解压缩WIFI mac地址的有效性
    Loading...