# US 11,307,841 B2 · Application patching using variable-sized units

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

- Number: US 11,307,841 B2
- Document ID: US11307841B2
- Status: Granted
- Kind: B2
- Application number: 16/526,440
- Filed: 2019-07-30
- Published: 2021-02-04
- Granted: 2022-04-19
- Earliest claimed: 2019-07-30
- Assignees: Sony Interactive Entertainment Inc.
- Applicants: Sony Interactive Entertainment LLC
- Inventors: Mark Evan Cerny; Simon Whittaker; Akiyuki Hatakeyama; Jeffrey Litz; Varun Bhadauria
- Web page: https://patentgrep.com/patent/US11307841B2

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 16/1744: {using compression, e.g. sparse files}
- G06F 16/1752: {based on file chunks}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F 21/79: in semiconductor storage media, e.g. directly-addressable memories
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/0435: {wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for symmetric key encryption H04L9/06)}
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 69/04: Protocols for data compression, e.g. ROHC
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method, system and non-transitory computer readable instructions for application patching comprising, concatenating uncompressed data into a continuous data set and dividing the continuous data set into variable sized data chunks. Compressing each of the variable sized data chunks and dividing each of the variable sized data chunks into fixed size data blocks. Encrypting the fixed size data blocks to generate encrypted fixed size data blocks and sending the encrypted fixed size data blocks over a network.

## Claims

### Claim 1

A method for application patching comprising:
a) concatenating uncompressed data into a continuous data set;
b) dividing the continuous data set into variable sized data chunks;
c) compressing each of the variable sized data chunk;
d) dividing each of the variable sized data chunks into fixed size data blocks;
e) encrypting the fixed size data blocks to generate encrypted fixed size data blocks;
f) sending the encrypted fixed size data blocks over a network.

### Claim 2 (depends on 1)

The method of claim 1, further comprising;
g) dividing patch data into variable sized patch data chunks;
h) determining a relationship of variable sized patch data chunks to the variable sized data chunks;
i) generating patch metadata for the relationship of the variable sized patch data chunks to the variable sized data chunks;
j) compressing the variable sized patch data chunks to generate compressed variable sized patch data chunks;
k) dividing the compressed variable sized patch data chunks into fixed size patch data blocks;
l) encrypting the fixed size patch data blocks to generate encrypted fixed size patch data blocks;
m) sending the encrypted fixed size patch data blocks and the metadata over the network.

### Claim 3 (depends on 1)

The method of claim 1, further comprising generating a variable sized chunk metadata for a location of the variable sized chunks in relation to the encrypted fixed size blocks.

### Claim 4 (depends on 1)

The method of claim 1, wherein each of the variable sized chunks is greater than 64 kilobytes in size.

### Claim 5 (depends on 1)

The method of claim 1, further comprising deduplicating the variable sized data chunks after said dividing the variable sized data chunks into fixed size data blocks.

### Claim 6 (depends on 5)

The method of claim 5, further comprising generating variable sized chunk metadata for the variable sized data chunks, wherein the variable sized chunk metadata includes references for depuplicated chunks.

### Claim 7 (depends on 5)

The method of claim 5, wherein deduplicating the variable sized data chunks includes determining hash values for each variable sized block, comparing a hash value of a first variable sized chunk with a hash value of a second variable sized chunk, wherein the first variable sized chunk has a matching hash value with the second variable sized chunk deleting the second variable sized chunk and creating reference in memory to the first variable sized chunk.

### Claim 8

A system for application patching comprising:
a processor;
a memory coupled to the processor;
non-transitory instruction embedded in memory that when executed cause the processor to carry out the method comprising;
a) concatenating uncompressed data into a continuous data set;
b) dividing the continuous data set into variable sized data chunks;
c) compressing each of the variable sized data chunks;
d) dividing the variable sized data chunks into fixed size data blocks;
e) encrypting the fixed size data blocks to generate encrypted fixed size data blocks;
f) sending the encrypted fixed size data blocks over a network.

