Android 11 如何不要验证Wi-Fi CA 凭证(手工连接WIFI, 需要ROOT)
在获取了ROOT权限的基础上, 如果因为您机器所使用OS版本的 限制无法在GUI界面选择符合您企业设置的WI-FI选项, 可以使用本文教程中指出的手工连接WIFI的方式.
Step 1. 检查
adb shell
su
cat /data/misc/apexdata/com.android.wifi/WifiConfigStore.xml
这三个命令分别是登录安卓设备的shell, 获取root权限, 和检查当前设备的WIFI连接信息
Step2. 设置WIFI信息
<WifiEnterpriseConfiguration>
<string name="Identity">账号名称</string>
<string name="AnonIdentity"></string>
<string name="Password">帐号密码</string>
<string name="ClientCert"></string>
<string name="CaCert"></string>
<string name="SubjectMatch"></string>
<string name="Engine">0</string>
<string name="EngineId"></string>
<string name="PrivateKeyId"></string>
<string name="AltSubjectMatch"></string>
<string name="DomSuffixMatch">域名</string>
<string name="CaPath">/system/etc/security/cacerts</string>
<int name="EapMethod" value="0" />
<int name="Phase2Method" value="4" />
<string name="PLMN"></string>
<string name="Realm"></string>
<int name="Ocsp" value="0" />
<string name="WapiCertSuite"></string>
<boolean name="AppInstalledRootCaCert" value="false" />
<boolean name="AppInstalledPrivateKey" value="false" />
<null name="KeyChainAlias" />
<null name="DecoratedIdentityPrefix" />
</WifiEnterpriseConfiguration>
在笔者的企业配置中, 不能存在CaPath和DomSuffixMatch, 因此将二者设置为初始化. 并在账号名称、帐号密码栏目填入正确的信息.
adb shell
su
sed -i 's%<string name="CaPath">.*</string>%<string name="CaPath"></string>%' /data/misc/apexdata/com.android.wifi/WifiConfigStore.xml
sed -i 's%<string name="DomSuffixMatch">.*</string>%<string name="DomSuffixMatch"></string>%' /data/misc/apexdata/com.android.wifi/WifiConfigStore.xml
reboot
再次运行cat /data/misc/apexdata/com.android.wifi/WifiConfigStore.xml
, 检查是否修改成功.
Step 3. 连接
一切准备就绪, 在WIFI页面已保存WIFI中, 选中你的WIFI进行连接.
总结
这个方法并不是把不要验证(Do Not Validate) 的设定加回去, 而是先尝试连线一个要验证的Wi-Fi (当然这里会失败), 等他把设定档存下来之后, 再进系统把凭证的设定改掉, 所以还是和Android 10 以前不太一样. 而且每次连上一个新的要使用EAP 的Wi-Fi 基地台都要重新执行一次, 还是比较麻烦.