diff options
| -rw-r--r-- | api/system-current.txt | 1 | ||||
| -rw-r--r-- | core/res/AndroidManifest.xml | 9 | ||||
| -rw-r--r-- | core/res/res/values/config.xml | 7 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 2 | ||||
| -rw-r--r-- | telephony/java/android/telephony/CarrierConfigManager.java | 18 | ||||
| -rw-r--r-- | telephony/java/android/telephony/NetworkService.java | 10 |
6 files changed, 45 insertions, 2 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index edda60af4bc2..c85a6969ed82 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -31,6 +31,7 @@ package android { field public static final java.lang.String BIND_SETTINGS_SUGGESTIONS_SERVICE = "android.permission.BIND_SETTINGS_SUGGESTIONS_SERVICE"; field public static final java.lang.String BIND_TELEPHONY_DATA_SERVICE = "android.permission.BIND_TELEPHONY_DATA_SERVICE"; field public static final java.lang.String BIND_TEXTCLASSIFIER_SERVICE = "android.permission.BIND_TEXTCLASSIFIER_SERVICE"; + field public static final java.lang.String BIND_TELEPHONY_NETWORK_SERVICE = "android.permission.BIND_TELEPHONY_NETWORK_SERVICE"; field public static final java.lang.String BIND_TRUST_AGENT = "android.permission.BIND_TRUST_AGENT"; field public static final java.lang.String BIND_TV_REMOTE_SERVICE = "android.permission.BIND_TV_REMOTE_SERVICE"; field public static final java.lang.String BLUETOOTH_PRIVILEGED = "android.permission.BLUETOOTH_PRIVILEGED"; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index e620975b888c..5ac270041c31 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1802,6 +1802,15 @@ <permission android:name="android.permission.BIND_TELEPHONY_DATA_SERVICE" android:protectionLevel="signature" /> + <!-- Must be required by a NetworkService to ensure that only the + system can bind to it. + <p>Protection level: signature + @SystemApi + @hide + --> + <permission android:name="android.permission.BIND_TELEPHONY_NETWORK_SERVICE" + android:protectionLevel="signature" /> + <!-- Allows an application to manage embedded subscriptions (those on a eUICC) through EuiccManager APIs. <p>Protection level: signature|privileged|development diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 68a69475353c..59b3e10bcc37 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -3288,4 +3288,11 @@ <bool name="config_supportBluetoothPersistedState">true</bool> <bool name="config_keepRestrictedProfilesInBackground">true</bool> + + <!-- Cellular network service package name to bind to by default. --> + <string name="config_wwan_network_service_package" translatable="false">com.android.phone</string> + + <!-- IWLAN network service package name to bind to by default. If none is specified in an overlay, an + empty string is passed in --> + <string name="config_wlan_network_service_package" translatable="false"></string> </resources> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 5e9213fd489c..615c6250d932 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -266,6 +266,8 @@ <java-symbol type="bool" name="config_mms_content_disposition_support" /> <java-symbol type="string" name="config_ims_package" /> <java-symbol type="bool" name="config_dynamic_bind_ims" /> + <java-symbol type="string" name="config_wwan_network_service_package" /> + <java-symbol type="string" name="config_wlan_network_service_package" /> <java-symbol type="bool" name="config_networkSamplingWakesDevice" /> <java-symbol type="bool" name="config_showMenuShortcutsWhenKeyboardPresent" /> <java-symbol type="bool" name="config_sip_wifi_only" /> diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 63ab76677dc7..c09c5acf9974 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -1808,6 +1808,22 @@ public class CarrierConfigManager { public static final String KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY = "lte_rsrp_thresholds_int_array"; + /** + * Decides when clients try to bind to iwlan network service, which package name will + * the binding intent go to. + * @hide + */ + public static final String KEY_CARRIER_NETWORK_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING + = "carrier_network_service_wlan_package_override_string"; + + /** + * Decides when clients try to bind to wwan (cellular) network service, which package name will + * the binding intent go to. + * @hide + */ + public static final String KEY_CARRIER_NETWORK_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING + = "carrier_network_service_wwan_package_override_string"; + /** The default value for every variable. */ private final static PersistableBundle sDefaults; @@ -1846,6 +1862,8 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_CARRIER_IMS_GBA_REQUIRED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_USE_IMS_FIRST_FOR_EMERGENCY_BOOL, true); + sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING, ""); + sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_INVALID_CHARS_STRING, ""); sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_ESCAPED_CHARS_STRING, ""); sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING, ""); diff --git a/telephony/java/android/telephony/NetworkService.java b/telephony/java/android/telephony/NetworkService.java index 94921de6829b..35682a74744e 100644 --- a/telephony/java/android/telephony/NetworkService.java +++ b/telephony/java/android/telephony/NetworkService.java @@ -28,6 +28,8 @@ import android.os.Message; import android.os.RemoteException; import android.util.SparseArray; +import com.android.internal.annotations.VisibleForTesting; + import java.util.ArrayList; import java.util.List; @@ -38,7 +40,7 @@ import java.util.List; * follow the following format: * ... * <service android:name=".xxxNetworkService" - * android:permission="android.permission.BIND_NETWORK_SERVICE" > + * android:permission="android.permission.BIND_TELEPHONY_NETWORK_SERVICE" > * <intent-filter> * <action android:name="android.telephony.NetworkService" /> * </intent-filter> @@ -68,7 +70,11 @@ public abstract class NetworkService extends Service { private final SparseArray<NetworkServiceProvider> mServiceMap = new SparseArray<>(); - private final INetworkServiceWrapper mBinder = new INetworkServiceWrapper(); + /** + * @hide + */ + @VisibleForTesting + public final INetworkServiceWrapper mBinder = new INetworkServiceWrapper(); /** * The abstract class of the actual network service implementation. The network service provider |