### Claim 9 (depends on 8)

The system of claim 8, wherein the method further comprises;
g) dividing patch data into variable sized patch data chunks;
h) determining relationship of variable sized patch data chunks to variable sized data chunks;
i) generating a patch metadata for relationship of the variable sized patch data chunks to variable sized data chunks;
j) compressing the variable sized patch data chunks
k) dividing the variable sized patch data chunks into fixed sized patch data blocks;
l) encrypting the fixed size patch data blocks to generate encrypted fixed size patch data blocks;
m) sending the encrypted fixed size patch data blocks and metadata over the network.

### Claim 10 (depends on 8)

The system of claim 8, wherein the method further comprises generating a variable sized chunk metadata for a location of the variable sized chunks in relation to the encrypted fixed size blocks.

### Claim 11 (depends on 8)

The system of claim 8, wherein each of the variable sized chunks is greater than 64 kibibytes in size.

### Claim 12 (depends on 8)

The system of claim 8, wherein the method further comprises deduplicating the variable sized data chunks after said dividing the variable sized data chunks into fixed size data blocks.

### Claim 13 (depends on 12)

The system of claim 12, wherein the method further comprises generating variable sized chunk metadata for the variable sized data chunks, wherein the variable sized chunk metadata includes references for depuplicated chunks.

### Claim 14 (depends on 12)

The system of claim 12, wherein deduplicating the variable sized data chunks includes determining hash values for each variable sized block, comparing a hash value of a first variable sized chunk with a hash value of a second variable sized chunk, wherein the first variable sized chunk has a matching hash value with the second variable sized chunk deleting the second variable sized chunk and creating reference in memory to the first variable sized chunk.

### Claim 15

Non-transitory instructions embedded in a computer readable medium that, when executed, cause a computer to carry out the method for application patching, the method comprising:
a) concatenating uncompressed data into a continuous data set;
b) dividing the continuous data set into variable sized data chunks;
c) compressing each of the variable sized data chunks;
d) dividing the variable sized data chunks into fixed size data blocks;
e) encrypting the fixed size data blocks to generate encrypted fixed size data blocks;
f) sending the encrypted fixed size data blocks over a network.

### Claim 16 (depends on 15)

The non-transitory instructions of claim 15, wherein the method further comprises
g) dividing patch data into variable sized patch data chunks;
h) determining a relationship of variable sized patch data chunks to the variable sized data chunks;
i) generating a patch metadata for relationship of the variable sized patch data chunks to variable sized data chunks;
j) compressing the variable sized patch data chunks to generate compressed variable sized patch data chunks;
k) dividing the compressed variable sized patch data chunks into fixed size patch data blocks;
l) encrypting fixed sized patch data blocks to generate encrypted fixed size patch data blocks;
m) sending the encrypted fixed sized patch data blocks and metadata over the network.

### Claim 17 (depends on 15)

The non-transitory instructions of claim 15, wherein the method further comprises generating a variable sized chunk metadata for a location of the variable sized chunks in relation to the encrypted fixed size blocks.

### Claim 18 (depends on 15)

The non-transitory instructions of claim 15, wherein each of the variable sized chunks is greater than 64 kibibytes in size.

### Claim 19 (depends on 15)

The non-transitory instructions of claim 15, wherein the method further comprises deduplicating the variable sized data chunks after said dividing the variable sized data chunks into fixed size data blocks.

### Claim 20 (depends on 19)

The non-transitory instructions of claim 19, wherein said deduplicating the variable sized data chunks includes determining hash values for each variable sized block, comparing a hash value of a first variable sized chunk with a hash value of a second variable sized chunk, wherein the first variable sized chunk has a matching hash value with the second variable sized chunk deleting the second variable sized chunk and creating reference in memory to the first variable sized chunk.
