Binary Patch Management for User Agent Functionality Extension

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

User agents like web browsers on mobile devices face challenges in extending functionality due to limited processing, memory, and storage capabilities, as well as slow download speeds and inability to change native code through add-ons or plugins.

Innovation Solution

A system and method that allows user agent functionality to be extended by storing binary code of the base version and applying binary patches, enabling enhancements to be downloaded as patches while the user agent is running, without requiring extensive API installation or code customization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If add-on or plugin software is installed to extend user agent functionality, then functionality is extended, but memory and storage consumption increases

Engineering Contradiction:
Improvefunctionality extensionVSAvoidmemory and storage consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The user agent is divided into a base binary executable and separate patch files. The base version contains core functionality, while patches provide optional enhancements. This segmentation allows devices to store only the essential base binary (minimal storage) and download patches only when needed, reducing overall storage consumption while maintaining functionality extension capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Enhancement functionality is extracted from the main user agent binary and placed into separate patch files. These patches can be downloaded and applied independently, allowing devices to obtain enhanced functionality without downloading the entire enhanced version, thus reducing memory and storage requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If complete add-on or plugin software is downloaded to extend functionality, then functionality is extended, but download time increases

Engineering Contradiction:
Improvefunctionality extensionVSAvoiddownload time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The software update is segmented into a small base binary (already present on device) and small patch files containing only the differences. This segmentation enables rapid patch downloads compared to downloading complete software, significantly reducing download time while achieving the same functionality extension.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The base binary executable is pre-installed on the device before functionality extension is needed. This preliminary action eliminates the need to download the entire user agent software when enhancements are required, allowing only minimal patch data to be downloaded, thus reducing download time.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If API and add-on software are installed to extend functionality, then functionality is extended, but device resource consumption increases

Engineering Contradiction:
Improvefunctionality extensionVSAvoidprocessing and memory resources
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The system segments functionality into a lightweight base binary and modular patches. This reduces the processing and memory resources required compared to installing complete add-on software with full APIs, as only the necessary patch code is loaded and applied to the existing binary, minimizing resource consumption while enabling functionality extension.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8701104B2System and method for user agent code patch management
Publication Date: 2014.04.15 OPERA SOFTVEAR AS
  • US8701104B2 patent drawing
  • US8701104B2 patent drawing
  • US8701104B2 patent drawing

AI summary

A system and method for executing a user agent in an electronic device. Upon each startup of the user agent, the electronic device loads binary code of a base version of the user agent into memory, and determines whether a binary patch has previously been downloaded. If the patch has been downloaded, it is applied to the base version and the updated base version is executed. The binary patch may be downloaded from a server, which compiles the binary patch on the basis of stored source code of the base version and stored source code of one or more enhancements selected by the electronic device.