KR101541526B1 - 변환 장치, 변환 방법 및 사용자 단말 - Google Patents

변환 장치, 변환 방법 및 사용자 단말 Download PDF

Info

Publication number
KR101541526B1
KR101541526B1 KR1020120061042A KR20120061042A KR101541526B1 KR 101541526 B1 KR101541526 B1 KR 101541526B1 KR 1020120061042 A KR1020120061042 A KR 1020120061042A KR 20120061042 A KR20120061042 A KR 20120061042A KR 101541526 B1 KR101541526 B1 KR 101541526B1
Authority
KR
South Korea
Prior art keywords
content
unit
code
executable
conversion
Prior art date
Application number
KR1020120061042A
Other languages
English (en)
Other versions
KR20140011495A (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 KR1020120061042A priority Critical patent/KR101541526B1/ko
Publication of KR20140011495A publication Critical patent/KR20140011495A/ko
Application granted granted Critical
Publication of KR101541526B1 publication Critical patent/KR101541526B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • Software Systems (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 실시예에 따른 변환 장치, 변환 방법 및 사용자 단말이 개시된다. 이때, 변환 장치는 WAC(Wholesale Application Community) 규격에 따른 제1 콘텐츠를 입력받는 입력부; 상기 제1 콘텐츠를 안드로이드 플랫폼에서 실행 가능한 제2 콘텐츠로 변환한 후 빌드하는 변환부; 빌드 환경에 따라 달라지는 사전 정의된 환경 변수를 참조하여 상기 변환부를 구동시키는 구동부; 및 상기 변환부가 빌드한 제2 콘텐츠를 외부로 출력하는 출력부를 포함한다.

Description

변환 장치, 변환 방법 및 사용자 단말{conversion device, conversion method and user terminal}
본 발명은 변환 장치, 변환 방법 및 사용자 단말에 관한 것으로서, 구체적으로 파일 형식이 서로 다른 콘텐츠를 변환하는 기술에 관한 것이다.
국내 이동통신사가 주축이 되어 한국 통합 앱스토어(K-Apps)가 개발되어 개발자들은 통신사 별로 따로 앱을 개발할 필요가 없어지고, 내년부터 자동으로 글로벌 마켓에도 등록된다. 이러한 K-Apps은 글로벌 어플리케이션 도매 장터인 WAC(Wholesael Application Community)의 WAC 2.0 규격을 세계 최초로 상용화한 것이다.
그런데, 이러한 K-Apps 규격 즉 확장자가 wgt인 형태로 개발된 컨텐츠는 실행 과정의 문제, 보안의 취약성, 불법복제의 위험성을 내재하고 있다. 확장자가 wgt인 WAC 규격을 준수하여 개발된 컨텐츠는 프로그램 소스가 유출될 수 있는 문제와 불법 복제 되어 유통될 수 있는 위험성을 내재하고 있다.
따라서, 이동 통신사에서 서비스 할 수 있는 형태의 컨텐츠가 아니라는 문제점을 가지고 있다.
이는 기존 이동 통신사의 마켓을 통해 서비스 되고 있는 어플리케이션에 비해 보안이 취약하다는 문제점을 가지고 있다.
본 발명이 이루고자 하는 기술적 과제는 모바일 플랫폼에서 실행 가능하고, 저작권 보호를 제공하는 변환 장치, 변환 방법 및 사용자 단말을 제공하는 것이다.
본 발명의 한 특징에 따른 변환 장치는, WAC(Wholesale Application Community) 규격에 따른 제1 콘텐츠를 입력받는 입력부; 상기 제1 콘텐츠를 안드로이드 플랫폼에서 실행 가능한 제2 콘텐츠로 변환한 후 빌드하는 변환부; 빌드 환경에 따라 달라지는 사전 정의된 환경 변수를 참조하여 상기 변환부를 구동시키는 구동부; 및 상기 변환부가 빌드한 제2 콘텐츠를 외부로 출력하는 출력부를 포함한다.
이때, 상기 변환부는,
위젯 파일을 apk 파일로 변환하기 위한 실행 바이너리 파일을 이용하여 변환 및 빌드를 수행할 수 있다.
또한, 상기 입력부는, 입력 파라미터를 입력받아 상기 변환부로 전달하고,
상기 변환부는, 상기 입력 파라미터에 의해 실행되어 라이브러리 형태로 제공되는 상기 실행 바이너리 파일을 이용한 콘텐츠 변환을 수행할 수 있다.
또한, 상기 입력부는,
상기 변환부를 실행시키는 명령어를 상기 입력 파라미터로 입력받을 수 있다.
또한, 상기 입력부는,
상기 실행 바이너리 파일의 클래스를 외부 자바코드에서 임포트하여 상기 실행 바이너리 파일의 클래스 함수를 직접 호출시키는 명령을 상기 입력 파라미터로 입력받을 수 있다.
또한, 상기 구동부에 의해 구동되고, 상기 안드로이드 플랫폼에서 실행 가능하도록 추가 기능을 상기 제2 콘텐츠에 삽입하는 구성부를 더 포함하고,
상기 변환부는,
상기 추가 기능이 삽입된 제2 콘텐츠를 빌드한 후, 상기 출력부로 전달할 수 있다.
또한, 상기 구성부는,
상기 변환부로부터 전달받은 제2 콘텐츠의 평문 소스코드를 암호화하고, 상기 제2 콘텐츠의 라이센스를 검증하기 위한 코드를 삽입한 후, 상기 변환부로 출력하며,
상기 변환부는,
암호화된 평문 소스코드 및 라이센스 검증코드가 포함된 제2 콘텐츠를 빌드한 후, 상기 출력부로 전달할 수 있다.
또한, 암호화된 평문 소스코드 및 라이센스 검증코드가 포함된 제2 콘텐츠에 사업자의 인증서로 서명한 후, 상기 변환부로 전달하는 서명부를 더 포함하고,
상기 변환부는,
상기 서명부로부터 전달받은 암호화된 평문 소스코드 및 라이센스 검증코드가 포함되고, 서명이 추가된 제2 콘텐츠를 상기 출력부로 전달할 수 있다.
또한, 변환장치는 상기 제2 콘텐츠를 사용자 단말로 전송하는 다운로드 서버에 탑재될 수 있다.
본 발명의 다른 특징에 따른 콘텐츠 변환 방법은, 콘텐츠 변환 장치가 콘텐츠를 변환하는 방법으로서, 외부로부터 WAC(Wholesale Application Community) 규격에 따른 제1 콘텐츠를 입력받는 단계; 빌드 환경에 따라 달라지는 사전 정의된 환경 변수를 참조하여 상기 콘텐츠 변환 장치가 구동되는 단계; 위젯 파일을 apk 파일로 변환하기 위한 실행 바이너리 파일을 이용하여 상기 제1 콘텐츠를 안드로이드 플랫폼에서 실행 가능한 제2 콘텐츠로 변환한 후, 빌드하는 단계; 및 상기 제2 콘텐츠를 외부로 출력하는 단계를 포함한다.
이때, 상기 입력받는 단계 이전에,
소프트웨어 빌드 프로세스를 자동화하는 Apache Ant를 다운로드하여 설치하는 단계; 및 상기 Apache Ant의 bin 디렉터리를 path로 등록하는 단계를 더 포함하고,
상기 구동되는 단계는,
환경 변수로 antpath-상기 Apache ant의 bin디렉터리의 절대 경로를 말함-를 참조할 수 있다.
또한, 상기 입력받는 단계 이전에,
안드로이드 개발 프로그램인 안드로이드 sdk를 다운로드하여 설치하는 단계; 및 환경 변수에 상기 안드로이드 sdk의 tools 디렉터리를 path로 등록하는 단계를 더 포함하고,
상기 구동되는 단계는,
환경 변수로 Androidpath-상기 안드로이드 sdk의 tools 디렉터리 절대 경로를 말함-를 참조할 수 있다.
또한, 상기 빌드하는 단계는,
외부로부터 입력받은 입력 파라미터 및 라이브러리 형태로 제공되는 상기 실행 바이너리 파일을 이용하여 상기 제1 콘텐츠를 상기 제2 콘텐츠로 변환하는 단계; 상기 제2 콘텐츠에 상기 안드로이드 플랫폼에서 실행 가능한 추가 기능을 삽입하는 단계; 및 상기 추가 기능이 삽입된 제2 콘텐츠를 빌드하는 단계를 더 포함하고,
상기 구동되는 단계는,
환경 변수로 wgtviewpath-상기 추가 기능 삽입을 수행하기 위한 Widgetview.zip 파일의 절대 경로를 의미함-를 참조할 수 있다.
또한, 상기 삽입하는 단계는,
상기 제2 콘텐츠의 평문 소스코드를 암호화하는 단계; 및 상기 제2 콘텐츠의 라이센스를 검증하기 위한 코드를 삽입하는 단계를 포함할 수 있다.
또한, 상기 삽입하는 단계와 상기 빌드하는 단계 사이에,
상기 제2 콘텐츠에 사업자의 인증서로 서명하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따른 사용자 단말은, 안드로이드 플랫폼을 탑재하는 사용자 단말로서, 라이센스 검증코드를 포함하는 apk 형식의 콘텐츠가 다운로드되어 저장되는 저장부; 상기 라이센스 검증코드에 따라 상기 콘텐츠의 정상 구매 여부를 검증하는 검증부; 및 상기 검증부의 검증 성공 여부에 따라 상기 콘텐츠의 실행 여부를 결정하는 실행부를 포함한다.
이때, 상기 라이센스 검증코드는,
상기 콘텐츠 제공 서버의 접속 주소를 포함하며,
상기 검증부는,
상기 접속 주소를 이용하여 접속한 콘텐츠 제공 서버와 연동하여 상기 콘텐츠의 정상 구매 여부를 판단할 수 있다.
본 발명의 실시예에 따르면, 확장자가 wgt인 콘텐츠를 모바일 플랫폼에서 실행 가능하도록 apk 확장자의 콘텐츠로 변환하고, 이때, 변환하는 과정에서 소스코드를 암호화하는 모듈과 이동통신사에서 제공하는 라이센스 검증모듈을 적용함으로써 소스코드의 수정 및 악의적인 목적의 재배포를 차단할 뿐만 아니라 불법복제된 컨텐츠의 유포 및 실행 가능성을 사전에 차단한다.
도 1은 본 발명의 실시예에 따른 전체 시스템 구성도이다.
도 2는 본 발명의 한 실시예에 따른 도 1의 변환 장치의 세부 구성을 나타낸 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 도 1의 변환 장치의 세부 구성을 나타낸 블록도이다.
도 4는 본 발명의 한 실시예에 따른 변환 장치의 변환 방법을 나타낸 순서도이다.
도 5는 본 발명의 다른 실시예에 따른 변환 장치의 변환 방법을 나타낸 순서도이다.
도 6은 본 발명의 한 실시예에 따른 도 1의 사용자 단말의 세부 구성을 나타낸 블록도이다.
도 7은 본 발명의 다른 실시예에 따른 도 1의 사용자 단말의 세부 구성을 나타낸 블록도이다.
도 8은 본 발명의 실시예에 따른 사용자 단말의 콘텐츠 실행 방법을 나타낸 순서도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 단말(terminal)은 이동국(Mobile Station, MS), 이동 단말(Mobile Terminal, MT), 가입자국(Subscriber Station, SS), 휴대 가입자국(Portable Subscriber Station, PSS), 사용자 장치(User Equipment, UE), 접근 단말(Access Terminal, AT) 등을 지칭할 수도 있고, 단말, 이동 단말, 가입자국, 휴대 가입자 국, 사용자 장치, 접근 단말 등의 전부 또는 일부의 기능을 포함할 수도 있다.
본 명세서에서 기지국(base station, BS)은, 접근점(Access Point, AP), 무선 접근국(Radio Access Station, RAS), 노드B(Node B), 고도화 노드B(evolved NodeB, eNodeB), 송수신 기지국(Base Transceiver Station, BTS), MMR(Mobile Multihop Relay)-BS 등을 지칭할 수도 있고, 접근점, 무선 접근국, 노드B, eNodeB, 송수신 기지국, MMR-BS 등의 전부 또는 일부의 기능을 포함할 수도 있다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 변환 장치, 변환 방법 및 사용자 단말에 대하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 전체 시스템 구성도이다.
도 1을 참조하면, 콘텐츠 서버(100), 다운로드 서버(200) 및 사용자 단말(300)을 포함한다.
여기서, 콘텐츠 서버(100)는 K-Apps 규격에 따른 제1 콘텐츠를 저장하고, 판매하는 서버로서, 예컨대 앱스토어일 수 있다.
여기서, K-Apps는 국내 개발자들이 모바일 운영체제(OS) 구분 없이 여러 제조사 단말을 공통으로 지원하는 웹플랫폼 기반 앱을 모아 이통3사 앱스토어로 판매할 수 있는 앱 장터이자 이를 주도하는 협의체로서, 글로벌 'WAC(Wholesale Application Community)'과 호환된다.
이때, WAC은 스마트폰 응용프로그램을 공유할 수 있는 일종의 도매시장 개념의 슈퍼 앱스토어로서, 지난해 2월 모바일월드콩그레스(MWC)에서 통신사와 제조사들이 결성한 앱 도매 장터이자 국제 표준화 조직이며, 전세계의 주요 통신사들 및제조업체가 참여하고 있다. 이러한 WAC은 전 세계 어플리케이션 개발자에게 표준화된 개발 환경을 제공한다.
이러한 K-Apps 규격에 따른 제1 콘텐츠는 '.wgt'의 확장자를 가지는 HTML(HyperText Markup Language), CSS(Cascading Style Sheets), Javascript 소스 형태의 위젯 파일이다.
다운로드 서버(200)는 네트워크(미도시)를 통해 제1 콘텐츠를 전송하는 서버로서, 콘텐츠 서버(100)와 연결되는 별도의 서버로 구현되거나 또는 콘텐츠 서버(100)에 탑재되어 다운로드 기능을 수행하도록 구현될 수 있다.
이러한 다운로드 서버(200)는 본 발명의 실시예에 따른 변환 장치(300)를 포함한다. 여기서, 변환 장치(300)는 K-Apps 규격에 따른 제1 콘텐츠를 안드로이드 플랫폼에서 실행 가능한 '.apk' 확장자를 가지는 제2 콘텐츠로 변환한다.
이때, 안드로이드는 스마트폰에서 프로그램을 실행하도록 하는 구글이 만든 모바일 전용 운영체제를 말한다.
또한, 다운로드 서버(200)는 네트워크(미도시)를 통해 연결된 사용자 단말(400)로 변환 장치(300)에 의해 변환된 제2 콘텐츠를 전송한다.
사용자 단말(400)은 정상 구매한 제1 콘텐츠의 다운로드를 다운로드 서버(200)로 요청하고, 제2 콘텐츠를 수신하여 실행한다.
여기서, 제1 콘텐츠 및 제2 콘텐츠는 디지털 포맷으로 제작 또는 가공한 디지털 콘텐츠로서, 다양한 기능을 구현하는 애플리케이션을 포함한다.
도 2는 본 발명의 한 실시예에 따른 도 1의 변환 장치의 세부 구성을 나타낸 블록도이고, 도 3은 본 발명의 다른 실시예에 따른 도 1의 변환 장치의 세부 구성을 나타낸 블록도이다.
먼저, 도 2를 참조하면, 변환 장치(300)는 입력부(301), 변환부(303), 구성부(305), 서명부(307), 구동부(309) 및 출력부(311)를 포함한다.
여기서, 구동부(309)는 환경 변수를 참조하여 변환부(303), 구성부(305), 서명부(307)를 구동시킨다. 변환부(303)가 변환한 제2 콘텐츠는 구성부(305)에 의해 추가 기능이 삽입된 후, 변환부(303)에 의해 빌드되어 서명부(307)로 출력되고, 서명부(307)가 서명을 추가한 후, 출력부(311)로 전달된다.
이때, 입력부(301)로 입력된 제1 콘텐츠는 구성부(305)에 입력되어 안드로이드 플랫폼에서 실행 가능하도록 추가 기능이 삽입된 후, 변환부(303) 및 서명부(307)를 거치도록 구현될 수도 있다.
변환 장치(300)는 '.wgt'의 확장자를 가지는 제1 콘텐츠를 '.apk' 확장자를 가지는 제2 콘텐츠로 변환하기 위한 기능을 라이브러리(lib) 형태로 제공하는 convert.jar 파일, '.apk' 확장자를 가지는 제2 콘텐츠를 구성하기 위해서 필요한 widgetview.zip 파일, '.apk' 확장자를 가지는 제2 콘텐츠에 서명(sign)을 하기 위한 keystore 파일, 빌드(build)에 필요한 정보를 정의한 buildconfig.xml 파일 및 convert.jar를 실행하기 위한 입력 파라미터(parameter) 변수를 이용하여 콘텐츠 변환을 수행한다.
변환 장치(300)의 세부 구성요소에 대하여 설명하면 다음과 같다. 여기서, 입력부(301)는 K-Apps 규격에 따른 제1 콘텐츠 및 입력 파라미터 변수를 입력받는다. 이러한 입력부(301)는 콘텐츠 제공 서버(도 1의 100)로부터 제1 콘텐츠를 입력받는다.
변환부(303)는 라이브러리(lib) 형태로 변환 기능을 제공하는 convert.jar 파일을 실행하여 K-apps 규격에 따른 코드를 안드로이드 플랫폼에서 해석할 수 있는 코드 즉 apk 형식의 코드로 변환한다. 이처럼, 변환 기능을 convert.jar라는 lib 형태로 제공하기 때문에 입력 파라미터를 추가함으로써 변환 장치(300)의 기능 확장이 용이하다.
이때, convert.jar 파일은 wgt→apk 로 변환하기 위한 실행 바이너리로 jar 파일이다. 이러한 convert.jar 파일을 실행하기 위한 입력 파라미터(parameter) 변수는 입력부(301)를 통해 변환부(303)로 입력된다.
여기서, 입력 파라미터 변수는 convert.jar 파일을 실행시키는 정보로서, 실행 방법은 두가지가 있다. 한 실시예에 따르면, 스탠드 얼론(stand-alone)으로 직접 명령어를 입력하여 실행한다. 다른 실시예에 따르면, convert.jar 파일 내의 클래스를 외부 자바코드에서 임포트(import)하여 클래스 함수를 직접 호출하여 실행한다. 이때, apk 파일 생성을 위한 정보를 입력받으며 입력이 없을시 디폴트(default)로 지정된 값을 사용한다. 디폴트로 지정된 입력 파라미터 변수는 빌드 설정 파일 경로, widget wgt 파일 경로, apk 생성 디렉토리 경로, android manifest 파일에 들어갈 versioncode, versionname, apk를 빌드할 ANDROID target ID, 빌드 후 생성되는 apk 파일 이름, target WRT의 WAC-min-version, WRT의 product ID, 디버그 옵션, 로그 파일 경로, 이동통신 사업자 ARM 시스템을 위한 product ID, 이동통신 사업자 ARM 시스템을 위한 product copyright을 포함한다.
또한, 변환부(303)는 convert.jar 파일을 실행하여 wgt 타입의 제1 콘텐츠를apk 타입의 제2 콘텐츠로 변환하여 sdk로 컴파일한 후, 배포 가능하도록 빌드한다. 여기서, 빌드는 일반적으로 target OS와 CPU에서 구동할 수 있도록 컴파일된 파일을 실행 코드로 변경하는 것을 지칭한다.
구성부(305)는 widgetview.zip 파일을 실행하여 안드로이드(android)에서 실행 가능하도록 변환부(303)가 변환한 제2 콘텐츠에 필요한 기능을 삽입한다. 즉 변환부(303)가 변환한 제2 콘텐츠가 K-apps 규격에 따른 특성을 가지도록 기능을 삽입한다. 이러한 widgetview.zip 파일을 통해 변환부(303)가 변환한 제2 콘텐츠는 안드로이드 플랫폼에서 K-apps 규격을 가지면서도 실행이 가능하도록 구성된다. '.wgt'와 '.apk'는 실행 환경(runtime)이 다르기 때문에 필요한 특성이 다르다. 따라서, 구성부(305)는 '.apk' 환경을 고려하여 여러 기능을 추가로 지원한다.
이때, widgetview.zip 파일은 '.apk' 타입으로 설치되어 안드로이드 단말 플랫폼에서 실행하기 위한 실행 코드가 삽입된 안드로이드 JAVA 코드 파일의 모음이며, widgetview.zip 파일을 통해 안드로이드 단말 플랫폼에서 실행 가능한 '.apk' 타입 콘텐츠의 구성 요소를 갖추게 된다.
여기서, 구성부(305)는 변환부(303)가 변환한 제2 콘텐츠의 소스코드 즉 플레인 텍스트(plain text)를 암호화한다. 이처럼, 소스코드를 암호화시킴으로써 소스코드의 변조를 방지할 수 있다.
또한, 구성부(305)는 사업자 예를들어 이동통신 사업자가 제공하는 라이센스 검증코드를 제2 콘텐츠에 포함시킨다. 이렇게 하면, 불법 복제된 컨텐츠의 유포 및 실행 가능성을 사전에 차단하여 이동통신사의 마켓에서 배포하는 콘텐츠를 정상적으로 구매하지 않고 무단 사용하려는 것을 방지할 수 있다.
서명부(307)는 keystore 파일을 실행하여 구성부(305)가 출력하는 제2 콘텐츠에 서비스 제공자(operator)의 서명(sign)을 추가한다. 안드로이드 플랫폼은 '.apk' 타입 콘텐츠를 설치할 때 서명 여부를 확인하여 서명되지 않은 '.apk' 타입 콘텐츠의 경우 설치를 허락하지 않는다. 여기서, keystore 파일은 사업자의 인증서로 서명하도록 하는 기능을 제공한다.
또한, apk 빌드를 위한 모든 동작은 Shell Command로 이루어지는데, Shell Command를 사용하려면 별도의 시스템 환경 변수 설정이 반드시 필요하며 정상적으로 설정되지 않을시 변환 장치(300)는 정상 동작하지 않는다. 따라서, 구동부(309)는 Apache Ant 또는 안드로이드 sdk를 다운받아 설치한 후, 시스템 환경변수를 설정한다. 즉 구동부(309)는 Apache Ant 또는 안드로이드 sdk를 포함하는 외부 툴(tool)을 사전에 다운로드하여 설치한다. 여기서, Apache Ant는 소프트웨어 빌드 프로세스를 자동화하는 프로그램이다. 또한, 안드로이드 sdk는 안드로이드 개발 프로그램이다.
구동부(309)는 앞서 기재한 외부 툴을 실행시켜 변환부(303), 구성부(305) 및 서명부(307)의 동작을 구동시킨다. 이때, 외부 툴의 경로 정보가 필요하며 가장 최우선적으로 환경 변수를 참조한다.
구동부(309)는 Apache Ant를 다운로드하여 설치한 경우, Apache Ant의 bin 디렉터리를 path로 등록한다. 그리고 환경 변수로 antpath 즉 Apache ant의 bin 디렉터리의 절대 경로를 참조한다.
구동부(309)는 안드로이드 sdk를 다운로드하여 설치한 경우, Android sdk의 tools 디렉터리를 path로 등록한다. 그리고 환경 변수로 Androidpath 즉 안드로이드 sdk의 tools 디렉터리 절대 경로를 참조한다.
구동부(309)는 빌드(build)에 필요한 정보를 정의한 buildconfig.xml 파일 에 정의된 buildconfig의 환경을 참조하여 외부 툴을 실행시켜 변환부(303), 구성부(305) 및 서명부(307)의 동작을 구동시킨다.
이때, buildconfig.xml 파일은 빌드 환경에 따라 시스템 환경 변수가 달라질 수 있는 점을 고려하여 환경 변수를 제대로 인지할 수 있도록 지원하는 파일이다. 즉 변환 장치(300)의 각 구성요소(303, 305, 307)가 인식할 수 있는 환경 변수가 buildconfig.xml 파일에 입력된다.
이때, 환경 변수로 참조되는 모든 경로는 절대 경로만 허용하며 상대 경로는 허용하지 않는다. 이는 상대경로를 사용할 경우 Shell에서 정상적으로 경로를 인식하지 못하기 때문에 변환 장치(300)가 정상적으로 동작할 수 없기 때문이다.
buildconfig.xml 파일이 제공하는 환경 변수는 아래 표 1과 같다.
구분 Tag 설명
Generator
(구동부)
Androidpath Android SDK의 tools 디렉터리 절대 경로
antpath Apache ant의 bin디렉터리의 절대 경로
wgtviewpath 함께 첨부된 Widgetview.zip 의 절대 경로
Sign_keystore
(서명부)
keypath Signing에 사용할 keystore의 절대 경로
alias keystore의 alias
storepass keystore의 storepass
keypass keystore keypass
출력부(311)는 서명부(307)가 출력하는 제2 콘텐츠를 외부로 출력한다. 여기서, 외부는 네트워크(미도시)에 연결된 사용자 단말(400)이 될 수 있다. 그리고 출력부(311)가 출력하는 제2 콘텐츠는 소스코드가 암호화된 플레인 텍스트(plain text)와 라이센스 검증 코드가 삽입되어 있다.
지금까지 기술된 제1 콘텐츠는 '.wgt' 콘텐츠와 동일하며 혼용되었다. 그리고 제2 콘텐츠는 '.apk' 콘텐츠와 동일하며 혼용되었다.
다음, 변환 장치(300)는 도 3과 같이 구현될 수 있다.
도 3은 도 2를 참고하여 설명한 입력부(301), 변환부(303), 구성부(305), 서명부(307), 구동부(309) 및 출력부(311)의 기능 중 적어도 일부를 수행하는데 사용할 수 있는 변환 장치(500)를 나타낸다. 이러한 변환 장치(500)는 프로세서(501), 메모리(503), 적어도 하나의 저장장치(505), 입출력(input/output, I/O) 인터페이스(507) 및 네트워크 인터페이스(509)를 포함하는 컴퓨터 시스템으로 구현될 수 있다.
프로세서(501)는 중앙처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있으며, 메모리(503)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 램버스 DRAM(rambus DRAM, RDRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 정적 RAM(static RAM, SRAM) 등의 RAM과 같은 매체로 구현될 수 있다.
저장 장치(505)는 하드디스크(hard disk), CD-ROM(compact disk read only memory), CD-RW(CD rewritable), DVD-ROM(digital video disk ROM), DVD-RAM, DVD-RW 디스크, 블루레이(blue-ray) 디스크 등의 광학디스크, 플래시메모리, 다양한 형태의 RAM과 같은 영구 또는 휘발성 저장장치로 구현될 수 있다.
또한, I/O 인터페이스(507)는 프로세서(501) 및/또는 메모리(503)가 저장 장치(505), 입력장치(509) 및 표시장치(511)에 접근할 수 있도록 하며, 네트워크 인터페이스(509)는 프로세서(501) 및/또는 메모리(503)가 네트워크(미도시)에 접근할 수 있도록 한다.
이 경우, 프로세서(501)는 입력부(301), 변환부(303), 구성부(305), 서명부(307), 구동부(309) 및 출력부(311)의 기능의 적어도 일부 기능을 구현하기 위한 프로그램 명령을 메모리(503)에 로드하고, 도 2를 참고로 하여 설명한 동작이 수행되도록 제어할 수 있다.
이러한 변환 장치(300)의 동작에 대해 설명하면 다음과 같다.
도 4는 본 발명의 한 실시예에 따른 변환 장치의 변환 방법을 나타낸 순서도이다.
도 4를 참조하면, 구동부(309)가 사전에 소프트웨어 빌드 프로세스를 자동화하는 Apache Ant를 다운로드하여 설치한다(S101).
다음, 구동부(309)가 환경변수로서 Apache Ant의 bin 디렉터리를 path로 등록한다(S103).
이후, 입력부(301)를 통해 K-apps 규격에 따른 제1 콘텐츠가 입력된다(S105). 이때, S105 단계는 보다 세부적으로 설명하면, 다음과 같다. 구동부(309)는 빈 프로젝트를 생성하는데, apk로 빌드가 가능하도록 Ant Script가 build.xml이란 이름으로 함께 생성된다. 그리고 안드로이드의 Assets 디렉토리에 Widget 파일 즉 K-apps 규격에 따른 제1 콘텐츠가 리소스로 삽입된다.
다음, 입력부(301)를 통해 변환부(303)로 앞서 기재한 입력 파라미터 변수가 입력된다(S107).
다음, 구동부(309)는 S103 단계에서 등록된 Antpath 및 구성부(305)가 등록한 Wgtviewpath를 환경변수로 참조하여 변환부(303), 구성부(305) 및 서명부(307)를 구동시킨다(S109).
다음, 변환부(303)는 S107 단계에서 입력받은 입력 파라미터 및 라이브러리 형태로 제공되는 실행 바이너리 파일 즉 convert.jar 파일을 이용하여 S105 단계에서 입력받은 제1 콘텐츠를 apk 타입의 제2 콘텐츠로 변환한다(S111).
다음, 구성부(305)는 S111 단계에서 변환된 제2 콘텐츠에 widgetview.zip 파일을 통하여 앞서 기재한 암호화 코드 및 라이센스 검증 코드를 삽입한다(S113).
이때, widgetview.zip 파일의 Java코드를 S105 단계에서 생성된 안드로이드 프로젝트의 src 디렉토리에 복사한다.
그리고 구동부(309)가 제공하는 config.xml 파일을 파싱(parsing)하여 Floating mode의 지원여부와 패키지명을 생성하여 widgetview.zip 파일의 자바(Java)를 수정한다.
그리고 변환된 제2 콘텐츠를 암호화한다.
그리고 라이센스 검증 코드를 libs 디렉토리에 추가하고 빌드 스크립트에 classpath 옵션을 추가한다.
다음, 변환부(303)가 S113 단계에서 암호화 코드 및 라이센스 검증 코드가 삽입된 제2 콘텐츠를 빌드한다(S115). 즉 Ant에서 Build.xml을 설정파일로 APK 빌드한다. 이때, APK는 unsigned로 빌드된다.
다음, 서명부(307)가 S115 단계에서 빌드된 제2 콘텐츠에 사업자의 인증서로 서명한다(S117).
다음, 출력부(311)가 안드로이드 플랫폼에서 실행 가능한 apk 타입의 콘텐츠 즉 제2 콘텐츠를 출력한다(S119).
도 5는 본 발명의 다른 실시예에 따른 변환 장치의 변환 방법을 나타낸 순서도이다.
도 5를 참조하면, 구동부(309)가 사전에 안드로이드 개발 프로그램인 안드로이드 sdk를 다운로드하여 설치한다(S201).
다음, 구동부(309)가 환경변수로서 안드로이드 sdk의 tools 디렉터리를 path로 등록한다(S203).
이후, 입력부(301)를 통해 K-apps 규격에 따른 제1 콘텐츠가 입력된다(S205). 이때, S205 단계는 도 4의 S105 단계와 동일하다.
다음, 입력부(301)를 통해 변환부(303)로 앞서 기재한 입력 파라미터 변수가 입력된다(S207). 이때, S207 단계는 도 4의 S107 단계와 동일하다.
다음, 구동부(309)는 S203 단계에서 등록된 Androidpath 및 구성부(305)가 등록한 Wgtviewpath를 환경변수로 참조하여 변환부(303), 구성부(305) 및 서명부(307)를 구동시킨다(S209).
다음, 변환부(303)는 S207 단계에서 입력받은 입력 파라미터 및 convert.jar 파일을 이용하여 S205 단계에서 입력받은 제1 콘텐츠를 apk 타입의 제2 콘텐츠로 변환한다(S211).
다음, 구성부(305)는 S211 단계에서 변환된 제2 콘텐츠에 widgetview.zip 파일을 통하여 앞서 기재한 암호화 코드 및 라이센스 검증 코드를 삽입한다(S213).
이때, S213 단계는 도 4의 S113 단계와 동일하다.
다음, 변환부(303)가 S113 단계에서 암호화 코드 및 라이센스 검증 코드가 삽입된 제2 콘텐츠를 빌드한다(S215). 이때, S215 단계는 도 4의 S115 단계와 동일하다.
다음, 서명부(307)가 S115 단계에서 빌드된 제2 콘텐츠에 사업자의 인증서로 서명한다(S217).
다음, 출력부(311)가 안드로이드 플랫폼에서 실행 가능한 apk 타입의 콘텐츠 즉 제2 콘텐츠를 출력한다(S219).
도 6은 본 발명의 한 실시예에 따른 도 1의 사용자 단말의 세부 구성을 나타낸 블록도이고, 도 7은 본 발명의 다른 실시예에 따른 도 1의 사용자 단말의 세부 구성을 나타낸 블록도이다.
먼저, 도 6을 참조하면, 사용자 단말(400)은 apk 콘텐츠(401)를 저장하는 저장부(403), 실행부(405) 및 검증부(407)를 포함한다.
여기서, apk 콘텐츠(401)는 암호화된 평문(plain text) 소스코드 및 라이센스 검증코드를 포함한다.
저장부(403)는 외부로부터 예컨대 도 1의 다운로드 서버(200)로부터 수신되는 apk 콘텐츠(401)를 저장한다.
실행부(405)는 검증부(407)의 정상 구매 여부를 판단한 결과 즉 검증 성공 여부에 따라 apk 콘텐츠(401)의 실행 여부를 결정한다.
검증부(407)는 apk 콘텐츠(401)에 포함된 라이센스 검증코드에 따라 apk 콘텐츠(401)의 정상 구매 여부를 검증한다. 예를 들어, 라이센스 검증코드는 콘텐츠 제공 서버(100) 또는 검증 서버(미도시)의 접속 주소를 포함하며, 검증부(407)는 라이센스 검증코드에 포함된 접속 주소를 이용하여 접속한 서버와 연동하여 apk 콘텐츠(401)의 정상 구매 여부를 판단한다.
다음, 사용자 단말(400)은 도 7과 같이 구현될 수 있다.
도 7은 도 6을 참고하여 설명한 저장부(403), 실행부(405) 및 검증부(407)의 기능 중 적어도 일부를 수행하는데 사용할 수 있는 사용자 단말(600)을 나타낸다. 이러한 사용자 단말(600)은 프로세서(601), 메모리(603), 적어도 하나의 저장장치(605), 입출력(input/output, I/O) 인터페이스(607) 및 네트워크 인터페이스(609)를 포함하는 컴퓨터 시스템으로 구현될 수 있다.
프로세서(601)는 중앙처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있으며, 메모리(603)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 램버스 DRAM(rambus DRAM, RDRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 정적 RAM(static RAM, SRAM) 등의 RAM과 같은 매체로 구현될 수 있다.
저장 장치(605)는 하드디스크(hard disk), CD-ROM(compact disk read only memory), CD-RW(CD rewritable), DVD-ROM(digital video disk ROM), DVD-RAM, DVD-RW 디스크, 블루레이(blue-ray) 디스크 등의 광학디스크, 플래시메모리, 다양한 형태의 RAM과 같은 영구 또는 휘발성 저장장치로 구현될 수 있다.
또한, I/O 인터페이스(607)는 프로세서(601) 및/또는 메모리(603)가 저장 장치(605), 입력장치(609) 및 표시장치(611)에 접근할 수 있도록 하며, 네트워크 인터페이스(609)는 프로세서(601) 및/또는 메모리(603)가 네트워크(미도시)에 접근할 수 있도록 한다.
이 경우, 프로세서(601)는 실행부(405) 및 검증부(407)의 기능의 적어도 일부 기능을 구현하기 위한 프로그램 명령을 메모리(603)에 로드하고, 도 6을 참고로 하여 설명한 동작이 수행되도록 제어할 수 있다.
그러면, 사용자 단말(400, 500)의 콘텐츠 실행 방법에 대해 설명하면 도 8과 같다. 이때, 도 6 및 도 7에서 설명한 내용과 동일한 구성 요소에 대한 설명은 동일한 도면 부호를 사용하여 설명한다.
도 8은 본 발명의 실시예에 따른 사용자 단말의 콘텐츠 실행 방법을 나타낸 순서도이다.
도 8을 참조하면, 저장부(403)는 apk 콘텐츠(401)를 다운로드하여 저장한다(S301).
다음, 실행부(405)는 저장부(403)에 저장된 apk 콘텐츠(401)를 실행한다(S303).
이때, 검증부(407)는 apk 콘텐츠(401)에 포함된 라이센스 검증코드에 따른 라이센스 검증 절차를 수행한다(S305).
다음, 실행부(405)는 검증부(407)의 라이센스 검증이 성공하는지를 판단한다(S307).
다음, 실행부(405)는 라이센스 검증에 성공하는 경우, 실행을 허용(S309)하며, apk 콘텐츠(401)에 포함된 암호화된 평문 소스코드를 해석하여 실행한다(S311).
한편, 실행부(405)는 라이센스 검증에 실패하는 경우, 실행을 중지한다(S313). 이때, '화면 상에 정상 구매 여부가 확인되지 않습니다'와 같은 문구를 표출할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (17)

  1. WAC(Wholesale Application Community) 규격에 따른 제1 콘텐츠를 입력받는 입력부;
    상기 제1 콘텐츠를 안드로이드 플랫폼에서 실행 가능한 제2 콘텐츠로 변환한 후 빌드하는 변환부;
    빌드 환경에 따라 달라지는 사전 정의된 환경 변수를 참조하여 상기 변환부를 구동시키는 구동부; 및
    상기 변환부가 빌드한 제2 콘텐츠를 외부로 출력하는 출력부를 포함하고,
    상기 변환부는,
    라이브러리 형태로 변환 기능을 제공하는 실행 바이너리 파일을 실행하여 .wgt 확장자 형식의 코드로 구성된 상기 제1 컨텐츠를 상기 안드로이드 플랫폼에서 실행 가능한 .apk 확장자 형식의 코드로 구성된 상기 제2 컨텐츠로 변환한 후, 안드로이드 개발 프로그램인 sdk로 컴파일한 후, 배포 가능하도록 빌드하며, 상기 안드로이드 플랫폼에서 실행하기 위한 실행코드가 삽입되어 상기 제2 컨텐츠를 구성하기 위해 필요한 구성 파일을 실행하여 상기 제2 컨텐츠를 상기 안드로이드 플랫폼에서 실행 가능한 형식으로 변환하는 변환 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 입력부는, 입력 파라미터를 입력받아 상기 변환부로 전달하고,
    상기 변환부는, 상기 입력 파라미터에 의해 실행되어 라이브러리 형태로 제공되는 상기 실행 바이너리 파일을 이용한 콘텐츠 변환을 수행하는 변환 장치.
  4. 제3항에 있어서,
    상기 입력부는,
    상기 변환부를 실행시키는 명령어를 상기 입력 파라미터로 입력받는 변환 장치.
  5. 제3항에 있어서,
    상기 입력부는,
    상기 실행 바이너리 파일의 클래스를 외부 자바코드에서 임포트하여 상기 실행 바이너리 파일의 클래스 함수를 직접 호출시키는 명령을 상기 입력 파라미터로 입력받는 변환 장치.
  6. 제1항에 있어서,
    상기 구동부에 의해 구동되고, 상기 안드로이드 플랫폼에서 실행 가능하도록 추가 기능을 상기 제2 콘텐츠에 삽입하는 구성부를 더 포함하고,
    상기 변환부는,
    상기 추가 기능이 삽입된 제2 콘텐츠를 빌드한 후, 상기 출력부로 전달하는 변환 장치.
  7. 제6항에 있어서,
    상기 구성부는,
    상기 변환부로부터 전달받은 제2 콘텐츠의 평문 소스코드를 암호화하고, 상기 제2 콘텐츠의 라이센스를 검증하기 위한 코드를 삽입한 후, 상기 변환부로 출력하며,
    상기 변환부는,
    암호화된 평문 소스코드 및 라이센스 검증코드가 포함된 제2 콘텐츠를 빌드한 후, 상기 출력부로 전달하는 변환 장치.
  8. 제7항에 있어서,
    암호화된 평문 소스코드 및 라이센스 검증코드가 포함된 제2 콘텐츠에 사업자의 인증서로 서명한 후, 상기 변환부로 전달하는 서명부를 더 포함하고,
    상기 변환부는,
    상기 서명부로부터 전달받은 암호화된 평문 소스코드 및 라이센스 검증코드가 포함되고, 서명이 추가된 제2 콘텐츠를 상기 출력부로 전달하는 변환 장치.
  9. 제1항에 있어서,
    상기 제2 콘텐츠를 사용자 단말로 전송하는 다운로드 서버에 탑재되는 변환 장치.
  10. 콘텐츠 변환 장치가 콘텐츠를 변환하는 방법으로서,
    외부로부터 WAC(Wholesale Application Community) 규격에 따른 제1 콘텐츠를 입력받는 단계;
    빌드 환경에 따라 달라지는 사전 정의된 환경 변수를 참조하여 상기 콘텐츠 변환 장치가 구동되는 단계;
    위젯 파일을 apk 파일로 변환하기 위한 실행 바이너리 파일을 이용하여 상기 제1 콘텐츠를 안드로이드 플랫폼에서 실행 가능한 제2 콘텐츠로 변환한 후, 빌드하는 단계; 및
    상기 제2 콘텐츠를 외부로 출력하는 단계를 포함하고,
    상기 빌드하는 단계는,
    라이브러리 형태로 변환 기능을 제공하는 실행 바이너리 파일을 실행하여 .wgt 확장자 형식의 코드로 구성된 상기 제1 컨텐츠를 상기 안드로이드 플랫폼에서 실행 가능한 .apk 확장자 형식의 코드로 구성된 상기 제2 컨텐츠로 변환한 후, 안드로이드 개발 프로그램인 sdk로 컴파일한 후, 배포 가능하도록 빌드하며, 상기 안드로이드 플랫폼에 실행하기 위한 실행코드가 삽입되어 상기 제2 컨텐츠를 구성하기 위해 필요한 구성 파일을 실행하여 상기 제2 컨텐츠를 상기 안드로이드 플랫폼에서 실행 가능한 형식으로 변환하는 콘텐츠 변환 방법.
  11. 제10항에 있어서,
    상기 입력받는 단계 이전에,
    소프트웨어 빌드 프로세스를 자동화하는 Apache Ant를 다운로드하여 설치하는 단계; 및
    상기 Apache Ant의 bin 디렉터리를 path로 등록하는 단계를 더 포함하고,
    상기 구동되는 단계는,
    환경 변수로 antpath-상기 Apache ant의 bin디렉터리의 절대 경로를 말함-를 참조하는 콘텐츠 변환 방법.
  12. 제10항에 있어서,
    상기 입력받는 단계 이전에,
    안드로이드 개발 프로그램인 안드로이드 sdk를 다운로드하여 설치하는 단계; 및
    환경 변수에 상기 안드로이드 sdk의 tools 디렉터리를 path로 등록하는 단계를 더 포함하고,
    상기 구동되는 단계는,
    환경 변수로 Androidpath-상기 안드로이드 sdk의 tools 디렉터리 절대 경로를 말함-를 참조하는 콘텐츠 변환 방법.
  13. 제10항에 있어서,
    상기 빌드하는 단계는,
    외부로부터 입력받은 입력 파라미터 및 라이브러리 형태로 제공되는 상기 실행 바이너리 파일을 이용하여 상기 제1 콘텐츠를 상기 제2 콘텐츠로 변환하는 단계;
    상기 제2 콘텐츠에 상기 안드로이드 플랫폼에서 실행 가능한 추가 기능을 삽입하는 단계; 및
    상기 추가 기능이 삽입된 제2 콘텐츠를 빌드하는 단계를 더 포함하고,
    상기 구동되는 단계는,
    환경 변수로 wgtviewpath-상기 추가 기능 삽입을 수행하기 위한 Widgetview.zip 파일의 절대 경로를 의미함-를 참조하는 콘텐츠 변환 방법.
  14. 제13항에 있어서,
    상기 삽입하는 단계는,
    상기 제2 콘텐츠의 평문 소스코드를 암호화하는 단계; 및
    상기 제2 콘텐츠의 라이센스를 검증하기 위한 코드를 삽입하는 단계
    를 포함하는 콘텐츠 변환 방법.
  15. 제14항에 있어서,
    상기 삽입하는 단계와 상기 빌드하는 단계 사이에,
    상기 제2 콘텐츠에 사업자의 인증서로 서명하는 단계
    를 더 포함하는 콘텐츠 변환 방법.
  16. 안드로이드 플랫폼을 탑재하는 사용자 단말로서,
    라이센스 검증코드를 포함하는 apk 형식의 콘텐츠가 다운로드되어 저장되는 저장부;
    상기 라이센스 검증코드에 따라 상기 콘텐츠의 정상 구매 여부를 검증하는 검증부; 및
    상기 검증부의 검증 성공 여부에 따라 상기 콘텐츠의 실행 여부를 결정하는 실행부를 포함하고,
    상기 apk 형식의 콘텐츠는,
    안드로이드 플랫폼에서 실행 가능한 .apk 확장자 형식의 코드로 구성되고, 라이브러리 형태로 변환 기능을 제공하는 실행 바이너리 파일의 실행에 의해 .wgt 확장자 형식의 코드로 구성된 컨텐츠로부터 변환되며, 안드로이드 개발 프로그램인 sdk로 컴파일한 후, 배포 가능하도록 빌드되며, 상기 안드로이드 플랫폼에 실행하기 위한 실행코드가 삽입되어 제2 콘텐츠를 구성하기 위해 필요한 구성 파일의 실행에 의해 상기 안드로이드 플랫폼에서 실행 가능한 형식으로 변환된 컨텐츠인 사용자 단말.
  17. 제16항에 있어서,
    상기 라이센스 검증코드는,
    상기 콘텐츠 제공 서버의 접속 주소를 포함하며,
    상기 검증부는,
    상기 접속 주소를 이용하여 접속한 콘텐츠 제공 서버와 연동하여 상기 콘텐츠의 정상 구매 여부를 판단하는 사용자 단말.
KR1020120061042A 2012-06-07 2012-06-07 변환 장치, 변환 방법 및 사용자 단말 KR101541526B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120061042A KR101541526B1 (ko) 2012-06-07 2012-06-07 변환 장치, 변환 방법 및 사용자 단말

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120061042A KR101541526B1 (ko) 2012-06-07 2012-06-07 변환 장치, 변환 방법 및 사용자 단말

Publications (2)

Publication Number Publication Date
KR20140011495A KR20140011495A (ko) 2014-01-29
KR101541526B1 true KR101541526B1 (ko) 2015-08-07

Family

ID=50143648

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120061042A KR101541526B1 (ko) 2012-06-07 2012-06-07 변환 장치, 변환 방법 및 사용자 단말

Country Status (1)

Country Link
KR (1) KR101541526B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190080445A (ko) * 2017-12-28 2019-07-08 숭실대학교산학협력단 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101691355B1 (ko) * 2014-12-29 2017-01-10 주식회사 디지캡 웹 애플리케이션 라이선스 검증 시스템
CN111400246B (zh) * 2020-03-26 2023-12-19 广州酷旅旅行社有限公司 异步导入文件方法、装置、计算机设备和存储介质
KR102352225B1 (ko) * 2021-05-27 2022-01-18 정주현 클라우드 기반 애플리케이션 저작 서비스 제공 시스템
CN116301471B (zh) * 2023-05-18 2023-09-01 深圳前海环融联易信息科技服务有限公司 文件自动插入的实现方法以及文件自动插入方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190080445A (ko) * 2017-12-28 2019-07-08 숭실대학교산학협력단 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치
KR102011725B1 (ko) 2017-12-28 2019-08-19 숭실대학교산학협력단 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치

Also Published As

Publication number Publication date
KR20140011495A (ko) 2014-01-29

Similar Documents

Publication Publication Date Title
CN109214168B (zh) 固件升级方法及装置
KR101541526B1 (ko) 변환 장치, 변환 방법 및 사용자 단말
CN102830992B (zh) 插件加载方法及系统
US20180260199A1 (en) Method and apparatus for intermediate representation of applications
CN108229112B (zh) 一种保护应用程序、应用程序的运行方法以及装置
CA2698066A1 (en) System and method for remotely compiling multi-platform native applications for mobile devices
US20130007889A1 (en) Trusted computing source code escrow and optimization
US20180067777A1 (en) Application protection method, server, and terminal
CN104239757A (zh) 应用程序防止逆向的方法及装置、运行方法及终端
CN109815680B (zh) 应用权限的管理方法、装置、终端设备及存储介质
CN101226569A (zh) 在虚拟机中验证代码模块的方法及装置
KR20150035249A (ko) 어플리케이션 패키지를 저장하는 기록 매체, 어플리케이션 패키지 생성 방법 및 장치, 어플리케이션 패키지 실행 방법 및 장치
CN104217140A (zh) 一种应用程序的加固方法和装置
CN106709281B (zh) 补丁发放和获取方法、装置
KR101361032B1 (ko) 기업의 기밀 노출 위험이 없는 하이브리드 클라우드 기반 모바일 엔터프라이즈 애플리케이션 플랫폼 서비스 시스템 및 그 방법
CN108170461A (zh) 差分升级包生成方法、差分升级方法及装置
CN112559980B (zh) 一种可内嵌众多任意app的小程序运行时
KR101863325B1 (ko) 역공학 방지 방법 및 장치
CN113242288A (zh) 一种物联网设备固件升级方法、系统、装置以及存储介质
CN112416395A (zh) 一种热修复更新方法和装置
Tran et al. Security issues in android application development and plug-in for android studio to support secure programming
CN113641389B (zh) 基于OpenCPU的软件升级方法、装置及设备
CN108563953A (zh) 一种安全可扩展的可信应用开发方法
KR101520097B1 (ko) 프로그램 소스 다운로드 시스템 및 방법
CN103634773B (zh) 一种安全计费的实现方法及装置

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180612

Year of fee payment: 6