# US 2017/0286090 A1 · High performance mobile device flashing

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

- Number: US 2017/0286090 A1
- Document ID: US20170286090A1
- Status: Published application
- Kind: A1
- Application number: 15/087,863
- Filed: 2016-03-31
- Published: 2017-10-05
- Earliest claimed: 2016-03-31
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Robert Yu Zhu; Ying N. Chin; Dejun Zhang; Bin Wang; Satyendra Bahadur; Xuejun Chen; Haifeng Zheng; Pengxiang Zhao
- Web page: https://patentgrep.com/patent/US20170286090A1

## CPC

- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 8/654: using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
- G06F 9/544: {Buffers; Shared memory; Pipes}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods and storage devices are configured for facilitating flashing of mobile devices. Some disclosed embodiments include burst flashing mobile devices in such a way as to facilitate a reduction in time required for tethering the mobile devices that are tethered during the flashing session and by transmitting all data required for flashing the device to the volatile memory of the mobile device and de-tethering the mobile device prior to all of the transmitted data being written to the non-volatile memory of the mobile device.

## Claims

### Claim 1

A workbench computing system that implements a method for burst flashing a mobile device from a workbench computing system, workbench computing system comprising:
one or more processors; and
one or more storage device having stored computer-executable instructions which are executable by the one or more processors for causing the workbench computing system to perform the following:
the workbench computing system identifying a payload to be flashed to a non-volatile memory of a mobile device;
the workbench computing system segmenting the payload into a full set of payload segments for transmission to the mobile device;
the workbench computing system sending the full set of payload segments to the mobile device which is tethered to the workbench computing system, the full set of payload segments being transmitted in one or more payload transmissions, wherein the full set of payload segments is initially written to volatile memory of the device, prior to being written to the non-volatile memory of the mobile device;
the workbench computing system obtaining confirmation that the full set of payload segments has been received by the mobile device, while at least some portion of the full set of payload segments still remains within the volatile memory of the mobile device, and prior to the full set of payload segments being written to the non-volatile memory of the mobile device.

### Claim 2 (depends on 1)

The workbench computing system of claim 1, wherein the mobile device is untethered from the workbench computing system prior to each payload segment within the full set of payload segments being written to the non-volatile memory of the mobile device, and wherein the at least some portion of the full set of payload segments is written to the non-volatile memory of the mobile device subsequent to the mobile device being untethered from the workbench.

### Claim 3 (depends on 1)

The workbench computing system of claim 1, wherein the non-volatile memory of the mobile device is EMMC and the volatile memory of the mobile device is RAM.

### Claim 4 (depends on 1)

The workbench computing system of claim 1, wherein the computer-executable instructions are further executable by the one or more processors for causing the workbench computing system to further perform:
the workbench computing system incrementally sending the full set of payload segments to the mobile device through a plurality of corresponding incremental transmissions; and
the workbench computing system receiving a receipt acknowledgement from the mobile device for each of the corresponding incremental transmissions.

### Claim 5 (depends on 1)

The workbench computing system of claim 1, wherein the computer-executable instructions are further executable by the one or more processors for causing the workbench computing system to further perform:
the workbench computing system obtaining the confirmation that the full set of payload segments has been received by receiving an acknowledgment from the mobile device that a last incremental transmission of the incremental transmissions has been received by the mobile device.

### Claim 6 (depends on 1)

The workbench computing system of claim 1, wherein the untethering occurs prior to any confirmation that the full set of payload segments have been written to the non-volatile memory of the device.

### Claim 7

A method for burst flashing a mobile device from a workbench computing system, the method comprising:
receiving a full set of payload segments to be flashed to the mobile device, the full set of payload segments being received from the workbench computing system while the mobile device is tethered to the workbench computing system;
writing the full set of payload segments to volatile memory of the mobile device while the mobile device is tethered to the workbench computing system;
obtaining confirmation that the full set of payload segments has been received by the mobile device prior to writing all of the full set of payload segments to non-volatile memory of the mobile device; and
sending one or more receipt acknowledgements to the workbench computing system corresponding to receipt of the full set of payload segments and prior to the full set of payload segments being written to the non-volatile memory of the mobile device.

### Claim 8 (depends on 7)

The method of claim 7, wherein the sending of the one or more receipt acknowledgments includes sending a separate receipt acknowledgement for each of a plurality of different incremental payload segments received by the mobile device.

### Claim 9 (depends on 7)

The method of claim 7, wherein the method further includes sending the one or more receipt acknowledgements prior to completely writing the full set of payload segments to the non-volatile memory.

### Claim 10 (depends on 7)

The method of claim 7, wherein the method further includes writing at least one or more of the full set of payload segments from the volatile memory of the mobile device to the non-volatile memory of the mobile device subsequent to the mobile device being untethered from the workbench.

### Claim 11 (depends on 7)

The method of claim 7, wherein the method further includes generating a notification that the full set of payload segments has been received prior to untethering the mobile device.

### Claim 12 (depends on 11)

The method of claim 11, wherein the method further includes rendering the notification at the mobile device.

### Claim 13 (depends on 11)

The method of claim 11, wherein the method further includes transmitting the notification to the workbench computing system.

### Claim 14 (depends on 11)

The method of claim 11, wherein the notification is a visual notification that is displayed at one or more of the mobile device or the workbench computing system.

### Claim 15 (depends on 7)

The method of claim 7, wherein the obtaining the confirmation includes detecting a payload segment in the received full set of payload segments that includes an identifier that identifies the payload segment as a last payload segment of the full set of payload segments to be received.

### Claim 16 (depends on 7)

The method of claim 7, wherein the obtaining the confirmation includes detecting the full set of payload segments received corresponds to a designated manifest of payload segments to be received.

### Claim 17 (depends on 7)

The method of claim 7, wherein the method further includes, subsequent to the untethering, generating a confirmation that the full set of payload segments have been written to the non-volatile memory.

### Claim 18 (depends on 7)

The method of claim 7, wherein the volatile memory includes RAM and the non-volatile memory includes EMMC.

### Claim 19

A method for burst flashing a mobile device from a workbench computing system, the method comprising:
tethering the mobile device to the workbench
using the workbench computing system to access a payload to be flashed to non-volatile memory of the mobile device;
using the workbench computing system to segment the payload into a full set of payload segments for transmission to the mobile device;
using the workbench computing system to send the full set of payload segments to the mobile device in one or more payload transmissions, wherein the full set of payload segments is initially written to volatile memory of the device, prior to being written to the non-volatile memory of the mobile device;
obtaining confirmation that the full set of payload segments has been received by the mobile device, while at least some portion of the full set of payload segments still remains within the volatile memory of the mobile device, and prior to the full set of payload segments being written to the non-volatile memory of the mobile device; and
de-tethering the mobile device from the workbench.

### Claim 20 (depends on 1)

The method of claim 1, wherein the untethering is performed prior to each payload segment within the full set of payload segments being written to the non-volatile memory of the mobile device, and wherein the at least some portion of the full set of payload segments is written to the non-volatile memory of the mobile device subsequent to the mobile device being untethered from the workbench.
