Android 11 如何不要驗證Wi-Fi CA 憑證(手工連線WIFI, 需要ROOT)

Aibot發表於2024-10-05

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 基地臺都要重新執行一次, 還是比較麻煩.

引用

Android 11 如何不要驗證WI-FI CA憑證

相關文章