IP Library Granted Patent US 12710948
Granted Patent B2
US 12710948 · App. 18/205,222 · Granted Aug 18, 2026

Software distribution system and method

Inventors: Alexander Medvinsky (San Diego, CA); Xin Qiu (San Diego, CA); Tat Keung Chan (San Diego, CA); Jinsong Zheng (San Diego, CA); Ting Yao (San Diego, CA)
Assignee: ARRIS Enterprises LLC
G06F8/63G06F8/71H04W4/021
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 12710948
App. No.
18/205,222
Granted
Aug 18, 2026
Kind
B2
Abstract

A method and apparatus for distributing a software release is disclosed. The method comprises accepting, in a software distribution system, a software download configuration from a software download system administrator, the software download configuration comprising: first information defining software post processing, the software post processing identifying: a software image to be included in the software release; and a post processing operation to be performed on the software image, the post processing operation associated with a post processing configuration specifying post processing operation parameters defining how the post processing operation is performed by the post processing server; and second information defining a restriction on distribution of the software release. The method further comprises submitting, to a post processing server, the software image for post processing according to the software download configuration to generate the software release; and providing the generated software release for download by the software consumer.

Claims (118)

1 . A method of distributing a software release to a software consumer, comprising:

accepting, in a software distribution system comprising a process and a memory, a software download configuration from a software download system administrator, the software download configuration comprising:

first information defining software post processing, the software post processing identifying:

a software image to be included in the software release; and

a post processing operation to be performed on the software image, the post processing operation associated with a post processing configuration specifying post processing operation parameters defining how a post processing operation is performed by the post processing server; and

second information defining a restriction on distribution of the software release;

accepting, from a software producer, the software image for incorporation into the software release according to the software download configuration;

submitting, to the post processing server, at least one of the software image and a processed version of the software image for the software post processing according to the software download configuration to generate the software release;

post processing by said post processing server at least one of said software image and said processed version of the software image according to the software download configuration to generate the software release, the generated software release being different than said software image, and providing said generated software release to said software distribution system; and

providing the generated software release from said software distribution system for download by the software consumer;

wherein said generated software release is free from said software download configuration.

2 . The method of claim 1 , wherein:

the first information further identifies:

a plurality of software images that includes the software image; and

a plurality of post processing operations that includes the post processing operation;

accepting, from the software producer, the software image for incorporation into the software release according to the software download configuration comprises:

accepting, from the software producer, the plurality of software images for incorporation into the software release according to the software download configuration;

wherein:

each of the plurality of post processing operations is associated with a post processing configuration specifying post processing operation parameters defining how the associated post processing operation is performed by the post processing server;

the plurality of post processing operations each has an operand selected from a group comprising:

one of the plurality of software images; and

a result of another one of the plurality of post processing operations;

the post processing operations are selected from the group comprising:

a combination operation;

an encryption operation;

an obfuscation operation;

a signing operation; and

a hash operation.

3 . The method of claim 2 , wherein the plurality of post processing operations comprises a sequence of post processing operations specified in a scripting language.

4 . The method of claim 2 , wherein the restriction on distribution of the software release is selected from a group comprising:

restriction by geographic boundary;

restriction by software consumer; and

restriction to a subset of software consumers.

5 . The method of claim 4 , wherein the software post processing for the software release differs according to the restriction on distribution.

6 . The method of claim 5 , wherein:

the restriction is by the geographic boundary; and

the method further comprises:

receiving a request in the software distribution system for the generated software release from the software consumer;

determining a geographic location of the software consumer; and

providing the generated software release generated according to post processing steps for the geopolitical location of the software consumer.

7 . The method of claim 4 , wherein:

the group comprising the restrictions on the distribution of the software release further comprise a release status, the release status selected from:

a first release status indicating that the generated software release has not been internally verified;

a second release status indicating that the software release has been internally verified, but not approved for full release; and

a third release status indicating that the software release has been approved for full release.

8 . The method of claim 4 , wherein:

the software download configuration defines a plurality of versions of the software release, each of the plurality of versions having associated first information and associated second information; and

the group comprising the restrictions on the distribution of the software release comprises a restriction by software consumer to one or more of the plurality of versions of the software release.

9 . The method of claim 2 , wherein:

the software download configuration further comprises third information defining licensing requirements for the generated software release, the third information having:

an identification of the generated software release;

an expression specifying the licensing requirements;

the method further comprises:

receiving a request in the software distribution system for the generated software release from the software consumer;

determining, from the third information, if one or more software licenses are required for the generated software release;

