KR20190048416A - System and method for white labeling of application - Google Patents

System and method for white labeling of application Download PDF

Info

Publication number
KR20190048416A
KR20190048416A KR1020170143352A KR20170143352A KR20190048416A KR 20190048416 A KR20190048416 A KR 20190048416A KR 1020170143352 A KR1020170143352 A KR 1020170143352A KR 20170143352 A KR20170143352 A KR 20170143352A KR 20190048416 A KR20190048416 A KR 20190048416A
Authority
KR
South Korea
Prior art keywords
application
change
rule
execution
file
Prior art date
Application number
KR1020170143352A
Other languages
Korean (ko)
Inventor
문종걸
유상현
금유환
신승용
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020170143352A priority Critical patent/KR20190048416A/en
Publication of KR20190048416A publication Critical patent/KR20190048416A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

An apparatus and method for white labeling an application is disclosed. A white labeling apparatus according to an embodiment of the present invention includes a rule storage unit for storing an application change rule; And decomposing the original application and changing at least one of identification information of the original application, execution environment information and execution area data of the decomposed original application, based on the application change rule, And an application changing unit for generating a correcting application including the execution area data.

Description

BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a white labeling apparatus,

Embodiments of the present invention relate to application transformation techniques.

With the development of mobile devices, the proportion of enterprise applications is also shifting from personal computers to mobile devices. Enterprise applications often release previously developed applications through a process called white labeling. White labeling refers to the process of changing the application name, brand name, icon, etc., or customizing the application's configuration to suit the customer's needs in existing applications.

In this way, in order to label the application white, it is necessary to rebuild the application by modifying the contents of the newly developed application according to the request of the customer. In particular, if the number of clients is increased or an application is updated, the burden for white labeling will increase.

Korean Patent Laid-Open Publication No. 10-2014-0016897 (2014.02.10)

Embodiments of the present invention are intended to provide a technical means for effectively performing white labeling of an application.

According to an exemplary embodiment, a rule storage unit stores an application change rule; And decomposing the original application and changing at least one of identification information of the original application, execution environment information and execution area data of the decomposed original application, based on the application change rule, And an application changing unit for generating a correcting application including the execution area data.

The application change rule may include one or more change target items and change values corresponding to the one or more change target items.

The application changing unit may change the identification information by extracting an information file of the original application and updating the change target item in the extracted information file according to the application change rule.

The application changing unit may change the execution environment information by generating an execution environment setting file according to the application change rule and adding the execution environment setting file to the decomposed original application.

Wherein the application changing unit extracts an execution region of the decomposed original application and updates at least a part of the binary data constituting the extracted execution region with the change value according to the application changing rule, .

The application changing unit may replace the image file of the original application disassembled according to the application changing rule.

According to another exemplary embodiment, there is provided a method performed in a computing device having one or more processors and a memory storing one or more programs executed by the one or more processors, the method comprising: extracting an application change rule; Decomposing the original application; Modifying at least one of identification information, execution environment information, and execution region data of the original application disassembled based on the application modification rule; And generating a modification application that includes the identification information, the execution environment information, and the execution area data that have been changed.

The application change rule may include one or more change target items and change values corresponding to the one or more change target items.

The modifying may include: extracting an information file of the original application; And updating the change target item in the extracted information file according to the application change rule.

The changing step may include: generating an execution environment setting file according to the application changing rule; And adding the execution environment setting file to the decomposed original application.

Wherein the modifying comprises: extracting an execution region of the decomposed original application; And updating at least a part of the binary data constituting the extracted execution region with the change value according to the application change rule.

The changing step may further include replacing the image file of the original application disassembled according to the application changing rule.

According to the embodiments of the present invention, it is possible to effectively perform white labeling without having to rebuild the original application merely by specifying an application change rule for each customer. As a result, the manufacturer of the application can manage only one original application without managing the application source for each customer, thereby reducing the burden of white labeling of the application.

1 is a block diagram for illustrating a white labeling system 100 of an application according to an embodiment of the present invention.
2 is an exemplary diagram for explaining a file format of an Android application
3 is an exemplary diagram for explaining a file format of an iOS application
4 is a block diagram for explaining a detailed configuration of a white labeling server 104 according to an embodiment of the present invention.
5 is a flow chart for explaining a white labeling conversion method 500 of an application according to an embodiment of the present invention.
6 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in the exemplary embodiments.

Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular form of a term includes plural forms of meaning. In this description, the expressions " comprising " or " comprising " are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.

