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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

Disclosed are a device for white labeling of an application and a method thereof. According to one embodiment of the present invention, the device comprises: a rule storage unit storing an application change rule; and an application changing unit decomposing an original application, changing one or more of identification information, execution environment information, and execution region data of the decomposed original application based on the application change rule and generating a modification application including the changed identification information, execution environment information, and execution region data.

Description

애플리케이션의 화이트 레이블링 장치 및 방법{SYSTEM AND METHOD FOR WHITE LABELING OF APPLICATION}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.

모바일 디바이스의 발전과 더불어 기업용 애플리케이션 또한 그 비중이 퍼스널 컴퓨터에서 모바일 디바이스로 옮겨가고 있다. 기업용 애플리케이션은 기 개발된 애플리케이션을 화이트 레이블링(white labeling)이라는 과정을 통해 출시하는 경우가 많다. 화이트 레이블링이란 기존의 애플리케이션에 고객사의 니즈에 맞도록 애플리케이션 이름, 브랜드명, 아이콘 등을 변경하거나 또는 애플리케이션의 환경 설정 등을 고객사에 맞게 수정하는 과정을 의미한다.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.

대한민국 공개특허공보 제10-2014-0016897호 (2014.02.10)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.

예시적인 실시예에 따르면, 애플리케이션 변경 규칙을 저장하는 규칙 저장부; 및 원본 애플리케이션을 분해(decompose)하고, 상기 애플리케이션 변경 규칙에 기초하여, 분해된 상기 원본 애플리케이션의 식별 정보, 실행 환경 정보 및 실행 영역 데이터 중 하나 이상을 변경하며, 변경된 상기 식별 정보, 상기 실행 환경 정보 및 상기 실행 영역 데이터를 포함하는 수정 애플리케이션을 생성하는 애플리케이션 변경부를 포함하는, 애플리케이션의 화이트 레이블링 장치가 제공된다.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.

다른 예시적인 실시예에 따르면, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 애플리케이션 변경 규칙을 추출하는 단계; 원본 애플리케이션을 분해(decompose)하는 단계; 상기 애플리케이션 변경 규칙에 기초하여, 분해된 상기 원본 애플리케이션의 식별 정보, 실행 환경 정보 및 실행 영역 데이터 중 하나 이상을 변경하는 단계; 및 변경된 상기 식별 정보, 상기 실행 환경 정보 및 상기 실행 영역 데이터를 포함하는 수정 애플리케이션을 생성하는 단계를 포함하는, 방법이 제공된다.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.

본 발명의 실시예들에 따르면, 고객사별 애플리케이션 변경 규칙을 지정하는 것 만으로 원본 애플리케이션을 리빌딩(rebuilding)할 필요 없이 효과적으로 화이트 라벨링을 수행할 수 있다. 이에 따라 애플리케이션의 제작사는 각 고객사별로 애플리케이션 소스를 관리할 필요 없이 하나의 원본 애플리케이션만 관리하면 되므로, 애플리케이션의 화이트 라벨링에 따른 부담을 경감할 수 있다. 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은 본 발명의 일 실시예에 따른 애플리케이션의 화이트 레이블링 시스템(100)을 설명하기 위한 블록도
도 2는 안드로이드 애플리케이션의 파일 포맷을 설명하기 위한 예시도
도 3은 iOS 애플리케이션의 파일 포맷을 설명하기 위한 예시도
도 4는 본 발명의 일 실시예에 따른 화이트 레이블링 서버(104)의 상세 구성을 설명하기 위한 블록도
도 5는 본 발명의 일 실시예에 따른 애플리케이션의 화이트 레이블링 변환 방법(500)을 설명하기 위한 흐름도
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
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.