if no software license is required for the generated software release, providing the generated software release for download by the software consumer;

if one or more software licenses are required for the generated software release:

determining licensing requirements for the generated software release;

determining if the software consumer meets the licensing requirements for the generated software release; and

providing the generated software release to the software consumer only if the software consumer meets the licensing requirements for the generated software release.

10 . The method of claim 9 , wherein the expression specifying the licensing requirements comprises a Boolean combination licensing requirements for each of the plurality of software images.

11 . The method of claim 10 , wherein:

determining licensing requirements for the generated software release comprises:

providing the identification of the generated software release and the identification of the software consumer to a software licensing system communicatively coupled to the software distribution system;

receiving, from the software licensing system:

information identifying one or more licenses required for downloading the software release;

information indicating which of the one or more licenses required for downloading the software release are available for use by the software consumer;

determining if the software consumer meets the licensing requirements for the generated software release comprises:

comparing the information identifying the one or more licenses required for downloading the software release with the information indicating which of the one or more licenses is required for downloading the software release are currently available for use by the software consumer;

determining if the software consumer meets the licensing requirements for the generated software release according to the comparison; and

if the software consumer does not meet the licensing requirements for the generated software release, offering that the software consumer purchase any of the one or more licenses required for downloading the software release that are not currently available for use by the software consumer.

12 . The method of claim 1 , further comprising:

(a) determining if the software producer is authorized to invoke the post processing configuration;

(b) if the software producer is not authorized to invoke the post processing configuration:

aborting preparation of the software release and notifying a system administrator of the post processing server that the software producer is not authorized to invoke the specified post processing configuration; or

recording an identifier of the software producer.

13 . The method of claim 12 , wherein steps (a) and (b) are performed before performing any post processing operations.

14 . The method of claim 12 , wherein steps (a) and (b) are performed for each post processing operation before the post processing operation is performed.

15 . The method of claim 12 , wherein determining if the software producer is authorized to invoke the post processing configuration comprises:

submitting an identifier of the software producer to the post processing server;

providing a list of post processing configurations to which the identified software producer is authorized; and

determining, in the post processing server, if the identified software producer is authorized according to the identifier and the list.

16 . The method of claim 12 , wherein:

the software producer has privileges to override the post processing configuration or to select the post processing configuration for any post processing operation not specified in the software download configuration.

17 . A software distribution system, comprising:

the software distribution system comprising a processor and a memory and configured to:

accept, a software download configuration from a software download system administrator, the software download configuration comprising:

first information defining software post processing, the software post processing identifying:

a plurality of software images that includes the software image; and

a plurality of post processing operations to be performed on the plurality of software images, each of a post processing operations associated with a post processing configuration specifying post processing operation parameters defining how the respective post processing operation is performed by the post processing server; and

second information defining a restriction on distribution of a software release;

accept, from a software producer, the plurality of software images for incorporation into the software release according to the software download configuration;

submit, to the post processing server, the first instructions and the software image for the software post processing according to the software download configuration to generate the software release;

post processing by said post processing server said software image according to said software download configuration to generate the software release, the generated software release being different than said software image, and returning said generated software release to said software distribution system; and

provide the generated software release from said software distribution system for download by a software consumer;

wherein said generated software release is free from said software download configuration.

18 . The system of claim 17 , wherein:

the plurality of post processing operations each has an operand selected from a group comprising:

one of the plurality of software images; and

a result of another one of the plurality of post processing operations;

the post processing operations are selected from the group comprising:

a combination operation;

an encryption operation;

an obfuscation operation;

a signing operation; and

a hash operation.

19 . The system of claim 18 , wherein the plurality of post processing operations comprises a sequence of post processing operations specified in a scripting language.

20 . An apparatus comprising a processor and a memory for distributing a software release to a software consumer, comprising:

means for accepting, in a software distribution system, a software download configuration from a software download system administrator, the software download configuration comprising:

first information defining software post processing, the software post processing identifying:

a software image to be included in the software release; and

a post processing operation to be performed on the software image, the post processing operation associated with a post processing configuration specifying post processing operation parameters defining how the post processing operation is performed by a post processing server; and

second information defining a restriction on distribution of the software release;

means for accepting, from a software producer, the software image for incorporation into the software release according to the software download configuration;

means for submitting, to the post processing server comprising a processor and a memory, at least one of the software image and a processed version of the software image for the software post processing according to the software download configuration to generate the software release;

means for receiving from said post processing server said generated software release, the generated software release being different than said software image; and

means for providing from the software distribution system the generated software release for download by the software consumer;

wherein said generated software release is free from said software download configuration.