IP Library Granted Patent US 10,203,944
Granted Patent B1
US 10,203,944 · App. 15/342,769 · Granted Feb 12, 2019

Systems and methods for dynamically customizing software programs

Inventor: Brook Lewis (New York, NY)
Assignee: Symantec Corporation
G06F8/60G06F8/20H04L67/34H04L67/42
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 10,203,944
App. No.
15/342,769
Granted
Feb 12, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for dynamically customizing software programs may include (i) receiving, from a client device, a request for a software program with client-specific customization requirements and (ii) providing, to the client device, a digitally signed download manager for downloading a client-specific version of the software program that satisfies the client-specific customization requirements, where the digitally signed download manager provides the client-specific version of the software program to the client device by (a) downloading, from the backend computing system, both the software program and client-specific data that satisfies the client-specific customization requirements and (b) customizing, using the client-specific data, the software program in a manner that satisfies the client-specific customization requirements. Various other methods, systems, and computer-readable media are also disclosed.

Claims (76)

1. A computer-implemented method for dynamically customizing software programs, at least a portion of the method being performed by a backend computing system comprising at least one processor, the method comprising:

receiving, from a client device, a request for a software program with client-specific customization requirements; and

providing, to the client device, a digitally signed download manager for downloading a client-specific version of the software program that satisfies the client-specific customization requirements, wherein the digitally signed download manager is previously digitally signed with a digital signature independent of the client-specific customization requirements and the digitally signed download manager provides the client-specific version of the software program to the client device by:

downloading, from the backend computing system, both the software program and client-specific data that satisfies the client-specific customization requirements; and

customizing, using the client-specific data, the software program in a manner that satisfies the client-specific customization requirements while maintaining the digital signature of the digitally signed download manager.

2. The computer-implemented method of claim 1 , further comprising generating the digitally signed download manager by:

including a unique identifier in a file containing executable code for the digitally signed download manager; and

digitally signing the executable code file to produce the digitally signed download manager.

3. The computer-implemented method of claim 2 , wherein providing the digitally signed download manager comprises:

providing, to the client device, a network location associated with the unique identifier;

receiving, from the client device at the network location, a request for the digitally signed download manager; and

in response to receiving the request for the digitally signed download manager, transmitting the digitally signed download manager to the client device from the network location.

4. The computer-implemented method of claim 2 , further comprising generating a plurality of digitally signed download managers before receiving the request from the client device.

5. The computer-implemented method of claim 4 , wherein:

each of the plurality of digitally signed download managers is associated with at least one of a plurality of download manager classes; and

each download manager class is associated with a customized version of the software program.

6. The computer-implemented method of claim 5 , further comprising identifying, based on the client-specific data, the download manager class that satisfies the client-specific customization requirements.

7. The computer-implemented method of claim 1 , further comprising identifying the client-specific data by at least one of:

identifying a user associated with the client device;

identifying an organization associated with the client device;

identifying a location for the client device;

identifying a language used by the client device;

identifying an operating system version used by the client device;

identifying a network address associated with the client device;

identifying system configuration information for the client device;

identifying a software publisher providing the software program to the client device; and

identifying a license for the software program to be downloaded.

8. The computer-implemented method of claim 1 , wherein the client-specific data comprises at least one of:

a software license;

a localization file; and

a virtualization container.

9. A system for dynamically customizing software programs,

the system comprising:

a receiving module, stored in memory, that receives, from a client device, a request for a software program with client-specific customization requirements;

a provisioning module, stored in memory, that provides, to the client device, a digitally signed download manager for downloading a client-specific version of the software program that satisfies the client-specific customization requirements, wherein the digitally signed download manager is previously digitally signed with a digital signature independent of the client-specific customization requirements and the digitally signed download manager provides the client-specific version of the software program to the client device by downloading, from the backend computing system, both the software program and client-specific data that satisfies the client-specific customization requirements;

a customization module, stored in memory, that customizes, using the client-specific data, the software program in a manner that satisfies the client-specific customization requirements while maintaining the digital signature of the digitally signed download manager; and

at least one physical processor configured to execute the receiving module, the provisioning module, and the customization module.

10. The system of claim 9 , further comprising a signing module, stored in memory, that generates the digitally signed download manager by:

including a unique identifier in a file containing executable code for the digitally signed download manager; and

digitally signing the executable code file to produce the digitally signed download manager.

11. The system of claim 10 , wherein the provisioning module provides the digitally signed download manager by:

providing, to the client device, a network location associated with the unique identifier;

receiving, from the client device at the network location, a request for the digitally signed download manager; and

in response to receiving the request for the digitally signed download manager, transmitting the digitally signed download manager to the client device from the network location.

12. The system of claim 10 , wherein the signing module generates a plurality of digitally signed download managers before receiving the request from the client device.

13. The system of claim 12 , wherein:

each of the plurality of digitally signed download managers is associated with at least one of a plurality of download manager classes; and

each download manager class is associated with a customized version of the software program.

14. The system of claim 13 , further comprising an identification module, stored in memory, that identifies, based on the client-specific data, the download manager class that satisfies the client-specific customization requirements.

15. The system of claim 14 , wherein the identification module identifies the client-specific data by at least one of:

identifying a user associated with the client device;

identifying an organization associated with the client device;

identifying a location for the client device;

identifying a language used by the client device;

identifying an operating system version used by the client device;

identifying a network address associated with the client device;

identifying system configuration information for the client device;

identifying a software publisher providing the software program to the client device; and

identifying a license for the software program to be downloaded.

16. The system of claim 9 , wherein the client-specific data comprises at least one of:

a software license;

a localization file; and

a virtualization container.

17. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive, from a client device, a request for a software program with client-specific customization requirements; and

provide, to the client device, a digitally signed download manager for downloading a client-specific version of the software program that satisfies the client-specific customization requirements, wherein the digitally signed download manager is previously digitally signed with a digital signature independent of the client-specific customization requirements and the digitally signed download manager provides the client-specific version of the software program to the client device by:

downloading, from the backend computing system, both the software program and client-specific data that satisfies the client-specific customization requirements; and

customizing, using the client-specific data, the software program in a manner that satisfies the client-specific customization requirements while maintaining the digital signature of the digitally signed download manager.

18. The non-transitory computer-readable medium of claim 17 , wherein the one or more computer-readable instructions cause the computing device to generate the digitally signed download manager by:

including a unique identifier in a file containing executable code for the digitally signed download manager; and

digitally signing the executable code file to produce the digitally signed download manager.

19. The non-transitory computer-readable medium of claim 18 , wherein the one or more computer-readable instructions cause the computing device to:

provide, to the client device, a network location associated with the unique identifier;

receive, from the client device at the network location, a request for the digitally signed download manager; and

in response to receiving the request for the digitally signed download manager, transmit the digitally signed download manager to the client device from the network location.

20. The non-transitory computer-readable medium of claim 19 , wherein the one or more computer-readable instructions cause the computing device to generate a plurality of digitally signed download managers before receiving the request from the client device.

Assignments (6)
CHANGE OF NAME Recorded Feb 6, 2023
From: NORTONLIFELOCK INC.
To: GEN DIGITAL INC.
Reel/Frame 062714/0605 →
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Feb 14, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 051935/0228 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2016
From: LEWIS, BROOK
To: SYMANTEC CORPORATION
Reel/Frame 040216/0537 →