我想为 Android 11 设备实现基于 EAP 的卸载。在没有根 CA 证书的情况下添加 WiFiNetworkSuggestion 将返回错误代码 (STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_NOT_ALLOWED)。 另根据 Android 开发人员文档
该框架对基于 TLS 的企业强制执行安全要求 建议(EAP-TLS、EAP-TTLS 和 EAP-PEAP);对此类的建议 网络必须设置根CA证书和服务器域名。
如有任何进一步的帮助,我们将不胜感激。
我尝试过自签名证书。 Android 允许在配置证书后添加基于 EAP-TLS 的企业建议。使用下面的代码创建 x509Certificate,稍后可以在 WifiNetworkSuggestion 中设置。
private X509Certificate getCertificate() {
try {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(context.getAssets().open("mycert.pem"));
return cert;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
在WifiNetworkSuggestion中设置证书
WifiNetworkSuggestion.Builder wifiNetworkSuggestion = new WifiNetworkSuggestion.Builder();
wifiNetworkSuggestion.setSsid("Ssid");
WifiEnterpriseConfig defaultWifiEnterpriseConfig = new WifiEnterpriseConfig();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) {
defaultWifiEnterpriseConfig.setCaCertificate(getCertificate());
defaultWifiEnterpriseConfig.setDomainSuffixMatch("example.com");
}
wifiNetworkSuggestion.setWpa2EnterpriseConfig(defaultWifiEnterpriseConfig);
wifiNetworkSuggestion.build();
这是否可以解决 rooted android 11 手机上 eduroam 网络的连接问题? 如果是的话,我可以获得一个简单的教程来说明在哪里放置这些代码吗?