In-place Binary Image Promotion via Symbol Value Replacement
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional image promotion techniques require copying and modifying entire source trees, which is time-consuming and resource-intensive, and often result in software that is inoperable or suboptimal due to recompiling and relinking, limiting the ability to test promoted versions before shipping.
Innovation Solution
The method involves identifying and replacing symbol values in binary files within an unpromoted image without recompiling or relinking, using an image promoter and a binary stamper to modify the image in-place, allowing for promotion without copying the source tree or altering extensive software bits.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional promotion techniques copy the entire source tree and recompile software, then version information can be finalized and unnecessary functionality disabled, but the process requires considerable time and resources, making promotion infrequent and preventing testing of promoted versions
Solution Approach 1:
The patent uses binary stamping to copy and modify only the necessary symbol values within the binary file, rather than copying the entire source tree. This selective copying approach maintains version information accuracy while dramatically reducing the time and resources required for promotion.
Solution Approach 2:
The patent segments the promotion process into identifying specific symbol values that need modification versus the entire software build. By isolating only the version-related symbols for modification, the process avoids unnecessary recompilation and relinking, reducing promotion time while maintaining reliability.
2Reliability
If conventional promotion techniques recompile and relink software to modify symbol values, then version information can be updated, but numerous bits of software are changed, risking inoperable or suboptimal software
Solution Approach 1:
The patent extracts only the specific symbol values that need to be modified for versioning purposes from the binary file, leaving the rest of the compiled software unchanged. This extraction approach updates version information while avoiding the harmful effect of widespread software modification that could cause instability.
Solution Approach 2:
The patent performs preliminary identification of the exact symbol values that need modification before making any changes. This preliminary action ensures that only necessary bits are changed, preventing the software instability that arises from unnecessary recompilation and relinking.
3Productivity
If system build and promotion are intertwined, then builds can be automatically promoted, but developers lose the ability to check promoted software before shipping
Solution Approach 1:
The patent makes the promotion process dynamic and configurable, allowing it to be performed at different stages in the build process. Developers can choose to promote immediately after building or delay promotion until after testing, providing flexibility that maintains both automation productivity and testing capability.
Solution Approach 2:
The patent creates a reversible promotion process where the original binary can be preserved and the promoted version can be tested without committing to permanent changes. This cushioning approach allows developers to test promoted software before shipping while maintaining build automation.
Data Source
AI summary
To promote an image, an identification of at least one of an symbol name and an existing symbol value associated with the symbol name is received. An identification of a new symbol value is also received. It is then determined that a binary file that is a component of an unpromoted image is to be modified, wherein the image has previously been compiled and linked. The binary file is read to find occurrences of at least one of the symbol name or the existing symbol value in the binary file. The existing symbol value is replaced with the new symbol value to promote the image. The image is promoted without recompiling or relinking the binary file.


