Sim device fault prevention and repair
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- GOOGLE LLC
- Filing Date
- 2023-11-10
- Publication Date
- 2026-06-24
AI Technical Summary
Exposure of user equipment (UE) to conditions such as water, extreme heat, corrosion, static electricity, or cosmic radiation increases the likelihood of data corruption on the subscriber identity module (SIM) device, leading to faults in cellular network functionality, including delays, network interruptions, and decreased connectivity.
The implementation of a SIM recovery circuitry in the UE that monitors commands and metrics of the SIM device, detects performance trends indicating faults, and attempts to repair or skip commands associated with these faults to prevent further issues.
The solution effectively prevents and repairs SIM device faults, reducing the occurrence of delays, network interruptions, and other connectivity issues, thereby enhancing user experience and maintaining the integrity of cellular network functionality.
Smart Images

Figure US2023079398_15052025_PF_FP_ABST
Abstract
Description
SIM DEVICE FAULT PREVENTION AND REPAIRBACKGROUND
[0001] Some user equipment (UE) is configured to establish a data connection between the UE and a cell of a cellular network such that the UE is attached to the cellular network. To this end, the UE includes a modem that transmits and receives data to and from the cellular network. Further, the UE also includes a subscriber identity module (SIM) device that stores identification and subscriber information used to authenticate the UE on the cellular network, provide calling functionality for the UE on the cellular network, provide messaging functionality for the UE on the cellular network, and the like. However, exposing the UE to certain conditions, such as water, extreme heat, corrosion, static electricity, or cosmic radiation increases the likelihood that data stored on the SIM device becomes corrupted. This corrupted data on the SIM device increases the likelihood of introducing faults in the functionality of the UE on the cellular network such as delays in calls, delays in messages, decreased sound quality for calls, network interruptions, slow connectivity, and the like, which negatively impacts user experience.BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The present disclosure may be better understood, and its numerous features and advantages are made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
[0003] FIG. 1 is a block diagram of a cellular networking framework that includes a user equipment (UE) configured for subscriber identity module (SIM) device fault prevention and recovery, in accordance with some embodiments.
[0004] FIG. 2 is a block diagram of a UE configured for SIM device fault prevention and repair, in accordance with some embodiments.
[0005] FIG. 3 is a block diagram of an example SIM fault detection circuitry configured to identify causes of SIM device faults, in accordance with some embodiments.
[0006] FIG. 4 is a flow diagram of an example operation for preventing one or more SIM device faults, in accordance with some embodiments.
[0007] FIG. 5 is a flow diagram of an example method for preventing and repairing one or more SIM device faults, in accordance with some embodiments.
[0008] FIG. 6 is a flow diagram of an example method for generating a failure notification, in accordance with some embodiments.SUMMARY OF EMBODIMENTS
[0009] Techniques and systems described herein are directed to a user equipment (UE) configured for subscriber identity module (SIM) device fault prevention and recovery. According to an example embodiment, a method includes detecting a fault associated with a SIM device of a UE. Further, the method can include skipping a command issued to the SIM device based on the command being associated with the fault such that the SIM device does not execute the command.
[0010] In embodiments, the method can also include monitoring one or more metrics of the UE and determining a performance trend based on the one or more metrics, wherein the performance trend indicates the fault. Additionally, the method can include updating a skip counter in response to skipping the command. The skip counter can represent a total number of skipped commands. Further, the method may include, based on a number of skipped commands, performing a repair attempt on at least a portion of the SIM device. According to embodiments, the method can also include updating recovery counter in response to performing the repair attempt, wherein the recovery counter represents a number of repair attempts. As well, the method can include, based on the number of repair attempts, displaying a failure notification on the UE.
[0011] Additionally, in embodiments, the method can include, based on the command being associated with authenticating the UE on a cellular network, allowing the SIM device to execute the command. Also, the method can include identifying a most recent sequence of commands associated with the fault. The command may be skipped based on the command being associated with the most recent sequence ofcommands associated with the fault. Further, the command may be a last command in the most recent sequence of commands associated with the fault.
[0012] In another example embodiment, a method includes determining a fault associated with a SIM device of a UE based on one or more monitored metrics of the SIM device. Further, the method can include identifying an elementary file of the SIM device associated with the fault. Also, the method can include skipping a command indicating the elementary file such that the SIM device does not execute the command.
[0013] According to embodiments, the method may also include determining a performance trend based on the one or more monitored metrics. The performance trend may indicate the fault. In embodiments, the command may indicate an application associated with the elementary file. As well, the method can include performing a repair attempt on the elementary file based on a number of skipped commands. Further, the method can include, based on a number of repair attempts, displaying a failure notification on the UE.
[0014] Additionally, in embodiments, the method can include executing the command based on the elementary file being associated with authenticating the UE on a cellular network. The method may also include identifying a most recent sequence of commands associated with the fault. The elementary file may be indicated by one or more commands of the most recent sequence of commands associated with the fault. Further, the method can include, based on determining the fault, generating a failure report and transmitting the failure report to a database.
[0015] In another example embodiments, a system includes a UE. The UE can include one or more processors and a memory coupled to the one or more processors. The memory may store executable instructions configured to manipulate the one or more processors to perform any method disclosed herein.
[0016] Another example embodiment includes a system having a UE. The UE can include a SIM device and a SIM recovery circuitry. The SIM recovery circuitry can be configured to perform any method disclosed herein.DETAILED DESCRIPTION
[0017] In response to user equipment (UE) (e.g., one or more compute-enabled phones, tablet computers, personal computers, laptop computers, compute-enabled wearable devices, Internet of Things (loT) devices, routers, mobile hotspot devices, automotive devices, manufacturing devices) being powered on, the UE is configured to attach (e.g., communicatively couple) to a cellular network. To this end, the UE includes a modem configured to transmit and receive data from the cellular network and also includes a subscriber identity module (SIM) device that stores identification and subscriber information associated with the UE. For example, such a SIM device stores one or more elementary files each including data (e.g., encryption keys, subscriber information, device information, network codes) and one or more applications necessary for, helpful for, or aiding in communicatively coupling the UE to a cellular network. These applications include, for example, user authentication applications, data encryption applications, workflow applications, or any combination thereof, to name a few. To attach to a cellular network, a processor of the UE issues one or more commands to the SIM device that indicate one or more elementary files of the SIM device, applications of the SIM device, operations to be performed by the SIM device, or any combination thereof. Based on the commands from the processor, the SIM device performs one or more actions such as providing subscriber information to the modem for transmission to a cellular network, encrypting data, editing elementary files, or the like. The modem of the UE then transmits data from the SIM device (e.g., user information, subscriber data) to a cellular network which, based on the data, authenticates the UE and attaches the UE to a cell of the cellular network. Once connected to the cellular network, the processor of the UE continues to send commands to the SIM device so as to send and receive messages over the cellular network; place and receive calls over the cellular network; connect to the devices over the Internet, or any combination thereof, to name a few.
[0018] However, certain conditions increase the likelihood of introducing faults into the functionality of the SIM device. For example, the UE being exposed to water, extreme heat, corrosion, static electricity, cosmic radiation, or any combination thereof increases the likelihood that data (e.g., elementary files) stored on the SIM device becomes corrupted. When the SIM device uses the corrupted data to execute commands received from a processor, one or more faults such as delays in calls,delays in messages, decreased sound quality for calls, network interruptions, slow connectivity, increased usage of the battery of the UE, or any combination thereof have an increased chance of occurring, which negatively impact user experience. To help correct these faults, systems and techniques disclosed herein include circuitry configured to monitor and correct these faults in the functionality of the SIM device. To this end, a UE includes a SIM recovery circuitry that is configured to monitor the commands issued to the SIM device and monitor one or more metrics of the SIM device. Such metrics include, for example, the power consumption, processing times, memory usage, or any combination thereof of the SIM device. Based on the monitored metrics, the SIM recovery circuitry determines one or more performance trends of the SIM device that represent one or more faults in the functionality of the SIM device. As an example, the SIM recovery circuitry determines performance trends that include an increase in the power consumption of the SIM device, an increase in processing times of the SIM device, an increase in memory usage of the SIM device, or any combination thereof. To determine such performance trends, the SIM recovery circuitry is configured to determine one or more averages, medians, or modes of the monitored metrics; determine one or more rates of change of the monitored metrics; implement one or more trained machine-learning models; implement one or more trained neural networks; or any combination thereof.
[0019] Based on determining a performance trend representing one or more faults in the functionality of the SIM device (e.g., based on detecting one or more faults in the functionality of the SIM device), the SIM recovery circuitry is configured to attempt to repair the represented faults based on one or more monitored commands issued to the SIM device. As an example, the SIM recovery circuitry repairs the data in one or elementary files indicated in a monitored command, repairs an application indicated in a monitored command, resets at least a portion (e.g., a portion indicated in a monitored command) of the SIM device, sets one or more portions (e.g., portions indicated in a monitored command) of the SIM device to a default state, or any combination thereof. After attempting to correct the represented faults, the SIM recovery circuitry again monitors the metrics of the SIM device to determine whether the faults in the functionality of the SIM device have been remedied. For example, the SIM recovery circuitry monitors the metrics of the SIM device to determine one or more performance trends. Based on the performance trends again representing oneor more faults in the functionality of the SIM device, the SIM recovery circuitry again attempts to correct the faults. In this way, the SIM recovery circuitry is configured to help remedy any faults that are introduced into the functionality of the SIM device. Additionally, once the SIM recovery circuitry has reached a threshold number of attempts to correct the faults, the SIM recovery circuitry generates and displays a notification to the user of the UE. Such a notification, for example, indicates that the SIM device is faulty and is likely to need repair. By alerting the user to the faults in the functionality of the SIM device, the user is able to promptly have the SIM card replaced or repaired, improving user experience.
[0020] However, when the SIM recovery circuitry is actively attempting to repair the faults in the functionality of the SIM device, the overall power usage of the UE is increased, which reduces the battery life of the UE. To help increase the battery life of the UE, the SIM recovery circuitry is configured to prevent one or more faults in the functionality of the SIM device before attempting to repair the faults. For example, based on determining a performance trend representing one or more faults in the functionality of the SIM device, the SIM recovery circuitry is configured to identify one or more elementary files, applications, command sequences, or any combination thereof associated with the faults. For example, the SIM recovery circuitry identifies the elementary files indicated by a predetermined number of the most recently received commands when a fault was detected. As another example, the SIM recovery circuitry identifies the applications indicated by a predetermined number of the most recently received commands when a fault was detected. As yet another example, the SIM recovery circuitry identifies a command sequence likely to cause a fault that includes a predetermined number of the most recently received commands when a fault was detected. After identifying one or more elementary files, applications, command sequences likely to cause a fault, or any combination thereof associated with one or more faults, the SIM recovery circuitry is configured to skip one or more commands associated with the identified elementary files, applications, command sequences likely to cause a fault, or any combination thereof.
[0021] As an example, in response to the processor of the UE issuing a command, the SIM recovery circuitry first determines whether that command is associated with one or more elementary files, applications, command sequences likely to cause afault, or any combination thereof associated with one or more detected faults. For example, the SIM recovery circuitry determines whether the command indicates an elementary file associated with one or more detected faults. As another example, the SIM recovery circuitry determines whether the command indicates an application associated with one or more detected faults. As yet another example, the SIM recovery circuitry determines whether the command is the last command in a sequence of received commands that matches one or more command sequences likely to cause a fault. Based on the SIM recovery circuitry determining the command is not associated with one or more elementary files, applications, command sequences likely to cause a fault, or any combination thereof associated with one or more detected faults, the SIM recovery circuitry allows the command to be executed by the SIM device. Based on the SIM recovery circuitry determining whether the command is associated with one or more elementary files, applications, command sequences likely to cause a fault, or any combination thereof associated with one or more detected faults, the SIM recovery circuitry determines whether the command indicates a critical elementary file, critical application, a critical function, or any combination thereof. Each critical elementary file, critical application, and critical function, for example, is necessary for authenticating the LIE on a cellular network. That is to say, each critical elementary file, critical application, or critical function includes an elementary file, application, or function, respectively, that is necessary for authentication the LIE on a cellular network. Based on the command indicating a critical elementary file, critical application, or critical function, the SIM recovery circuitry allows the command to be executed by the SIM device. Further, based on the command not indicating a critical elementary file, critical application, or a critical function, the SIM recovery circuitry skips the command such that the SIM device does not execute the command. In this way, the SIM recovery circuitry helps prevent further faults in the functionality of the SIM device by skipping commands associated with elementary files, applications, and command sequences likely to cause a fault associated with previous faults.
[0022] To further help correct faults in the SIM device, the SIM recovery circuitry is configured to update one or more software-based counters, hardware-based counters, or both each time a command issued from the processor of the SIM device is skipped. For example, the SIM recovery circuitry updates one or more counterseach time any command is skipped. As another example, the SIM recovery circuitry updates one or more counters each time one or more certain commands are skipped. Based on the counters, the SIM recovery circuitry is configured to attempt to correct one or more detected faults. For example, based on one or more counters being equal to or greater than a threshold amount (e.g., based on one or more commands being skipped a number of times equal to or greater than a threshold amount), the SIM recovery circuitry attempts to repair the data in one or elementary files indicated in a monitored command, repairs an application indicated in a monitored command, resets at least a portion (e.g., a portion indicated in a monitored command) of the SIM device, sets one or more portions (e.g., portions indicated in monitored commands) of the SIM device to a default state, or any combination thereof. Because the SIM recovery circuitry waits until the counters reach a threshold amount before trying to correct one or more faults in the functionality of the SIM device, the SIM recovery circuitry consumes less power when compared to a SIM recovery circuitry that attempts to correct a fault each time a fault is detected.
[0023] FIG. 1 presents a cellular networking framework 100 configured for SIM device fault prevention and recovery, in accordance with some embodiments. To this end, cellular networking framework 100 includes cellular network 116 associated with one or more cellular carriers (e.g., cellular providers). Cellular network 116 is configured to transmit and receive one or more network messages to and from UE 102 and includes, for example, a Global System for Mobile Communication (GSM) cellular network, a Universal Mobile Telecommunications System (UMTS) cellular network, a Long-Term Evolution (LTE) cellular network, a 5G New Radio (NR) cellular network, 5G Technical Forum (5GTF), a 5G Special Interest Group cellular network (5G-SIG), or any combination thereof. Network messages transmitted and received by cellular network 116 include, for example, telephone calls, Voice over Internet Protocol (VoIP) calls, Short Message Service (SMS) messages, Multimedia Messaging Service (MMS) messages, authentication messages, registrations messages, update messages, attach messages, service request messages, or any combination thereof, to name a few. To facilitate the transmission and reception of network messages between cellular network 116 and UE 102, cellular network 116 includes one or more cells 118 configured to receive and transmit network messages to and from UE 102. Each cell 118 includes, for example, mobile base station towers(e.g., “cell towers’’), antennae, transmitters, receivers, digital signal processors, control electronics, Global Positioning System (GPS) receivers, base transceiver stations, or any combination thereof, configured to receive and transmit network messages to and from UE 102. Though the example embodiment illustrated in FIG. 1 presents the cellular network 116 having three cells 118-1 , 118-2, and 118-3, in other embodiments, cellular network 116 may include any number of cells 118 to facilitate the reception and transmission of network messages to and from UE 102.
[0024] UE 102 is configured to transmit and receive network messages from cellular network 116 and includes, for example, a compute-enabled phone (“smartphone’’), tablet computer, personal computer, laptop computer, compute-enabled wearable device (e.g., smartwatch, fitness tracker, smart bracelet), Internet of Things (loT) device, router, mobile hotspot device, an automotive device, a manufacturing device, or any combination thereof, to name a few. In some embodiments, UE 102 includes battery 112 configured to provide power to one or more components (e.g., SIM device 104, SIM recovery circuitry 106, modem 108, processor 110, a memory) of UE 102. According to embodiments, battery 112 includes one or more nickel-cadmium batteries, nickel metal hybrid batteries, lithium-ion batteries, lithium polymer batteries, or the like and is configured to provide one or more predetermined voltages, currents, or both to one or more components of UE 102.
[0025] To transmit and receive network messages from cellular network 116, UE 102 includes or is otherwise connected to processor 110, SIM device 104, and modem 108. Processor 110, for example, includes circuitry connected to a memory (not shown for clarity) and, based on instructions stored in the memory, configured to provide one or more commands, instructions, or both to SIM device 104, modem 108, or both. Such instructions and commands, for example, include data indicating that the SIM device 104 or modem 108 are to perform one or more actions such as authenticate the UE 102 on cellular network 116, generate one or more network messages, handle one or more received network messages (e.g., queue one or more received network messages, provide one or more network messages to other circuitry of UE 102), handle one or more network messages for transmission (e.g., queue one or more network messages for transmission) decrypt data, encrypt data, place calls, receive calls, send messages, receive messages, or any combinationthereof, to name a few. Modem 108 includes circuitry configured to transmit or receive network messages using one or more radio access technologies. Such radio access technologies include a connection method or protocol used to communicatively couple UE 102 to one or more cellular networks 116, for example, 2G network connections (e.g., Global System for Mobile Communications (GSM) protocols, code division multiple access (CDMA) protocols, general packet radio service (GPRS) protocols, enhanced data rates for GSM evolution (EDGE) protocols), 3G network connections (e.g., Universal Mobile Telecommunications System (UMTS) protocols, wideband code division multiple access (W-CDMA) protocols, CDMA-200 protocols, high speed packet access (HSPA) protocols), 4G network communications (e.g., Long Term Evolution (LTE) protocols, Worldwide Interoperability for Microwave Access (WiMAX) protocols), 5G network communications (e.g., 5G New Radio (NR) protocols, 5G Technical Forum (5GTF) protocols, 5G Special Interest Group (5G-SIG) protocols), or any combination thereof. For example, modem 108 is configured to transmit and receive network messages from cellular network 116 using 5G network communications.
[0026] In embodiments, to transmit and receive network messages from cellular network 116, UE 102 is configured to first communicatively couple to (e.g., camp on) one or more cells 118 of cellular network 116. For example, in response to UE 102 powering on, UE 102 is configured to communicatively couple to (e.g., camp on) one or more cells 118 of a cellular network 116 associated with a cellular carrier (e.g., cellular provider). According to embodiments, in response to UE 102 being communicatively coupled to one or more cells 118 of a cellular network 116 associated with a cellular carrier, cellular network 116 is configured to authenticate and register UE 102. To authenticate and register UE 102 on cellular network 116, UE 102 includes SIM device 104. SIM device 104 includes, for example, a SIM card (e.g., full-size card, mini card, micro card, nano card), universal subscriber identity module (USIM), embedded SIM (eSIM), integrated SIM (iSIM), or any combination thereof. According to some embodiments, SIM device 104 is configured to store data, applications, or both necessary for, aiding in, or helpful for authentication UE 102 on cellular network 116. As an example, SIM device 104 stores one or more authentication applications that generate one or more messages used to authenticate UE on cellular network 116. As another example, SIM device 104 stores deviceidentification data, user identification data, or both for UE 102 that is used by one or more applications on the SIM device 104 to authenticate UE 102 on cellular network 116. Such device identification data and user identification data for UE 102 includes, for example, SIM device identification data (e.g., Integrated Circuit Card Identification (ICCID) values, authentication keys (e.g., Ki)), subscriber data (e.g., international mobile subscriber identity (I MSI), local area identity data,), or both associated with UE 102.
[0027] To store data, applications, or both used to authenticate UE 102 on cellular network 116, SIM device 104 includes one or more elementary files that each store at least a portion of an application, data used in authentication, or both. For example, in some embodiments, SIM device 104 includes one or more elementary files organized in one or more dedicated files, master files, or both. According to embodiments, to authenticate UE 102 on cellular network 116, processor 110 issues one or more commands to SIM device 104. Such commands from processor 110, for example, each include data identifying one or more applications, elementary files, or both associated with the authentication of UE 102. Based on receiving the command, SIM device 104 then executes one or more applications so as to authenticate UE 102 on cellular network 116. For example, SIM device 104 generates one or more network messages that include device identification data, user identification data, or both for UE 102 and then provides the network messages to modem 108 for transmission to cellular network 116. Based on receiving the network messages, cellular network 116 authenticates UE 102 by, for example, comparing the device identification data, user identification data, or both indicated in the network messages to data (e.g., user profiles) stored on one or more databases (not shown for clarity).
[0028] Once UE 102 is authenticated on cellular network 116, UE 102 is configured to place calls, receive calls, send messages, receive messages, or any combination thereof to one or more other UE 102 communicatively coupled to cellular network 116. Further, UE 102 is configured to connect to the Internet via cellular network 116 such that UE 102 downloads and uploads data to and from one or more devices connected to the Internet. To help place calls, receive calls, send messages, receive messages, connect to the Internet, or any combination thereof, processor 110 is configured to issue one or more commands to SIM device 104. Such commands, forexample, identify one or more applications to be executed; one or more elementary files to be read, one or more elementary files to be modified, request statuses, manage the connection to cellular network 116 (e.g., manage channels, manage radio access technologies), or any combination thereof. Based on receiving these commands from processor 110, SIM device 104 is configured to perform one or more operations such as executing one or more applications, providing data (e.g., statuses, elementary file data) to processor 110, modifying one or more elementary files, modifying the connection (e.g., channel, radio access technology) to cellular network 116, or any combination thereof.
[0029] However, in some embodiments, LIE 102 being under certain conditions increases the likelihood of introducing faults into the functionality of SIM device 104 as SIM device 104 performs authentication of LIE 102, executes one or more applications, provides data to processor 110, modifies one or more elementary files, modifies the connection to cellular network 116, or any combination thereof. As an example, LIE 102 being exposed to water, extreme heat, corrosion, static electricity, cosmic radiation, or any combination thereof increases the likelihood that data stored in one or more elementary files of SIM device 104 become corrupted. When SIM device 104 performs one or more operations using these corrupted elementary files, the likelihood of introducing one or more faults in the functionality of LIE 102, SIM device 104, or both is increased. Such faults in the functionality of UE 102, SIM device 104, or both include delays in calls placed by UE 102, delays in messages placed by UE 102, decreased sound quality for calls, network interruptions, slow Internet connectivity, increased usage of battery 112, or any combination thereof, which negatively impacts user experience.
[0030] To help correct these faults, UE 102 includes SIM recovery circuitry 106 that is configured to monitor both the commands sent from processor 110 to SIM device 104 and one or more metrics of SIM device 104. These metrics include, for example, the power consumption, processing times, memory usage, or any combination thereof of SIM device 104. Using the monitored metrics, SIM recovery circuitry 106 then determines one or more performance trends of SIM device 104. These performance trends, for example, represent the increase, decrease, or both of one or more monitored metrics over time. In some embodiments, one or more performancetrends indicate one or more faults in the functionality of SIM device 104. As an example, performance trends indicating one or more faults in the functionality of SIM device 104 include an increase in power consumption, increase in processing times, increase in memory usage, or any combination thereof of SIM device 104. To determine one or more performance trends, SIM recovery circuitry 106 is configured to determine one or more averages, medians, or modes of the monitored metrics; determine one or more rates of change of the monitored metrics; implement one or more trained machine-learning models; implement one or more trained neural networks; or any combination thereof.
[0031] Based on determining a performance trend indicating one or more faults in the functionality of SIM device 104, in some embodiments, SIM recovery circuitry 106 is configured to identify the most recent sequence of commands received by the SIM device 104 from processor 110 before the performance trend indicating the faults was determined. This most recent sequence of commands, for example, includes a predetermined number of the most recent commands SIM device 104 received from processor 110 before the faults were detected (e.g., before the performance trend indicating the faults was determined). As an example, a most recent sequence of commands includes the ten most recent commands SIM device 104 received from processor 110. After determining the most recent sequence of commands, SIM recovery circuitry 106 identifies the elementary files, applications, or both indicated by each command of the most recent sequence of commands. SIM recovery circuitry 106 then generates a SIM failure report 122 that includes data indicating the most recent sequence of commands, the identified elementary files, the identified applications, one or more timestamps identifying when the faults were detected, or any combination thereof. According to some embodiments, SIM recovery circuitry 106 then stores the SIM failure report 122 on SIM device 104 or a memory included in or otherwise connected to UE 102. In other embodiments, SIM recovery circuitry 106 sends the SIM failure report 122 to a database 120 via cellular network 116.
[0032] Further, based on determining a performance trend indicating one or more faults in the functionality of SIM device 104 (e.g., after detecting one or more faults in the functionality of SIM device 104), SIM recovery circuitry 106 is configured to attempt to repair the detected faults. For example, in embodiments, SIM recoverycircuitry 106 determines the most recent sequence of commands before the faults were detected and then identifies one or more elementary files, applications, or both indicated in the commands of the most recent sequence of commands. SIM recovery circuitry 106 then repairs the data in one or more of the identified elementary files (e.g., elementary files indicated in the most recent sequence of commands), repairs elementary files associated with an identified application (e.g., applications indicated in the most recent sequence of commands), resets at least a portion of the SIM device, sets one or more portions of the SIM device to a default state, or any combination thereof. After attempting to correct the detected faults, SIM recovery circuitry 106 is configured to continue monitoring the metrics of SIM device 104 so as to determine whether the detected faults have been remedied. As an example, SIM recovery circuitry 106 monitors the metrics of SIM device 104 to determine one or more performance trends and then determines whether such performance trends indicate the detected faults in the functionality of SIM device 104 are still present. In embodiments, based on determining that the detected faults in the functionality of SIM device 104 are still present, SIM recovery circuitry 106 again attempts to repair (e.g., performs a repair attempt for) the detected faults.
[0033] According to some embodiments, based on SIM recovery circuitry 106 detecting one or more faults in the functionality of SIM device 104 (e.g., determining one or more performance trends representing one or more faults), SIM recovery circuitry 106 is configured to generate one or more failure notifications 124. To this end, in embodiments, based on SIM recovery circuitry 106 attempting to repair one or more detected faults a threshold number of times, SIM recovery circuitry 106 is configured to generate one or more failure notifications 124. For example, after attempting to repair one or more detected faults, SIM recovery circuitry 106 is configured to update one or more counters representing the number of times SIM recovery circuitry 106 has attempted to repair detected faults during one life cycle of UE 102. Further, SIM recovery circuitry 106 is configured to compare the values of one or more counters to a recovery threshold to determine whether SIM recovery circuitry 106 has made a number of attempts to repair (e.g., repair attempts for) detected faults equal to or greater than the recovery threshold. Such a recovery threshold, for example, includes a predetermined value indicating a threshold number of attempts to repair faults. Based on the values of one or more counters being equalto or exceeding the recovery threshold, SIM recovery circuitry 106 is configured to generate one or more failure notifications 124. These failure notifications 124, for example, represent displayable data (e.g., text, icons, pictures) indicating that SIM device 104 is faulty, may be faulty, should be repaired, or any combination thereof. Once generating one or more failure notifications 124, SIM recovery circuitry 106 is configured to display the failure notifications 124 on display 114 included in or otherwise connected to LIE 102.
[0034] To help reduce the power consumption of SIM recovery circuitry 106 and extend the battery life of battery 112, SIM recovery circuitry 106 is configured to help prevent one or more detected faults from reoccurring. For example, based on detecting one or more faults in the functionality of SIM device 104, SIM recovery circuitry 106 is configured to first determine the most recent sequence of commands received by SIM device 104 from processor 110. SIM recovery circuitry 106 then identifies the elementary files, applications, or both indicated in the most recent sequence of commands. SIM recovery circuitry 106 is then configured to skip one or more commands received from processor 110 based on the identified elementary files, applications, most recent sequence of commands, or any combination thereof. For example, in response to processor 110 issuing a command, SIM recovery circuitry 106 first determines whether the command indicates an elementary file associated with a detected fault (e.g., an elementary file identified from a most recent sequence of commands associated with a detected fault), an application associated with a detected fault (e.g., an application identified from a most recent sequence of commands associated with a detected fault), the last command in a most recent sequence of commands associated with a detected fault, or any combination thereof.
[0035] Based on SIM recovery circuitry 106 determining that a command indicates an elementary file associated with a detected fault, SIM recovery circuitry 106 determines whether the indicated elementary file is a critical elementary file. For example, based on SIM recovery circuitry 106 determining that a command indicates a read, update, or selection of an elementary file associated with a detected fault, SIM recovery circuitry 106 determines whether the indicated elementary file is a critical elementary file. Such a critical elementary file, for example, includes data necessary for authenticating LIE 102 on cellular network 116. Based on the indicatedelementary file being a critical elementary file, SIM recovery circuitry 106 allows SIM device 104 to execute the issued command. Based on the indicated elementary file not being a critical elementary file, SIM recovery circuitry 106 skips the command such that SIM device 104 does not execute the command. Further, based on SIM recovery circuitry 106 determining that a command indicates an application associated with a detected fault, SIM recovery circuitry 106 determines whether the indicated application is a critical application. That is to say, based on SIM recovery circuitry 106 determining that the command indicates an application ID (AID) identifying an application associated with a detected fault, SIM recovery circuitry 106 determines whether the indicated application is a critical application. A critical application, for example, includes an application necessary for authenticating UE 102 on cellular network 116. Based on the indicated application being a critical application, SIM recovery circuitry 106 allows SIM device 104 to execute the issued command. Based on the indicated elementary file not being a critical application, SIM recovery circuitry 106 skips the command such that SIM device 104 does not execute the command.
[0036] Additionally, in some embodiments, SIM recovery circuitry 106 is configured to identify one or more sequences of commands likely to cause one or more faults in the functionality of SIM device 104. For example, each time one or more faults are detected and SIM recovery circuitry 106 determines the most recent sequence of commands, SIM recovery circuitry 106 determines the number of times the most recent sequence of commands has been associated with one or more faults. As an example, based on determining a most recent sequence of commands associated with a fault, SIM recovery circuitry 106 updates one or more counters so as to reflect the number of times that the same most recent sequence of commands has been detected. SIM recovery circuitry 106 then compares one or more values of the counters to a sequence threshold to determine if the most recent sequence of commands has been detected a threshold number of time. Such a sequence threshold, for example, represents a predetermined value representing a threshold number of detections. Based on determining that the most recent sequence of commands has been detected a number of time equal to or greater than the threshold number of times, SIM recovery circuitry 106 designates the most recent sequence of commands as a sequence of commands likely to cause a fault. Inembodiments, SIM recovery circuitry 106 tracks the commands issued from processor 110 to determine if a sequence of commands likely to cause a fault has been issued by processor 110. Based on determining that a sequence of commands likely to cause a fault has been issued by the processor 110, SIM recovery circuitry 106 then determines whether the last command in the detected sequence of commands likely to cause a fault indicates a critical function. A critical function, for example, includes a function necessary for authenticating UE 102 on cellular network 116 such as a controller reset function, authentication function, or the like. Based on the command indicating a critical function, SIM recovery circuitry 106 allows SIM device 104 to execute the last command in the detected sequence of commands likely to cause a fault. Based on the command not indicating a critical function, SIM recovery circuitry 106 skips the last command in the detected sequence of commands likely to cause a fault such that SIM device 104 does not execute the last command.
[0037] According to embodiments, SIM recovery circuitry 106 is configured to update one or more counters each time a command is skipped. For example, in some embodiments, SIM recovery circuitry is configured to update one or more counters so as to represent the total number of commands skipped in a life cycle of SIM device 104. As another example, SIM recovery circuitry is configured to update one or more counters so as to represent the number of times one or more certain commands have been skipped in a life cycle of SIM device 104. Further, each time a command is skipped, SIM recovery circuitry 106 is configured to compare one or more values of the counters to one or more respective skip thresholds to determine whether the total number of commands skipped exceeds a skip threshold, whether the number of times certain commands have been skipped exceeds a skip threshold, or both. Such a skip threshold, for example, includes a predetermined value representing a threshold number of skips. Based on determining that the total number of commands skipped is equal to or exceeds a skip threshold, the number of times certain commands have been skipped is equal to or exceeds a skip threshold, or both, SIM recovery circuitry 106 attempts to repair one or more previously detected faults (e.g., performs a repair attempt for one or more previously detected faults). In this way, SIM recovery circuitry 106 only attempts to repair detected faults after SIM recovery circuitry 106 has attempted to prevent the faults a threshold number of times.Because SIM recovery circuitry 106 only attempts to repair detected faults only after SIM recovery circuitry 106 has attempted to prevent the faults a threshold number of times, SIM recovery circuitry 106 reduces the number of attempts to repair the detected faults, reducing the power consumption of SIM recovery circuitry 106 and increasing the battery life of battery 112.
[0038] Referring now to FIG. 2, an example UE 200 configured to SIM device fault prevention and repair is presented. In embodiments, example UE 200 is implemented in cellular networking framework 100 as UE 102. In embodiments, example UE 200 includes a processor 110 configured to issue a sequence of commands 205 to SIM device 104. While the sequence of commands 205 is being issued to SIM device 104, SIM recovery circuitry 106 is configured to monitor the most recent sequence of commands 255 issued from processor 110 to SIM device 104. Such a most recent sequence of commands 255 represents a predetermined number of commands most recently issued by processor 110 to Sim device 104. To this end, SIM recovery circuitry 106 includes SIM monitoring circuitry 226 configured to record a predetermined number of commands from the sequence of commands most recently issued from processor 110 to determine a most recent sequence of commands 255. In some embodiments, SIM monitoring circuitry 226 records the ten commands most recently issued from processor 110 to determine a most recent sequence of commands 255. According to embodiments, SIM monitoring circuitry 226 is further configured to monitor one or more metrics of SIM device 104. Such metrics include, for example, the power consumption, processing times, memory usage, or any combination thereof of SIM device 104. As an example, SIM monitoring circuitry 226 includes one or more sensors (e.g., temperature sensors, voltage sensors, current sensors) configured to measure one or more metrics of Sim device 104. Using the monitored metrics, SIM monitoring circuitry 226 then determines one or more performance trends 265 of SIM device 104 that each represent, for example, the increase, decrease, or both in one or more monitored metrics over time. According to some embodiments, one or more performance trends 265 each indicate one or more faults in the functionality of SIM device 104. As an example, a performance trend 265 representing one or more faults in the functionality of SIM device 104 includes an increase in power consumption, increase in processing times, increase in memory usage, or any combination thereof of SIM device 104. In embodiments, SIMmonitoring circuitry 226 is configured to determine one or more performance trends 265 by determining one or more averages, medians, or modes of the monitored metrics; determine one or more rates of change of the monitored metrics; implement one or more trained machine-learning models; implement one or more trained neural networks; or any combination thereof.
[0039] In embodiments, SIM recovery circuitry 106 includes SIM fault detection circuitry 228 configured to detect one or more faults in the functionality of SIM device 104 based on one or more performance trends 265. As an example, based on determining a performance trend 265 represents one or more faults in the functionality of SIM device 104, SIM fault detection circuitry 228 detected one or more faults. In response to determining one or more faults, SIM fault detection circuitry 228 is configured to help prevent the detected faults from occurring again. To this end, SIM fault detection circuitry 228 first identifies the most recent sequence of commands 255 recorded by SIM monitoring circuitry 226 when the faults were detected. In some embodiments, based on identifying the most recent sequence of commands 255 recorded by SIM monitoring circuitry 226 when the faults were detected, SIM fault detection circuitry 228 is configured to update one or more counters representing the number of times the most recent sequence of commands 255 occurred when a fault was detected. SIM monitoring circuitry 226 then compares the one or more values of the counters to one or more sequence thresholds. Based on the values of the counters being equal to or exceeding one or more sequence thresholds, SIM monitoring circuitry 226 determines that the most recent sequence of commands 255 recorded by SIM monitoring circuitry 226 when the faults were detected is a sequence of commands likely to cause a fault. Further, based on the most recent sequence of commands 255 recorded by SIM monitoring circuitry 226 when the faults were detected, SIM fault detection circuitry 228 identifies one or more elementary files 235, applications 245, or both indicated in the commands on the most recent sequence of commands 255.
[0040] After determining elementary files 235 and applications 245 indicated by the commands of the most recent sequence of commands 255, SIM fault detection circuitry 228 is configured to skip one or more commands issued by processor 110 so as to help avoid one or more detected faults from reoccurring. For example, based onprocessor 110 issuing a command, SIM fault detection circuitry 228 is configured to determine whether the command indicates an elementary file 235 associated with a detected fault, an application 245 associated with a detected fault, is the last command in a sequence of commands likely to cause a fault, or any combination thereof. Based on determining that the command indicates an elementary file 235 associated with a detected fault, an application 245 associated with a detected fault, is the last command in a sequence of commands likely to cause a fault, or any combination thereof, SIM fault detection circuitry 228 then determines whether the command indicates a critical elementary fault, critical application, or critical function. That is to say, SIM fault detection circuitry 228 determines whether the command indicates an elementary file 235, application 245, or function necessary for the authentication of example UE 200 on cellular network 116. Based on the command indicating a critical elementary file, critical application, critical function, or any combination thereof, SIM fault detection circuitry 228 allows SIM device 104 to execute the command. Further, based on the command not indicating a critical elementary file, critical application, or critical function, SIM fault detection circuitry 228 skips the command such that SIM device 104 does not execute the command.
[0041] In embodiments, each time SIM fault detection circuitry 228 skips a command, SIM fault detection circuitry 228 is configured to modify one or counters so as to reflect the total number of commands skipped, the number of times a certain command has been skipped, or both. SIM fault detection circuitry 228 then compares the values of one or more of the counters to a skip threshold to determine if the total number of commands skip in a life cycle of SIM device 104 is equal to or exceeds a skip threshold, if the number of times a certain command has been skipped is equal to or exceeds a skip threshold, or both. Based on determining the total number of commands skipped in a life cycle of SIM device 104 is equal to or exceeds a skip threshold, if the number of times a certain command has been skipped is equal to or exceeds a skip threshold, or both, SIM fault detection circuitry 228 then attempts to repair (e.g., performs a repair attempt for) one or more of the detected faults by repairing the data in one or more of the identified elementary files 235, repairing elementary files associated with an identified application 245, resetting at least a portion of SIM device 104, setting one or more portions of SIM device 104 to a default state, or any combination thereof. Further, in response to attempting to repairone or more faults, SIM fault detection circuitry 228 is configured to update one or more counters so as to reflect the number of attempts to repair (e.g., number of repair attempts for) detected faults in a life cycle of Sim device 104. SIM fault detection circuitry 228 then compares the values of one or more counters to one or more recovery thresholds to determine whether SIM fault detection circuitry 228 has made a threshold number of attempts to repair detected faults. That is to say, whether the number of attempts made by SIM fault detection circuitry 228 to repair one or more detected faults is equal to or greater than a recovery threshold. Based on the number of attempts made by SIM fault detection circuitry 228 to repair one or more detected faults being equal to or greater than a recovery threshold, SIM fault detection circuitry 228 is configured to generate one or more failure notifications 124 for display on display 114 included in other otherwise connected to example LIE 200.
[0042] Referring now to FIG. 3, an example SIM fault detection circuitry 300 configured to identify causes of detected faults is presented, in accordance with some embodiments. In embodiments, example SIM fault detection circuitry 300 is implemented in example LIE 200 as SIM fault detection circuitry 228. In embodiments, in response to determining one or more faults in the functionality of SIM device 104, example SIM fault detection circuitry 300 is configured to identify the most recent sequence of commands 255 issued from processor 110 when the faults were detected. As an example, example SIM fault detection circuitry 300 identifies the most recent sequence of commands 255 based on commands recorded by SIM monitoring circuitry 226 when the faults were detected. After identifying the most recent sequence of commands 255, example SIM fault detection circuitry 300 then modifies one or more sequence counters 335 so as to represent the number of times the most recent sequence of commands 255 has been identified when a fault occurs. That is to say, the number of times the most recent sequence of commands 255 resulted in a fault in the functionality of SIM device 104. These sequence counters 335, for example, include hardware-based counters, software-based counters, or both each configured to represent the number of times a respective sequence of commands (e.g., most recent sequence of commands 255) has been identified when a fault occurs. Further, according to embodiments, after identifying the most recent sequence of commands 255, example SIM fault detection circuitry 300 is configured to compare one or more values of sequence counters 335 to one or more sequencethresholds 345 to determine if the most recent sequence of commands 255 has been identified a threshold number of times. Each sequence threshold 345, for example, includes a respective value representing a threshold number of detections for a certain sequence of commands. Based on determining that the most recent sequence of commands 255 has been identified a threshold number of times (e.g., based on determining the number of times the most recent sequence of commands 255 has been identified is equal to or greater than one or more sequence thresholds 345), example SIM fault detection circuitry 300 designates the most recent sequence of commands 255 as a command sequence to skip 325.
[0043] Additionally, in embodiments, based on the most recent sequence of commands 255, example SI fault detection circuitry 300 is configured to identify one or more elementary files to skip 305, one or more applications to skip 315, or both. Such elementary files to skip 305, for example, represent elementary files that likely caused one or more detected faults. As an example, elementary files to skip 305 represent one or more elementary files (e.g., elementary files 235) indicated in one or more commands of the most recent sequence of commands 255. As another example, applications to skip 315 represent one or more applications (e.g., applications 245) indicated in one or more commands of the most recent sequence of commands 255. That is to say, for example, applications to skip 315 represent one or more applications (e.g., applications 245) associated with one or more AIDs indicated in one or more commands of the most recent sequence of commands 255. Based on elementary files to skip 305, applications to skip 315, command sequences to skip 325, or any combination thereof, example SIM fault detection circuitry 300 is configured to skip one or more commands from processor 110 so at to help one or more detected faults from reoccurring.
[0044] Referring now to FIG. 4, an example operation 400 for preventing one or more SIM device faults is presented, in accordance with embodiments. In embodiments, example operation 400 is implemented by example SIM fault detection circuitry 300. According to embodiments, example operation 400 includes processor 110 issuing a command 405 to SIM device 104. In response to processor 110 issuing command 405, SIM device 104 is configured to perform command to skip determination 415. During command to skip determination 415, example SIM faultdetection circuitry 300 is configured to determine whether command 405 is the last command in a sequence of commands to skip 325, indicates one or more elementary files to skip 305, indicates one or more applications to skip 315, or any combination thereof. For example, example SIM fault detection circuitry 300 first determines whether a sequence of commands including command 405 as the final command in the sequence has been issued by processor 110 is a command sequence to skip 325 by comparing the sequence of commands to one or more determined command sequences to skip 325. As another example, example SIM fault detection circuitry 300 determines whether command 405 indicates the reading, updating, or selection of one or more elementary files to skip 305. As yet another example, example SIM fault detection circuitry 300 determines whether command 405 indicates an AID associated with an application to skip 315. Based on determining that command 405 is the last command in a sequence of commands to skip 325, indicates one or more elementary files to skip 305, indicates one or more applications to skip 315, or any combination thereof, example SIM fault detection circuitry 300 performs critical command determination 425.
[0045] During critical command determination 425, example SIM fault detection circuitry 300 determines whether command 405 indicates a critical elementary file 401 , a critical application 403, critical function 407, or any combination thereof. A critical elementary file 401 , for example, includes an elementary file including data necessary for the authentication of UE 102 on cellular network 116. As an example, a critical elementary file 401 includes subscriber identity data (e.g., SIM profiles), user identity data (e.g., public user identities), service tables, or any combination thereof. A critical application 403, for example, includes an application necessary for the authentication of UE 102 on cellular network 116. As an example, a critical application 403 includes a universal subscriber identity module (USIM) application, integrated subscriber identity module (iSIM) application, or the like. Additionally, a critical function 407, for example, includes a controller reset function, an authentication function, or the like. Based on determining command 405 indicates a critical elementary file 401 , a critical application 403, critical function 407, or any combination thereof, example SIM fault detection circuitry 300 performs perform operation 445. During perform operation 445, example SIM fault detection circuitry 300 allows SIM device 104 to execute command 405.
[0046] Based on determining command 405 does not indicate a critical elementary file 401 , a critical application 403, or critical function 407, example SIM fault detection circuitry 300 performs skip command operation 435. During skip command operation 435, example SIM fault detection circuitry 300 skips command 405 such that SIM device 104 does not execute command 405. As an example, example SIM fault detection circuitry 300 provides one or more signals to SIM device 104 indicating that command 405 is not to be executed. Further, in embodiments, skip command operation 435 includes example SIM fault detection circuitry 300 updating one or more skip counters 430 so as to indicate the total number of commands skipped, the number of times a certain command (e.g., command 405) has been skipped, or both. Such skip counters 430, for example, include hardware-based counters, softwarebased counters, or both configured track the total number of commands skipped, the number of times a certain command has been skipped, or both. According to embodiments, after example SIM fault detection circuitry 300 performs skip command operation 435, example operation 400 includes example SIM fault detection circuitry 300 performing skip threshold determination 455. During skip threshold determination 455, example SIM fault detection circuitry 300 compares one or more values of skip counters 430 to one or more skip thresholds 432 to determine if the total number of commands skipped meets or exceeds a skip threshold 432, the number of times a certain command has been skipped meets or exceed a skip threshold 432, or both. Each skip threshold 432, for example, includes a respective predetermined value representing a threshold number of times for skipping all commands or certain commands. Based on one or more values of skip counters 430 being equal to or exceeding one or more skip thresholds 432, example SIM fault detection circuitry 300 performs SIM recovery operation 465.
[0047] SIM recovery operation 465 includes example SIM fault detection circuitry 300 attempting to repair one or more detected faults. For example, during SIM recovery operation 465, example SIM fault detection circuitry 300 is configured to repair the data in one or more of the elementary files to skip 305, repair elementary files associated with an identified application to skip 315, reset at least a portion of SIM device 104, set one or more portions of SIM device 104 to a default state, or any combination thereof. Further, embodiments, SIM recovery operation 465 includes example SIM fault detection circuitry 300 updating one or more recovery counters434 so as to represent the number of attempts example SIM fault detection circuitry 300 has made to repair one or more detected faults in a life cycle of SIM device 104. Each recovery counter 434, for example, includes hardware-based counters, software-based counters, or both configured to track the number of attempts example SIM fault detection circuitry 300 has made to repair one or more detected faults in a life cycle of SIM device 104. After performing SIM recovery operation 465, example operation 400 includes example SIM fault detection circuitry 300 performing recovery threshold determination 475. During recovery threshold determination 475, example SIM fault detection circuitry 300 is configured to compare one or more values from recovery counters 434 to one or more recovery thresholds 436 so as to determine if a threshold number of attempts to repair the detected faults have been made. Each recovery threshold 436, for example, includes a predetermined value representing a threshold number of times for example SIM fault detection circuitry 300 to attempt to repair one or more detected faults. Based on one or more values of recovery counters 434 being equal to or exceeding a recovery threshold 436, example SIM fault detection circuitry 300 determines that a threshold number of attempts to repair the detected faults have been made and performs generate failure notification operation 485. Generate failure notification operation 485 includes example SIM fault detection circuitry 300 generating one or more failure notifications 124 and displaying such notifications on display 114 so as to alert a user that SIM device 104 is potentially faulty.
[0048] Referring now to FIG. 5, an example method 500 for preventing and repairing one or more detected faults is presented, in accordance with embodiments. According to embodiments, example method 500 is implemented at least in part by example UE 200. In embodiments, at block 505 of example method 500, processor 110 issues a command (e g., command 405) to SIM device 104. At block 510, SIM recovery circuitry 106 determines whether the command indicates an elementary file, application, or command sequence associated with a detected fault. For example. SIM recovery circuitry 106 determines whether the command indicates an elementary file to skip 305 identified from a most recent sequence of commands 255 from when a fault was detected. As another example, SIM recovery circuitry 106 determines whether the command indicates the AID of an application to skip 315 identified from a most recent sequence of commands 255 from when a fault was detected. As yetanother example, SIM recovery circuitry 106 determines whether the command is the last command in a sequence of commands that matches one or more command sequences to skip previously determined by SIM recovery circuitry 106 based on one or more detected faults. Based on the command not indicating an elementary file, application, or command sequence associated with a detected fault, SIM recovery circuitry 106, at block 515, allows SIM device 104 to execute the command from processor 110.
[0049] Referring again to block 510, based on the command indicating an elementary file, application, command sequence associated with a detected fault, or any combination thereof, SIM recovery circuitry 106, at block 520, then determines whether the command indicates a critical elementary file, application, function, or any combination thereof. For example, SIM recovery circuitry 106 determines whether the command indicates one or more elementary files necessary for authenticating UE 102 on cellular network 116 (e.g., critical elementary file 401), one or more applications necessary for authenticating UE 102 on cellular network 116 (e.g., critical application 403), one or more functions necessary for authenticating UE 102 on cellular network 116 (e.g., critical function 407), or any combination thereof. Based on the command indicating a critical elementary file, application, function, or any combination thereof, SIM recovery circuitry 106, at block 515, allows SIM device 104 to execute the command from processor 110. Based on the command not indicating a critical elementary file, application, or function, SIM recovery circuitry 106 moves to block 525. At block 525, SIM recovery circuitry 106 skips the command such that SIM device 104 does not execute the command. For example, SIM recovery circuitry 106 sends one or more signals to SIM device 104 that cause SIM device 104 to not execute the command. Further, at block 525, SIM recovery circuitry 106 is configured to update one or more skip counters 430 so as to represent the total number of commands skipped in a life cycle of SIM device 104, the number of certain commands skipped in the life cycle of SIM device 104, or both.
[0050] At block 530, SIM recovery circuitry 106 determines whether a skip threshold (e.g., skip threshold 432) has been met or exceeded. For example, SIM recovery circuitry 106 compares one or more values from skip counters 430 to one or more skip thresholds 432 so as to determine whether the total number of skippedcommands is equal to or greater than a skip threshold 432, the number of times a certain command has been skipped is equal to or greater than a skip threshold 432, or both. Based on determining that the total number of skipped commands is not equal to or greater than a skip threshold 432, the number of times a certain command has been skipped is not equal to or greater than a skip threshold 432, or both, SIM recovery circuitry 106 determines that a skip threshold (e.g., skip threshold 432) has not been met or exceeded and a new command is issued by processor 110 at block 505. Based on determining that the total number of skipped commands is equal to or greater than a skip threshold 432, the number of times a certain command has been skipped is equal to or greater than a skip threshold 432, or both, SIM recovery circuitry 106 determines that a skip threshold (e.g., skip threshold 432) has been met or exceeded and performs a SIM recovery at block 530. During the SIM recovery, SIM recovery circuitry 106 is configured to repair one or more detected faults.
[0051] Referring now to FIG. 6, an example method 600 for generating a failure notification is presented, in accordance with some embodiments. In embodiments, example method 600 is implemented by example LIE 200. According to embodiments, example method 600, at block 605, includes SIM recovery circuitry 106 performing a SIM recovery by attempting to repair one or more detected faults in the functionality of SIM device 104. For example, at block 605, SIM recovery circuitry 106 is configured to repair the data in one or more of elementary files associated with a detected fault (e.g., elementary files to skip 305), repairs elementary files associated with an application associated with a detected fault (e.g., application to skip 315), resets at least a portion of SIM device 104, sets one or more portions of SIM device 104 to a default state, or any combination thereof. At block 610, SIM recovery circuitry 106 is configured to update one or more recovery counters 434 so at to indicate the number of times SIM recovery circuitry 106 has attempted to repair one or more detected fault during a life cycle of SIM device 104. After updating one or more recovery counters 434, at block 615, SIM recovery circuitry 106 is configured to determine whether a recovery threshold has been met or exceeded. For example, SIM recovery circuitry 106 is configured to compare one or more values from recovery counters 434 to one or more recovery thresholds 436 so as to determine if the number of attempts to repair detected faults meets or exceeds a recovery threshold 436.
[0052] Based on determining that the number of attempts to repair detected faults does not meet or exceed a recovery threshold 436, at block 625, SIM recovery circuitry 106 resumes normal operation. For example, SIM recovery circuitry 106 continues to monitor one or more metrics of SIM device 104. Based on determining that the number of attempts to repair detected faults does meet or exceed a recovery threshold 436, at block 620, SIM recovery circuitry 106 generates a failure notification 124 and displays the failure notification on display 114 so as to alert the user that SIM device 104 may be faulty.
[0053] In some embodiments, certain aspects of the techniques described above may be implemented by one or more processors of a processing system executing software. The software comprises one or more sets of executable instructions stored or otherwise tangibly embodied on a non-transitory computer readable storage medium. The software can include the instructions and certain data that, when executed by the one or more processors, manipulate the one or more processors to perform one or more aspects of the techniques described above. The non-transitory computer readable storage medium can include, for example, a magnetic or optical disk storage device, solid state storage devices such as Flash memory, a cache, random access memory (RAM) or other non-volatile memory device or devices, and the like. The executable instructions stored on the non-transitory computer readable storage medium may be in source code, assembly language code, object code, or other instruction format that is interpreted or otherwise executable by one or more processors.
[0054] A computer readable storage medium may include any storage medium, or combination of storage media, accessible by a computer system during use to provide instructions and / or data to the computer system. Such storage media can include, but is not limited to, optical media (e.g., compact disc (CD), digital versatile disc (DVD), Blu-Ray disc), magnetic media (e.g., floppy disc , magnetic tape, or magnetic hard drive), volatile memory (e.g., random access memory (RAM) or cache), non-volatile memory (e.g., read-only memory (ROM) or Flash memory), or microelectromechanical systems (MEMS)-based storage media. The computer readable storage medium may be embedded in the computing system (e.g., system RAM or ROM), fixedly attached to the computing system (e.g., a magnetic harddrive), removably attached to the computing system (e.g., an optical disc or Universal Serial Bus (USB)-based Flash memory), or coupled to the computer system via a wired or wireless network (e.g., network accessible storage (NAS)).
[0055] Note that not all of the activities or elements described above in the general description are required, that a portion of a specific activity or device may not be required, and that one or more further activities may be performed, or elements included, in addition to those described. Still further, the order in which activities are listed are not necessarily the order in which they are performed. Also, the concepts have been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present disclosure as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present disclosure.
[0056] Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any feature(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature of any or all the claims. Moreover, the particular embodiments disclosed above are illustrative only, as the disclosed subject matter may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. No limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope of the disclosed subject matter. Accordingly, the protection sought herein is as set forth in the claims below.
Claims
WHAT IS CLAIMED IS:1 . A method comprising: detecting a fault associated with a subscriber identity module (SIM) device of a user equipment (UE); and skipping a command issued to the SIM device based on the command being associated with the fault such that the SIM device does not execute the command.
2. The method of claim 1 , further comprising: monitoring one or more metrics of the UE; and determining a performance trend based on the one or more metrics, wherein the performance trend indicates the fault.
3. The method of either of claims 1 or 2, further comprising: updating a skip counter in response to skipping the command, wherein the skip counter represents a total number of skipped commands.
4. The method of any of claims 1 to 3, further comprising: based on a number of skipped commands, performing a repair attempt on at least a portion of the SIM device.
5. The method of claim 4, further comprising: updating recovery counter in response to performing the repair attempt, wherein the recovery counter represents a number of repair attempts.
6. The method of claim 5, further comprising: based on the number of repair attempts, displaying a failure notification on the UE.
7. The method of any of claims 1 to 6, further comprising: based on the command being associated with authenticating the UE on a cellular network, allowing the SIM device to execute the command.
8. The method of any of claims 1 to 7, further comprising: identifying a most recent sequence of commands associated with the fault, wherein the command is skipped based on the command being associated with the most recent sequence of commands associated with the fault.
9. The method of claim 8, wherein the command is a last command in the most recent sequence of commands associated with the fault.
10. A method, comprising: determining a fault associated with a subscriber identity module (SIM) device of a user equipment (UE) based on one or more monitored metrics of the SIM device; identifying an elementary file of the SIM device associated with the fault; and skipping a command indicating the elementary file such that the SIM device does not execute the command.11 . The method of claim 10, further comprising: determining a performance trend based on the one or more monitored metrics, wherein the performance trend indicates the fault.
12. The method of either of claims 10 or 11 , wherein the command indicates an application associated with the elementary file.
13. The method of any of claims 10 to 12, further comprising: performing a repair attempt on the elementary file based on a number of skipped commands.
14. The method of claim 13, further comprising: based on a number of repair attempts, displaying a failure notification on the UE.
15. The method of any of claims 10 to 14, further comprising: executing the command based on the elementary file being associated with authenticating the UE on a cellular network.
16. The method of any of claims 10 to 15, further comprising: identifying a most recent sequence of commands associated with the fault.
17. The method of claim 16, wherein the elementary file is indicated by one or more commands of the most recent sequence of commands associated with the fault.
18. The method of any of claims 1 to 17, further comprising: based on determining the fault, generating a failure report; and transmitting the failure report to a database.
19. An system comprising: a user equipment (UE) including: one or more processors; and a memory coupled to the one or more processors and storing executable instructions configured to manipulate the one or more processors to perform the method of any of claims 1 to 18.
20. A user equipment (UE) comprising: a subscriber identity module (SIM) device; and a SIM recovery circuitry configured to perform the method of any of claims 1 to 18.