1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.internal.telephony.uicc; 18 19 import android.compat.annotation.UnsupportedAppUsage; 20 21 22 /** 23 * Wrapper class for the USIM Service Table EF. 24 * See 3GPP TS 31.102 Release 10 section 4.2.8 25 */ 26 public final class UsimServiceTable extends IccServiceTable { 27 public enum UsimService { 28 PHONEBOOK, 29 @UnsupportedAppUsage 30 FDN, // Fixed Dialing Numbers 31 FDN_EXTENSION, // FDN extension data in EF_EXT2 32 @UnsupportedAppUsage 33 SDN, // Service Dialing Numbers 34 SDN_EXTENSION, // SDN extension data in EF_EXT3 35 BDN, // Barred Dialing Numbers 36 BDN_EXTENSION, // BDN extension data in EF_EXT4 37 OUTGOING_CALL_INFO, 38 INCOMING_CALL_INFO, 39 @UnsupportedAppUsage 40 SM_STORAGE, 41 SM_STATUS_REPORTS, 42 @UnsupportedAppUsage 43 SM_SERVICE_PARAMS, 44 ADVICE_OF_CHARGE, 45 CAP_CONFIG_PARAMS_2, 46 CB_MESSAGE_ID, 47 CB_MESSAGE_ID_RANGES, 48 GROUP_ID_LEVEL_1, 49 GROUP_ID_LEVEL_2, 50 @UnsupportedAppUsage 51 SPN, // Service Provider Name 52 USER_PLMN_SELECT, 53 @UnsupportedAppUsage 54 MSISDN, 55 IMAGE, 56 LOCALISED_SERVICE_AREAS, 57 EMLPP, // Enhanced Multi-Level Precedence and Preemption 58 EMLPP_AUTO_ANSWER, 59 RFU, 60 GSM_ACCESS, 61 DATA_DL_VIA_SMS_PP, 62 DATA_DL_VIA_SMS_CB, 63 CALL_CONTROL_BY_USIM, 64 MO_SMS_CONTROL_BY_USIM, 65 RUN_AT_COMMAND, 66 IGNORED_1, 67 ENABLED_SERVICES_TABLE, 68 APN_CONTROL_LIST, 69 DEPERSONALISATION_CONTROL_KEYS, 70 COOPERATIVE_NETWORK_LIST, 71 GSM_SECURITY_CONTEXT, 72 CPBCCH_INFO, 73 INVESTIGATION_SCAN, 74 MEXE, 75 OPERATOR_PLMN_SELECT, 76 HPLMN_SELECT, 77 EXTENSION_5, // Extension data for ICI, OCI, MSISDN in EF_EXT5 78 @UnsupportedAppUsage 79 PLMN_NETWORK_NAME, 80 @UnsupportedAppUsage 81 OPERATOR_PLMN_LIST, 82 @UnsupportedAppUsage 83 MBDN, // Mailbox Dialing Numbers 84 @UnsupportedAppUsage 85 MWI_STATUS, // Message Waiting Indication status 86 @UnsupportedAppUsage 87 CFI_STATUS, // Call Forwarding Indication status 88 IGNORED_2, 89 SERVICE_PROVIDER_DISPLAY_INFO, 90 MMS_NOTIFICATION, 91 MMS_NOTIFICATION_EXTENSION, // MMS Notification extension data in EF_EXT8 92 GPRS_CALL_CONTROL_BY_USIM, 93 MMS_CONNECTIVITY_PARAMS, 94 NETWORK_INDICATION_OF_ALERTING, 95 VGCS_GROUP_ID_LIST, 96 VBS_GROUP_ID_LIST, 97 PSEUDONYM, 98 IWLAN_USER_PLMN_SELECT, 99 IWLAN_OPERATOR_PLMN_SELECT, 100 USER_WSID_LIST, 101 OPERATOR_WSID_LIST, 102 VGCS_SECURITY, 103 VBS_SECURITY, 104 WLAN_REAUTH_IDENTITY, 105 MM_STORAGE, 106 GBA, // Generic Bootstrapping Architecture 107 MBMS_SECURITY, 108 DATA_DL_VIA_USSD, 109 EQUIVALENT_HPLMN, 110 TERMINAL_PROFILE_AFTER_UICC_ACTIVATION, 111 EQUIVALENT_HPLMN_PRESENTATION, 112 LAST_RPLMN_SELECTION_INDICATION, 113 OMA_BCAST_PROFILE, 114 GBA_LOCAL_KEY_ESTABLISHMENT, 115 TERMINAL_APPLICATIONS, 116 SPN_ICON, 117 PLMN_NETWORK_NAME_ICON, 118 USIM_IP_CONNECTION_PARAMS, 119 IWLAN_HOME_ID_LIST, 120 IWLAN_EQUIVALENT_HPLMN_PRESENTATION, 121 IWLAN_HPLMN_PRIORITY_INDICATION, 122 IWLAN_LAST_REGISTERED_PLMN, 123 EPS_MOBILITY_MANAGEMENT_INFO, 124 @UnsupportedAppUsage 125 ALLOWED_CSG_LISTS_AND_INDICATIONS, 126 CALL_CONTROL_ON_EPS_PDN_CONNECTION_BY_USIM, 127 HPLMN_DIRECT_ACCESS, 128 ECALL_DATA, 129 @UnsupportedAppUsage 130 OPERATOR_CSG_LISTS_AND_INDICATIONS, 131 @UnsupportedAppUsage 132 SM_OVER_IP, 133 @UnsupportedAppUsage 134 CSG_DISPLAY_CONTROL, 135 IMS_COMMUNICATION_CONTROL_BY_USIM, 136 EXTENDED_TERMINAL_APPLICATIONS, 137 UICC_ACCESS_TO_IMS, 138 NAS_CONFIG_BY_USIM 139 } 140 UsimServiceTable(byte[] table)141 public UsimServiceTable(byte[] table) { 142 super(table); 143 } 144 145 @UnsupportedAppUsage isAvailable(UsimService service)146 public boolean isAvailable(UsimService service) { 147 return super.isAvailable(service.ordinal()); 148 } 149 150 @Override getTag()151 protected String getTag() { 152 return "UsimServiceTable"; 153 } 154 155 @Override getValues()156 protected Object[] getValues() { 157 return UsimService.values(); 158 } 159 } 160