도 1은 본 발명의 일 실시예에 따른 애플리케이션의 화이트 레이블링 시스템(100)을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 화이트 레이블링 시스템(100)은 단말(102), 화이트 레이블링 서버(104) 및 배포 서버(106)를 포함한다.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. [

애플리케이션의 화이트 레이블링을 수행하려는 사용자(미도시)는 단말(102)을 통해 화이트 레이블링 서버(104)와 상호작용할 수 있다. 예시적인 실시예에서, 단말(102)은 데이터 통신망(108)(예를 들어, 근거리 통신망(local area network), 인터넷 등의 광역 통신망(wide area network), 또는 이들의 조합)을 통해 화이트 레이블링 서버(104)와 연결될 수 있다. 단말(102)은 개인용 컴퓨터, 클라우드 클라이언트 디바이스, 스마트폰, 또는 PDA(Personal Digital Assistant) 등으로 구성될 수 있다. 사용자는 단말(102)을 통해 화이트 레이블링 서버(104)로 원본 애플리케이션을 송신하고, 화이트 레이블링 서버(104)로부터 화이트 레이블링된 애플리케이션을 수신할 수 있다.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.

본 발명의 실시예들에서, 애플리케이션은 실행 코드 및 상기 애플리케이션의 실행에 필요한 부가 데이터(실행 환경, 부가 콘텐츠 등)를 포함하여 구성된다. 예를 들어, 미 구글 사에서 공개한 안드로이드 애플리케이션 (Android Application)의 경우.apk 형태의 파일로 생성되며 해당 파일은 zip 포맷으로 압축되어 있다. 또한, 미 애플 사에서 공개한 iOS 애플리케이션(iOS Application)은 확장자가 .ipa 형태로서, 안드로이드 애플리케이션과 마찬가지로 zip 포맷으로 압축되어 있다. 그러나 본 발명의 실시예들은 특정한 종류의 파일 포맷에 한정되는 것은 아님을 유의한다.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.

화이트 레이블링 서버(104)는 단말(102)로부터 수신되는 원본 애플리케이션에 화이트 레이블링을 수행하기 위한 컴퓨팅 장치이다. 화이트 레이블링 서버(104)는 화이트 레이블링 대상별 애플리케이션 변경 규칙을 저장 및 관리할 수 있다. 예를 들어, 화이트 레이블링 서버(104)는 애플리케이션을 제공하기 위한 고객 별 애플리케이션 변경 규칙을 저장 및 관리할 수 있다. 단말(102)로부터 원본 애플리케이션이 수신되면, 화이트 레이블링 서버(104)는 원본 애플리케이션을 분해(decompose)하고, 상기 애플리케이션 변경 규칙에 기초하여 분해된 상기 원본 애플리케이션의 식별 정보, 실행 환경 정보 및 실행 영역 데이터 중 하나 이상을 변경함으로써 화이트 레이블링된 애플리케이션(수정 애플리케이션)을 생성하도록 구성된다.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.

배포 서버(106)는 화이트 레이블링 서버(104)로부터 상기 수정 애플리케이션을 배포하기 위한 서버이다. 화이트 레이블링 서버(104)에 저장된 상기 애플리케이션 변경 규칙에는 해당 애플리케이션을 배포하기 위한 배포 서버(106)의 네트워크 주소를 포함할 수 있다. 이 경우, 화이트 레이블링 서버(104)는 상기 원본 애플리케이션의 화이트 레이블링이 완료되면, 수정 애플리케이션을 상기 네트워크 주소를 참조하여 배포 서버(106)로 송신할 수 있다.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는 안드로이드 애플리케이션의 파일 포맷을 설명하기 위한 예시도이다. 안드로이드 애플리케이션은 .apk 형태의 파일로 생성되며 해당 파일은 zip 포맷으로 압축되어 있다. 도시된 바와 같이 안드로이드 애플리케이션은 7개의 영역을 포함한다. 각각의 영역의 기능을 설명하면 다음과 같다.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은 안드로이드 애플리케이션의 구동에 필요한 정보가 이진 XML 파일 형태로 저장된다. 상기 정보는 패키지명, 애플리케이션의 이름, 버전 정보, 액세스 권한 등을 포함한다.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.

META-INF 영역은 애플리케이션의 전자 서명 정보(APK Signing) 정보 등이 저장되는 디렉토리이다.The META-INF field is a directory in which electronic signature information (APK Signing) information of the application and the like are stored.

assets 영역은 해당 애플리케이션에서 사용되는 파일 또는 데이터가 저장되는 디렉토리이다.The assets area is the directory in which files or data used by the application are stored.

resources.arsc는 해당 애플리케이션에서 사용하는 텍스트 또는 다국어 텍스트 정보 등을 포함한다.resources.arsc contains text or multilingual text information used by the application.

lib 영역은 해당 애플리케이션에서 사용되는 서드파티 또는 외부 라이브러리가 저장되는 디렉토리이다.The lib area is the directory where third-party or external libraries used by the application are stored.

classes.dex는 해당 애플리케이션의 실행 코드를 포함하는 영역이다. 안드로이드 애플리케이션에서 classes.dex 파일은 애플리케이션의 소스 코드를 구글의 달빅 가상 머신(Dalvic Virtual Machine)에서 구동할 수 있는 dex 파일 형식으로 컴파일함으로써 생성된다.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.

res 영역은 해당 애플리케이션에서 사용되는 이미지 또는 사진 등의 콘텐츠, 아이콘 파일 등이 저장되는 디렉토리이다.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은 iOS 애플리케이션의 파일 포맷을 설명하기 위한 예시도이다. iOS 애플리케이션은 확장자가 ipa인 파일로서, 해당 파일은 zip 포맷으로 압축되어 있다. 도시된 바와 같이 iOS 애플리케이션은 7개의 영역을 포함한다. 각각의 영역의 기능을 설명하면 다음과 같다.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.

애플리케이션 실행 영역(Mach-O binary)은 iOS 애플리케이션의 실행 코드를 포함하는 영역으로서, Mach-O 실행파일 포맷을 가지는 바이너리이다.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는 iOS 애플리케이션의 서명 정보를 가지고 있는 폴더이다. iOS 애플리케이션은 코드 무결성 시그니처(Code Signature)라는 방식으로 보호된다. 코드 무결성 시그니처 는 iOS 애플리케이션에 대한 일종의 해쉬값으로서, iOS 애플리케이션을 패키징할 때 생성된다. iOS의 설치 데몬인 installd는 iOS 애플리케이션의 설치 시 _CodeSignature에 저장된 시그니처와 자신이 계산한 시그니처를 비교하여 iOS 애플리케이션의 무결성을 검증한다. 따라서 만약 iOS 애플리케이션이 패키징된 이후 1바이트라도 변형되는 경우 무결성 검증을 통과하지 못하게 되므로 installd에 의하여 설치가 차단된다._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는 iOS 애플리케이션이 지원하는 기능 내지 권한 정보를 가지고 있는 xml 형태의 파일이다. 예를 들어, iOS 애플리케이션이 iOS의 특정 기능(예를 들어, 푸시 알림, 아이클라우드 등)을 사용할 경우 이와 관련된 사항이 본 파일에 저장된다.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은 iOS 애플리케이션의 서명을 위한 프로비저닝 프로파일(provisioning profile)이 저장되는 영역이다.embedded.mobileprovision is the area where the provisioning profile for signing iOS applications is stored.

en.lproj는 iOS 애플리케이션의 컴파일된 리소스 파일을 포함하는 폴더이다.en.lproj is a folder containing compiled resource files for iOS applications.

Info.plist는 iOS 애플리케이션의 정보를 포함하는 xml 형태의 파일이다. 예를 들어, Info.plist는 iOS 애플리케이션의 번들 아이디(bundle identifier) 및 해당 iOS 애플리케이션의 아이콘 파일 정보를 포함할 수 있다.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는 iOS 애플리케이션의 생성 및 패키지 타입 등의 정보를 포함하는 파일이다.PkgInfo is a file that contains information such as iOS application creation and package type.

도 4는 본 발명의 일 실시예에 따른 화이트 레이블링 서버(104)의 상세 구성을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 화이트 레이블링 서버(104)는 규칙 저장부(402) 및 애플리케이션 변경부(404)를 포함한다.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.

규칙 저장부(402)는 원본 애플리케이션으로부터 화이트 레이블링된 애플리케이션을 생성하는 데 필요한 애플리케이션 변경 규칙을 저장 및 관리한다. 전술한 바와 같이, 규칙 저장부(402)는 애플리케이션을 제공하기 위한 고객 별 애플리케이션 변경 규칙을 저장 및 관리할 수 있다.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.

애플리케이션 변경부(404)는 단말(102)로부터 수신된 원본 애플리케이션을 분해(decompose)하고, 규칙 저장부(402)에 저장된 상기 애플리케이션 변경 규칙에 따라 분해된 상기 원본 애플리케이션의 식별 정보, 실행 환경 정보 및 실행 영역 데이터 중 하나 이상을 변경한다.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.

일 실시예에서, 애플리케이션 변경부(404)는 상기 원본 애플리케이션의 정보 파일을 추출하고, 상기 애플리케이션 변경 규칙에 따라 추출된 상기 정보 파일 내 상기 변경 대상 항목을 업데이트함으로써 상기 식별 정보를 변경할 수 있다. 상기 정보 파일은, 예를 들어 안드로이드 애플리케이션의 경우 AndroidManifest.xml, iOS 애플리케이션의 경우 Info.plist 파일일 수 있다. 이와 같은 과정을 통해 애플리케이션 변경부(404)는 원본 애플리케이션의 애플리케이션명, 회사명 등을 변경할 수 있다.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.

또한, 애플리케이션 변경부(404)는 상기 애플리케이션 변경 규칙에 따라 실행 환경 설정 파일을 생성할 수 있다. 예를 들어, 상기 실행 환경 설정 파일은 INI 파일일 수 있다. 상기 INI 파일에는 애플리케이션과 연계되는 서버의 네트워크 주소, 또는 상기 애플리케이션의 구동시 필요한 각종 설정값 내지 데이터 등이 포함될 수 있다. 애플리케이션 변경부(404)는 상기 실행 환경 설정 파일을 상기 분해된 원본 애플리케이션에 부가함으로써 상기 실행 환경 정보를 변경할 수 있다. 예를 들어, 애플리케이션 변경부(404)는 상기 INI 파일을 애플리케이션 내 기 설정된 디렉토리에 삽입함으로써 화이트 레이블링된 애플리케이션의 구동시 상기 삽입된 INI 파일을 참조하도록 할 수 있다.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.

또한, 애플리케이션 변경부(404)는 분해된 상기 원본 애플리케이션의 실행 영역을 추출하고, 상기 애플리케이션 변경 규칙에 기초하여 상기 실행 영역을 구성하는 바이너리 데이터 중 적어도 일부를 상기 변경값으로 업데이트함으로써 상기 실행 영역 데이터를 변경할 수 있다. 예를 들어, 상기 애플리케이션의 실행 영역은, 안드로이드 애플리케이션의 경우 classes.dex 파일, iOS 애플리케이션의 경우 Mach-O 바이너리일 수 있다. 애플리케이션 변경부(404)는 상기와 같은 애플리케이션의 실행 영역을 추출하고, 상기 변경 규칙에 따라 상기 실행 영역의 특정 위치에 상기 변경값을 삽입하거나, 또는 특정 바이너리값을 상기 변경 규칙에 기재된 변경값으로 수정할 수 있다.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.

또한, 애플리케이션 변경부(404)는 분해된 상기 원본 애플리케이션의 이미지 파일을 상기 애플리케이션 변경 규칙에 따른 수정 이미지 파일로 교체할 수 있다. 예를 들어, 상기 이미지 파일은 상기 원본 애플리케이션의 아이콘 또는 애플리케이션 내에서 사용되는 이미지일 수 있다. 이와 같은 과정을 통해 애플리케이션 변경부(404)는 원본 애플리케이션의 아이콘 또는 애플리케이션 내에서 노출되는 로고 등을 변경할 수 있다.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.

상술한 과정을 거쳐 애플리케이션의 변경(화이트 레이블링)이 완료되면, 애플리케이션 변경부(404)는 상기 변경 사항이 모두 포함되도록 수정 애플리케이션을 생성한다. 예를 들어 애플리케이션 변경부(404)는 변경된 정보 파일, INI 파일 및 실행 영역이 모두 포함되도록 분해된 파일 및 폴더를 재압축하여 상기 수정 애플리케이션을 생성할 수 있다. 생성된 상기 수정 애플리케이션은 기 설정된 서명키(signing key)를 이용하여 서명(signing)될 수 있다.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는 본 발명의 일 실시예에 따른 애플리케이션의 화이트 레이블링 변환 방법(500)을 설명하기 위한 흐름도이다. 도 5에 도시된 방법은 예를 들어, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치, 예를 들어 화이트 레이블링 서버(104)에 의해 수행될 수 있다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.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.

단계 502에서, 화이트 레이블링 서버(104)는 단말(102)로부터 원본 애플리케이션을 수신한다.In step 502, the white labeling server 104 receives the original application from the terminal 102.

단계 504에서, 화이트 레이블링 서버(104)의 애플리케이션 변경부(404)는 규칙 저장부(402)로부터 애플리케이션 변경 규칙을 추출한다.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. [

딘계 506에서, 애플리케이션 변경부(404)는 상기 애플리케이션 변경 규칙으로부터 실행 환경 설정 파일을 생성할 수 있다. 예를 들어, 상기 실행 환경 설정 파일은 INI 파일일 수 있다.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.

단계 508에서, 애플리케이션 변경부(404)는 원본 애플리케이션을 분해(decompose)한다. 예를 들어 애플리케이션 변경부(404)는 원본 애플리케이션 패키지의 압축을 해제함으로써 상기 원본 애플리케이션을 분해하고, 이로부터 상기 도 2 및 도 3에서 설명한 것과 같은 물리적 디렉토리 및 파일을 얻을 수 있다.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.

단계 510 내지 514에서, 애플리케이션 변경부(404)는 상기 애플리케이션 변경 규칙에 기초하여, 분해된 상기 원본 애플리케이션 패키지의 식별 정보, 실행 환경 정보 및 실행 영역 데이터 중 하나 이상을 변경한다.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.

먼저 단계 510에서, 애플리케이션 변경부(404)는 상기 원본 애플리케이션의 정보 파일을 추출하고, 상기 애플리케이션 변경 규칙에 따라 추출된 상기 정보 파일 내 상기 변경 대상 항목을 업데이트함으로써 상기 애플리케이션 식별 정보를 변경할 수 있다. 상기 정보 파일은, 예를 들어 안드로이드 애플리케이션의 경우 AndroidManifest.xml, iOS 애플리케이션의 경우 Info.plist 파일일 수 있다. 이와 같은 과정을 통해 애플리케이션 변경부(404)는 원본 애플리케이션의 애플리케이션명, 회사명 등을 변경할 수 있다.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.

다음으로 단계 512에서, 애플리케이션 변경부(404)는 506 단계에서 생성된 상기 실행 환경 설정 파일을 상기 분해된 원본 애플리케이션에 부가함으로써 상기 실행 환경 정보를 변경할 수 있다. 예를 들어, 애플리케이션 변경부(404)는 상기 INI 파일을 애플리케이션 내 기 설정된 디렉토리에 삽입함으로써 화이트 레이블링된 애플리케이션의 구동시 상기 삽입된 INI 파일을 참조하도록 할 수 있다.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.

다음으로 단계 514에서, 애플리케이션 변경부(404)는 분해된 상기 원본 애플리케이션의 실행 영역을 추출하고, 상기 애플리케이션 변경 규칙에 기초하여 상기 실행 영역을 구성하는 바이너리 데이터 중 적어도 일부를 상기 변경값으로 업데이트함으로써 상기 실행 영역 데이터를 변경할 수 있다. 예를 들어, 상기 애플리케이션의 실행 영역은, 안드로이드 애플리케이션의 경우 classes.dex 파일, iOS 애플리케이션의 경우 Mach-O 바이너리일 수 있다. 애플리케이션 변경부(404)는 상기와 같은 애플리케이션의 실행 영역을 추출하고, 상기 변경 규칙에 따라 상기 실행 영역의 특정 위치에 상기 변경값을 삽입하거나, 또는 특정 바이너리값을 상기 변경 규칙에 기재된 변경값으로 수정할 수 있다.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.

상기 510 내지 514 단계는 순차적으로 수행될 수도 있고, 동시에 수행될 수도 있으며, 순서를 바꾸어 수행될 수도 있다. 또한, 애플리케이션 변경부(404)는 상기 510 내지 514 단계의 수행 중, 분해된 상기 원본 애플리케이션의 이미지 파일을 상기 애플리케이션 변경 규칙에 따른 수정 이미지 파일로 교체하는 과정을 추가적으로 수행할 수 있다. 예를 들어, 상기 이미지 파일은 상기 원본 애플리케이션의 아이콘 또는 애플리케이션 내에서 사용되는 이미지일 수 있다. 이와 같은 과정을 통해 애플리케이션 변경부(404)는 원본 애플리케이션의 아이콘 또는 애플리케이션 내에서 노출되는 로고 등을 변경할 수 있다.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.

단계 516에서, 애플리케이션 변경부(404)는 변경된 상기 식별 정보, 상기 실행 환경 정보 및 상기 실행 영역 데이터를 포함하는 수정 애플리케이션을 생성한다. 예를 들어 애플리케이션 변경부(404)는 변경된 정보 파일, INI 파일 및 실행 영역이 모두 포함되도록 분해된 파일 및 폴더를 재압축하여 상기 수정 애플리케이션을 생성할 수 있다. 생성된 상기 수정 애플리케이션은 기 설정된 서명키(signing key)를 이용하여 서명(signing)될 수 있다. 이후, 화이트 레이블링 서버(104)는 상기 수정 애플리케이션을 배포 서버(106)로 송신할 수 있다.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.

도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.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.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 본 발명의 실시예들에 따른 화이트 레이블링 서버(104)일 수 있다. 컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.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 .

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.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.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communication bus 18 interconnects various other components of computing device 12, including processor 14, computer readable storage medium 16.

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(102)와 연결될 수도 있다.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.

한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.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: 화이트 레이블링 시스템
102: 단말
104: 화이트 레이블링 서버
106: 배포 서버
100: white labeling system
102: terminal
104: White Labeling Server
106: Distribution Server

Claims (12)

애플리케이션 변경 규칙을 저장하는 규칙 저장부; 및
원본 애플리케이션을 분해(decompose)하고, 상기 애플리케이션 변경 규칙에 기초하여, 분해된 상기 원본 애플리케이션의 식별 정보, 실행 환경 정보 및 실행 영역 데이터 중 하나 이상을 변경하며, 변경된 상기 식별 정보, 상기 실행 환경 정보 및 상기 실행 영역 데이터를 포함하는 수정 애플리케이션을 생성하는 애플리케이션 변경부를 포함하는, 애플리케이션의 화이트 레이블링 장치.
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.
청구항 1에 있어서,
상기 애플리케이션 변경 규칙은, 하나 이상의 변경 대상 항목 및 상기 하나 이상의 변경 대상 항목에 대응되는 변경값을 포함하는, 애플리케이션의 화이트 레이블링 장치.
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.
청구항 2에 있어서,
상기 애플리케이션 변경부는,
상기 원본 애플리케이션의 정보 파일을 추출하고,
상기 애플리케이션 변경 규칙에 따라, 추출된 상기 정보 파일 내 상기 변경 대상 항목을 업데이트함으로써 상기 식별 정보를 변경하는, 애플리케이션의 화이트 레이블링 장치.
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.
청구항 2에 있어서,
상기 애플리케이션 변경부는,
상기 애플리케이션 변경 규칙에 따른 실행 환경 설정 파일을 생성하고,
상기 실행 환경 설정 파일을 상기 분해된 원본 애플리케이션에 부가함으로써 상기 실행 환경 정보를 변경하는, 애플리케이션의 화이트 레이블링 장치.
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.
청구항 2에 있어서,
상기 애플리케이션 변경부는,
분해된 상기 원본 애플리케이션의 실행 영역을 추출하고,
상기 애플리케이션 변경 규칙에 따라, 추출된 상기 실행 영역을 구성하는 바이너리 데이터 중 적어도 일부를 상기 변경값으로 업데이트함으로써 상기 실행 영역 데이터를 변경하는, 애플리케이션의 화이트 레이블링 장치.
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.
청구항 1에 있어서,
상기 애플리케이션 변경부는,
상기 애플리케이션 변경 규칙에 따라, 분해된 상기 원본 애플리케이션의 이미지 파일을 교체하는, 애플리케이션의 화이트 레이블링 장치.
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.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
애플리케이션 변경 규칙을 추출하는 단계;
원본 애플리케이션을 분해(decompose)하는 단계;
상기 애플리케이션 변경 규칙에 기초하여, 분해된 상기 원본 애플리케이션의 식별 정보, 실행 환경 정보 및 실행 영역 데이터 중 하나 이상을 변경하는 단계; 및
변경된 상기 식별 정보, 상기 실행 환경 정보 및 상기 실행 영역 데이터를 포함하는 수정 애플리케이션을 생성하는 단계를 포함하는, 방법.
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.
청구항 7에 있어서,
상기 애플리케이션 변경 규칙은, 하나 이상의 변경 대상 항목 및 상기 하나 이상의 변경 대상 항목에 대응되는 변경값을 포함하는, 방법.
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.
청구항 8에 있어서,
상기 변경하는 단계는,
상기 원본 애플리케이션의 정보 파일을 추출하는 단계; 및
상기 애플리케이션 변경 규칙에 따라, 추출된 상기 정보 파일 내 상기 변경 대상 항목을 업데이트하는 단계를 더 포함하는, 방법.
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.
청구항 8에 있어서,
상기 변경하는 단계는,
상기 애플리케이션 변경 규칙에 따른 실행 환경 설정 파일을 생성하는 단계; 및
상기 실행 환경 설정 파일을 상기 분해된 원본 애플리케이션에 부가하는 단계를 더 포함하는, 방법.
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.
청구항 8에 있어서,
상기 변경하는 단계는,
분해된 상기 원본 애플리케이션의 실행 영역을 추출하는 단계; 및
상기 애플리케이션 변경 규칙에 따라, 추출된 상기 실행 영역을 구성하는 바이너리 데이터 중 적어도 일부를 상기 변경값으로 업데이트하는 단계를 더 포함하는, 방법.
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.
청구항 7에 있어서,
상기 변경하는 단계는,
상기 애플리케이션 변경 규칙에 따라, 분해된 상기 원본 애플리케이션의 이미지 파일을 교체하는 단계를 더 포함하는, 방법.
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
US8850424B2 (en) Processing, modification, distribution of installation packages
US8136100B1 (en) Software installation and icon management support
US7607126B2 (en) System and method for external override of annotations
KR102077360B1 (en) Generating native code from intermediate language code for an application
US8191060B2 (en) Software installation using template executables
US8464249B1 (en) Software installation package with digital signatures
US20130047150A1 (en) Software installation and process management support
KR20060070412A (en) Language-neutral and language-specific installation packages for software setup
CN110140108B (en) Handling sibling calls
CN100507904C (en) Framework to build, deploy, service, and manage customizable and configurable re-usable applications
CN107133055B (en) Method for realizing customized development based on ClassLoader
KR20060047998A (en) Method and system for embedding context information in a document
CN108089870B (en) Method and apparatus for repairing applications
US10466997B2 (en) Apparatus and method for modifying application
KR102439778B1 (en) Application converting apparatus and method for improving security
US7966562B1 (en) System and method for providing domain-sensitive help
US10268647B2 (en) Asset catalog layered image support
US20060136906A1 (en) Software product installation facilitation
KR102272635B1 (en) System and method for converting large scale application
US20160313958A1 (en) Cross-platform command extensibility
US10579374B2 (en) Method for converting application and computing device
US20180239894A1 (en) Universal application composed of multiple universal applications
KR20190048416A (en) System and method for white labeling of application
KR20190112491A (en) System and method for converting application
CN111737964A (en) Form dynamic processing method, equipment and medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application