KR20200006841A - Communication terminal and method for providing security when foreground service of application is running - Google Patents

Communication terminal and method for providing security when foreground service of application is running Download PDF

Info

Publication number
KR20200006841A
KR20200006841A KR1020180080710A KR20180080710A KR20200006841A KR 20200006841 A KR20200006841 A KR 20200006841A KR 1020180080710 A KR1020180080710 A KR 1020180080710A KR 20180080710 A KR20180080710 A KR 20180080710A KR 20200006841 A KR20200006841 A KR 20200006841A
Authority
KR
South Korea
Prior art keywords
foreground
foreground service
application
service
list
Prior art date
Application number
KR1020180080710A
Other languages
Korean (ko)
Other versions
KR102532696B1 (en
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 KR1020180080710A priority Critical patent/KR102532696B1/en
Publication of KR20200006841A publication Critical patent/KR20200006841A/en
Application granted granted Critical
Publication of KR102532696B1 publication Critical patent/KR102532696B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Telephone Function (AREA)

Abstract

Disclosed are a method for providing security by preventing an attack by a malicious script when a foreground service of an application is executed on an operating system such as Android and a communication terminal therefor. According to an aspect of the present invention, the communication terminal comprises: a memory for storing programs; and a processor coupled with the memory to execute the programs. The programs include a foreground service control module which transmits, on detection of a clear all input to terminate all recently launched applications from a user at once, a foreground service shutdown command to at least one application that is currently running in a background and can be terminated through a status bar.

Description

어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법{COMMUNICATION TERMINAL AND METHOD FOR PROVIDING SECURITY WHEN FOREGROUND SERVICE OF APPLICATION IS RUNNING}COMMUNICATION TERMINAL AND METHOD FOR PROVIDING SECURITY WHEN FOREGROUND SERVICE OF APPLICATION IS RUNNING

본 발명은 안드로이드 등의 운영체제 기반에서의 어플리케이션의 포그라운드 서비스 기술에 관한 것으로서, 보다 구체적으로 안드로이드 등의 운영체제 기반에서 어플리케이션의 포그라운드 서비스가 실행될 때 보안을 제공하는 방법 및 이를 위한 통신 단말에 관한 것이다. The present invention relates to a foreground service technology of an application on an operating system such as Android, and more particularly, to a method for providing security when a foreground service of an application is executed on an operating system such as Android, and a communication terminal therefor. .

최근 디지털 기술의 발달과 함께 이동통신 단말기, PDA(Personal Digital Assistant), 전자수첩, 스마트 폰, 태블릿 PC(Personal Computer), 웨어러블 디바이스(wearable device) 등과 같은 다양한 유형의 통신 단말이 널리 사용되고 있다. 이러한, 통신 단말은 음성 통화, SMS(Short Message Service)/MMS(Multimedia Message Service) 등과 같은 메시지 전송, 영상통화, 전자수첩, 촬영, 이메일 송수신, 방송재생, 인터넷, 음악재생, 일정관리, 소셜 네트워크 서비스(SNS, Social Networking Service), 메신저, 사전, 게임 등의 기능과 같이 다양한 기능들을 구비하게 되었다.Recently, with the development of digital technology, various types of communication terminals such as mobile communication terminals, PDAs (Personal Digital Assistants), electronic notebooks, smart phones, tablet PCs, and wearable devices have been widely used. Such a communication terminal may be a voice call, a message transmission such as SMS (Short Message Service) / MMS (Multimedia Message Service), a video call, an electronic notebook, photographing, an e-mail transmission, a broadcast play, the Internet, a music play, a schedule management, a social network Various functions such as social networking service (SNS), messenger, dictionary, game, etc. are provided.

현재 통신 단말의 대표적인 운영체제로서 안드로이드(Android)와 IOS를 들 수 있다. 안드로이드 운영체제는 구글에서 개발한 것으로서 구글 앱 스토어에서 어플리케이션을 다운로드하여 설치할 수 있도록 지원한다. 이러한 어플리케이션들은 자체 UI(User Interface)를 제공하면서 동시에 브라우저와 같이 웹 페이지를 표시할 수 있도록 지원한다. 안드로이드 운영체제는 자체적으로 통신 단말과 밀접하게 결합되어 있어서 푸시, 백그라운드 서비스, 포그라운드 서비스 등의 사용자 환경을 제공하고 있다. 이중 백그라운드 서비스는 현재 무언가 실행되고 있다는 것을 사용자가 인지하지 못하는 서비스이고, 포그라운드 서비스는 현재 무언가 실행되고 있다는 것을 사용자가 인지하고 있는 서비스이다. Representative operating systems of the current communication terminal include Android (Android) and IOS. The Android operating system was developed by Google and supports downloading and installing applications from the Google App Store. These applications provide their own user interface (UI) and at the same time support the display of Web pages like a browser. The Android operating system is tightly coupled with its own communication terminal, providing a user experience such as push, background services, and foreground services. The background service is a service that the user does not recognize that something is currently running, and the foreground service is a service that the user knows that something is currently running.

최근 출시된 안드로이드 O 버전에서는 고질적인 배터리 수명 문제를 개선하기 위해 백그라운드 서비스 실행을 강제로 제한한다. 즉, 기존 모든 백그라운드 서비스는 포그라운드 서비스로 전환하여, 사용자에게 포그라운드 서비스가 실행 중임을 상단의 상태 바를 통해 알려야 하는 것으로 변경되었다. 그리고 사용자는 상단의 상태 바에서 포그라운드 서비스를 강제로 종료할 수 있도록 변경되었다. 다시 말하면, 기존에는 디스플레이에 실행 중인 화면이 표시되지 않고 백그라운드로 실행되면 백그라운드 서비스라 하였으나, 지금은 디스플레이에 실행 중인 화면이 표시되지 않더라도 상태 바를 통해 서비스가 실행 중인 것이 알려지므로 해당 서비스는 백그라운드 서비스가 아닌 포그라운드 서비스로 정의된다. The recently released version of Android O forces the background service to be restricted to improve the battery life problem. In other words, all existing background services have been switched to the foreground service so that the user should be informed via the status bar at the top that the foreground service is running. The user has been forced to shut down the foreground service from the status bar at the top. In other words, if a screen is not displayed on the display and is running in the background, it is called a background service. However, even if the screen is not displayed on the display, the status bar indicates that the service is running. It is defined as a foreground service.

이와 같이 백그라운드에서 동작하면서 상태 바를 통해 실행 중임을 알리는 포그라운드 서비스는 오직 상태 바를 통해서만 종료할 수 있다. 즉, 안드로이드 운영체제의 통신 단말에서는 왼쪽 하단의 메뉴를 누르면 최근 실행하였던 어플리케이션들의 목록이 나오고 '모두 지우기'를 누르면 최근 실행되었던 어플리케이션의 태스크들이 모두 삭제되어 종료될 수 있도록 하는데, 백그라운드에서 동작하면서 상태 바를 통해 실행 중임을 알리는 포그라운드 서비스는 '모두 지우기'를 통해 종료되지 않고, 오직 상태 바를 통해서만 종료해야 한다. 즉, 상태 바를 내린 후 개별적으로 포그라운드 서비스를 종료해야 한다. 도 6은 상태 바를 내렸을 때 포그라운드 서비스를 알리는 화면이다. As such, the foreground service running in the background and notifying it via the status bar can only be terminated through the status bar. That is, in the communication terminal of the Android operating system, pressing the menu at the bottom left brings up a list of recently executed applications, and pressing 'Clear All' allows all tasks of the recently executed application to be deleted and terminated. Foreground services that say they are running must not be terminated via 'Erase All', but only through the status bar. In other words, you must shut down the foreground service individually after lowering the status bar. 6 is a screen for notifying the foreground service when the status bar is lowered.

이러한 특성은 해커에 의한 공격 대상이 될 수 있다. 예를 들어, 어플리케이션이 웹 페이지를 표시할 때 웹 페이지가 정상적으로 표시되지 않고 블랭크(blank) 페이지가 발생하는 경우가 있다. 이는 어플리케이션이 데이터를 받지 못하였거나 쿠키가 정상적인 정보가 아닐 경우 또는 잘못된 데이터의 유입으로 인해, 또는 악성 스크립트가 포함된 URL에 접속하여 발생할 수 있다. 이와 같이 블랭크 페이지가 발생하더라도 어플리케이션은 지속적으로 웹 커넥션을 유지하고 있는 상태이다. 이와 같은 오류 발생시 일반적으로 스마트 폰을 사용하는 사용자들은 상태 바를 내려서 어플리케이션을 종료시키기 보다는 '모두 지우기' 메뉴를 통해 어플리케이션을 종료시킨다. 그런데 '모두 지우기'로는 해당 어플리케이션의 포그라운드 서비스가 종료되지 않으므로 악성 스크립트에 의한 개인 정보 탈취가 지속적으로 이루어질 수 있다. These characteristics can be targeted by hackers. For example, when an application displays a web page, the web page is not normally displayed and a blank page occurs. This can happen if the application did not receive the data, if the cookie is not normal information, due to the inflow of incorrect data, or by accessing a URL containing malicious script. In this way, the application continues to maintain a web connection even when a blank page occurs. When such an error occurs, users who use a smartphone generally terminate the application through the 'Erase All' menu rather than closing the application by lowering the status bar. However, 'Clear All' does not terminate the foreground service of the application, so malicious information may be continuously taken by a malicious script.

본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로서, 안드로이드 등의 운영체제 기반에서 어플리케이션의 포그라운드 서비스가 실행될 때 악성 스크립트 등에 의한 공격을 방어하여 보안을 제공하는 방법 및 이를 위한 통신 단말을 제공하는데 목적이 있다. The present invention has been proposed to solve the above problems, and provides a method and a communication terminal for providing security by preventing attacks by malicious scripts when the foreground service of the application is executed on the operating system, such as Android There is a purpose.

일 측면에 따른 통신 단말은, 프로그램들을 저장하는 메모리; 및 상기 메모리와 결합되어 상기 프로그램들을 실행하는 프로세서를 포함하고, 상기 프로그램들은, 사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력의 감지시, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 포그라운드 서비스 제어 모듈을 포함한다.According to an aspect, a communication terminal includes a memory configured to store programs; And a processor coupled with the memory to execute the programs, wherein the programs are currently running in the background and via a status bar upon detection of an erase all input to terminate all recently executed applications from a user at one time. And a foreground service control module for transmitting a foreground service termination command to at least one or more applications that can terminate.

상기 프로그램들은, 스케줄러를 더 포함하고, 상기 포그라운드 서비스 제어 모듈은, 상기 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 상기 스케줄러에 등록한 후에 상기 포그라운드 서비스 종료 명령을 전송할 수 있다.The programs may further include a scheduler, and the foreground service control module may receive a pre-allowed list of foreground services from the at least one or more applications, register with the scheduler, and then transmit the foreground service termination command. .

상기 스케줄러는, 상기 포그라운드 서비스 종료 명령에 대한 응답이 수신되면, 상기 미리 허용된 포그라운드 서비스 목록의 포그라운드 서비스를 재실행할 수 있다.When the response to the foreground service termination command is received, the scheduler may re-execute the foreground service of the previously allowed foreground service list.

상기 포그라운드 서비스 제어 모듈은, 상기 모두 지우기 입력의 감지시마다, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 상기 스케줄러에 등록할 수 있다.The foreground service control module may receive a list of previously permitted foreground services from the at least one application that is currently running in the background and may be terminated through the status bar, upon registration of the erase all input, and register with the scheduler. Can be.

상기 포그라운드 서비스 제어 모듈은, 어플리케이션의 설치시마다 해당 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 저장하고, 특정 포그라운드 서비스로부터 컨텍스트 생성 요청시 그 특정 포그라운드 서비스가 상기 미리 허용된 포그라운드 서비스 목록에 속하지 않으면 컨텍스트 실패 응답을 회신할 수 있다.The foreground service control module receives and stores a list of previously allowed foreground services from the corresponding application every time the application is installed, and when the context creation request is requested from a specific foreground service, the specific foreground service is allowed to the foreground. If it does not belong to the service list, it can return a context failure response.

상기 포그라운드 서비스 제어 모듈 및 상기 스케줄러는, 안드로이드 운영체제의 커널 계층에 속한다.The foreground service control module and the scheduler belong to the kernel layer of the Android operating system.

다른 측면에 따른 통신 단말에서 포그라운드 서비스 제어 모듈이 보안을 제공하는 방법은, 사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력을 감지하는 단계; 및 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 단계를 포함한다.According to another aspect of the present invention, a method of providing security by a foreground service control module in a communication terminal includes: detecting an all erase input for terminating all recently executed applications from a user at one time; And sending a foreground service termination command to at least one or more applications that are currently running in the background and that can be terminated through the status bar.

상기 방법은, 상기 전송하는 단계 이전에, 상기 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 스케줄러에 등록하는 단계를 더 포함할 수 있다.The method may further include receiving, from the at least one or more applications, a previously allowed list of foreground services from the at least one application and registering with the scheduler.

상기 방법은, 상기 전송하는 단계 이후에, 상기 포그라운드 서비스 종료 명령에 대한 응답이 수신되면, 상기 미리 허용된 포그라운드 서비스 목록의 포그라운드 서비스를 재실행하는 단계를 더 포함할 수 있다.The method may further include re-executing a foreground service of the previously allowed foreground service list when a response to the foreground service termination command is received after the transmitting.

상기 스케줄러에 등록하는 단계는, 상기 모두 지우기 입력의 감지시마다 반복 수행될 수 있다.The registering with the scheduler may be repeated every time the erase all input is detected.

상기 방법은, 상기 감지하는 단계 이전에, 어플리케이션의 설치시마다 해당 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 저장하는 단계; 및 특정 포그라운드 서비스로부터 컨텍스트 생성 요청시 그 특정 포그라운드 서비스가 상기 미리 허용된 포그라운드 서비스 목록에 속하지 않으면 컨텍스트 실패 응답을 회신하는 단계를 더 포함할 수 있다.The method may further include: receiving and storing a list of allowed foreground services from a corresponding application every time an application is installed, before the detecting; And returning a context failure response when the context creation request from the specific foreground service does not belong to the previously allowed foreground service list.

본 발명에 따르면, 어플리케이션에서 웹 페이지 표시를 위한 컨텍스트 생성 요청이 발생할 때, 미리 허용된 포그라운드 서비스로부터의 요청이 아닐 때는 컨텍스트 생성을 실패 처리함으로써 허용되지 않은 포그라운드 서비스의 실행 자체를 차단하여 보안을 강화한다. According to the present invention, when an application generates a context creation request for displaying a web page, when the request is not from a previously permitted foreground service, the context creation is failed, thereby preventing the execution of the unauthorized foreground service itself. To strengthen.

본 발명에 따르면, 사용자가 통신 단말에서 상태 바에서 종료를 입력하지 않고 '모두 지우기' 입력을 할 때에도 모든 포그라운드 서비스를 강제로 종료함으로써 신속하게 포그라운드 서비스를 종료할 수 있어 보안을 강화한다. According to the present invention, even when the user inputs 'erase all' without entering an exit from the status bar in the communication terminal, the foreground service can be quickly terminated by forcibly terminating all foreground services, thereby enhancing security.

도 1은 본 발명의 일 실시예에 따른 통신 단말을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 통신 단말의 프로그램들을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 포그라운드 서비스를 제어하기 위한 구성을 프로그램 계층별로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 포그라운드 서비스를 강제로 종료하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 포그라운드 서비스 실행을 차단하는 방법을 설명하는 흐름도이다.
도 6은 상태 바를 내렸을 때 포그라운드 서비스를 알리는 화면이다.
1 is a view showing a communication terminal according to an embodiment of the present invention.
2 is a diagram illustrating programs of a communication terminal according to an embodiment of the present invention.
3 is a diagram illustrating a configuration for program layer control of the foreground service according to an embodiment of the present invention.
4 is a flowchart illustrating a method of forcibly terminating a foreground service according to an embodiment of the present invention.
5 is a flowchart illustrating a method of blocking execution of a foreground service according to another embodiment of the present invention.
6 is a screen for notifying the foreground service when the status bar is lowered.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 통신 단말을 나타낸 도면이다. 도 1을 참조하면, 통신 단말(100)은 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시예에서는, 통신 단말(100)은, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 더 구비할 수 있다.1 is a view showing a communication terminal according to an embodiment of the present invention. Referring to FIG. 1, the communication terminal 100 may include a bus 110, a processor 120, a memory 130, an input / output interface 150, a display 160, and a communication interface 170. In some embodiments, the communication terminal 100 may omit at least one of the components or may further include other components.

버스(110)는 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서(120)는, 중앙처리장치(central processing unit(CPU)), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 통신 단말(100)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.The bus 110 may include circuitry that connects the components 110-170 to each other and transfers communication (eg, control messages or data) between the components. The processor 120 may include one or more of a central processing unit (CPU), an application processor (AP), or a communication processor (CP). The processor 120 may execute, for example, operations or data processing related to control and / or communication of at least one other component of the communication terminal 100.

메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 통신 단말(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(API)(145), 및/또는 어플리케이션(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션(147)에서 통신 단말(100)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.The memory 130 may include volatile and / or nonvolatile memory. The memory 130 may store, for example, commands or data related to at least one other component of the communication terminal 100. According to an embodiment of the present disclosure, the memory 130 may store software and / or a program 140. The program 140 may include, for example, a kernel 141, middleware 143, an application programming interface (API) 145, and / or an application 147. At least a portion of kernel 141, middleware 143, or API 145 may be referred to as an operating system. The kernel 141 may be, for example, system resources (eg, used to execute actions or functions implemented in other programs (eg, middleware 143, API 145, or application 147). The bus 110, the processor 120, or the memory 130, or the like. In addition, the kernel 141 may provide an interface for controlling or managing system resources by accessing individual components of the communication terminal 100 from the middleware 143, the API 145, or the application 147. have.

미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션(147) 중 적어도 하나에 통신 단말(100)의 시스템 리소스(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다.The middleware 143 may serve as an intermediary for allowing the API 145 or the application 147 to communicate with the kernel 141 to exchange data. In addition, the middleware 143 may process one or more work requests received from the application 147 according to priority. For example, the middleware 143 may preferentially use system resources (eg, the bus 110, the processor 120, or the memory 130, etc.) of the communication terminal 100 for at least one of the applications 147. Rank and process the one or more work requests.

API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 통신 단말(100)의 다른 구성요소(들)에 전달하거나, 또는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.The API 145 is an interface for the application 147 to control functions provided by the kernel 141 or the middleware 143. For example, the API 145 may include at least the following: file control, window control, image processing, or character control. It can contain one interface or function (eg command). The input / output interface 150 may transmit, for example, a command or data input from a user or another external device to other component (s) of the communication terminal 100, or other components of the electronic device 101 ( Commands or data received from the device) can be output to the user or other external device.

디스플레이(160)는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스(170)는, 예를 들면, 통신 단말(100)과 외부 장치 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치(106))와 통신할 수 있다.Display 160 may be, for example, a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, or a microelectromechanical system (MEMS) display, or an electronic paper display. It may include. The display 160 may display, for example, various types of content (eg, text, images, videos, icons, and / or symbols) to the user. The display 160 may include a touch screen and, for example, may receive a touch, gesture, proximity, or hovering input using an electronic pen or a part of a user's body. The communication interface 170 may establish communication between the communication terminal 100 and an external device, for example. For example, the communication interface 170 may be connected to a network to communicate with the external device 106 through wireless or wired communication.

무선 통신은, 예를 들면, LTE, LTE-A(LTE advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(wireless broadband), 또는 GSM(global system for mobile communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE: bluetooth low energy), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(magnetic secure transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. Wireless communication may include, for example, LTE, LTE advance (LTE-A), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), wireless broadband (WiBro), or GSM (global). system for mobile communications), and the like. According to one embodiment, the wireless communication is, for example, wireless fidelity (WiFi), Bluetooth, Bluetooth low energy (BLE), Zigbee (Nigital), near field communication (NFC), magnetic secure transmission (magnetic secure) transmission, radio frequency (RF), or body area network (BAN).

도 2는 본 발명의 일 실시예에 따른 통신 단말의 프로그램들을 나타낸 도면이다. 도 2를 참조하면, 프로그램들은 커널(141), 미들웨어(143), API(145), 및 어플리케이션(147)을 포함할 수 있다. 프로그램들의 적어도 일부는 통신 단말(100) 상에 프리로드되거나, 외부 장치, 예를 들어 구글 플레이 등의 서버로부터 다운로드 가능하다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 운영체제는, 예를 들면, Android, iOS, Windows, Symbian, Tizen, 또는 Bada를 포함할 수 있다. 바람직하게 운영체제는 안드로이드(Android)이다. 2 is a diagram illustrating programs of a communication terminal according to an embodiment of the present invention. 2, the programs may include a kernel 141, middleware 143, an API 145, and an application 147. At least some of the programs may be preloaded on the communication terminal 100 or may be downloaded from an external device, for example, a server such as Google Play. At least a portion of kernel 141, middleware 143, or API 145 may be referred to as an operating system. The operating system may include, for example, Android, iOS, Windows, Symbian, Tizen, or Bada. Preferably the operating system is Android.

커널(141)은, 예를 들면, 시스템 리소스 매니저(221) 및/또는 디바이스 드라이버(222)를 포함할 수 있다. 시스템 리소스 매니저(221)는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 일 실시예에 따르면, 시스템 리소스 매니저(221)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버(222)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다.The kernel 141 may include, for example, a system resource manager 221 and / or a device driver 222. The system resource manager 221 may perform control, allocation, or retrieval of system resources. According to an embodiment, the system resource manager 221 may include a process manager, a memory manager, or a file system manager. The device driver 222 may include, for example, a display driver, a camera driver, a Bluetooth driver, a shared memory driver, a USB driver, a keypad driver, a WiFi driver, an audio driver, or an inter-process communication (IPC) driver. .

미들웨어(143)는, 예를 들면, 어플리케이션(147)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(147)이 통신 단말 내부의 제한된 시스템 자원을 사용할 수 있도록 API(145)를 통해 다양한 기능들을 어플리케이션(147)으로 제공할 수 있다. 실시예에 따르면, 미들웨어(143)는 어플리케이션 매니저(211), 윈도우 매니저(212), 리소스 매니저(213), 노티피케이션 매니저(214) 등을 포함한다. 어플리케이션 매니저(211)는, 예를 들면, 어플리케이션(147)의 생명 주기를 관리할 수 있다. 윈도우 매니저(212)는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 리소스 매니저(213)는 어플리케이션(147)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 노티피케이션 매니저(214)는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 이외에도 파워 매니저, 런타임 라이브러리, 패키지 매니저, 커넥티비티 매니저 등을 포함할 수 있다. 미들웨어(143)는 운영체제의 종류별로 특화된 모듈을 제공할 수 있다. The middleware 143 may provide various functions through the API 145, for example, to provide functions commonly required by the application 147 or to allow the application 147 to use limited system resources inside the communication terminal. May be provided to the application 147. According to an embodiment, the middleware 143 includes an application manager 211, a window manager 212, a resource manager 213, a notification manager 214, and the like. The application manager 211 may manage, for example, the life cycle of the application 147. The window manager 212 may manage GUI resources used on the screen. The resource manager 213 may manage space of source code or memory of the application 147. The notification manager 214 may provide an event to the user, for example, an arrival message, an appointment, a proximity notification, and the like. In addition, it can include a power manager, runtime library, package manager, connectivity manager, and so on. The middleware 143 may provide a module specialized for each type of operating system.

API(145)는 예를 들면, API 프로그래밍 함수들의 집합으로, 운영체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼별로 두 개 이상의 API 셋을 제공할 수 있다.The API 145 is a set of API programming functions, for example, and may be provided in different configurations depending on the operating system. For example, in the case of Android or iOS, one API set may be provided for each platform, and in Tizen, two or more API sets may be provided for each platform.

어플리케이션(147)은, 예를 들면, 홈(201), 다이얼러(202), 브라우저(203), 카메라(204) 등을 포함할 수 있다. 이외에도 SMS/MMS, IM(Instant Message), 알람, 앨범, 이메일 등을 포함할 수 있다. The application 147 may include, for example, a home 201, a dialer 202, a browser 203, a camera 204, and the like. In addition, it may include SMS / MMS, instant message (IM), alarm, album, and email.

도 3은 본 발명의 일 실시예에 따른 포그라운드 서비스를 제어하기 위한 구성을 프로그램 계층별로 나타낸 도면이다. 도 3을 참조하면, 어플리케이션(147)은, 액티비티 컴포넌트(301), 서비스 컴포넌트(302), 브로드캐스트 리시버 컴포넌트(303) 및 컨텐츠 프로바이더 컴포넌트(304)를 포함한다. 3 is a diagram illustrating a configuration for program layer control of the foreground service according to an embodiment of the present invention. Referring to FIG. 3, the application 147 includes an activity component 301, a service component 302, a broadcast receiver component 303, and a content provider component 304.

액티비티 컴포넌트(301)는, 사용자에게 보여주는 UI(User Interface)를 구성하는 컴포넌트이고, 하나의 어플리케이션(147)에 적어도 하나 이상 존재한다. 이러한 액티비티 컴포넌트(301)는 매니페이스에서 선언되어야 한다. 서비스 컴포넌트(302)는, 포그라운드 서비스와 백그라운드 서비스를 포함한다. 포그라운드 서비스는 사용자가 인지할 수 있는 서비스이고 백드라운드 서비스는 사용자가 인지할 수 없는 서비스이다. 브로드캐스트 리시버 컴포넌트(303)는 통신 단말(100)에서 발생하는 이벤트나 정보를 수신하여 처리하는 컴포넌트이다. 예를 들어 배터리 부족이나 WiFi 설정, 전화나 문자 메시지 수신 등 통신 단말(100)에서 발생하는 이벤트나 정보를 수신하여 처리한다. 컨텐츠 프로바이더 컴포넌트(304)는 어플리케이션 사이에서 데이터를 공유하는 컴포넌트이다. The activity component 301 is a component constituting a user interface (UI) to be shown to the user, and is present in at least one application 147. This activity component 301 must be declared in the manifest. The service component 302 includes a foreground service and a background service. The foreground service is a service that a user can recognize, and the backround service is a service that a user cannot recognize. The broadcast receiver component 303 is a component that receives and processes an event or information occurring in the communication terminal 100. For example, it receives and processes events or information generated by the communication terminal 100 such as low battery, WiFi setting, and receiving a call or text message. The content provider component 304 is a component that shares data between applications.

본 발명에 있어서 어플리케이션(147)에는 미리 허용된 포그라운드 서비스 목록이 설정된다. 어플리케이션(147)의 개발 단계에서 개발자에 의해 어플리케이션(147)에 설정될 수 있다. 안드로이드 운영체제에서 태스크(task)는 어플리케이션이 실행될 때 해당 실행되는 어플리케이션의 상술한 관련 컴포넌트를 묶어놓은 그룹의 개념이다. 즉 태스크는 일정한 프로그램 영역(예: 코드, 변수, 스택 등)을 가지고 실행되는 작업(job)을 의미할 수 있다. 태스크는 사용자의 요청을 대리할 수 있다. 예를 들어, 상기 태스크는 임베디드 시스템(embedded system)에서 스케쥴링(scheduling)의 최소 단위를 의미할 수 있다. 또한, 프로세스(process)는 상기 태스크와 관련된 프로그램이 메모리(130)에 올려져 프로세서(120)에 의해 실행되는 것을 의미할 수 있다. 따라서, 프로세스와 태스크는 처리되는 계층이 상이할 뿐, 통신 단말(100)에서 수행되는 동일한 프로그램을 의미할 수 있다. 그리고 본 발명에서의 '서비스'는 더 포괄적으로 태스크를 의미할 수도 있다. 포그라운드 서비스의 종료는 태스크의 종료 또는 프로세스의 종료를 포함할 수 있다. In the present invention, in the application 147, a list of allowed foreground services is set in advance. In the development stage of the application 147, the developer may set the application 147. In the Android operating system, a task is a concept of a group grouping the related components of the executed application when the application is executed. That is, a task may mean a job executed with a certain program area (eg, code, variables, stack, etc.). Tasks can represent requests from users. For example, the task may mean a minimum unit of scheduling in an embedded system. In addition, a process may mean that a program related to the task is loaded in the memory 130 and executed by the processor 120. Therefore, the process and the task may mean the same program that is performed in the communication terminal 100 only in the different layers to be processed. In addition, the term 'service' in the present invention may mean a task more comprehensively. Termination of the foreground service may include termination of a task or termination of a process.

안드로이드 운영체제의 스마트폰에서 좌측 하단 메뉴 버튼을 입력하면 최근에 실행되었던 어플리케이션들의 목록이 나타나고 이들을 모두 지울 수 있는 '모두 지우기'(즉, kill recent Task) 메뉴가 제공된다. 사용자가 '모두 지우기'를 입력하면, 안드로이드 운영체제는 최근에 실행되었던 어플리케이션들(즉, 태스크들)을 모두 종료시킨다. 그러나 종래의 안드로이드 운영체제는 어플리케이션 중에서 백그라운드로 동작하면서 상태 바에 어플리케이션이 실행 중임을 알리는 포그라운드 서비스는 종료시키지 않는다. 안드로디드 O 버전부터는 사용자가 직접 상태 바에서 종료를 선택해야 한다. 도 3을 참조하면, 커널 계층의 미들웨어(143)에는 포그라운드 서비스 제어 모듈(320)과 스케줄러(330)가 포함되고, 상기 포그라운드 서비스 제어 모듈(320) 및 상기 스케줄러(330)가 해당 포그라운드 서비스를 강제로 종료시키고 재실행시킨다. If you press the bottom left menu button on the Android operating system's smartphone, a list of recently executed applications is displayed and a 'Delete all task' menu is provided to delete all of them. When the user enters 'Erase All', the Android operating system terminates all recently executed applications (ie tasks). However, the conventional Android operating system operates in the background of the application and does not terminate the foreground service indicating that the application is running in the status bar. Starting with the Androde O version, the user must manually select Exit from the status bar. Referring to FIG. 3, the middleware 143 of the kernel layer includes a foreground service control module 320 and a scheduler 330, and the foreground service control module 320 and the scheduler 330 are in the foreground. Forcibly shut down and restart the service.

포그라운드 서비스 제어 모듈(320)은, 사용자로부터 '모두 지우기'에 관한 입력을 감지한다. 포그라운드 서비스 제어 모듈(320)은, 사용자의 '모두 지우기' 입력을 감지하면, 포그라운드 서비스를 실행 중인 어플리케이션으로부터, 허용된 포그라운드 서비스 목록을 읽어들이고 이를 스케줄러(330)에 등록한다. 이러한 등록은, '모두 지우기' 입력이 감지될 때마다 수행된다. '모두 지우기'는 안드로이드 운영체제에서 하단 메뉴를 누르면 나오기도 하고 또는 상태 바를 내리면 나오기도 한다. 그리고 나서 포그라운드 서비스 제어 모듈(320)은 실행 중인 포그라운드 서비스로 종료 명령을 전송하여 강제로 종료시킨다. 나머지 최근 실행되었던 태스크들은 운영체제에 의해 원래대로 종료된다.The foreground service control module 320 detects an input regarding 'erase all' from the user. When the foreground service control module 320 detects a user's “erase all” input, the foreground service control module 320 reads a list of allowed foreground services from an application running the foreground service and registers it with the scheduler 330. This registration is performed whenever a 'clear all' input is detected. 'Erase All' can be found by pressing the bottom menu in the Android operating system or by lowering the status bar. Then the foreground service control module 320 forcibly terminates by sending a termination command to the running foreground service. The remaining recently executed tasks are terminated normally by the operating system.

스케줄러(330)는, 상기 포그라운드 서비스 제어 모듈(320)로부터, 허용된 포그라운드 서비스 목록을 수신하여 등록하고, 상기 포그라운드 서비스 제어 모듈(320)로부터 포그라운드 서비스 종료 완료 신호가 수신되면, 상기 등록한 포그라운드 서비스 목록에 해당하는 포그라운드 서비스들을 재실행시킨다. 백그라운드에서 실행되지만 상태 바에 실행 중임을 알리는 포그라운드 서비스에서 오류가 발생하여 블랭크(blank) 페이지 등이 발생한 경우, 사용자는 '모두 지우기'를 실행할 수 있고, 종래에는 해당 포그라운드 서비스는 상태 바에서 종료하지 않는 한 종료되지 않았으나 본 발명에서는 해당 포그라운드 서비스는 '모두 지우기'시 강제 종료된다. 그리고 해당 포그라운드 서비스는 지속적인 실행이 요구되기 때문에 자동으로 재실행시켜 블랭크 페이지 등의 오류를 제거한 정상적인 페이지를 표시한다. The scheduler 330 receives and registers a list of allowed foreground services from the foreground service control module 320, and receives a completion signal of the foreground service from the foreground service control module 320. Rerun the foreground services corresponding to the registered foreground service list. If an error occurs in the foreground service that runs in the background but the status bar is running, causing a blank page, etc., the user can execute 'clear all', and the foreground service is conventionally terminated in the status bar. Unless otherwise terminated, in the present invention, the foreground service is forcibly terminated upon 'clear all'. Since the foreground service requires continuous execution, the foreground service is automatically restarted to display a normal page that eliminates errors such as blank pages.

도 4는 본 발명의 일 실시예에 따른 포그라운드 서비스를 강제로 종료하는 방법을 설명하는 흐름도이다.4 is a flowchart illustrating a method of forcibly terminating a foreground service according to an embodiment of the present invention.

도 4를 참조하면, 어플리케이션(147)은 하이브리드 어플리케이션일 수 있다. 즉 자체 UI를 구현하여 컨텐츠를 표시할 수도 있고 또는 사용자로부터 입력된 URL에 접속하여 웹 페이지를 수신하여 표시할 수 있다. 본 실시예에서 어플리케이션(147), 바람직하게는 액티비티 컴포넌트(301)는 사용자로부터 입력된 URL에 접속하여 웹 페이지를 수신하는 것을 설명한다. 어플리케이션(147)은 웹 페이지의 표시를 위해 커널 계층의 윈도우 매니저(212)로 컨텍스트(context) 생성을 요청한다(S401). 윈도우 매니저(212)는 화면에서 사용되는 GUI 자원을 관리하는 커널 계층의 컴포넌트로서, 어플리케이션(147)으로 컨텍스트를 반환한다(S402).Referring to FIG. 4, the application 147 may be a hybrid application. That is, the user may implement the UI to display the content, or access the URL input from the user to receive and display the web page. In this embodiment, the application 147, preferably the activity component 301 is described to access a URL input from the user to receive a web page. The application 147 requests creation of a context to the window manager 212 of the kernel layer in order to display a web page (S401). The window manager 212 is a component of the kernel layer that manages GUI resources used on the screen, and returns a context to the application 147 (S402).

어플리케이션(147)은 윈도우 매니저(212)로부터 수신된 컨텍스트를 이용하여 포그라운드 서비스를 실행한다(S403). 그리고 어플리케이션(147)은 상기 컨텍스트를 이용하여 웹 화면을 생성하여 표시한다(S404). 그런데, 잘못된 데이터의 유입으로 인해 웹 화면이 정상적으로 표시되지 않고 블랭크(blank) 페이지가 발생할 수 있다. 블랭크 페이지가 발생하더라도 어플리케이션(147)의 포그라운드 서비스는 웹 커넥션을 계속 유지하게 된다. The application 147 executes the foreground service using the context received from the window manager 212 (S403). The application 147 generates and displays a web screen using the context (S404). However, due to the inflow of wrong data, the web screen may not be displayed normally and a blank page may be generated. Even when a blank page occurs, the foreground service of the application 147 maintains the web connection.

따라서, 사용자는 블랭크 페이지 등의 오류 발생시, 통신 단말(100)에서 '모두 지우기'를 입력하게 되고, 커널 계층의 포그라운드 서비스 제어 모듈(320)은 사용자의 '모두 지우기' 입력을 감지한다(S405). 이에 따라 포그라운드 서비스 제어 모듈(320)은 현재 포그라운드 서비스가 실행 중인 어플리케이션(147)으로 해당 어플리케이션(147)에 등록되어 있는 허용된 포그라운드 서비스 목록을 요청하고 응답을 수신한다(S406, S407). 그리고 포그라운드 서비스 제어 모듈(320)은 수신된 응답, 즉 허용된 포그라운드 서비스 목록을 스케줄러(330)에 전송하여 등록한다(S408).Therefore, when an error such as a blank page occurs, the user inputs 'erase all' in the communication terminal 100, and the foreground service control module 320 of the kernel layer detects an 'erase all' input of the user (S405). ). Accordingly, the foreground service control module 320 requests an allowed foreground service list registered in the corresponding application 147 to the application 147 currently executing the foreground service and receives a response (S406 and S407). . In operation S408, the foreground service control module 320 transmits the received response, that is, the list of allowed foreground services to the scheduler 330.

이어서 포그라운드 서비스 제어 모듈(320)은 어플리케이션(147), 보다 구체적으로는 포그라운드 서비스 컴포넌트(302)로 종료 명령을 전송한다(S409). 포그라운드 서비스 컴포넌트(302)는 상기 종료 명령에 따라 종료하고 이에 대한 응답을 회신한다(S410). 포그라운드 서비스 제어 모듈(320)은 회신된 응답을 스케줄러(330)로 전달하고(S411), 스케줄러(330)는 상기 단계 S408에서 등록된 허용된 포그라운드 서비스를 재실행한다. 즉 스케줄러(330)는 어플리케이션(147)으로 포그라운드 서비스의 재실행을 요청한다(S412). 따라서, 종료되었던 포그라운드 서비스가 재실행되어 정상적인 웹 화면이 표시될 수 있다.Subsequently, the foreground service control module 320 transmits a termination command to the application 147, more specifically, the foreground service component 302 (S409). The foreground service component 302 terminates according to the termination command and returns a response thereto (S410). The foreground service control module 320 transmits the returned response to the scheduler 330 (S411), and the scheduler 330 re-executes the allowed foreground service registered in step S408. That is, the scheduler 330 requests the application 147 to re-execute the foreground service (S412). Accordingly, the foreground service which has been terminated may be re-executed to display a normal web screen.

도 5는 본 발명의 다른 실시예에 따른 포그라운드 서비스 실행을 차단하는 방법을 설명하는 흐름도이다.5 is a flowchart illustrating a method of blocking execution of a foreground service according to another embodiment of the present invention.

도 5를 참조하면, 통신 단말(100)에 사용자로부터 입력된 URL에 접속하여 웹 페이지를 수신하여 표시할 수 있는 어플리케이션(147)이 설치된다(S501). 예를 들어, 통신 단말(100)의 구글 플레이는 사용자가 선택한 어플리케이션(147)을 앱 스토어 서버로부터 다운로드하여 설치한다. 설치 후 어플리케이션(147)은 기 등록되어 있는 허용된 포그라운드 서비스 목록을 커널 계층의 포그라운드 서비스 제어 모듈(320)로 전송한다(S502). 포그라운드 서비스 제어 모듈(320)은 수신된 허용된 포그라운드 서비스 목록을 저장한다(S503). Referring to FIG. 5, an application 147 capable of receiving and displaying a web page by accessing a URL input from a user is installed in the communication terminal 100 (S501). For example, Google Play of the communication terminal 100 downloads and installs the application 147 selected by the user from the app store server. After installation, the application 147 transmits a previously registered allowed foreground service list to the foreground service control module 320 of the kernel layer (S502). The foreground service control module 320 stores the received allowed foreground service list (S503).

한편, 사용자에 의해 어플리케이션(147)이 실행될 수 있다. 본 실시예에서 어플리케이션(147), 바람직하게는 액티비티 컴포넌트(301) 또는 포그라운드 서비스 컴포넌트(302)는 URL에 접속하여 웹 페이지를 수신하는 것을 설명한다. 어플리케이션(147)은 웹 페이지의 표시를 위해 커널 계층의 윈도우 매니저(212)로 컨텍스트(context) 생성을 요청한다(S504). 윈도우 매니저(212)는 화면에서 사용되는 GUI 자원을 관리하는 커널 계층의 컴포넌트로서, 어플리케이션(147)으로 컨텍스트를 반환하기 전에, 컨텍스트 생성을 요청한 포그라운드 서비스가 허용된 포그라운드 서비스인지 포그라운드 서비스 제어 모듈(320)로 확인을 요청한다(S505). 포그라운드 서비스 제어 모듈(320)은 확인 요청된 포그라운드 서비스와 단계 S503에서 저장한 허용된 포그라운드 서비스 목록을 비교하고 그 확인 결과를 응답한다(S506). 윈도우 매니저(212)는 컨텍스트를 요청한 포그라운드 서비스가 허용된 포그라운드 서비스인 경우에는 컨텍스트를 반환하고(S507), 그렇지 않은 경우 컨텍스트를 반환하지 않고 실패 응답을 어플리케이션(147)으로 회신한다. Meanwhile, the application 147 may be executed by the user. In the present embodiment, the application 147, preferably the activity component 301 or the foreground service component 302 is connected to the URL to receive the web page. The application 147 requests creation of a context to the window manager 212 of the kernel layer to display a web page (S504). The window manager 212 is a component of the kernel layer that manages GUI resources used on the screen. Before returning a context to the application 147, the foreground service requesting the creation of the context is a foreground service that is allowed. A request is made to the module 320 (S505). The foreground service control module 320 compares the foreground service requested for confirmation with the allowed foreground service list stored in step S503 and responds to the confirmation result (S506). If the foreground service requesting the context is the allowed foreground service, the window manager 212 returns the context (S507). Otherwise, the window manager 212 returns a failure response to the application 147 without returning the context.

도 5를 참조한 실시예에 따르면, 등록되지 않은 포그라운드 서비스의 실행 자체를 차단함으로써 안전한 어플리케이션 사용 환경을 유지하여 개인 정보를 보호할 수 있다. 만약 해커에 의해, 허용된 포그라운드 서비스가 해킹되었을 경우, 도 5를 참조한 실시예로 차단할 수 없겠으나, 도 4를 참조한 실시예에 따라 '모두 지우기'를 통해서 해당 포그라운드 서비스를 종료할 수 있어, 두 단계의 보안 절차를 규정할 수 있다.According to the embodiment referring to FIG. 5, by blocking the execution of the unregistered foreground service itself, it is possible to maintain a secure application use environment to protect personal information. If the allowed foreground service is hacked by the hacker, the foreground service may not be blocked by the embodiment of FIG. 5, but the foreground service may be terminated through 'delete all' according to the embodiment of FIG. 4. For example, two levels of security procedures can be specified.

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification contains many features, such features should not be construed as limiting the scope of the invention or the claims. Also, the features described in the individual embodiments herein can be implemented in combination in a single embodiment. Conversely, various features described in a single embodiment herein can be implemented individually in various embodiments or in combination appropriately.

도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although the operations are described in a particular order in the drawings, they should not be understood as being performed in a particular order as shown, or in a sequence of successive orders, or all described actions being performed to obtain a desired result. . Multitasking and parallel processing may be advantageous in certain circumstances. In addition, it should be understood that the division of various system components in the above-described embodiments does not require such division in all embodiments. The program components and systems described above may generally be packaged in a single software product or multiple software products.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily carried out by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

100 : 통신 단말
141 : 커널
143 : 미들웨어
147 : 어플리케이션
301 : 액티비티
302 : 서비스
303 : 브로드캐스트
304 : 컨텐츠 프로바이더
320 : 포그라운드 서비스 제어 모듈
330 : 스케줄러
100: communication terminal
141: kernel
143: middleware
147: Application
301: Activity
302: Service
303: Broadcast
304: content provider
320: foreground service control module
330: Scheduler

Claims (12)

프로그램들을 저장하는 메모리; 및
상기 메모리와 결합되어 상기 프로그램들을 실행하는 프로세서를 포함하고,
상기 프로그램들은,
사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력의 감지시, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 포그라운드 서비스 제어 모듈을 포함하는 통신 단말.
A memory for storing programs; And
A processor coupled with the memory to execute the programs;
The programs,
Foreground service that sends a foreground service exit command to at least one application that is currently running in the background and can be terminated through the status bar upon detection of a Clear All input to terminate all recently launched applications from the user at once. Communication terminal comprising a control module.
제 1 항에 있어서,
상기 프로그램들은, 스케줄러를 더 포함하고,
상기 포그라운드 서비스 제어 모듈은,
상기 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 상기 스케줄러에 등록한 후에 상기 포그라운드 서비스 종료 명령을 전송하는 것을 특징으로 하는 통신 단말.
The method of claim 1,
The programs further include a scheduler,
The foreground service control module,
And transmitting the foreground service termination command after receiving a previously permitted list of foreground services from the at least one application and registering with the scheduler.
제 2 항에 있어서,
상기 스케줄러는,
상기 포그라운드 서비스 종료 명령에 대한 응답이 수신되면, 상기 미리 허용된 포그라운드 서비스 목록의 포그라운드 서비스를 재실행하는 것을 특징으로 하는 통신 단말.
The method of claim 2,
The scheduler,
And when a response to the foreground service termination command is received, re-execute a foreground service of the previously allowed foreground service list.
제 2 항에 있어서,
상기 포그라운드 서비스 제어 모듈은,
상기 모두 지우기 입력의 감지시마다, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 상기 스케줄러에 등록하는 것을 특징으로 하는 통신 단말.
The method of claim 2,
The foreground service control module,
And each time a detection of the clear all input is received, a list of allowed foreground services is registered in the scheduler from at least one or more applications currently running in the background that can be terminated through a status bar.
제 1 항에 있어서,
상기 포그라운드 서비스 제어 모듈은,
어플리케이션의 설치시마다 해당 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 저장하고, 특정 포그라운드 서비스로부터 컨텍스트 생성 요청시 그 특정 포그라운드 서비스가 상기 미리 허용된 포그라운드 서비스 목록에 속하지 않으면 컨텍스트 실패 응답을 회신하는 것을 특징으로 하는 통신 단말.
The method of claim 1,
The foreground service control module,
Whenever an application is installed, a list of pre-allowed foreground services is received and stored from the application, and when the context creation request is requested from a specific foreground service, a context failure response is received if the specific foreground service does not belong to the pre-listed foreground service list. A communication terminal, characterized in that for replying.
제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
상기 포그라운드 서비스 제어 모듈 및 상기 스케줄러는, 안드로이드 운영체제의 커널 계층에 속하는 것을 특징으로 하는 통신 단말.
The method according to any one of claims 1 to 5,
The foreground service control module and the scheduler, characterized in that belonging to the kernel layer of the Android operating system.
통신 단말에서 포그라운드 서비스 제어 모듈이 보안을 제공하는 방법으로서,
사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력을 감지하는 단계; 및
현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 단계를 포함하는 방법.
A method for providing security by a foreground service control module in a communication terminal,
Detecting an erase all input for terminating all recently executed applications from the user at once; And
Sending a foreground service termination command to at least one or more applications currently running in the background that can be terminated via the status bar.
제 7 항에 있어서,
상기 전송하는 단계 이전에,
상기 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 스케줄러에 등록하는 단계를 더 포함하는 방법.
The method of claim 7, wherein
Prior to the transmitting step,
Receiving from the at least one application, a list of previously allowed foreground services, and registering with the scheduler.
제 8 항에 있어서,
상기 전송하는 단계 이후에,
상기 포그라운드 서비스 종료 명령에 대한 응답이 수신되면, 상기 미리 허용된 포그라운드 서비스 목록의 포그라운드 서비스를 재실행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 8,
After the transmitting step,
And if a response to the foreground service termination command is received, re-executing a foreground service of the previously allowed foreground service list.
제 8 항에 있어서,
상기 스케줄러에 등록하는 단계는,
상기 모두 지우기 입력의 감지시마다 반복 수행되는 것을 특징으로 하는 방법.
The method of claim 8,
Registering with the scheduler,
And repeatedly performing the detection of the erase all input.
제 7 항에 있어서,
상기 감지하는 단계 이전에,
어플리케이션의 설치시마다 해당 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 저장하는 단계; 및
특정 포그라운드 서비스로부터 컨텍스트 생성 요청시 그 특정 포그라운드 서비스가 상기 미리 허용된 포그라운드 서비스 목록에 속하지 않으면 컨텍스트 실패 응답을 회신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 7, wherein
Prior to the detecting step,
Receiving and storing a list of the foreground services allowed in advance from the corresponding application every time the application is installed; And
Returning a context failure response when the context creation request from a particular foreground service does not belong to the list of allowed foreground services.
제 7 항 내지 제 11 항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록된 컴퓨터 프로그램.A computer program recorded on a recording medium as a computer program for executing the method according to any one of claims 7 to 11 through a computer system.
KR1020180080710A 2018-07-11 2018-07-11 Communication terminal and method for providing security when foreground service of application is running KR102532696B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180080710A KR102532696B1 (en) 2018-07-11 2018-07-11 Communication terminal and method for providing security when foreground service of application is running

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180080710A KR102532696B1 (en) 2018-07-11 2018-07-11 Communication terminal and method for providing security when foreground service of application is running

Publications (2)

Publication Number Publication Date
KR20200006841A true KR20200006841A (en) 2020-01-21
KR102532696B1 KR102532696B1 (en) 2023-05-12

Family

ID=69369643

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180080710A KR102532696B1 (en) 2018-07-11 2018-07-11 Communication terminal and method for providing security when foreground service of application is running

Country Status (1)

Country Link
KR (1) KR102532696B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130028559A (en) * 2011-09-09 2013-03-19 (주)나무소프트 Apparatus and method for managing file
KR101306658B1 (en) * 2012-07-20 2013-11-21 주식회사 안랩 Firewall apparatus, applications and method for blocking using network
KR101409175B1 (en) * 2013-12-16 2014-06-20 주식회사 시큐브 Security file access control apparatus and method of smart terminal
KR20160042398A (en) * 2014-08-29 2016-04-19 시아오미 아이엔씨. Method and device for controlling background application and terminal device
KR20170048441A (en) * 2014-08-26 2017-05-08 알리바바 그룹 홀딩 리미티드 Method and apparatus for managing background application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130028559A (en) * 2011-09-09 2013-03-19 (주)나무소프트 Apparatus and method for managing file
KR101306658B1 (en) * 2012-07-20 2013-11-21 주식회사 안랩 Firewall apparatus, applications and method for blocking using network
KR101409175B1 (en) * 2013-12-16 2014-06-20 주식회사 시큐브 Security file access control apparatus and method of smart terminal
KR20170048441A (en) * 2014-08-26 2017-05-08 알리바바 그룹 홀딩 리미티드 Method and apparatus for managing background application
KR20160042398A (en) * 2014-08-29 2016-04-19 시아오미 아이엔씨. Method and device for controlling background application and terminal device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Annina Koskiola, "Will my geofencing function in the background?"(2018.05.)* *
Rhythm Software, "Task Manager"(2017.08.)* *

Also Published As

Publication number Publication date
KR102532696B1 (en) 2023-05-12

Similar Documents

Publication Publication Date Title
US10936296B2 (en) Automated application updates during operating system upgrades
US10469428B2 (en) Apparatus and method for transmitting message
EP3493059B1 (en) Application data migration method and device
US20150127755A1 (en) Method and apparatus for checking status of messages in electronic device
US11579899B2 (en) Method and device for dynamically managing kernel node
US20160126996A1 (en) Mobile Communication Using a Plurality of Subscriber Identity Modules
KR20210027400A (en) Implementation of compliance settings by mobile devices to comply with configuration scenarios
KR20130142961A (en) Automatic application updates
US9667493B2 (en) Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
US20170372067A1 (en) Method for detecting the tampering of application code and electronic device supporting the same
KR102475230B1 (en) Method for controlling communication network connection, storage medium and electronic device therefor
CN108090345B (en) Linux system external command execution method and device
CN106713608B (en) Application function state modification method and device and terminal
US20210271491A1 (en) Application processing method, device, electronic device and storage medium
US20160080293A1 (en) Accounts Control
EP2770712B1 (en) Method and electronic device for synchronizing of user interfaces between two terminals
US20170104712A1 (en) Electronic device, server and content providing method thereof
US9880979B2 (en) Information processing terminal, method and storage medium for switching to a privacy mode
US11100243B2 (en) Selective persistence of data utilized by software containers
EP3129883B1 (en) Method and apparatus for repairing dynamic link library file
US10631177B1 (en) Mobile phone chipset parameter adaptation framework
US10209978B1 (en) Mobile application installation service on a mobile phone
CN107861666B (en) Desktop application installation method and device
KR102532696B1 (en) Communication terminal and method for providing security when foreground service of application is running
AU2017363322B2 (en) Application resource usage reduction

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant