IP Library › Granted Patent US 12,596,542
Granted Patent B2
US 12,596,542 · App. 18/465,012 · Granted Apr 7, 2026

Generating and distributing customized embedded operating systems

Inventors: Sudhanva Huruli (Seattle, WA); Reuben Ross Olinsky (Seattle, WA); Mark Andrew Cawston (King's Lynn, GB); Rebecca Leigh Holt (Cambridge, GB)
Assignee: Microsoft Technology Licensing, LLC
G06F8/63G06F21/572H04L9/3247G06F2221/033
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,596,542
App. No.
18/465,012
Granted
Apr 7, 2026
Kind
B2
Abstract

This disclosure relates to building and finalizing an operating system (OS) image package in a way that allows for flexibility and customization of OS images while preventing certain runtime modifications after deployment of the OS image package on one or more target devices (e.g., embedded devices). For example, the systems described herein can build an OS image package based on information from an OS manifest that provides a declarative summary of a target OS. The systems described herein can further finalize the OS image package by performing one or more actions on the OS image package that prevent an end-user from performing various runtime modifications to the target OS after deployment of the OS image package. This finalization process provides an improved pipeline for implementing OS updates while providing safeguards against a variety of security risks associated with deploying OS image packages on a large scale.

Claims (49)

1 . A computer-implemented method for deploying an operating system (OS) while preventing runtime modifications after deployment, the method comprising:

obtaining, at a computing device, an OS image package including an OS manifest that includes a summary of a target OS to be instantiated on a plurality of target devices of a target device class, wherein the OS manifest includes a summary of the target OS associated with the target device class, wherein obtaining the OS image package includes generating the OS image package, wherein generating the OS image package includes installing package databases that are relied upon to resolve dependencies within the OS image package;

generating a finalized OS image package by sealing the OS image package, thereby disabling runtime modifications to the finalized OS image package upon installation of the finalized OS image package on a target device of the plurality of target devices; and

causing the finalized OS image package to be deployed to the plurality of target devices of the target device class, wherein sealing the OS image package includes removing the package databases prior to deploying the finalized OS image package to the plurality of target devices.

2 . The method of claim 1 , wherein obtaining the OS image package includes generating the OS image package based on a declarative summary of the target device OS, the declarative summary including a plurality of resource identifiers and an identifier of the target device class.

3 . The method of claim 2 , wherein generating the finalized OS image package further includes adding an audit log within the OS image package, the audit log including an indication of actions performed on a base OS template to generate the OS image package in accordance with the declarative summary of the target device OS.

4 . The method of claim 1 , further comprising, prior to sealing the OS image package, emulating a runtime environment for a given target device by mounting a file system of the given target device on an OS of the computing device and running one or more post-processing scripts to resolve one or more dependencies of the OS image package.

5 . The method of claim 1 , wherein sealing the OS image package includes cryptographically signing the OS image package.

6 . The method of claim 1 , wherein the target device class includes a target class of embedded devices having a corresponding set of functional features.

7 . A system, comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory, the instructions being executable to:

obtain, at a computing device, an OS image package including an OS manifest that includes a summary of a target OS to be instantiated on a plurality of target devices of a target device class, wherein the OS manifest includes a summary of the target OS associated with the target device class, wherein obtaining the OS image package includes generating the OS image package, wherein generating the OS image package includes installing package databases that are relied upon to resolve dependencies within the OS image package;

generate a finalized OS image package by sealing the OS image package, thereby disabling runtime modifications to the finalized OS image package upon installation of the finalized OS image package on a target device of the plurality of target devices; and

cause the finalized OS image package to be deployed to the plurality of target devices of the target device class, wherein sealing the OS image package includes removing the package databases prior to deploying the finalized OS image package to the plurality of target devices.

8 . The system of claim 7 ,

wherein obtaining the OS image package includes generating the OS image package based on a declarative summary of the target device OS, the declarative summary including a plurality of resource identifiers and an identifier of the target device class, and

wherein generating the finalized OS image package further includes adding an audit log within the OS image package, the audit log including an indication of actions performed on a base OS template to generate the OS image package in accordance with the declarative summary of the target device OS.

9 . The system of claim 7 , further comprising instruction being executable to, prior to sealing the OS image package, emulate a runtime environment for a given target device by mounting a file system of the given target device on an OS of the computing device and running one or more post-processing scripts to resolve one or more dependencies of the OS image package.

10 . The system of claim 7 , wherein sealing the OS image package includes cryptographically signing the OS image package.

11 . The system of claim 7 , wherein the target device class includes a target class of embedded devices having a corresponding set of functional features.

12 . A computer-implemented method for deploying an operating system (OS) while preventing runtime modifications after deployment, the method comprising:

obtaining, at a computing device, an OS image package including an OS manifest that includes a summary of a target OS to be instantiated on a plurality of target devices of a target device class, wherein the OS manifest includes a summary of the target OS associated with the target device class;

generating a finalized OS image package by sealing the OS image package, thereby disabling runtime modifications to the finalized OS image package upon installation of the finalized OS image package on a target device of the plurality of target devices; and

causing the finalized OS image package to be deployed to the plurality of target devices of the target device class;

providing an unsealed copy of the OS image package to a second computing device;

receiving, from the second computing device, a modified OS image package, and

generating a finalized version of the modified OS image package by sealing the modified OS image package to disable runtime modifications to the finalized version of the modified OS image package.

13 . The method of claim 12 , further comprising, prior to sealing the modified OS image package, emulating a runtime environment for a given target device by mounting a file system of the given target device on an OS of the computing device and running one or more post-processing scripts to resolve one or more dependencies of the modified OS image package.

14 . The method of claim 12 , wherein obtaining the OS image package includes generating the OS image package based on a declarative summary of the target device OS, the declarative summary including a plurality of resource identifiers and an identifier of the target device class.

15 . The method of claim 12 , wherein sealing the OS image package includes cryptographically signing the OS image package.

16 . The method of claim 12 , further comprising, prior to sealing the OS image package, emulating a runtime environment for a given target device by mounting a file system of the given target device on an OS of the computing device and running one or more post-processing scripts to resolve one or more dependencies of the OS image package.

17 . The method of claim 12 , wherein the target device class includes a target class of embedded devices having a corresponding set of functional features.

18 . A system, comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory, the instructions being executable to:

obtain, at a computing device, an OS image package including an OS manifest that includes a summary of a target OS to be instantiated on a plurality of target devices of a target device class, wherein the OS manifest includes a summary of the target OS associated with the target device class;

generate a finalized OS image package by sealing the OS image package, thereby disabling runtime modifications to the finalized OS image package upon installation of the finalized OS image package on a target device of the plurality of target devices;

cause the finalized OS image package to be deployed to the plurality of target devices of the target device class;

provide an unsealed copy of the OS image package to a second computing device;

receive, from the second computing device, a modified OS image package; and

generate a finalized version of the modified OS image package by sealing the modified OS image package to disable runtime modifications to the finalized version of the modified OS image package.

19 . The system of claim 18 , further comprising instructions being executable to, prior to sealing the modified OS image package, emulate a runtime environment for a given target device by mounting a file system of the given target device on an OS of the computing device and running one or more post-processing scripts to resolve one or more dependencies of the modified OS image package.

20 . The system of claim 18 , wherein obtaining the OS image package includes generating the OS image package based on a declarative summary of the target device OS, the declarative summary including a plurality of resource identifiers and an identifier of the target device class.

21 . The system of claim 18 , wherein sealing the OS image package includes cryptographically signing the OS image package.

22 . The system of claim 18 , further comprising instructions being executable to, prior to sealing the OS image package, emulate a runtime environment for a given target device by mounting a file system of the given target device on an OS of the computing device and running one or more post-processing scripts to resolve one or more dependencies of the OS image package.

23 . The system of claim 18 , wherein the target device class includes a target class of embedded devices having a corresponding set of functional features.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2023
From: HURULI, SUDHANVA; OLINSKY, REUBEN ROSS; CAWSTON, MARK ANDREW; HOLT, REBECCA LEIGH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064865/0182 →
Continuity (2)
Continuation 17411975 · Aug 25, 2021
Related Publication 20240078103A1 · Mar 7, 2024
References Cited (13)
US 11080041B1 · Ah Kun · 2021 [cited by examiner]
US 11256490B1 · Furman · 2022 [cited by examiner]
US 11809850B2 · Huruli · 2023 [cited by examiner]
US 20090217259A1 · Winter · 2009 [cited by examiner]
US 20130297922A1 · Friedman · 2013 [cited by examiner]
US 20140181792A1 · Fanning · 2014 [cited by examiner]
US 20180136940A1 · Mallichan · 2018 [cited by examiner]
US 20190042583A1 · Tierney · 2019 [cited by examiner]
US 20200151335A1 · Ayoub · 2020 [cited by examiner]
US 20200287723A1 · Ilany · 2020 [cited by examiner]
US 20220413825A1 · Bruno · 2022 [cited by examiner]
CN 111414612A · 2020 [cited by examiner]
Communication under Rule 71(3) Received in European Patent Application No. 22760834.6, mailed on Mar. 3, 2025, 08 pages. [cited by applicant]