# US 12,217,048 B1 · Separate firmware to fixed and removable storages

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,217,048 B1
- Document ID: US12217048B1
- Status: Granted
- Kind: B1
- Application number: 18/750,565
- Filed: 2024-06-21
- Granted: 2025-02-04
- Earliest claimed: 2023-07-14
- Assignees: Auradine, Inc.
- Applicants: Auradine, Inc.
- Inventors: Lei Chang; Nicholas Cabi
- Web page: https://patentgrep.com/patent/US12217048B1

## CPC

- G06F 8/654: using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
- G06F 8/40: Transformation of program code
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A first firmware source code portion corresponding to an immutable firmware portion of specific firmware to be deployed with embedded devices is identified. A second different firmware source code portion corresponding to a mutable firmware portion of the specific firmware to be deployed with the embedded devices is identified. The first firmware source code portion is used to generate the immutable firmware portion of the specific firmware. The second firmware source code portion is used to generate the mutable firmware portion of the specific firmware. The immutable firmware portion of the specific firmware is caused to be installed in fixed storage drives of an embedded device in the embedded devices. The mutable firmware portion of the specific firmware is caused to be installed in swappable storage drives of the same embedded device.

## Claims

### Claim 1

A method for deploying firmware in embedded devices, comprising:
receiving, by an embedded device, an immutable firmware portion of specific firmware to be deployed with the embedded device, wherein the immutable firmware portion of the specific firmware is generated by a firmware generation system other than the embedded device from a first firmware source code portion;
receiving, by the embedded device, a mutable firmware portion of the specific firmware to be deployed with the embedded device, wherein the mutable firmware portion of the specific firmware is generated by the firmware generation system from a second firmware source code portion, wherein the first firmware source code portion and the second firmware source code portion are distinct from each other;
installing the immutable firmware portion of the specific firmware in one or more fixed storage drives of the embedded device;
installing the mutable firmware portion of the specific firmware in one or more swappable storage drives of the embedded device, wherein the one or more swappable storage derives is removably attached to the embedded device;
wherein the second firmware source code portion used for generating the mutable firmware portion is identified by the firmware generation system based at least in part on whether the mutable firmware portion generates runtime writes to persist runtime data absent from a release version of the received mutable firmware portion that is installed with the embedded device;
wherein the immutable firmware portion includes one or more executable files for kernel, loader and other embedded system services; wherein the mutable firmware portion includes one or more executable files for one or more embedded applications.

### Claim 2 (depends on 1)

The method of claim 1, wherein a specific firmware sub-portion is identified to be a part of the mutable firmware portion based on whether the specific firmware sub-portion is to be installed in a swappable storage device.

### Claim 3 (depends on 1)

The method of claim 1, wherein a new version of the mutable firmware portion generated from an updated version of the second firmware source code portion without the immutable firmware is received by the embedded device and installed in the one or more swappable storage devices of the embedded device.

### Claim 4 (depends on 3)

The method of claim 3, wherein the immutable firmware portion on the embedded device is unchanged.

### Claim 5 (depends on 4)

The method of claim 4, wherein the new version of the mutable firmware portion installed into the one or more swappable storage devices of the embedded device operates with the unchanged immutable firmware portion already installed in the embedded device.

### Claim 6 (depends on 1)

The method of claim 1, wherein the mutable firmware portion installed with the embedded device becomes corrupted; wherein the mutable firmware portion is replaced and reinstalled into the one or more swappable storage devices without reinstalling the immutable firmware portion.

### Claim 7 (depends on 1)

The method of claim 1, wherein the second firmware source code portion used to generate the mutable firmware portion is identified based at least in part on user input indicating that the mutable firmware portion is to be updated relatively frequently after the mutable firmware portion is installed with the embedded device.

### Claim 8

