| /* |
| * Copyright (C) 2021 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.hardware.radio.network; |
| |
| import android.hardware.radio.AccessNetwork; |
| import android.hardware.radio.network.CdmaRoamingType; |
| import android.hardware.radio.network.EmergencyMode; |
| import android.hardware.radio.network.EmergencyNetworkScanTrigger; |
| import android.hardware.radio.network.IRadioNetworkIndication; |
| import android.hardware.radio.network.IRadioNetworkResponse; |
| import android.hardware.radio.network.IndicationFilter; |
| import android.hardware.radio.network.NetworkScanRequest; |
| import android.hardware.radio.network.NrDualConnectivityState; |
| import android.hardware.radio.network.PrioritizedNetworkScanRequest; |
| import android.hardware.radio.network.RadioAccessSpecifier; |
| import android.hardware.radio.network.RadioBandMode; |
| import android.hardware.radio.network.SatelliteNetworkInfo; |
| import android.hardware.radio.network.SignalThresholdInfo; |
| import android.hardware.radio.network.UsageSetting; |
| |
| /** |
| * This interface is used by telephony and telecom to talk to cellular radio for network APIs. |
| * All functions apply to both terrestrial and extraterrestrial (satellite) based cellular networks. |
| * All the functions have minimum one parameter: |
| * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the |
| * duration of a method call. If clients provide colliding serials (including passing the same |
| * serial to different methods), multiple responses (one for each method call) must still be served. |
| * setResponseFunctions must work with IRadioNetworkResponse and IRadioNetworkIndication. |
| * @hide |
| */ |
| @VintfStability |
| oneway interface IRadioNetwork { |
| /** |
| * Requests bitmap representing the currently allowed network types. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getAllowedNetworkTypesBitmapResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getAllowedNetworkTypesBitmap(in int serial); |
| |
| /** |
| * Get the list of band modes supported by RF. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getAvailableBandModesResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| * |
| * @deprecated Android Telephony framework doesn't use this. |
| */ |
| void getAvailableBandModes(in int serial); |
| |
| /** |
| * Scans for available networks |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getAvailableNetworksResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getAvailableNetworks(in int serial); |
| |
| /** |
| * Get all the barring info for the current camped cell applicable to the current user. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getBarringInfoResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getBarringInfo(in int serial); |
| |
| /** |
| * Request the actual setting of the roaming preferences in CDMA in the modem |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getCdmaRoamingPreferenceResponse() |
| * |
| * This is available when android.hardware.telephony.cdma is defined. |
| * |
| * @deprecated Legacy CDMA is unsupported. |
| */ |
| void getCdmaRoamingPreference(in int serial); |
| |
| /** |
| * Request all of the current cell information known to the radio. The radio must return a list |
| * of all current cells, including the neighboring cells. If for a particular cell information |
| * isn't known then the appropriate unknown value will be returned. |
| * This does not cause or change the rate of unsolicited cellInfoList(). |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getCellInfoListResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getCellInfoList(in int serial); |
| |
| /** |
| * Request current data registration state. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getDataRegistrationStateResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getDataRegistrationState(in int serial); |
| |
| /** |
| * Request current IMS registration state |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getImsRegistrationStateResponse() |
| * |
| * This is available when android.hardware.telephony.ims is defined. |
| * |
| * @deprecated Deprecated starting from Android U. |
| */ |
| void getImsRegistrationState(in int serial); |
| |
| /** |
| * Query current network selection mode |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getNetworkSelectionModeResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getNetworkSelectionMode(in int serial); |
| |
| /** |
| * Request current operator ONS or EONS |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getOperatorResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getOperator(in int serial); |
| |
| /** |
| * Requests current signal strength and associated information. Must succeed if radio is on. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getSignalStrengthResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getSignalStrength(in int serial); |
| |
| /** |
| * Get which bands the modem's background scan is acting on. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getSystemSelectionChannelsResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getSystemSelectionChannels(in int serial); |
| |
| /** |
| * Query the radio technology type (3GPP/3GPP2) used for voice. Query is valid only |
| * when radio state is not RADIO_STATE_UNAVAILABLE |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getVoiceRadioTechnologyResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getVoiceRadioTechnology(in int serial); |
| |
| /** |
| * Request current voice registration state. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.getVoiceRegistrationStateResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void getVoiceRegistrationState(in int serial); |
| |
| /** |
| * Is E-UTRA-NR Dual Connectivity enabled |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.isNrDualConnectivityEnabledResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void isNrDualConnectivityEnabled(in int serial); |
| |
| /** |
| * When response type received from a radio indication or radio response is |
| * RadioIndicationType:UNSOLICITED_ACK_EXP or RadioResponseType:SOLICITED_ACK_EXP respectively, |
| * acknowledge the receipt of those messages by sending responseAcknowledgement(). |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void responseAcknowledgement(); |
| |
| /** |
| * Requests to set the network type for searching and registering. Instruct the radio to |
| * *only* accept the types of network provided. In case of an emergency call, the modem is |
| * authorized to bypass this restriction. |
| * |
| * @param serial Serial number of request. |
| * @param networkTypeBitmap a 32-bit bearer bitmap of RadioAccessFamily |
| * |
| * Response function is IRadioNetworkResponse.setAllowedNetworkTypesBitmapResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setAllowedNetworkTypesBitmap(in int serial, in int networkTypeBitmap); |
| |
| /** |
| * Assign a specified band for RF configuration. |
| * |
| * @param serial Serial number of request. |
| * @param mode RadioBandMode |
| * |
| * Response function is IRadioNetworkResponse.setBandModeResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| * |
| * @deprecated Android Telephony framework doesn't use this. |
| */ |
| void setBandMode(in int serial, in RadioBandMode mode); |
| |
| /** |
| * Change call barring facility password |
| * |
| * @param serial Serial number of request. |
| * @param facility facility string code from TS 27.007 7.4 (eg "AO" for BAOC) |
| * @param oldPassword old password |
| * @param newPassword new password |
| * |
| * Response function is IRadioNetworkResponse.setBarringPasswordResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setBarringPassword( |
| in int serial, in String facility, in String oldPassword, in String newPassword); |
| |
| /** |
| * Request to set the roaming preferences in CDMA |
| * |
| * @param serial Serial number of request. |
| * @param type CdmaRoamingType defined in types.hal |
| * |
| * Response function is IRadioNetworkResponse.setCdmaRoamingPreferenceResponse() |
| * |
| * This is available when android.hardware.telephony.cdma is defined. |
| * |
| * @deprecated Legacy CDMA is unsupported. |
| */ |
| void setCdmaRoamingPreference(in int serial, in CdmaRoamingType type); |
| |
| /** |
| * Sets the minimum time between when unsolicited cellInfoList() must be invoked. |
| * A value of 0, means invoke cellInfoList() when any of the reported information changes. |
| * Value of RadioConst:VALUE_UNAVAILABLE means never issue a unsolicited cellInfoList(). |
| * |
| * @param serial Serial number of request. |
| * @param rate minimum time in milliseconds to indicate time between unsolicited cellInfoList() |
| * |
| * Response function is IRadioNetworkResponse.setCellInfoListRateResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setCellInfoListRate(in int serial, in int rate); |
| |
| /** |
| * Sets the indication filter. Prevents the reporting of specified unsolicited indications from |
| * the radio. This is used for power saving in instances when those indications are not needed. |
| * If unset, defaults to IndicationFilter:ALL. |
| * |
| * @param serial Serial number of request. |
| * @param indicationFilter 32-bit bitmap of IndicationFilter. Bits set to 1 indicate the |
| * indications are enabled. See IndicationFilter for the definition of each bit. |
| * |
| * Response function is IRadioNetworkResponse.setIndicationFilterResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setIndicationFilter(in int serial, in int indicationFilter); |
| |
| /** |
| * Sets the link capacity reporting criteria. The resulting reporting criteria are the AND of |
| * all the supplied criteria. Note that reporting criteria must be individually set for each |
| * RAN. If unset, reporting criteria for that RAN are implementation-defined. |
| * |
| * @param serial Serial number of request. |
| * @param hysteresisMs A hysteresis time in milliseconds to prevent flapping. A value of 0 |
| * disables hysteresis. |
| * @param hysteresisDlKbps An interval in kbps defining the required magnitude change between DL |
| * reports. hysteresisDlKbps must be smaller than the smallest threshold delta. A value |
| * of 0 disables hysteresis. |
| * @param hysteresisUlKbps An interval in kbps defining the required magnitude change between UL |
| * reports. hysteresisUlKbps must be smaller than the smallest threshold delta. A value |
| * of 0 disables hysteresis. |
| * @param thresholdsDownlinkKbps A vector of trigger thresholds in kbps for downlink reports. A |
| * vector size of 0 disables the use of DL thresholds for reporting. |
| * @param thresholdsUplinkKbps A vector of trigger thresholds in kbps for uplink reports. A |
| * vector size of 0 disables the use of UL thresholds for reporting. |
| * @param accessNetwork The type of network for which to apply these thresholds. |
| * |
| * Response function is IRadioNetworkResponse.setLinkCapacityReportingCriteriaResponse(). |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setLinkCapacityReportingCriteria(in int serial, in int hysteresisMs, |
| in int hysteresisDlKbps, in int hysteresisUlKbps, in int[] thresholdsDownlinkKbps, |
| in int[] thresholdsUplinkKbps, in AccessNetwork accessNetwork); |
| |
| /** |
| * Enables/disables network state change notifications due to changes in LAC and/or CID (for |
| * GSM). Basically +CREG=2 vs. +CREG=1 (TS 27.007). |
| * The Radio implementation must default to "updates enabled" when the screen is on and |
| * "updates disabled" when the screen is off. |
| * |
| * @param serial Serial number of request. |
| * @param enable true=updates enabled (+CREG=2), false=updates disabled (+CREG=1) |
| * |
| * Response function is IRadioNetworkResponse.setLocationUpdatesResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| * |
| * @deprecated Android Telephony framework doesn't use this. |
| */ |
| void setLocationUpdates(in int serial, in boolean enable); |
| |
| /** |
| * Specify that the network must be selected automatically. |
| * This request must not respond until the new operator is selected and registered. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.setNetworkSelectionModeAutomaticResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setNetworkSelectionModeAutomatic(in int serial); |
| |
| /** |
| * Manually select a specified network. This request must not respond until the new operator is |
| * selected and registered. Per TS 23.122, the RAN is just the initial suggested value. |
| * If registration fails, the RAN is not available afterwards, or the RAN is not within the |
| * network types specified by IRadioNetwork::setAllowedNetworkTypeBitmap, then the modem will |
| * need to select the next best RAN for network registration. |
| * |
| * @param serial Serial number of request. |
| * @param operatorNumeric String specifying MCCMNC of network to select (eg "310170"). |
| * @param ran Initial suggested access network type. If value is UNKNOWN, the modem will select |
| * the next best RAN for network registration. |
| * |
| * Response function is IRadioNetworkResponse.setNetworkSelectionModeManualResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setNetworkSelectionModeManual( |
| in int serial, in String operatorNumeric, in AccessNetwork ran); |
| |
| /** |
| * Enable or disable E-UTRA-NR dual connectivity. If disabled then UE will not connect |
| * to secondary carrier. |
| * |
| * @param serial Serial number of request. |
| * @param nrDualConnectivityState expected NR dual connectivity state. |
| * 1: Enable NR dual connectivity {NrDualConnectivityState:ENABLE} |
| * 2: Disable NR dual connectivity {NrDualConnectivityState:DISABLE} |
| * 3: Disable NR dual connectivity and force secondary cell to be released |
| * {NrDualConnectivityState:DISABLE_IMMEDIATE} |
| * |
| * Response function is IRadioNetworkResponse.setNrDualConnectivityStateResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setNrDualConnectivityState( |
| in int serial, in NrDualConnectivityState nrDualConnectivityState); |
| |
| /** |
| * Set response functions for network radio requests and indications. |
| * |
| * @param radioNetworkResponse Object containing response functions |
| * @param radioNetworkIndication Object containing radio indications |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setResponseFunctions(in IRadioNetworkResponse radioNetworkResponse, |
| in IRadioNetworkIndication radioNetworkIndication); |
| |
| /** |
| * Sets or clears the signal strength reporting criteria for multiple RANs in one request. |
| * |
| * The reporting criteria are set individually for each combination of RAN and measurement type. |
| * For each RAN type, if no reporting criteria are set, then the reporting of SignalStrength for |
| * that RAN is implementation-defined. If any criteria are supplied for a RAN type, then |
| * SignalStrength is only reported as specified by those criteria. For any RAN types not defined |
| * by this HAL, reporting is implementation-defined. |
| * |
| * @param serial Serial number of request. |
| * @param signalThresholdInfos Collection of SignalThresholdInfo specifying the reporting |
| * criteria. See SignalThresholdInfo for details. |
| * |
| * Response function is IRadioNetworkResponse.setSignalStrengthReportingCriteriaResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setSignalStrengthReportingCriteria( |
| in int serial, in SignalThresholdInfo[] signalThresholdInfos); |
| |
| /** |
| * Enables/disables supplementary service related notifications from the network. |
| * Notifications are reported via unsolSuppSvcNotification(). |
| * |
| * @param serial Serial number of request. |
| * @param enable true = notifications enabled, false = notifications disabled. |
| * |
| * Response function is IRadioNetworkResponse.setSuppServiceNotificationsResponse() |
| * |
| * This is available when android.hardware.telephony.calling is defined. |
| * |
| * @deprecated Android Telephony framework doesn't use this. |
| */ |
| void setSuppServiceNotifications(in int serial, in boolean enable); |
| |
| /** |
| * Specify which bands modem's background scan must act on. If specifyChannels is true, it only |
| * scans bands specified in specifiers. If specifyChannels is false, it scans all bands. For |
| * example, CBRS is only on LTE band 48. By specifying this band, modem saves more power. |
| * |
| * @param serial Serial number of request. |
| * @param specifyChannels whether to scan bands defined in specifiers. |
| * @param specifiers which bands to scan. Only used if specifyChannels is true. |
| * |
| * Response function is IRadioNetworkResponse.setSystemSelectionChannelsResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setSystemSelectionChannels( |
| in int serial, in boolean specifyChannels, in RadioAccessSpecifier[] specifiers); |
| |
| /** |
| * Starts a network scan. |
| * |
| * On devices launching with VINTF target level 202604 or later, for all Radio Access Networks, |
| * the channels specified in {@link RadioAccessSpecifier} must correspond to the bands |
| * specified in {@link RadioAccessSpecifier}. On older devices, this requirement is not |
| * enforced but strongly recommended. |
| * |
| * @param serial Serial number of request. |
| * @param request Defines the radio networks/bands/channels which need to be scanned. |
| * |
| * Response function is IRadioNetworkResponse.startNetworkScanResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void startNetworkScan(in int serial, in NetworkScanRequest request); |
| |
| /** |
| * Stops ongoing network scan |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.stopNetworkScanResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void stopNetworkScan(in int serial); |
| |
| /** |
| * Requests that network personalization be deactivated |
| * |
| * @param serial Serial number of request. |
| * @param netPin Network depersonalization code |
| * |
| * Response function is IRadioNetworkResponse.supplyNetworkDepersonalizationResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void supplyNetworkDepersonalization(in int serial, in String netPin); |
| |
| /** |
| * Set the UE usage setting for data/voice centric usage. |
| * |
| * <p>Sets the usage setting in accordance with 3gpp 24.301 sec 4.3 and 3gpp 24.501 sec 4.3. |
| * <p>This value must be independently preserved for each SIM; (setting the value is not a |
| * "global" override). |
| * |
| * @param serial Serial number of request. |
| * @param usageSetting the usage setting for the current SIM. |
| * |
| * This is available when android.hardware.telephony is defined. |
| */ |
| void setUsageSetting(in int serial, in UsageSetting usageSetting); |
| |
| /** |
| * Get the UE usage setting for data/voice centric usage. |
| * |
| * <p>Gets the usage setting in accordance with 3gpp 24.301 sec 4.3 and 3gpp 24.501 sec 4.3. |
| * |
| * @param serial Serial number of request. |
| * |
| * This is available when android.hardware.telephony is defined. |
| */ |
| void getUsageSetting(in int serial); |
| |
| /** |
| * Set the Emergency Mode |
| * |
| * @param serial Serial number of the request. |
| * @param emcModeType Defines the radio emergency mode type/radio network required/ |
| * type of service to be scanned. |
| * |
| * Response function is IRadioEmergencyResponse.setEmergencyModeResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setEmergencyMode(int serial, in EmergencyMode emcModeType); |
| |
| /** |
| * Triggers an Emergency network scan. |
| * |
| * @param serial Serial number of the request. |
| * @param request Contains the preferred networks and type of service to be scanned. |
| * See {@link EmergencyNetworkScanTrigger}. |
| * |
| * Response function is IRadioEmergencyResponse.triggerEmergencyNetworkScanResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void triggerEmergencyNetworkScan(int serial, in EmergencyNetworkScanTrigger request); |
| |
| /** |
| * Cancels ongoing Emergency network scan |
| * |
| * @param serial Serial number of the request. |
| * @param resetScan Indicates how the next {@link #triggerEmergencyNetworkScan} should work. |
| * If {@code true}, then the modem shall start the new scan from the beginning, |
| * otherwise the modem shall resume from the last search. |
| * |
| * Response function is IRadioEmergencyResponse.cancelEmergencyNetworkScan() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void cancelEmergencyNetworkScan(int serial, boolean resetScan); |
| |
| /** |
| * Exits ongoing Emergency Mode |
| * |
| * @param serial Serial number of the request. |
| * |
| * Response function is IRadioEmergencyResponse.exitEmergencyModeResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void exitEmergencyMode(in int serial); |
| |
| /** |
| * Set if null encryption and integrity modes are enabled. If the value of enabled is false |
| * the modem must not allow any network communications with null ciphering (for both signalling |
| * and user data) or null integrity (for signalling) modes for 3G and above, even if the |
| * network only uses null algorithms. This setting must be respected even if |
| * "cipheringDisabled" (as defined in TS 38.331) is in use by the network. |
| * |
| * For 2G, which does not use integrity protection, the modem must only disallow any network |
| * communications with null ciphering. |
| * |
| * In the case when enabled is false, integrity protection for user data is optional, but |
| * ciphering for user data is required. |
| * |
| * In case of an emergency call, the modem must bypass this setting. |
| * |
| * Null ciphering and integrity modes include (but are not limited to): |
| * 2G: A5/0 and GEA0 |
| * 3G: UEA0 and UIA0 |
| * 4G: EEA0 and EIA0 |
| * 5G: NEA0 and NIA0 |
| * |
| * |
| * @param serial Serial number of the request. |
| * @param enabled To allow null encryption/integrity, set to true. |
| * Otherwise, false. |
| * |
| * Response callback is IRadioResponse.setNullCipherAndIntegrityEnabledResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setNullCipherAndIntegrityEnabled(in int serial, in boolean enabled); |
| |
| /** |
| * Get whether null encryption and integrity modes are enabled. |
| * |
| * Null ciphering and integrity modes include, (but are not limited to): |
| * 2G: A5/0, GAE0 (no integrity algorithm supported) |
| * 3G: UEA0 and UIA0 |
| * 4G: EEA0 and EIA |
| * 5G: NEA0 and NIA0 |
| * |
| * @param serial Serial number of the request. |
| * |
| * Response callback is IRadioNetworkResponse.isNullCipherAndIntegrityEnabledResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void isNullCipherAndIntegrityEnabled(in int serial); |
| |
| /** |
| * Checks whether N1 mode (access to 5G core network) is enabled or not. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.isN1ModeEnabledResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void isN1ModeEnabled(in int serial); |
| |
| /** |
| * Enables or disables N1 mode (access to 5G core network) in accordance with |
| * 3GPP TS 24.501 4.9. |
| * |
| * Note: The default value of N1 mode shall be based on the modem's internal configuration |
| * as per device or carrier. This API may be invoked on demand first to disable N1 mode and |
| * later to re-enable for certain use case. This setting shall not be persisted by modem. |
| * This setting shall not interfere with the allowed network type bitmap set using |
| * {@link IRadioNetwork#setAllowedNetworkTypesBitmap()} API. |
| * |
| * @param serial Serial number of request. |
| * @param enable {@code true} to enable N1 mode, {@code false} to disable N1 mode. |
| * |
| * Response function is IRadioNetworkResponse.setN1ModeEnabledResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setN1ModeEnabled(in int serial, boolean enable); |
| |
| /** |
| * Get whether pre-auth cellular identifier in-the-clear transparency is enabled. If |
| * IRadioNetworkInterface.setCellularIdentifierTransparencyEnabled has been called, this should |
| * return the value of the `enabled` parameter of the last successful call and false if |
| * IRadioNetworkInterface.setCellularIdentifierTransparencyEnabled has not been called yet. |
| * |
| * @param serial Serial number of request |
| * |
| * Response callback is IRadioNetworkResponse.isCellularIdentifierTransparencyEnabledResponse |
| * |
| * This is available when android.hardware.telephony.access is defined. |
| */ |
| void isCellularIdentifierTransparencyEnabled(in int serial); |
| |
| /** |
| * Enable or disable transparency for in-the-clear cellular identifiers. If the value of enabled |
| * is true, the modem must call IRadioNetworkIndication.cellularIdentifierDisclosed when an |
| * IMSI, IMEI, or unciphered SUCI (in 5G SA) appears in one of the following UE-initiated NAS |
| * messages before a security context is established. |
| * |
| * Note: Cellular identifiers disclosed in uplink messages covered under a NAS Security Context |
| * as well as identifiers disclosed in downlink messages are out of scope. |
| * |
| * This feature applies to 2g, 3g, 4g, and 5g (SA and NSA) messages sent before a security |
| * context is established. In scope message definitions and their associated spec references can |
| * be found in NasProtocolMessage. |
| * |
| * If the value of enabled is false, the modem must not call |
| * IRadioNetworkIndication.sentCellularIdentifierDisclosure again until a subsequent call |
| * re-enables this functionality. The modem may choose to stop tracking cellular identifiers in |
| * the clear during this time. |
| * |
| * @param serial Serial number of request |
| * @param enabled Whether or not to enable sending indications for cellular identifiers in the |
| * clear |
| * |
| * Response function is IRadioNetworkResponse.setCellularIdentifierTransparencyEnabledResponse |
| * |
| * This is available when android.hardware.telephony.access is defined. |
| */ |
| void setCellularIdentifierTransparencyEnabled(in int serial, in boolean enabled); |
| |
| /** |
| * Enables or disables security algorithm update reports via indication API |
| * {@link IRadioNetworkIndication.securityAlgorithmsUpdated()}. |
| * |
| * @param serial Serial number of request. |
| * @param enable {@code true} to enable security algorithm update reports, {@code false} to |
| * disable. |
| * |
| * Response function is IRadioNetworkResponse.setSecurityAlgorithmsUpdatedEnabledResponse() |
| * |
| * This is available when android.hardware.telephony.access is defined. |
| */ |
| void setSecurityAlgorithmsUpdatedEnabled(in int serial, boolean enable); |
| |
| /** |
| * Checks whether security algorithm update reports are enabled via indication API |
| * {@link IRadioNetworkIndication.securityAlgorithmsUpdated()}. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.isSecurityAlgorithmsUpdatedEnabledResponse() |
| * |
| * This is available when android.hardware.telephony.access is defined. |
| */ |
| void isSecurityAlgorithmsUpdatedEnabled(in int serial); |
| |
| /** |
| * Set the non-terrestrial PLMN with lower priority than terrestrial networks. |
| * MCC/MNC broadcast by the non-terrestrial networks may not be included in OPLMNwACT file on |
| * SIM profile. Acquisition of satellite based system is lower priority to terrestrial |
| * networks. UE shall make all attempts to acquire terrestrial service prior to camping on |
| * satellite LTE service. |
| * |
| * The modem should attempt to attach to any non-terrestrial network not defined in |
| * allSatellitePlmnArray and wait for the attach response to confirm if the PLMN is allowed. |
| * One usecase in which modem can identify satellite PLMNs outside of allSatellitePlmnArray |
| * NR NTN Networks |
| * |
| * @param serial Serial number of request |
| * @param carrierPlmnArray Array of roaming PLMN used for connecting to satellite networks |
| * supported by user subscription. |
| * @param allSatellitePlmnArray allSatellitePlmnArray contains all the PLMNs present in |
| * carrierPlmnArray and also list of satellite PLMNs that are not |
| * supported by the carrier. |
| * Modem should use the allSatellitePlmnArray to identify satellite |
| * PLMNs that are not supported by the carrier and make sure not to |
| * attach to them. |
| * |
| * Response function is IRadioNetworkResponse.setSatellitePlmnResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| * |
| * @deprecated use IRadioNetwork.setSatelliteNetworkInfo |
| */ |
| void setSatellitePlmn( |
| in int serial, in String[] carrierPlmnArray, in String[] allSatellitePlmnArray); |
| |
| /** |
| * Enable or disable satellite in the cellular modem associated with a carrier. |
| * |
| * Refer setSatellitePlmn for the details of satellite PLMN scanning process. Once modem is |
| * disabled, modem should not attach to any of the PLMNs present in allSatellitePlmnArray. |
| * If modem is enabled, modem should attach to only PLMNs present in carrierPlmnArray. |
| * |
| * If satellite is disabled, the modem must not attach to any satellite PLMNs. This includes |
| * networks not specified in the allSatellitePlmnArray from the setSatellitPLMN API. |
| * The modem can identify them as a satellite network from the SIB in case of NR NTN networks. |
| * |
| * @param serial Serial number of request |
| * @param satelliteEnabled {@code true} to enable satellite, {@code false} to disable satellite. |
| * |
| * Response function is IRadioNetworkResponse.setSatelliteEnabledForCarrier() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setSatelliteEnabledForCarrier(in int serial, boolean satelliteEnabled); |
| |
| /** |
| * Check whether satellite is enabled in the cellular modem associated with a carrier. |
| * |
| * @param serial Serial number of request |
| * |
| * Response function is IRadioNetworkResponse.isSatelliteEnabledForCarrier() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void isSatelliteEnabledForCarrier(in int serial); |
| |
| /** |
| * Set the satellite network information including PLMNs, supported technologies and |
| * frequencies. |
| * |
| * <p>This API replaces {@link #setSatellitePlmn} to provide more detailed information about |
| * satellite networks, such as satellite technology and frequencies, to help the modem |
| * prioritize network scanning. |
| * |
| * <p>MCC/MNC broadcast by the non-terrestrial networks may not be included in OPLMNwACT file on |
| * SIM profile. Acquisition of satellite based system is lower priority to terrestrial |
| * networks. UE shall make all attempts to acquire terrestrial service prior to camping on |
| * satellite service. |
| * |
| * One usecase in which modem can identify satellite PLMNs outside |
| * of {@code satelliteNetworkInfo.allowedPlmns} and {@code satelliteNetworkInfo.disallowedPlmns} |
| * is NR NTN Networks. The modem shall attempt to attach to any non-terrestrial network not |
| * defined in {@code satelliteNetworkInfo.allowedPlmns} as well as |
| * {@code satelliteNetworkInfo.disallowedPlmns} and wait for the attach response to confirm |
| * whether user is allowed to attach or not. |
| * |
| * @param serial Serial number of request |
| * @param satelliteNetworkInfo Configuration containing allowed and all known satellite PLMNs |
| * with their respective technologies and frequencies. |
| * |
| * Response function is IRadioNetworkResponse.setSatelliteNetworkInfoResponse() |
| * |
| * This is available when android.hardware.telephony.radio.access is defined. |
| */ |
| void setSatelliteNetworkInfo(in int serial, in SatelliteNetworkInfo satelliteNetworkInfo); |
| |
| /** |
| * Enable a prioritized scanning mode for specific networks. |
| * This is an optional API. If this API is implemented, |
| * {@link #disablePrioritizedNetworkScan} must also be implemented. |
| * |
| * <p>The modem shall prioritize scanning for the target networks, |
| * overriding standard power-saving back-off timers. This scanning must persist until |
| * an attachment is successful or the mode is explicitly disabled using |
| * {@link disablePrioritizedNetworkScan}. After successful attachment, if the network |
| * is lost, modem must go back to prioritized scanning. |
| * |
| * <p>The modem should do the prioritized scanning only when it is in out of service state. |
| * <p> Note: A "limited service" state is considered out-of-service for this operation. |
| * <p> Note: The cell reselection priority must not be changed based upon scanRequest. |
| * |
| * @param serial Serial number of request. |
| * @param scanRequest The prioritized scan request info. |
| * |
| * Response function is IRadioNetworkResponse.enablePrioritizedNetworkScanResponse() |
| */ |
| void enablePrioritizedNetworkScan(in int serial, in PrioritizedNetworkScanRequest scanRequest); |
| |
| /** |
| * Disable a prioritized scanning mode for specific networks. |
| * This is an optional API. It must be implemented if |
| * {@link #enablePrioritizedNetworkScan} is implemented. |
| * |
| * @param serial Serial number of request. |
| * |
| * Response function is IRadioNetworkResponse.disablePrioritizedNetworkScanResponse() |
| */ |
| void disablePrioritizedNetworkScan(in int serial); |
| |
| /** |
| * Retrieves the set of alert categories supported by the modem. |
| * |
| * Returns a list of AlertCategory enums that the modem implementation is |
| * capable of detecting and reporting. |
| * |
| * Note: an empty list indicates that no alert categories are supported. |
| * |
| * @param serial Serial number of request |
| * |
| * Response function is IRadioNetworkResponse.getSupportedNetworkAlertCategories() |
| */ |
| void getSupportedNetworkAlertCategories(in int serial); |
| } |