Restore the net.dnsX system properties.
In order to avoid app breakage, we are putting back the system
properties and using selinux to disallow access from apps
targeting the O SDK or above.
This CL is cherry-picked from internal commit
443b6c4049, but with a different
commit description.
Bug: 33308258
Bug: 33807046
Bug: 34028616
Bug: 34115651
Test: system properties are readable as root and shell
Change-Id: I8d51e8e0a620d581c4251fb2f3c1d0a813b929be
This commit is contained in:
@@ -4564,9 +4564,28 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
} catch (Exception e) {
|
||||
loge("Exception in setDnsConfigurationForNetwork: " + e);
|
||||
}
|
||||
final NetworkAgentInfo defaultNai = getDefaultNetwork();
|
||||
if (defaultNai != null && defaultNai.network.netId == netId) {
|
||||
setDefaultDnsSystemProperties(dnses);
|
||||
}
|
||||
flushVmDnsCache();
|
||||
}
|
||||
|
||||
private void setDefaultDnsSystemProperties(Collection<InetAddress> dnses) {
|
||||
int last = 0;
|
||||
for (InetAddress dns : dnses) {
|
||||
++last;
|
||||
String key = "net.dns" + last;
|
||||
String value = dns.getHostAddress();
|
||||
SystemProperties.set(key, value);
|
||||
}
|
||||
for (int i = last + 1; i <= mNumDnsEntries; ++i) {
|
||||
String key = "net.dns" + i;
|
||||
SystemProperties.set(key, "");
|
||||
}
|
||||
mNumDnsEntries = last;
|
||||
}
|
||||
|
||||
private String getNetworkPermission(NetworkCapabilities nc) {
|
||||
// TODO: make these permission strings AIDL constants instead.
|
||||
if (!nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)) {
|
||||
@@ -4783,6 +4802,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
notifyLockdownVpn(newNetwork);
|
||||
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
|
||||
updateTcpBufferSizes(newNetwork);
|
||||
setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
|
||||
}
|
||||
|
||||
private void processListenRequests(NetworkAgentInfo nai, boolean capabilitiesChanged) {
|
||||
|
||||
Reference in New Issue
Block a user