An apparatus for deploying firmware in embedded devices, comprising:
one or more computing processors; and
one or more non-transitory computer readable media storing instructions that, when executed by the one or more computing processors, cause performance of:
receiving, by an embedded device, an immutable firmware portion of specific firmware to be deployed with the embedded device, wherein the immutable firmware portion of the specific firmware is generated by a firmware generation system other than the embedded device from a first firmware source code portion;
receiving, by the embedded device, a mutable firmware portion of the specific firmware to be deployed with the embedded device, wherein the mutable firmware portion of the specific firmware is generated by the firmware generation system from a second firmware source code portion, wherein the first firmware source code portion and the second firmware source code portion are distinct from each other;
installing the immutable firmware portion of the specific firmware in one or more fixed storage drives of the embedded device;
installing the mutable firmware portion of the specific firmware in one or more swappable storage drives of the embedded device, wherein the one or more swappable storage derives is removably attached to the embedded device;
wherein the second firmware source code portion used for generating the mutable firmware portion is identified by the firmware generation system based at least in part on whether the mutable firmware portion generates runtime writes to persist runtime data absent from a release version of the received mutable firmware portion that is installed with the embedded device;
wherein the immutable firmware portion includes one or more executable files for kernel, loader and other embedded system services; wherein the mutable firmware portion includes one or more executable files for one or more embedded applications.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein a specific firmware sub-portion is identified to be a part of the mutable firmware portion based on whether the specific firmware sub-portion is to be installed in a swappable storage device.

### Claim 10 (depends on 8)

The apparatus of claim 8, wherein a new version of the mutable firmware portion generated from an updated version of the second firmware source code portion without the immutable firmware is received by the embedded device and installed in the one or more swappable storage devices of the embedded device.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the immutable firmware portion on the embedded device is unchanged.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the new version of the mutable firmware portion installed into the one or more swappable storage devices of the embedded device operates with the unchanged immutable firmware portion already installed in the embedded device.

### Claim 13 (depends on 8)

The apparatus of claim 8, wherein the mutable firmware portion installed with the embedded device becomes corrupted; wherein the mutable firmware portion is replaced and reinstalled into the one or more swappable storage devices without reinstalling the immutable firmware portion.

### Claim 14 (depends on 8)

The apparatus of claim 8, wherein the second firmware source code portion used to generate the mutable firmware portion is identified based at least in part on user input indicating that the mutable firmware portion is to be updated relatively frequently after the mutable firmware portion is installed with the embedded device.

### Claim 15

One or more non-transitory computer readable media storing instructions that, when executed by one or more computing processors for deploying firmware in embedded devices, cause performance of:
receiving, by an embedded device, an immutable firmware portion of specific firmware to be deployed with the embedded device, wherein the immutable firmware portion of the specific firmware is generated by a firmware generation system other than the embedded device from a first firmware source code portion;
receiving, by the embedded device, a mutable firmware portion of the specific firmware to be deployed with the embedded device, wherein the mutable firmware portion of the specific firmware is generated by the firmware generation system from a second firmware source code portion, wherein the first firmware source code portion and the second firmware source code portion are distinct from each other;
installing the immutable firmware portion of the specific firmware in one or more fixed storage drives of the embedded device;
installing the mutable firmware portion of the specific firmware in one or more swappable storage drives of the embedded device, wherein the one or more swappable storage derives is removably attached to the embedded device;
wherein the second firmware source code portion used for generating the mutable firmware portion is identified by the firmware generation system based at least in part on whether the mutable firmware portion generates runtime writes to persist runtime data absent from a release version of the received mutable firmware portion that is installed with the embedded device;
wherein the immutable firmware portion includes one or more executable files for kernel, loader and other embedded system services; wherein the mutable firmware portion includes one or more executable files for one or more embedded applications.

### Claim 16 (depends on 15)

The non-transitory computer readable media of claim 15, wherein a specific firmware sub-portion is identified to be a part of the mutable firmware portion based on whether the specific firmware sub-portion is to be installed in a swappable storage device.

### Claim 17 (depends on 15)

The non-transitory computer readable media of claim 15, wherein a new version of the mutable firmware portion generated from an updated version of the second firmware source code portion without the immutable firmware is received by the embedded device and installed in the one or more swappable storage devices of the embedded device.

### Claim 18 (depends on 17)

The non-transitory computer readable media of claim 17, wherein the immutable firmware portion on the embedded device is unchanged.

### Claim 19 (depends on 18)

The non-transitory computer readable media of claim 18, wherein the new version of the mutable firmware portion installed into the one or more swappable storage devices of the embedded device operates with the unchanged immutable firmware portion already installed in the embedded device.

### Claim 20 (depends on 15)

The non-transitory computer readable media of claim 15, wherein the mutable firmware portion installed with the embedded device becomes corrupted; wherein the mutable firmware portion is replaced and reinstalled into the one or more swappable storage devices without reinstalling the immutable firmware portion.

### Claim 21 (depends on 15)

The non-transitory computer readable media of claim 15, wherein the second firmware source code portion used to generate the mutable firmware portion is identified based at least in part on user input indicating that the mutable firmware portion is to be updated relatively frequently after the mutable firmware portion is installed with the embedded device.