Figure 1 is a block diagram illustrating a white labeling system 100 for an application in accordance with an embodiment of the present invention. As shown, the white labeling system 100 according to an embodiment of the present invention includes a terminal 102, a white labeling server 104, and a distribution server 106. [

A user (not shown) who wishes to perform white labeling of the application may interact with the white labeling server 104 via the terminal 102. In an exemplary embodiment, the terminal 102 may communicate with a white labeling server 108 via a data communication network 108 (e. G., A local area network, a wide area network such as the Internet, Lt; RTI ID = 0.0 > 104 < / RTI > The terminal 102 may be a personal computer, a cloud client device, a smart phone, or a PDA (Personal Digital Assistant). The user may send the original application to the white labeling server 104 via the terminal 102 and receive the white labeled application from the white labeling server 104.

In the embodiments of the present invention, an application includes an execution code and additional data (execution environment, additional contents, etc.) necessary for execution of the application. For example, an Android application published by Microsoft Corp. is created as an .apk file, and the file is compressed in zip format. In addition, the iOS application released by US Apple Inc. has the .ipa extension and is compressed in the zip format like the Android application. It should be noted, however, that embodiments of the present invention are not limited to specific types of file formats.

The white labeling server 104 is a computing device for performing white labeling on the original application received from the terminal 102. The white labeling server 104 can store and manage the white labeling target application change rules. For example, the white labeling server 104 may store and manage customer-specific application change rules for providing applications. When the original application is received from the terminal 102, the white labeling server 104 decomposes the original application and extracts the identification information of the original application disassembled based on the application change rule, execution environment information, (Modified application) by modifying one or more of the white-labeled applications.

The distribution server 106 is a server for distributing the modified application from the white labeling server 104. The application change rule stored in the white labeling server 104 may include the network address of the distribution server 106 for distributing the application. In this case, when the white labeling of the original application is completed, the white labeling server 104 can transmit the modified application to the distribution server 106 by referring to the network address.

2 is an exemplary diagram illustrating a file format of an Android application. Android applications are created as .apk files, which are compressed in zip format. As shown, the Android application includes seven areas. The function of each area will be described as follows.

AndroidManifest.xml stores information needed to run Android applications in the form of binary XML files. The information includes a package name, an application name, version information, an access right, and the like.

The META-INF field is a directory in which electronic signature information (APK Signing) information of the application and the like are stored.

The assets area is the directory in which files or data used by the application are stored.

resources.arsc contains text or multilingual text information used by the application.

The lib area is the directory where third-party or external libraries used by the application are stored.

classes.dex is the area that contains the executable code for the application. In Android applications, the classes.dex file is created by compiling the application's source code into a dex file format that can be run by Google's Dalvik Virtual Machine.

The res area is a directory in which contents such as images or pictures used in the application, icon files, and the like are stored.

3 is an exemplary diagram for explaining a file format of an iOS application. The iOS application is a file with the extension ipa, which is compressed in zip format. As shown, the iOS application includes seven areas. The function of each area will be described as follows.

An application execution area (Mach-O binary) is an area containing executable code of an iOS application, and is a binary having a Mach-O executable file format.

_CodeSignature is the folder containing the signature information of the iOS application. iOS applications are protected in a way called Code Signature. The Code Integrity signature is a sort of hash value for an iOS application, created when the iOS application is packaged. The installation daemon of iOS, installd, verifies the integrity of the iOS application by comparing the signatures stored in _CodeSignature with the signatures it computes when installing the iOS application. Therefore, if an iOS application is transformed into a single byte after it has been packaged, it will not pass the integrity verification and installation will be blocked by installd.

archived-expanded-entitlements.xcent is an xml-style file that contains functionality or privilege information supported by iOS applications. For example, if an iOS application uses certain features of iOS (for example, push notifications, iCloud, etc.), this is stored in this file.

embedded.mobileprovision is the area where the provisioning profile for signing iOS applications is stored.

en.lproj is a folder containing compiled resource files for iOS applications.

Info.plist is an xml file containing information about the iOS application. For example, Info.plist may contain a bundle identifier of the iOS application and icon file information of the iOS application.

PkgInfo is a file that contains information such as iOS application creation and package type.

4 is a block diagram illustrating a detailed configuration of a white labeling server 104 according to an embodiment of the present invention. As shown, the white labeling server 104 according to an embodiment of the present invention includes a rule storage unit 402 and an application changing unit 404.

The rule storage unit 402 stores and manages application change rules necessary for creating a white labeled application from the original application. As described above, the rule storage unit 402 may store and manage a customer-specific application change rule for providing an application.

In one embodiment, the application change rule may include one or more change target items and change values corresponding to the one or more change target items. For example, the change rule of the application may include a rule for changing a change target item such as a company name and an application name described in an identification information area included in the original application to a specific character string. The change rule of the application may include a rule for changing a server address or the like described in the execution environment information area of the original application to a specific value. In addition, the change rule of the application may include a specific position of execution region data of the application, or a rule for changing a specific binary value to a predetermined change value.

The application changing unit 404 decomposes the original application received from the terminal 102 and stores the identification information of the original application decomposed according to the application change rule stored in the rule storage unit 402, Change one or more of the execution region data.

In one embodiment, the application changing unit 404 may change the identification information by extracting the information file of the original application and updating the change target item in the information file extracted according to the application change rule. The information file may be, for example, AndroidManifest.xml for an Android application or Info.plist file for an iOS application. Through this process, the application changing unit 404 can change the application name, company name, etc. of the original application.

In addition, the application changing unit 404 may generate an execution environment setting file in accordance with the application changing rule. For example, the execution environment setting file may be an INI file. The INI file may include a network address of a server associated with an application, various setting values and data necessary for driving the application, and the like. The application changing unit 404 may change the execution environment information by adding the execution environment setting file to the decomposed original application. For example, the application changing unit 404 may refer to the inserted INI file when the white labeled application is operated by inserting the INI file into a predetermined directory in the application.

The application changing unit 404 extracts the execution region of the decomposed original application and updates at least a part of the binary data constituting the execution region based on the application changing rule to the change value, Can be changed. For example, the execution area of the application may be a classes.dex file for an Android application, or a Mach-O binary for an iOS application. The application changing unit 404 extracts the execution region of the application as described above, inserts the change value into a specific position of the execution region according to the change rule, or inserts a specific binary value into the change value described in the change rule Can be modified.

In addition, the application changing unit 404 may replace the decomposed image file of the original application with a modified image file according to the application change rule. For example, the image file may be an icon of the original application or an image used in an application. Through this process, the application changing unit 404 can change the icon of the original application or the logo exposed in the application.

When the application change (white labeling) is completed through the above-described process, the application changing unit 404 creates the modification application so that all the changes are included. For example, the application changing unit 404 may recompile the decomposed files and folders so that the modified information file, the INI file, and the execution area are all included, thereby generating the modified application. The generated modified application may be signed using a predetermined signing key.

5 is a flowchart illustrating a method 500 of converting an application's white labeling according to an embodiment of the present invention. The method illustrated in FIG. 5 may be performed by a computing device, for example, a white labeling server 104, having one or more processors and a memory for storing one or more programs executed by the one or more processors . In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.

In step 502, the white labeling server 104 receives the original application from the terminal 102.

In step 504, the application changing unit 404 of the white labeling server 104 extracts the application changing rule from the rule storing unit 402. [

The application changing unit 404 may generate an execution environment setting file from the application changing rule. For example, the execution environment setting file may be an INI file.

In step 508, the application changing unit 404 decomposes the original application. For example, the application changing unit 404 can decompose the original application by decompressing the original application package, and obtain the physical directories and files as described in FIGS. 2 and 3 from the decompressed original application package.

In steps 510 to 514, the application changing unit 404 changes at least one of the identification information of the disassembled original application package, the execution environment information, and the execution area data based on the application changing rule.

First, in step 510, the application changing unit 404 may change the application identification information by extracting the information file of the original application and updating the change target item in the information file extracted according to the application change rule. The information file may be, for example, AndroidManifest.xml for an Android application or Info.plist file for an iOS application. Through this process, the application changing unit 404 can change the application name, company name, etc. of the original application.

Next, in step 512, the application changing unit 404 may change the execution environment information by adding the execution environment setting file created in step 506 to the decomposed original application. For example, the application changing unit 404 may refer to the inserted INI file when the white labeled application is operated by inserting the INI file into a predetermined directory in the application.

Next, in step 514, the application changing unit 404 extracts the execution region of the decomposed original application, updates at least a part of the binary data constituting the execution region with the change value based on the application change rule The execution area data can be changed. For example, the execution area of the application may be a classes.dex file for an Android application, or a Mach-O binary for an iOS application. The application changing unit 404 extracts the execution region of the application as described above, inserts the change value into a specific position of the execution region according to the change rule, or inserts a specific binary value into the change value described in the change rule Can be modified.

Steps 510 through 514 may be performed sequentially, concurrently, or sequentially. The application changing unit 404 may further perform a process of replacing the decomposed image file of the original application with the modified image file according to the application change rule during steps 510 to 514. For example, the image file may be an icon of the original application or an image used in an application. Through this process, the application changing unit 404 can change the icon of the original application or the logo exposed in the application.

In step 516, the application changing unit 404 creates a modification application containing the identification information changed, the execution environment information, and the execution area data. For example, the application changing unit 404 may recompile the decomposed files and folders so that the modified information file, the INI file, and the execution area are all included, thereby generating the modified application. The generated modified application may be signed using a predetermined signing key. The white labeling server 104 may then send the modified application to the distribution server 106.

FIG. 6 is a block diagram illustrating and illustrating a computing environment 10 including a computing device suitable for use in the exemplary embodiments. In the illustrated embodiment, each of the components may have different functions and capabilities than those described below, and may include additional components in addition to those described below.

The illustrated computing environment 10 includes a computing device 12. In one embodiment, the computing device 12 may be a white labeling server 104 in accordance with embodiments of the present invention. The computing device 12 includes at least one processor 14, a computer readable storage medium 16, The processor 14 may cause the computing device 12 to operate in accordance with the exemplary embodiment discussed above. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16. The one or more programs may include one or more computer-executable instructions, which when executed by the processor 14 cause the computing device 12 to perform operations in accordance with the illustrative embodiment .

The computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and / or other suitable forms of information. The program 20 stored in the computer-readable storage medium 16 includes a set of instructions executable by the processor 14. In one embodiment, the computer-readable storage medium 16 may be any type of storage medium such as a memory (volatile memory such as random access memory, non-volatile memory, or any suitable combination thereof), one or more magnetic disk storage devices, Memory devices, or any other form of storage medium that can be accessed by the computing device 12 and store the desired information, or any suitable combination thereof.

Communication bus 18 interconnects various other components of computing device 12, including processor 14, computer readable storage medium 16.

The computing device 12 may also include one or more input / output interfaces 22 and one or more network communication interfaces 26 that provide an interface for one or more input / output devices 24. The input / output interface 22 and the network communication interface 26 are connected to the communication bus 18. The input / output device 24 may be connected to other components of the computing device 12 via the input / output interface 22. The exemplary input and output device 24 may be any type of device, such as a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touch pad or touch screen), a voice or sound input device, An input device, and / or an output device such as a display device, a printer, a speaker, and / or a network card. The exemplary input and output device 24 may be included within the computing device 12 as a component of the computing device 12 and may be coupled to the computing device 102 as a separate device distinct from the computing device 12 It is possible.

On the other hand, an embodiment of the present invention may include a program for performing the methods described herein on a computer, and a computer-readable recording medium including the program. The computer-readable recording medium may include a program command, a local data file, a local data structure, or the like, alone or in combination. The media may be those specially designed and constructed for the present invention, or may be those that are commonly used in the field of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, and specifically configured to store and execute program instructions such as ROM, RAM, flash memory, Hardware devices. Examples of such programs may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, . Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.

100: white labeling system
102: terminal
104: White Labeling Server
106: Distribution Server

Claims (12)

  1. A rule storage unit for storing an application change rule; And
    Decomposing the original application and changing at least one of the identification information, the execution environment information, and the execution region data of the decomposed original application based on the application changing rule, And an application changing unit for generating a correcting application including the execution area data.
  2. The method according to claim 1,
    Wherein the application change rule comprises at least one change subject item and a change value corresponding to the at least one change subject item.
  3. The method of claim 2,
    The application changing unit,
    Extracts an information file of the original application,
    And changes the identification information by updating the change target item in the extracted information file according to the application change rule.
  4. The method of claim 2,
    The application changing unit,
    Generates an execution environment setting file according to the application change rule,
    And changes the execution environment information by adding the execution environment setting file to the decomposed original application.
  5. The method of claim 2,
    The application changing unit,
    Extracting an execution region of the original application decomposed,
    And changes the execution region data by updating at least a part of binary data constituting the extracted execution region with the change value according to the application change rule.
  6. The method according to claim 1,
    The application changing unit,
    And replacing the image file of the original application decomposed according to the application change rule.
  7. One or more processors, and
    A method performed in a computing device having a memory storing one or more programs executed by the one or more processors,
    Extracting an application change rule;
    Decomposing the original application;
    Modifying at least one of identification information, execution environment information, and execution region data of the original application disassembled based on the application modification rule; And
    Generating the modification application including the identification information, the execution environment information, and the execution area data that have been changed.
  8. The method of claim 7,
    Wherein the application change rule comprises at least one change subject item and a change value corresponding to the at least one change subject item.
  9. The method of claim 8,
    Wherein the modifying comprises:
    Extracting an information file of the original application; And
    Further comprising updating the change subject item in the extracted information file according to the application change rule.
  10. The method of claim 8,
    Wherein the modifying comprises:
    Generating an execution environment setting file according to the application change rule; And
    And adding the execution configuration file to the decomposed original application.
  11. The method of claim 8,
    Wherein the modifying comprises:
    Extracting an execution region of the decomposed original application; And
    Further comprising updating at least a part of the binary data constituting the extracted execution region with the change value according to the application change rule.
  12. The method of claim 7,
    Wherein the modifying comprises:
    And replacing the image file of the original application that has been decomposed according to the application change rule.
KR1020170143352A 2017-10-31 2017-10-31 System and method for white labeling of application KR20190048416A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170143352A KR20190048416A (en) 2017-10-31 2017-10-31 System and method for white labeling of application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170143352A KR20190048416A (en) 2017-10-31 2017-10-31 System and method for white labeling of application

Publications (1)

Publication Number Publication Date
KR20190048416A true KR20190048416A (en) 2019-05-09

Family

ID=66546125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170143352A KR20190048416A (en) 2017-10-31 2017-10-31 System and method for white labeling of application

Country Status (1)

Country Link
KR (1) KR20190048416A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140016897A (en) 2011-02-11 2014-02-10 모카나 코포레이션 Securing and managing apps on a device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140016897A (en) 2011-02-11 2014-02-10 모카나 코포레이션 Securing and managing apps on a device

Similar Documents

Publication Publication Date Title
US9390191B2 (en) Methods and systems for the provisioning and execution of a mobile software application
CN102105874B (en) Method and system for detecting and processing change to resource from application package
US8448161B2 (en) Application tracking for application execution environment
JP5007046B2 (en) Maintenance of component-based software products
CN102656557B (en) Automation enterprise software development
US6938250B2 (en) Image-based software installation
Taivalsaari et al. Web browser as an application platform: The lively kernel experience
EP1419632B1 (en) Network-based software extensions
US6353926B1 (en) Software update notification
JP5208350B2 (en) Self-describing software image update components
US9218175B2 (en) Cross-platform application framework
JP5460941B2 (en) Extensible customizable framework and method for a software system
US8245223B2 (en) Networked deployment of multi-application customizations
US7062764B2 (en) System and method for manipulating offline software
US8904382B2 (en) Creating instances of cloud computing environments
US20100281475A1 (en) System and method for mobile smartphone application development and delivery
US8171470B2 (en) Software installation and support
EP0822484A2 (en) Method and apparatus for enhancing the portability of an object oriented interface among multiple platforms
US20060020937A1 (en) System and method for extraction and creation of application meta-information within a software application repository
US8745573B2 (en) Platform-independent application development framework
US8869099B2 (en) System and method of enabling multi-tenancy for software as a service application
US20120090021A1 (en) Platform Specific Application Building
US8972969B2 (en) Out of band services updates
US8302014B2 (en) Merging modifications to user interface components while preserving user customizations
US8191060B2 (en) Software installation using template executables

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal