Add build options for tethering.
Dun-required bool and list of allowed upstream ifaces.
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 19f4b8a..71f80d9 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -66,6 +66,7 @@
private Tethering mTethering;
+ private boolean mTetheringConfigValid = false;
/**
* Sometimes we want to refer to the individual network state
@@ -320,6 +321,12 @@
}
mTethering = new Tethering(mContext);
+ mTetheringConfigValid = (((mNetTrackers[ConnectivityManager.TYPE_MOBILE_DUN] != null) ||
+ !mTethering.isDunRequired()) &&
+ (mTethering.getTetherableUsbRegexs().length != 0 ||
+ mTethering.getTetherableWifiRegexs().length != 0) &&
+ mTethering.getUpstreamIfaceRegexs().length != 0);
+
}
@@ -1498,8 +1505,8 @@
public boolean isTetheringSupported() {
enforceTetherAccessPermission();
int defaultVal = (SystemProperties.get("ro.tether.denied").equals("true") ? 0 : 1);
- return ((Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.TETHER_SUPPORTED, defaultVal) != 0) &&
- (mNetTrackers[ConnectivityManager.TYPE_MOBILE_DUN] != null));
+ boolean tetherEnabledInSettings = (Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.TETHER_SUPPORTED, defaultVal) != 0);
+ return tetherEnabledInSettings && mTetheringConfigValid;
}
}