KR101308859B1 - Terminal having temporary root authority granting function and root authority granting method using the same - Google Patents

Terminal having temporary root authority granting function and root authority granting method using the same Download PDF

Info

Publication number
KR101308859B1
KR101308859B1 KR1020120019100A KR20120019100A KR101308859B1 KR 101308859 B1 KR101308859 B1 KR 101308859B1 KR 1020120019100 A KR1020120019100 A KR 1020120019100A KR 20120019100 A KR20120019100 A KR 20120019100A KR 101308859 B1 KR101308859 B1 KR 101308859B1
Authority
KR
South Korea
Prior art keywords
application
deletion
package
manager
authority
Prior art date
Application number
KR1020120019100A
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 KR1020120019100A priority Critical patent/KR101308859B1/en
Application granted granted Critical
Publication of KR101308859B1 publication Critical patent/KR101308859B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Abstract

PURPOSE: A terminal having a temporary administrator authority granting function and a temporary administrator authority granting method using the same are provided to selectively grant temporary root authority for resources in which changes are permitted, thereby increasing user convenience. CONSTITUTION: A deletion and installation managing unit (20) provides a user with a user interface (UI) related to the deletion or installation of an application. A package installer (30) processes a command for the deletion or installation of the application according to the request of the deletion and installation managing unit. A package manager (40) performs the deletion or installation of the application according to the request of the package installer. If a user requests to change the application, the deletion and installation managing unit determines whether it is necessary to have the administrator authority or not. If so, the deletion and installation managing unit requests the administrator authority to the package manager. [Reference numerals] (20) Deletion and installation managing unit; (30) Package installer; (40) Package manager; (50) Installation DB

Description

임시 관리자 권한 부여 기능을 가진 단말기 및 이를 이용한 임시 관리자 권한 부여 방법{Terminal Having Temporary Root Authority Granting Function and Root Authority Granting Method Using The Same}Terminal having Temporary Root Authority Granting Function and Root Authority Granting Method Using The Same}

본 발명은 임시적으로 관리자 권한을 부여할 수 있는 단말기 및 이를 이용한 임시 관리자 권한 부여 방법에 관한 것이다.The present invention relates to a terminal capable of temporarily granting administrator authority and a method for granting temporary administrator authority using the same.

최근 스마트폰과 같은 단말기가 급속도로 보급되면서, 단말기의 하드웨어 및 소프트웨어 성능을 높이기 위한 연구가 활발히 진행되고 있다. 특히, 최근 단말기 사용자들은 인터넷 등의 관련 정보를 통해 방대한 양의 정보를 접할 수 있게 되고, 단말기의 저장 공간 확보, 속도 개선 등 단말기 최적화를 위하여 자신의 단말기의 특정 어플리케이션이나 모듈을 삭제하기를 원하는 경우가 많아지고 있다. As devices such as smart phones are rapidly spreading, studies are being actively carried out to enhance hardware and software performance of terminals. In particular, recently, terminal users can access a vast amount of information through related information such as the Internet, and if they want to delete a specific application or module of their own terminal to optimize the terminal, such as securing storage space and improving speed of the terminal. Is getting bigger.

안드로이드폰의 운영체제에서 관리자의 권한을 얻는 행위를 루팅(Rooting)이라고 하며, 이는 리눅스에서 관리자 권한을 얻는 행위를 지칭하는 용어에서 파생되었다. 즉, 안드로이드는 리눅스를 운영체제로 사용하는데, 리눅스에서 최고 권한을 가진 계정이 ‘루트(root)’이다. 루팅으로 안드로이드 운영체제의 사용자 권한을 ‘슈퍼 유저’로 바꿔 안드로이드 운영체제가 지원하지 않는 기능을 추가하거나, 지원하는 기능을 삭제할 수 있다.The act of gaining administrator rights in the Android phone's operating system is called rooting, which derives from the term for the act of gaining administrator rights in Linux. In other words, Android uses Linux as its operating system, and the most privileged account in Linux is the root. Rooting allows you to change the user's permissions on the Android operating system to a "super user" to add or remove features not supported by the Android operating system.

특히, 단말기가 출시될 때 탑재되어 있는 어플리케이션, 일명 프리로드 어플리케이션(preload application)의 경우 사용자가 단말기에서 삭제를 하고 싶어도 삭제를 할 수가 없도록 단말기를 출시할 때 설정되어 있는데, 이를 삭제하기 위해서는 관리자 권한을 획득하여야 한다. 이러한 관리자 권한을 획득하는 것을 위에서 설명한 것처럼 루팅이라고 하며, 많은 사용자들은 이러한 루팅을 이용하여 단말기 상의 어플리케이션을 자신의 스타일에 맞게 삭제, 수정 또는 추가하여 사용하고 있다.In particular, the application that is mounted when the terminal is released, also known as a preload application, is set when the terminal is released so that the user cannot delete the terminal even if the user wants to delete it from the terminal. Must be obtained. Acquiring this administrator authority is called routing as described above, and many users use this routing to delete, modify, or add an application on the terminal according to their own style.

하지만, 시스템을 운영하기 위한 모듈이나 어플리케이션에 잘못 접근하거나 이를 수정, 삭제할 경우 사용자가 사용을 원하는 중요한 모듈이나 어플리케이션도 사용하지 못하게 되는 경우가 있을 수 있으며, 심지어는 가장 기본적인 부팅조차 할 수 없는 결과를 가져오기도 한다.However, incorrectly accessing, modifying, or deleting a module or application for operating the system may result in the loss of the critical module or application that the user wants to use. Even the most basic booting may not be possible. Also imported.

특히, 안드로이드 플랫폼과 같은 리눅스 기반 운영체제를 탑재한 단말기에서 사용자들이 임의로 루팅(Rooting)을 시도하여 허가되지 않는 루트 권한(즉, 관리자 권한)을 획득한 후 내부적으로 사용자가 설정 사항이나 리소스를 변경하는 경우 잘못된 핸들링으로 기기가 오동작하거나 외부적으로는 악성 코드나 멀웨어(malware) 등의 공격에 무방비하게 노출될 수 있다. In particular, in a terminal equipped with a Linux-based operating system such as the Android platform, users randomly attempt to root to obtain unauthorized root privileges (ie, administrator privileges) and then internally change the settings or resources by the user. In this case, the device may malfunction due to incorrect handling, or may be exposed to malicious code or malware.

기존 기술은 루팅을 근본적으로 제한하여 이러한 문제점을 해결하였다. 하지만, 루팅을 근본적으로 제한하는 것은 사용자들이 루팅을 통하여 얻을 수 있는 이점을 원천적으로 봉쇄한다는 점에서 한계가 있다.The existing technology solves this problem by fundamentally restricting routing. However, there are limitations in fundamentally limiting routing in that it fundamentally blocks users from gaining the benefit of routing.

본 발명은 전술한 바와 같은 문제점을 해결하기 위해 안출된 것으로, 사용자가 어플리케이션을 삭제하고자 하는 경우, 삭제 시 관리자 권한이 필요한지를 판단하고, 관리자 권한이 필요한 경우 패키지 매니저가 프로세스간 통신으로 커널 영역의 루트 관리부로부터 일시적으로 관리자 권한을 부여 받아 어플리케이션을 삭제하고, 다시 관리자 권한을 반환할 수 있는 단말기 및 이를 이용한 임시 관리자 권한 부여 방법을 제공하는데 그 목적이 있다. The present invention has been made to solve the above-described problems, and when the user wants to delete the application, it is determined whether the administrator authority is required when deleting, and if the administrator authority is required, the package manager communicates with each other in the kernel region. It is an object of the present invention to provide a terminal capable of deleting an application by temporarily receiving administrator authority from a root manager and returning administrator authority and a method of granting temporary administrator authority using the same.

이를 위해 본 발명의 일실시예에 따른 단말기는 어플리케이션의 삭제 또는 설치와 관련된 사용자 인터페이스를 사용자에게 제공하는 삭제 및 설치 관리부와, 상기 삭제 및 설치 관리부의 요청에 따라 어플리케이션의 삭제 또는 설치 명령을 처리하는 패키지 인스톨러와, 상기 패키지 인스톨러의 요청에 따라 어플리케이션의 삭제 또는 설치를 수행하는 패키지 매니저를 포함하고, 상기 삭제 및 설치 관리부는 사용자가 어플리케이션 변경 요청을 하는 경우, 상기 패키지 매니저를 통하여 상기 변경 요청된 어플리케이션을 변경하는데 관리자 권한이 필요한지를 판단하고, 관리자 권한이 필요한 경우 상기 패키지 매니저에게 관리자 권한을 요청하고, 상기 패키지 매니저는 프로세스간 통신을 이용하여 커널 영역의 루트 관리부로부터 관리자 권한을 부여 받는 것을 특징으로 한다.To this end, a terminal according to an embodiment of the present invention, the deletion and installation management unit for providing a user interface related to the deletion or installation of the application to the user, and processing the deletion or installation command of the application at the request of the deletion and installation management unit And a package manager for deleting or installing an application according to a request of the package installer, wherein the deletion and installation management unit requests the change through the package manager when the user requests an application change. Determining whether administrator authority is required to change the configuration, requesting administrator authority from the package manager if administrator authority is required, and the package manager grants administrator authority from the root manager of the kernel region using interprocess communication. It is characterized by receiving.

이때, 상기 관리자 권한은 시스템 파일에 접근 및 상기 시스템 파일을 제어할 수 있으며, 시스템의 동작을 감시 및 제어할 수 있는 권한을 의미한다.In this case, the administrator authority may mean access to a system file and control the system file, and the authority to monitor and control the operation of the system.

상기 루트 관리부는 시스템 영역에 슈퍼 유저(Super User) 유틸리티를 설치 및 실행함으로써 상기 패키지 매니저에게 상기 관리자 권한을 부여할 수 있다. 상기 삭제 및 설치 관리부는 상기 관리자 권한을 부여 받은 상태에서 상기 변경 요청된 어플리케이션을 변경하고, 상기 패키지 매니저에게 상기 관리자 권한의 반환을 요청하고, 상기 패키지 매니저는 상기 프로세스간 통신을 이용하여 커널 영역의 상기 루트 관리자에게 상기 관리자 권한을 반환할 수 있다.The root manager may grant the administrator authority to the package manager by installing and executing a super user utility in a system area. The deletion and installation manager changes the requested application in the state of being given the administrator authority, requests the package manager to return the administrator authority, and the package manager uses the interprocess communication to establish The administrator authority may be returned to the root administrator.

상기 루트 관리부는 시스템 영역의 슈퍼 유저(Super User) 유틸리티를 종료 및 삭제함으로써 상기 패키지 매니저에게 상기 관리자 권한을 반환할 수 있다.The root manager may return the administrator authority to the package manager by terminating and deleting a super user utility of a system area.

상기 삭제 및 설치 관리부는 상기 변경 요청된 어플리케이션을 변경하기 위해 관리자 권한이 필요한지를 판단하는 권한 판단부와, 상기 변경 요청된 어플리케이션이 변경이 허용되는 어플리케이션인지를 판단하는 변경 허용 판단부와, 사용자 인증을 수행하는 인증부를 포함할 수 있다. 상기 패키지 매니저는 상기 패키지 인스톨러의 요청에 따라 어플리케이션의 삭제 또는 설치를 수행하는 패키지 삭제 및 설치 처리부와, 어플리케이션의 설치 및 삭제 정보를 관리하는 패키지 정보 관리부를 포함할 수 있다.The deletion and installation management unit may include an authority determination unit that determines whether an administrator authority is required to change the requested application, a change permission determination unit that determines whether the change requested application is an application that allows the change, and user authentication. It may include an authentication unit for performing. The package manager may include a package deletion and installation processor for deleting or installing an application according to a request of the package installer, and a package information manager for managing installation and deletion information of the application.

이때, 상기 프로세스간 통신을 소켓 통신일 수 있으며, 상기 패키지 매니저는 상기 소켓 통신을 위하여 API(Application Programming Interface)로 JNI(Java Native Interface)를 이용할 수 있다.In this case, the interprocess communication may be socket communication, and the package manager may use a Java Native Interface (JNI) as an application programming interface (API) for the socket communication.

또한, 본 발명의 일실시예에 따른 단말기의 임시 관리자 권한 부여 방법은, 삭제 및 설치 관리부를 이용하여 사용자로부터 어플리케이션 변경 요청을 수신하는 단계와, 상기 삭제 및 설치 관리부가 상기 변경 요청된 어플리케이션을 변경하는데 관리자 권한이 필요한지를 판단하는 단계와, 관리자 권한이 필요한 경우 상기 삭제 및 설치 관리부가 상기 패키지 매니저에게 관리자 권한을 요청하는 단계와, 상기 패키지 매니저가 프로세스간 통신을 이용하여 커널 영역의 루트 관리부로부터 관리자 권한을 부여 받는 단계를 포함할 수 있다.In addition, the temporary administrator authorization method of the terminal according to an embodiment of the present invention, the step of receiving an application change request from the user using the deletion and installation management unit, and the deletion and installation management unit changes the application requested to change Determining whether the administrator authority is required to do so, and if the administrator authority is required, the deletion and installation management unit requesting the administrator authority from the package manager, and the package manager uses the interprocess communication from the root manager of the kernel region. It may include the step of being granted administrator rights.

상기 관리자 권한은 시스템 파일에 접근 및 상기 시스템 파일을 제어할 수 있으며, 시스템의 동작을 감시 및 제어할 수 있는 권한을 의미한다.The administrator authority means authority to access a system file and control the system file, and to monitor and control the operation of the system.

상기 루트 관리부는 시스템 영역에 슈퍼 유저(Super User) 유틸리티를 설치 및 실행함으로써 상기 패키지 매니저에게 상기 관리자 권한을 부여할 수 있다. The root manager may grant the administrator authority to the package manager by installing and executing a super user utility in a system area.

또한, 본 발명의 일실시예에 따른 단말기의 임시 관리자 권한 부여 방법은 상기 삭제 및 설치 관리부가 상기 관리자 권한을 부여 받은 상태에서 패키지 인스톨러에게 상기 어플리케이션의 변경을 요청하는 단계와, 상기 패키지 인스톨러가 상기 패키지 매니저를 통하여 상기 어플리케이션을 변경하는 단계와, 상기 삭제 및 설치 관리부가 상기 패키지 매니저에게 상기 관리자 권한의 반환을 요청하는 단계와, 상기 패키지 매니저가 상기 프로세스간 통신을 이용하여 커널 영역의 상기 루트 관리자에게 상기 관리자 권한의 반환을 요청하는 단계와, 상기 루트 관리부가 시스템 영역의 슈퍼 유저(Super User) 유틸리티를 종료 및 삭제함으로써 상기 패키지 매니저에게 상기 관리자 권한을 반환하는 단계를 포함할 수 있다. 또한, 본 발명의 일실시예에 따른 단말기의 임시 관리자 권한 부여 방법은, 상기 삭제 및 설치 관리부가 상기 변경 요청된 어플리케이션이 변경이 허용된 어플리케이션인지를 판단하는 단계와, 상기 삭제 및 설치 관리부가 사용자 인증을 수행하는 단계를 더 포함할 수 있다.In addition, the temporary administrator authorization method of the terminal according to an embodiment of the present invention includes the step of requesting the package installer to change the application in the state that the deletion and installation management has been granted the administrator authority, the package installer is the Changing the application through a package manager; requesting the package manager to return the administrator authority to the package manager; and wherein the package manager uses the interprocess communication to manage the root manager of a kernel region. And requesting the administrator to return the administrator's authority, and returning the administrator's authority to the package manager by terminating and deleting the super user utility of the system area by the root manager. In addition, the temporary administrator authorization method of the terminal according to an embodiment of the present invention, the deletion and installation management unit determining whether the change-requested application is an application that is allowed to change, and the deletion and installation management unit is a user The method may further include performing authentication.

이때, 상기 프로세스간 통신은 소켓 통신일 수 있으며, 상기 패키지 매니저는 상기 소켓 통신을 위하여 API(Application Programming Interface)로 JNI(Java Native Interface)를 이용할 수 있다.In this case, the interprocess communication may be socket communication, and the package manager may use a Java Native Interface (JNI) as an application programming interface (API) for the socket communication.

본 발명에 따른 임시 관리자 권한 부여 기능을 가진 단말기 및 이를 이용한 임시 관리자 권한 부여 방법에 의하면, 통상적으로 허가되지 않는 루트 권한을 얻기 위해 루팅 과정을 통해 시스템 영역의 자원을 변경하는 수고 없이 변경이 허용된 자원에 대해서는 시스템에서 선별적으로 임시 루트 권한을 부여하여 작업을 수행할 수 있도록 하여 사용자 편리성이 증대된다.According to a terminal having a temporary administrator authorization function and a temporary administrator authorization method using the same according to the present invention, a change is permitted without effort to change resources in a system area through a rooting process to obtain root authority which is not normally permitted. The user convenience is increased by allowing the system to selectively perform temporary root privileges on the resources.

또한, 루트 권한 상태로 운용되는 루팅된 단말기는 보안적으로 위험한 상태를 유지할 수 있으나, 본 발명에 따르면 일시적으로 루트 권한을 부여 및 회수하는 작업을 취함으로써 상대적으로 보안성이 향상된다.In addition, although a rooted terminal operating in a root authority state may maintain a security risk state, according to the present invention, the security is relatively improved by taking a task of temporarily granting and retrieving the root authority.

또한, 본 발명은 부여된 루트 권한으로 접근할 수 있는 시스템 자원을 선별하여 허용 정보에 따라 운용함으로써 일반 사용자가 단말기의 동작을 해할 수 있는 위험 요소가 있는 접근이나 변경을 제한할 수 있다.In addition, the present invention by selecting the system resources that can be accessed with the given root authority and operating in accordance with the allowed information can limit the access or change that has a risk factor that the general user can harm the operation of the terminal.

또한, 기존의 영구 루팅된 단말기의 경우 이를 감지하여 보안상 위험하다고 판단하여 스스로 실행되지 않도록 설계된 어플리케이션을 실행되지 않는 문제점이 있으나, 본 발명은 허용된 동작을 수행될 때에만 임시적으로 루트 권한으로 동작함으로써 이러한 문제점을 해결할 수 있다.In addition, there is a problem that the existing permanent root terminal detects this and determines that it is a security risk and does not run an application designed to not run on its own. However, the present invention temporarily operates as a root authority only when the allowed operation is performed. This problem can be solved.

도 1은 리눅스 시스템에서 파일 접근 권한을 나타내는 도면이다.
도 2는 안드로이드 루트 파일 시스템(Root File System)의 개략 구조도이다.
도 3은 본 발명의 일실시예에 따른 단말기의 개략 구성도이다.
도 4는 본 발명의 일실시예에 따른 단말기의 동작을 나타내는 상세 구성도이다.
도 5는 본 발명의 일실시예에 따른 단말기의 임시 관리자 권한 부여 방법을 설명하는 순서도이다.
도 6은 도 5의 루트 권한 획득 방법의 상세 흐름도이다.
도 7은 도 5의 루트 권한 반환 방법의 상세 흐름도이다.
도 8은 본 발명의 일실시예에 따른 단말기에서 어플리케이션 삭제시의 흐름도이다.
1 is a diagram illustrating file access authority in a Linux system.
2 is a schematic structural diagram of an Android root file system.
3 is a schematic structural diagram of a terminal according to an embodiment of the present invention.
4 is a detailed configuration diagram illustrating an operation of a terminal according to an embodiment of the present invention.
5 is a flowchart illustrating a method for granting temporary administrator authority of a terminal according to an embodiment of the present invention.
FIG. 6 is a detailed flowchart of the root authority obtaining method of FIG. 5.
7 is a detailed flowchart of the root authority return method of FIG. 5.
8 is a flowchart illustrating an application deletion in a terminal according to an embodiment of the present invention.

이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다. 그러나, 첨부도면 및 이하의 설명은 본 발명에 따른 임시 관리자 권한 부여 기능을 가진 단말기 및 이를 이용한 임시 관리자 권한 부여 방법의 가능한 일실시예에 불과하며, 본 발명의 기술적 사상은 아래의 내용에 의해 한정되지 아니한다.
Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. However, the accompanying drawings and the following description are only possible embodiments of a terminal having a temporary administrator authorization function and a temporary administrator authorization method using the same according to the present invention, and the technical spirit of the present invention is limited by the following contents. Not.

도 1은 리눅스 시스템에서 파일 접근 권한을 나타내는 도면이다.1 is a diagram illustrating file access authority in a Linux system.

리눅스 시스템은 파일 단위로 권한을 관리한다. 도 1에 표시된 “init.rc”라는 파일의 권한을 살펴 보면 다음과 같이 기재되어 있다.Linux systems manage permissions on a file-by-file basis. Looking at the permissions of the file "init.rc" shown in Figure 1 is described as follows.

-rwxr-x--- root root 24482 1970-01-01 09:00 init.rc-rwxr-x --- root root 24482 1970-01-01 09:00 init.rc

여기서, 좌측의 “-rwxr-x---“ 표시 부분이 파일에 대한 접근 권한을 나타낸다. 다음의 표를 참조하여 권한에 대해서 상세히 설명한다.Here, the "-rwxr-x ---" display part on the left shows the access right to the file. The authority will be described in detail with reference to the following table.

-- 파일의 종류Type of file -: 파일, d: 디렉토리, |: 링크-: File, d: directory, |: link rr 파일의 소유자에 대한 권한Authority to the owner of the file r: 읽기 가능, -: 읽기 불가능r: readable,-: unreadable ww w: 수정 및 삭제 가능, -: 수정 및 삭제 불가w: Can modify and delete,-: Can not modify and delete xx x: 실행 가능, -: 실행 불가능x: executable,-: not executable -- 파일 소유자의 그룹에 대한 권한Authority to the file owner's group r: 읽기 가능, -: 읽기 불가능r: readable,-: unreadable xx w: 수정 및 삭제 가능, -: 수정 및 삭제 불가w: Can modify and delete,-: Can not modify and delete -- x: 실행 가능, -: 실행 불가능x: executable,-: not executable -- 소유자 및 그룹을 제외한 다른 모든 사용자들에 대한 권한Privileges for all other users except owner and group r: 읽기 가능, -: 읽기 불가능r: readable,-: unreadable -- w: 수정 및 삭제 가능, -: 수정 및 삭제 불가w: Can modify and delete,-: Can not modify and delete -- x: 실행 가능, -: 실행 불가능x: executable,-: not executable

위의 표 1에서, “init.rc” 파일의 경우, 파일 권한 표시 부분 뒤에 “root/root” 로 표시되어 있는데, 앞쪽에 표시되어 있는 root는 파일의 소유자를 나타내며, 뒤쪽에 표시되어 있는 root는 파일 소유자의 그룹을 나타낸다. 따라서, “init.rc”는 파일의 소유자가 root이며, 파일 소유자의 그룹이 root로 정의되어 있음을 알 수 있다. 따라서, 위 권한 정의에 따라 파일의 소유자인 root 사용자는 파일에 대한 읽기(R), 쓰기(X), 실행(X)의 전체 권한을 가지지만, 소유자인 root 사용자 및 그 사용자가 속한 그룹에 속하지 못한 다른 사용자(예를 들어, 일반 user 등)의 경우 이 파일을 읽을 수도, 편집할 수도 없으며 실행시킬 수도 없다. 이처럼 리눅스는 파일 단위로 소유자, 그룹, 그외 사용자 등으로 파일 접근에 대해 제어한다. 리눅스를 기반으로 하고 있는 안드로이드 플랫폼의 경우도 이러한 파일 시스템의 동작을 취하고 있다.
In Table 1 above, the file “init.rc” is marked as “root / root” after the file permission display. The root shown at the front indicates the owner of the file. Represents a group of file owners. Thus, we can see that “init.rc” is the root of the file and that the group of file owners is defined as root. Thus, according to the above permission definition, the root user, who is the owner of the file, has full permissions for read (R), write (X), and execute (X) the file, but does not belong to the owner, root user, and the group to which the user belongs. Other users (for example, ordinary users) cannot read, edit, or execute this file. In this way, Linux controls file access by owner, group, and other users on a file-by-file basis. The Android platform, which is based on Linux, also works with this file system.

도 2는 안드로이드 루트 파일 시스템(Root File System)의 개략 구조도이다.2 is a schematic structural diagram of an Android root file system.

루트 파일 시스템은 시스템 초기화 및 각종 주변 장치들을 제어하기 위한 파일들을 담고 있으며, 일반적으로 / 로 마운트되는 디렉토리 구조를 가진다. 루트 파일 시스템은 안드로이드 플랫폼 소스가 컴파일 되고 나면 도 2와 같은 구조로 생성되고, 리눅스의 루트 파일 시스템과는 별도로 안드로이드에는 “/system”과 “/data” 폴더가 추가되어 있으며, 안드로이드의 시스템 레벨 실행 파일은 주로 “/system/bin” 또는 “/system/xbin”에 존재한다.The root file system contains files for system initialization and control of various peripheral devices, and usually has a directory structure mounted as /. The root file system is created in the structure shown in Figure 2 after the Android platform source is compiled. In addition to the Linux root file system, “/ system” and “/ data” folders are added to Android. The file is usually located in “/ system / bin” or “/ system / xbin”.

안드로이드 단말을 루팅하는 방법 중 가장 대표적인 것이 바로 “/system/bin” 또는 “/system/xbin” 경로에 SU(super user)유틸리티를 실행 파일 형태로 설치(복사)하고, 실행하는 것이다. 일단, SU 유틸리티 실행을 통해 루트 권한(즉, 관리자 권한)을 얻고 나면, “/system/bin”과 “system/xbin” 내의 파일들을 실행시킬 수 있게 되므로, 결과적으로 단말기는 루팅 상태가 된다.The most typical method of rooting an Android device is to install (copy) the SU (super user) utility in the form of "/ system / bin" or "/ system / xbin" and execute it. Once root is obtained by running the SU utility (ie, administrator privileges), the files in “/ system / bin” and “system / xbin” can be executed, resulting in the terminal being rooted.

기존의 안드로이드 플랫폼을 채택한 단말기의 경우 어플리케이션이나 리소스 등의 패키지(Package)를 삭제 또는 설치하고자 하는 경우 일반적으로 패키지 인스톨러(Package Installer)라는 패키지 설치 관련 어플리케이션을 이용한다. 이때, 모든 패키지에 대해 요청하는 것이 아니라, 패키지 정보를 미리 구축된 설치 데이터베이스에 요청하여 패키지의 삭제 또는 설치를 위해서 어떠한 권한이 요구되는지를 먼저 분석한다.In the case of a terminal adopting the existing Android platform, in order to delete or install a package such as an application or a resource, a package installation related application called a package installer is generally used. At this time, rather than requesting all the packages, the package information is requested to the pre-installed installation database to analyze what authority is required for the deletion or installation of the package.

만약, 패키지 정보로부터 어플리케이션 속성을 확인하면 해당 패키지가 디바이스의 어느 영역에 설치되어 있는지를 알 수 있고, 시스템 영역에 설치되어 있으면 삭제 또는 설치를 위해서는 루트 권한이 필요하다는 것을 알 수 있다. If the application properties are checked from the package information, it can be seen in which region of the device the package is installed. If the package is installed in the system region, root authority is required for deletion or installation.

이때, “어플리케이션”은 사용자가 단말기에서 원하는 동작을 수행하기 위해 실행하는 프로그램의 일종이고, “리소스”는 단말기상에서 아이콘, 폰트, 사용자 인터페이스와 같은 단말기 환경을 구성하는 부분이다. 이 어플리케이션 및 리소스는 사용자가 이를 수정, 설치, 삭제 할 수 있는 경우도 있지만, 위에서 언급한 것처럼 시스템 영역에 설치된 경우에는 루트 권한 없이는 수정, 설치 또는 삭제가 불가능하다. At this time, the "application" is a kind of program that the user executes to perform a desired operation on the terminal, and the "resource" is a part constituting a terminal environment such as an icon, a font, and a user interface on the terminal. This application and resource may be modified, installed, or deleted by the user, but as mentioned above, if installed in the system area, it cannot be modified, installed, or deleted without root authority.

일반 사용자 권한으로 삭제 또는 설치할 수 있는 다운로드된 어플리케이션의 경우 패키지 매니저를 통하여 삭제 또는 설치를 수행하고, 그렇지 않는 어플리케이션의 경우 아예 삭제 또는 설치가 불가능하다는 메시지를 사용자에게 제공하고 삭제 또는 설치 과정을 종료한다. In case of downloaded application that can be deleted or installed with general user authority, delete or install through the package manager. Otherwise, provide the user with a message that the deletion or installation is not possible and terminate the deletion or installation process. .

이때, 삭제 또는 설치가 불가능한 어플리케이션은 안드로이드에서 기본적으로 제공하는 응용 프로그램 정보 어플리케이션이 될 수 있으며, 단말기 제조사에서 출시 전에 단말기 내에 설치한 프리로드 어플리케이션(preload application)을 예로 들 수 있다. 일반적으로, 다운로드된 어플리케이션의 경우 사용자 인터페이스에서 삭제 버튼을 제공함에 반해, 상기 설명한 안드로이드에서 제공된 기본 어플리케이션의 혹은 프리로드 어플리케이션의 경우 삭제 버튼이 비활성화되어 사용자가 임의로 삭제할 수가 없다. 즉, 해당 어플리케이션 패키지가 삭제되기 위해서는 루트 권한을 필요로 하기 때문에 버튼을 비활성화하여 삭제를 시도할 수 없도록 처리하고 있다.In this case, the application that cannot be deleted or installed may be an application information application basically provided by Android. For example, a preload application installed in a terminal before release by a terminal manufacturer may be used. In general, in the case of a downloaded application, the delete button is provided in the user interface, whereas in the case of the basic application or the preloaded application provided in Android, the delete button is inactivated and the user cannot delete it arbitrarily. That is, because the application package requires root authority to be deleted, the button is deactivated so that the deletion cannot be attempted.

일반적으로 안드로이드 운영체제가 탑재된 단말 기기의 경우, 사용자가 시스템 어플리케이션이나 리소스를 변경할 수 없다. 왜냐하면, 시스템 어플리케이션이나 리소스에 해당하는 파일에 대한 소유자가 root로 되어 있기 때문에 root가 아닌 일반 사용자는 파일에 대한 읽기(R), 쓰기(W), 실행(X) 등의 접근 권한이 제한된다.보통, UI로 사용자 접근을 제어하며, 근본적으로는 일반 사용자 권한으로는 해당 파일에 대한 읽기(R), 쓰기(W), 실행(X) 등의 접근 권한이 제한된다. 특히, 리눅스 파일 시스템 구조에서는 해당 파일(디렉토리 또한 파일로 간주된다)을 수정하거나 삭제하려면 쓰기(W) 권한이 요구되는데, 해당 파일에 대한 소유자인 root가 아닌 일반 사용자로 동작하는 모드에서는 해당 어플리케이션이나 리소스에 대응하는 해당 파일에 대해 삭제 또는 편집 등을 수행하려고 하면 쓰기 권한이 없으므로 실행되지 않는다(Permission denied).In general, in the case of a terminal device equipped with the Android operating system, the user cannot change system applications or resources. Because the owner of a file corresponding to a system application or resource is root, the non-root general user is restricted from accessing the file to read (R), write (W), or execute (X). In general, the user access is controlled by the UI. Basically, general user authority restricts access rights such as read (R), write (W), and execute (X) on the file. In particular, the Linux file system structure requires write (W) permission to modify or delete a file (a directory is also considered a file). In a mode that operates as a normal user other than root, the owner of the file, If you try to delete or edit the file corresponding to the resource, it will not be executed because you do not have write permission (Permission denied).

본 발명에서는 SU 유틸리티 설치(복사) 자체는 필요시에 시스템에서 해주고, 대신 사용 후에 즉시 회수 및 삭제함으로써 루팅으로 인해 사용자가 의도하지 않는 작업이 발생하여 피해를 입거나 보안적으로 위협이 되는 상황에 지속적으로 노출되는 것을 방지하는 기능을 제공하는 것을 그 특징으로 한다. 여기서 SU 유틸리티 설치(복사)는 단말기에 루트권한을 부여하기 위한 방법으로서 이 같은 방법 외에 단말기에 일시적으로 루트권한을 부여할 수 있는 어떠한 방법도 사용될 수 있는 것은 당연할 것이다.In the present invention, the SU utility installation (copying) itself is performed by the system when necessary, and instead of being immediately recovered and deleted after use, a situation where a user's unintended operation occurs due to the rooting causes damage or threatens security. Its feature is to provide a function to prevent continuous exposure. Here, the installation (copy) of the SU utility is a method for granting root authority to a terminal, and any method of temporarily granting root authority to a terminal may be used in addition to such a method.

이하 도 3 내지 도 8을 참조하여 본 발명의 일실시예에 따른 단말기 및 이를 이용한 임시 관리자 권한 부여 방법에 대해서 상세히 설명한다.
Hereinafter, a terminal and a temporary administrator authorization method using the same according to an embodiment of the present invention will be described in detail with reference to FIGS. 3 to 8.

도 3은 본 발명의 일실시예에 따른 단말기의 개략 구성도이다.3 is a schematic structural diagram of a terminal according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일실시예에 따른 단말기(10)는 삭제 및 설치 관리부(20)와, 패키지 인스톨러(Package Installer: 30)와, 패키지 매니저(Package Manager: 40)와, 설치 DB(50)를 포함하여 구성된다. 3, the terminal 10 according to an embodiment of the present invention, the deletion and installation management unit 20, the package installer (Package Installer: 30), the package manager (Package Manager: 40), the installation DB It consists of 50.

단말기(10)는 리눅스를 기반으로 한 안드로이드 플랫폼을 채택한 단말기를 예로 들 수 있으며, 그 외에 iOS 플랫폼, Window Mobile 플랫폼, Bada 플랫폼을 채택한 단말기도 가능함은 물론이다. 또한 단말기(10)는 이동통신 단말기, PDA, 태블릿 PC, 노트북, PC 등을 포함한다.The terminal 10 may be an example of a terminal adopting an Android platform based on Linux. In addition, a terminal adopting an iOS platform, a Window Mobile platform, and a Bada platform may be used. In addition, the terminal 10 includes a mobile communication terminal, a PDA, a tablet PC, a notebook computer, a PC, and the like.

삭제 및 설치 관리부(20)는 어플리케이션 레이어(Application Layer)에 위치하여 어플리케이션의 삭제 또는 설치와 관련된 사용자 인터페이스를 제공하는 어플리케이션을 의미한다. 안드로이드 단말기에서는 보통 “InstallAppDetails”, “Launcher” 등이 여기에 해당된다.The deletion and installation management unit 20 refers to an application located in an application layer and providing a user interface related to deletion or installation of an application. On Android terminals, this usually includes “InstallAppDetails” and “Launcher”.

패키지 인스톨러(30)는 어플리케이션 레이어에 위치하여 삭제 또는 설치 관리부(20)의 요청에 따라 어플리케이션의 삭제 또는 설치 명령을 처리하는 역할을 하는 어플리케이션이다. The package installer 30 is an application located in an application layer and serves to process a deletion or installation command of an application according to a request of the deletion or installation management unit 20.

패키지 매니저(40)는 프레임워크 레이어에 위치하여 패키지 인스톨러(30)의 요청에 따라 어플리케이션 어플리케이션의 삭제 또는 설치를 수행하는 역할을 한다. 즉, 패키지 인스톨러(30)로부터 어플리케이션의 삭제 또는 설치를 요청하는 인텐트(intent)를 수신하고, 이러한 인텐트에 따라 안드로이드 플랫폼 상의 설치 DB(50)로부터 어플리케이션 설치 경로인 APK 설치 경로(예를 들어, /system/app 또는 /data/app)를 검색해 설치된 APK 파일에서 해당 파일의 androidmanifest.xml 파일을 파싱하며, 각종 권한 정보, 인텐트 필터 정보 등의 APK에 정해져 있는 권한 정보를 모두 수집하여 메모리 상에 관리할 수 있도록 한다. 또한, 새로운 어플리케이션이 추가되거나 삭제될 때 발생하는 브로드캐스트 인텐트(Broadcast Intent)를 수신하여, 자신이 관리하는 주소록을 업데이트 하거나 삭제하는 역할도 수행한다.
The package manager 40 is located in the framework layer and plays a role of deleting or installing an application application according to a request of the package installer 30. That is, an intent is received from the package installer 30 to request the removal or installation of an application, and according to the intent, an APK installation path (for example, an application installation path) is installed from the installation DB 50 on the Android platform. , / system / app or / data / app) and parses the androidmanifest.xml file of the file from the installed APK file, and collects all the permission information defined in the APK such as various permission information and intent filter information. To be managed. In addition, it receives a broadcast intent generated when a new application is added or deleted, and updates or deletes an address book managed by the user.

도 4는 본 발명의 일실시예에 따른 단말기의 동작을 나타내는 상세 구성도이다.4 is a detailed configuration diagram illustrating an operation of a terminal according to an embodiment of the present invention.

도 4를 참조하면, 어플리케이션 레이어(1)에는 삭제 및 설치 관리부(20)와 패키지 인스톨러(30)가 위치하고, 프레임워크 레이어(3)에는 패키지매니저(40)가 위치하고, 커널 영역(Kernel Area: 5)에는 루트 관리부(60)가 위치함을 알 수 있다. Referring to FIG. 4, the deletion and installation management unit 20 and the package installer 30 are located in the application layer 1, the package manager 40 is located in the framework layer 3, and a kernel area: 5. It can be seen that the root management unit 60 is located at).

삭제 및 설치 관리부(20)는 단말기(10)의 홈 런처 또는 설정(Settings) 어플리케이션 같은 관리 프로그램일 수 있으며, 사용자의 요청에 따라 패키지 인스톨러(30)로 어플리케이션 삭제 인텐트를 보내는 단계가 최초의 삭제 요청이 된다. 삭제 및 설치 관리부(20)는 다시 권한 판단부(22)와 삭제 허용 판단부(24)와 인증부(26)를 포함하여 구성된다.The deletion and installation management unit 20 may be a management program such as a home launcher or a settings application of the terminal 10, and the step of sending an application deletion intent to the package installer 30 at the request of the user may be the first deletion. It is a request. The deletion and installation management unit 20 further includes an authority determination unit 22, a deletion permission determination unit 24, and an authentication unit 26.

권한 판단부(22)는 삭제 요청된 어플리케이션을 삭제하기 위해 관리자 권한이 필요한지를 판단하는 역할을 한다. 즉, 사용자로부터 어플리케이션의 삭제 요청이 있는 경우 프레임워크 레이어에 위치한 패키지 매니저(40)의 패키지 정보 관리부(42)를 통하여 설치 DB(50)의 어플리케이션 정보를 불러와 해당 어플리케이션을 삭제하기 위하여 시스템 어플리케이션 또는 프리로드 어플리케이션 등과 같이 관리자 권한이 필요한지를 판단한다. 여기서, “관리자 권한”이라고 함은 안드로이드 플랫폼상의 최고 권한인 루트 권한을 의미하며, 시스템 파일을 접근, 제어할 수 있는 권한을 지닌다. 어플리케이션을 삭제하기 위해 관리자 권한이 필요한지를 판단하는 방법으로는 일반적으로는 대상이 된 시스템 어플리케이션이나 리소스의 경로 정보를 이용하여 이 파일이 현재 루트 권한으로만 접근 가능한 경로에 위치하는지 확인하는 방법을 사용할 수 있다. 즉, 현재 안드로이드 루트 파일 시스템은 “/system” 디렉토리에 루트 권한이 요구되는 시스템 어플리케이션이 주로 설치되며, 일반 사용자에게는 읽기(R) 권한 이외에는 권한이 주어지지 않는 것이 일반적이다. The authority determining unit 22 determines whether administrator authority is required to delete the application that is requested to be deleted. That is, when a request for deleting an application is received from a user, a system application or an application is called to retrieve application information of the installation DB 50 through the package information management unit 42 of the package manager 40 located in the framework layer and delete the corresponding application. Determine whether administrator authority is required, such as a preload application. Here, “administrator authority” means root authority, which is the highest authority on the Android platform, and has authority to access and control system files. As a way of determining whether you need administrator privileges to delete an application, you can generally use the path information of the target system application or resource to determine whether this file is located in a path accessible only by current root privileges. Can be. In other words, the current Android root file system is mainly installed system applications that require root authority in the "/ system" directory, and general users do not have permission except the read (R) permission.

또 다른 방식으로는 이러한 접근 권한 정보를 제공한다면 제공될 정보를 이용하여 루트 권한이 요구되는지 판단하는 방법이 있을 수 있다. 예를 들어, 안드로이드 운영체제에 설치된 어플리케이션의 경우에는 플랫폼에서 ApplicationInfo의 특정 플래그(FLAG_SYSTEM)가 설정되어 있는지 확인하여 시스템 어플리케이션인지 확인할 수 있다. 다음은 이를 수행할 수 있는 관련 코드이다.Alternatively, if such access authority information is provided, there may be a method of determining whether root authority is required using the information to be provided. For example, in the case of an application installed in the Android operating system, the platform may check whether a specific flag (FLAG_SYSTEM) of ApplicationInfo is set to check whether the application is a system application. Here is the relevant code to do this:

시스템 system 어플리케이션인지Is it an application 여부를  Whether or not 체크하는Checked 루틴 Routine 1. 시스템 1. System 어플리케이션application 경로 지정( Specify path EnvironmentEnvironment .. javajava )) PrivatePrivate staticstatic finalfinal FileFile ROOTROOT __ DirectoryDirectory = getDirectory(“ = getDirectory (“ ANDROIDANDROID __ ROOTROOT ”,”/”,” / systemsystem ”);”); 2. 시스템 디렉터리 스캔 (2. Scan the system directory ( PackageManagerServicePackageManagerService .. javajava )) p=p = scanPackageLIscanPackageLI (( fullPathfullPath , (, ( mlsRommlsRom ?  ? PackageParserPackageParser .. PARSEPARSE __ ISIS __ SYSTEMSYSTEM …)... ) 3. 시스템 3. System 어플리케이션인Application 경우  Occation FLAGFLAG __ SYSTEMSYSTEM 부여( grant( PackageManagerServicePackageManagerService .. javajava )) IfIf (((( parseFlagsparseFlags & PackageParserPackageParser .. PARSEPARSE __ ISIS __ SYSTEMSYSTEM )! = 0) {)! = 0) {
PkgPkg .. applicationInfoapplicationInfo .. flagsflags | =  | = ApplicationInfoApplicationInfo .. FLAGFLAG __ SYSTEMSYSTEM ;;
}}
4. 부여된 플래그를 통해 시스템 4. The system through the granted flag 어플리케이션인지Is it an application 확인하는 방법 ( how to check ( PackageManagerServicePackageManagerService .. javajava )) PrivatePrivate staticstatic BooleanBoolean isSystemAppisSystemApp (( PackageParserPackageParser .. PackagePackage pkgpkg ) {) {
ReturnReturn ( ( pkgpkg .. applicationInfoapplicationInfo .. flagsflags  & ApplicationInfoApplicationInfo .. FLAGFLAG __ SYSTEMSYSTEM ) ! = 0;)! = 0;
}}

이렇게 어플리케이션 또는 리소스에 대한 접근 권한을 확인 한 후, 루트 권한을 요구하는 파일 위치라면 권한 변경을 위한 다음 단계를 진행한다.After checking the access right to the application or resource, proceed to the next step to change the permission if the file location requires root authority.

삭제 허용 판단부(24)는 삭제 요청된 어플리케이션이 삭제가 허용되는 어플리케이션인지를 판단하는 역할을 한다. 시스템 어플리케이션 또는 리소스 등에 대한 변경을 진행할 때에는 신중해야 한다. 특히, 시스템 어플리케이션의 경우, 반드시 해당 기기의 운용을 위해 필요한 내용이 포함되어 절대 삭제되어서는 안 되는 어플리케이션이 있다. 시스템 리소스의 경우, 필요한 리소스가 없거나 변경되면 화면 출력이 이상해지거나 역시 오류가 발생하면서 실행할 수 없는 문제가 발생할 수 있다. 따라서, 무조건적인 시스템 영역의 자원을 변경 가능하도록 사용자에게 허락하지 않고, 선별적으로 허용 가능한 항목에 대해서만 루트 권한을 부여할 필요가 있다.The deletion permission determining unit 24 determines whether the application requested to be deleted is an application that is permitted to be deleted. Be careful when making changes to system applications or resources. In particular, in the case of a system application, there are applications that must be deleted, including contents necessary for the operation of the device. In the case of system resources, missing or changing required resources can cause screen output to be erratic or fail and fail. Therefore, it is necessary to grant root authority only to selectively allowable items without allowing a user to change resources of an unconditional system area.

시스템 어플리케이션 등 삭제 및 변경을 허용할 수 있는 어플리케이션에 대한 데이터베이스는 사용자가 일반적으로 처리할 수 없는 시스템 영역에 위치하도록 한다. 데이터베이스에는 시스템 영역에 설치된 모든 어플리케이션에 대해 허용 가능 여부를 명시한다. Databases for applications that can allow deletion and modification, such as system applications, should be placed in system areas that users cannot normally handle. The database specifies whether to allow all applications installed in the system area.

가장 간단한 형식을 어플리케이션 패키지의 이름을 키(Key)로 하고, 삭제 또는 설치 가능 여부(true/false)를 값(value)으로 하는 테이블을 작성하는 것이다. 패키지 매니저(40)에서는 이미 각 패키지에 대한 이름, 코드와 리소스가 설치된 위치, 네이티브 라이브러리(native library)가 설치된 위치 등 삭제나 설치에 필요한 정보를 모두 가지고 있으므로 허용 여부를 판별한 데이터베이스는 패키지 이름만으로도 판별이 가능하다. 삭제에 대한 허용과 설치에 대한 허용 여부를 각각 설정하고 할 때는 테이블을 확장하여 작성한다. 해당 패키지의 이름과 원하는 동작(삭제/설치)를 데이터베이스에 쿼리 및 매칭하여 허용여부 값이 true이면 다음 단계로 진행할 수 있다. The simplest form is to create a table with the name of the application package as the key and its value as a value that can be deleted or installed (true / false). The package manager 40 already has all the information necessary for deleting or installing the package, such as the name of each package, the location where the code and resources are installed, and the location where the native library is installed. Discrimination is possible. When setting the permission for deletion and the permission for installation respectively, expand the table. Query and match the name of the package and the desired action (delete / install) to the database. If the value is true, you can proceed to the next step.

인증부(26)는 사용자 인증을 수행하는 역할을 한다. 즉, 인증부(26) 악성 어플리케이션 등으로 동작하는 것이 아닌지를 별하기 위해 사용자 인증을 하는 역할을 한다. 해당 인증 과정은 실제 구현하는 경우에 요구되는 보안 수준에 따라 다르게 구현될 수 있다. The authentication unit 26 serves to perform user authentication. That is, the authentication unit 26 serves to authenticate the user in order to distinguish whether or not it operates as a malicious application. The authentication process can be implemented differently depending on the level of security required in the actual implementation.

예를 들어, 보통의 단말 수준의 보안을 요구한다면 현재 단말 사용자임을 확인할 수 있는 수준으로 기존의 안드로이드 플랫폼에서 제공하는 잠금 패턴, PIN, 비밀번호 세션을 활용할 수도 있다. 잠금 설정의 비밀번호 등은 해쉬(Hash)로 암호화하여 시스템 데이터 영역(/data/system)에 파일 형태(gesture, key, password.key)로 저장되어 있으므로 파일을 직접 접근하여 인증할 수도 있고, 잠금 설정을 위해 제공되는 LockPatternUils을 이용할 수도 있다.For example, if you require security at the normal terminal level, you can use the lock pattern, PIN, and password session provided by the existing Android platform to verify that you are the current terminal user. The password of the lock setting is encrypted with a hash and stored in the file format (gesture, key, password.key) in the system data area (/ data / system), so the file can be directly accessed and authenticated. You can also use the LockPatternUils provided for this.

보다, 안전하게 하기 위해서는 어플리케이션 삭제을 위한 별도의 비밀번호를 설정할 수 있도록 하는 어플리케이션을 시스템 설정 메뉴에 추가 구현할 수도 있다. 만약, 금융 어플리케이션과 같은 고수준의 보안을 요구한다면, 인증 서버를 제공하거나, 별도의 인증 모듈을 구현하여 이를 수행하도록 제공하여야 할 것이다.To be more secure, an application that can set a separate password for deleting an application may be additionally implemented in the system setting menu. If a high level of security is required, such as a financial application, an authentication server or a separate authentication module should be provided to perform this.

패키지 매니저(40)는 다시 패키지 정보 관리부(42)와, 패키지 삭제 또는 설치 처리부(44)를 포함하여 구성된다. The package manager 40 further includes a package information management unit 42 and a package deletion or installation processing unit 44.

패키지 삭제 또는 설치 처리부(44)는 패키지 인스톨러(30)의 요청에 따라 어플리케이션의 삭제 또는 설치를 실질적으로 수행하는 역할을 한다.The package deletion or installation processor 44 performs a role of substantially deleting or installing an application according to a request of the package installer 30.

패키지 정보 관리부(42)는 어플리케이션의 설치 및 삭제 정보를 관리하는 역할을 한다. 즉, 패키지 정보 관리부(42)는 삭제할 어플리케이션의 설치 정보, 권한 정보 등을 관리하고, 삭제 또는 설치 관리부(20)의 요청에 따라 이 정보들을 검색 및 전송하는 역할을 한다.The package information manager 42 manages installation and deletion information of an application. That is, the package information manager 42 manages installation information, authority information, and the like of an application to be deleted, and retrieves and transmits the information according to a request of the deletion or installation manager 20.

커널 영역(5)에는 루트 관리부(60)가 존재하는데, 후술할 프로세스간 통신을 위한 서버(Server) 역할을 한다. 자세한 동작은 후술하기로 한다.
A root manager 60 exists in the kernel region 5, and serves as a server for interprocess communication, which will be described later. Detailed operations will be described later.

도 4의 구성을 하는 본 발명의 일실시예에 따른 단말기(10)의 임시 관리자 권한 부여 방법을 도 5를 참조하여 설명하면 다음과 같다.The temporary administrator authorization method of the terminal 10 according to an embodiment of the present invention having the configuration of FIG. 4 will be described with reference to FIG. 5 as follows.

사용자는 삭제 또는 설치 관리부(20)와 같은 어플리케이션이 제공하는 사용자 인터페이스를 통해 단말기(10) 내의 자원(어플리케이션 또는 리소스)에 대한 변경 동작(삭제, 재설치 등등)을 시도한다(S500). 이때, 변경 동작은 시스템 어플리케이션 또는 프레임워크 리소스 재설치가 될 수 있으나, 사용자는 해당 자원이 어떠한 자원인지 구별하지 않고 상기와 같은 변경 동작을 시도할 수 있다.The user attempts to change (delete, reinstall, etc.) a resource (application or resource) in the terminal 10 through a user interface provided by an application such as the delete or install manager 20 (S500). In this case, the change operation may be a system application or framework resource reinstallation, but the user may attempt the change operation as described above without distinguishing which resource is the corresponding resource.

단계 S500에서 사용자가 어플리케이션 삭제를 요청한 경우, 삭제 또는 설치 관리부(20)의 권한 판단부(22)는 해당 어플리케이션을 삭제하기 위하여 루트 권한이 요구되는지를 판단한다(S510). 이를 위해서 권한 판단부(22)는 패키지 정보 관리부(42)에 해당 어플리케이션의 패키지에 대한 정보를 요청하고, 이를 수신하여 해당 어플리케이션 속성을 확인함으로써 해당 어플리케이션을 삭제하기 위하여 루트 권한이 필요한지를 판단할 수 있다.When the user requests the application to be deleted in step S500, the authority determining unit 22 of the deletion or installation management unit 20 determines whether root authority is required to delete the corresponding application (S510). To this end, the authority determining unit 22 may request the package information management unit 42 for information on a package of the corresponding application, receive the information, and check the application attribute to determine whether root authority is required to delete the corresponding application. have.

이때, 해당 어플리케이션이 일반 사용자 모드에서 삭제 가능하다고 판단되는 경우에는 사용자 모드로 사용자 요청 작업을 바로 수행한다(S560).In this case, when it is determined that the application can be deleted in the general user mode, the user request operation is immediately performed in the user mode (S560).

만약, 해당 어플리케이션이 루트 권한 모드에서 삭제 가능하다고 판단되는 경우에는 해당 어플리케이션이 변경이 허용되는 자원인지를 다시 한번 판단한다(S520). 앞에서 언급한 바와 같이, 변경이 허용되지 않는 자원에 대한 리스트는 별도로 데이터베이스화되어 구축되어 있고, 이 리스트와 비교함으로써 이를 판단할 수 있다.If it is determined that the application can be deleted in the root authority mode, it is determined once again whether the application is a resource that is allowed to be changed (S520). As mentioned earlier, a list of resources that are not allowed to be modified is built in a separate database and can be determined by comparing this list.

해당 어플리케이션을 삭제할 경우 치명적인 문제가 발생하거나, 통신 사업자가 삭제를 허용하지 않는 경우인 경우에는 어플리케이션 삭제를 허용하지 않고 바로 종료된다.When deleting the application, a fatal problem occurs, or when the communication provider does not allow the deletion, the application is terminated immediately without allowing the deletion.

반면, 해당 어플리케이션이 변경이 허용되는 어플리케이션인 경우에는 보안성을 강화하기 위하여 사용자 인증 과정을 수행한다(S530). 이때, 사용자 인증 과정은 사용자를 인정하는 보안의 정도에 따라 다른 방법을 제공할 수 있다. 일반적인 패스워드나 PIN 정보의 보안 수준이라면 안드로이드 플랫폼에서 제공하는 단말 록킹 시스템(Locking System)을 이용해 단말 사용자인지 확인이 가능하고, 루트 권한을 획득하는 것이므로 높은 수준의 인증을 요구할 경우에는 별도의 인증 체계를 구축하여 사용자 인증을 진행할 수도 있다.On the other hand, if the application is an application that is allowed to change, the user authentication process is performed to enhance security (S530). At this time, the user authentication process may provide a different method according to the degree of security to recognize the user. If the general level of password or PIN information is secure, you can check whether the user is a terminal user using the terminal locking system provided by the Android platform, and if you require high level authentication, a separate authentication system is required. You can also build and proceed with user authentication.

사용자 인증 과정을 수행하여 악성 코드로 인한 동작 등이 배제되었다고 판단되면, 해당 어플리케이션 삭제를 위한 루트 권한을 획득하는 과정을 수행한다(S540). 루트 권한 획득은 리눅스 커널 데몬(daemon)인 루트 관리부(60)에 요청을 보내어 루트 모드로 전환하는 방법을 사용한다. 즉, 단말기(10)는 사용자 모드이기 때문에, 루팅을 수행하기 위해서는 루트 권한을 가지고 있는 루트 관리부(60)로 루팅을 요청해야 한다. 사용자 권한을 가지고 있는 패키지매니저서비스(PackageManagerService)에서는 루트 권한의 실행 파일을 실행할 수 있는 권한이 없으므로 이를 소켓 통신을 이용하여 해결한다. 따라서, 패키지매니저서버(PackageManagerServer)는 네이티브 레이어(Native Layer)의 소켓 클라이언트로 요청을 하고 루트 권한의 루트 관리부(60)인 소켓 서버에게 소켓 통신을 위해 루팅 요청을 한다. If it is determined that the operation due to the malicious code is excluded by performing the user authentication process, the process of obtaining the root authority for deleting the corresponding application is performed (S540). Root authority acquisition uses a method of switching to root mode by sending a request to the root management unit 60, which is a Linux kernel daemon. That is, since the terminal 10 is in user mode, in order to perform routing, the terminal 10 must request a routing to the root manager 60 having root authority. PackageManager service that has user authority does not have the authority to execute the root executable file, so it is solved by using socket communication. Therefore, the package manager server (PackageManagerServer) makes a request to the socket client of the native layer (Native Layer) and makes a routing request for the socket communication to the socket server which is the root management unit 60 of the root authority.

패키지매니저서비스는 자바(java) 언어로 구현된 내용이며, 루트 관리부(60)는 리눅스 커널에 위치하므로 C 언어로 구현된다. 따라서, 소켓 통신을 위해서는 이를 이어주는 JNI(Java Native Interface)를 이용해야 한다. JNI란 자바 언어를 이용하여 만들어진 프로그래밍에서 해당 플랫폼에서만 실행 가능한 네이티브(Native) 코드(여기에서는 C 언어로 작성된 코드)에 접근하기 위해 만들어진 API(Application Programming Interface)이다. The package manager service is implemented in the Java language, and since the root manager 60 is located in the Linux kernel, it is implemented in the C language. Therefore, socket communication requires the use of JNI (Java Native Interface). JNI is an API (Application Programming Interface) designed to access native code (in this case, code written in C) that can be executed only on the platform in programming using the Java language.

구체적으로 1) 자바 파일 만들기, 2) 자바 컴파일, 3) 자바 헤더(heager) 만들기, 4) C/C++ 코드 구현, 5) C/C++ 코드 컴파일,, 6) 실행하기 순서로 JNI가 구현된다. 따라서, 패키지매니저서비스에서 위와 같은 방법으로 자바 레이어 측에 Specifically, JNI is implemented in the following order: 1) create Java file, 2) compile Java, 3) create Java header, 4) implement C / C ++ code, 5) compile C / C ++ code, and 6) execute. Therefore, in the same way as above in the package manager service,

Public native boolean requestRooting();Public native boolean requestRooting ();

이란 함수를 만들고, 네이티브 레이어 측에서 C 언어로 이를 구현하여 소켓 클라이언트가 루트 관리부(60)라는 소켓 서버로 루팅 요청을 한다. 만약, 약속된 소켓 포트(Socket Port) 번호가 567번이라면, 루트 관리부(60)는 이 567번의 요청들을 처리하기 위해 대기(Listen)하고 있으며, 소켓 클라이언트는 이 567번으로 루팅 요청을 할 수 있다. 루트 관리부(60)는 이를 통해 루팅 요청이 들어온 것을 알게 된다. Create a Iran function, and implement it in the C language on the native layer side, the socket client makes a routing request to the socket server called the root management unit (60). If the promised Socket Port number is 567, the root management unit 60 waits to process the 567 requests, and the socket client can make a routing request to the 567. . The root manager 60 knows that a routing request has been entered through this.

루트 관리부(60)는 상기 API를 통하여 루트권한 부여 요청이 들어오면 단말기(10)의 루팅을 위해 단말의 루트 권한으로만 읽을 수 있는 폴더에 다른 이름으로 저장되어 있던 SU 유틸리티를 실행할 수 있는 “/system/xbin” 이나, “/system/bin” 등의 경로에 복사하고 이를 실행하여 단말을 루팅 상태로 변환한다. 이때, SU 유틸리티의 설치(복사)는 단말기에 루트권한을 부여하기 위한 하나의 방법으로서, 이 같은 방법 외에 단말기에 일시적으로 루트권한을 부여할 수 있는 어떠한 방법도 사용될 수 있음은 물론이다. When the root authority grant request is received through the API, the root manager 60 may execute the SU utility stored under a different name in a folder that can be read only by the root authority of the terminal for rooting of the terminal 10. Copy the system / xbin ”or“ / system / bin ”to the path and execute it to convert the terminal into the rooted state. At this time, the installation (copy) of the SU utility is one method for granting the root authority to the terminal. In addition to this method, any method of temporarily granting the root authority to the terminal may be used.

이제 루트 권한을 획득한 상태로 단말의 모든 동작에 대해 제어가 가능하므로 루트 관리부(60)는 전체 파일 시스템 파티션을 읽기(R)와 쓰기(W) 모두 가능하도록 리마운트(Remount) 작업을 수행한다. 이로써, 루팅이 되었다는 상태를 루트 관리부(60)가 소켓을 통해 소켓 클라이언트로 전달을 하고, 이를 패키지매니저서비스에게 전달해주면, 패키지매니저서비스는 사용자가 원했던 시스템 어플리케이션 삭제를 수행한다.Now, since the root authority can be controlled for all operations of the terminal, the root management unit 60 performs the remount operation so that the entire file system partition can be read (R) and write (W). . As a result, when the root management unit 60 transmits the status of the routing to the socket client through the socket, and delivers it to the package manager service, the package manager service deletes a system application desired by the user.

즉, 루트 권한이 획득되면, 루트 권한 모드로 사용자가 요청한 작업을 수행하고(S550), 다시 루트 권한을 반환하여(S570) 어플리케이션 삭제 작업을 마무리 한다. That is, when the root authority is obtained, the user performs a task requested by the user in the root authority mode (S550), and returns the root authority again (S570) to finish the application deleting operation.

구체적으로, 단말기(10)는 이제 보안을 위해 루트 권한이 유지되지 않도록 루팅된 상태를 사용자 모드로 되돌리는데, 패키지매니저서비스는 루팅 요청시와 마찬가지로 언투링(Unrouting) 요청을 JNI를 통해 소켓 클라이언트로 보내고, 이 소켓 클라이언트는 루트 관리부(60)로 이를 전달한다. 이때, 루트 관리부(60)는 루트 권한을 가진 상태에서 전체 파일 시스템을 사용자 권한에서 정상적으로 사용할 수 있도록 읽기 전용(Read-only) 권한으로 리마운트 작업을 수행한다. 그리고, SU 유틸리티 종료를 위해 exit를 수행하고, “/system/bin” 이나 “/system/xbin” 디렉토리에 복사되었던 SU 유틸리티를 삭제한다. Specifically, the terminal 10 returns the rooted state to the user mode so that the root authority is not maintained for security, and the package manager service sends the unrouting request to the socket client through JNI as in the routing request. This socket client forwards it to the root manager 60. At this time, the root management unit 60 performs a remount operation with read-only authority so that the entire file system can be normally used in user authority while having root authority. Then exit to exit the SU utility, and delete the SU utility that was copied to the “/ system / bin” or “/ system / xbin” directory.

이러한 일련의 작업을 통해 단말을 임시로 루팅 되었던 상태를 벗어나 다시 정상 권한을 가진 단말로 돌아오며, 사용자는 시스템 어플리케이션을 삭제하는 소기의 목적을 달성할 수 있게 된다.
Through such a series of tasks, the terminal is temporarily routed out of the state and returned to the terminal with normal authority, and the user can achieve the intended purpose of deleting the system application.

이때, 루트 권한 획득 과정(S540)과, 루트 권한 반환 과정(S570)을 도 6을 참조하여 설명하면 다음과 같다.In this case, the root authority acquisition process S540 and the root authority return process S570 will be described with reference to FIG. 6.

안드로이드 플랫폼에서 루트 권한이 필요한 작업을 진행하기 위해서는 커널 영역에서 임시로 루트 권한을 처리하는 루트 관리부(60)와 통신하는 과정이 필요한데, 프로세스간 통신(Inter Process Communication) 중 소켓 통신 방식을 사용하기로 한다. 물론, signal, pipe, FIFO, 메시지 큐, 공유메모리, 세마포어, TLI 등 다른 종류의 프로세스간 통신 방식을 사용할 수도 있음은 물론이다.In order to proceed with the operation that requires root authority on the Android platform, a process of communicating with the root management unit 60 that temporarily processes root authority in the kernel area is required, and it is decided to use a socket communication method among inter-process communication. do. Of course, other kinds of interprocess communication methods such as signal, pipe, FIFO, message queue, shared memory, semaphore, and TLI can be used.

도 6에서 볼 수 있듯이, 리눅스 루트 관리부(9)는 특정 포트를 열고 대기하고, 안드로이드 플랫폼(7)에서 리눅스 루트 관리부(9)의 포트로 소켓을 연결하여 루트 권한을 요청한다. 즉, 안드로이드 플랫폼(7)은 리눅스 루트 관리부(9)로 소켓 I/O를 요청하고(S541), 요청 받은 리눅스 루트 관리부(9)가 이를 수락하면(S542), 안드로이드 플랫폼(7)은 이 소켓으로 루트 권한을 요청한다(S543).As shown in FIG. 6, the Linux root manager 9 opens and waits for a specific port, and requests root authority by connecting a socket to a port of the Linux root manager 9 from the Android platform 7. That is, the Android platform 7 requests the socket I / O to the Linux root manager 9 (S541), and if the requested Linux root manager 9 accepts it (S542), the Android platform 7 sends this socket. The root authority is requested (S543).

이렇게 되면, 리눅스 루트 관리부(9)는 SU(Super User) 유틸리티를 시스템 파일 설치 경로인 “/system/xbin” 경로로 복사한 후 실행함으로써 루트 권한을 획득한다(S544). 그 후, 리눅스 루트 관리부(9)는 안드로이드 플랫폼(7)에 루트 권한 획득을 완료 했다는 메시지를 전송한다(S545).In this case, the Linux root management unit 9 obtains the root authority by copying the SU (Super User) utility to the "/ system / xbin" path, which is a system file installation path (S544). Thereafter, the Linux root management unit 9 transmits a message indicating that the root authority has been acquired to the Android platform 7 (S545).

마찬가지로, 도 7에는 루트 권한 반환 방법이 도시되어 있다.Similarly, FIG. 7 illustrates a method for returning root authority.

안드로이드 단말기(10)가 루트 권한으로 진행할 작업을 모두 완료하였으면, 연결된 소켓을 이용하여, 리눅스 루트 관리부(9)로 루트 권한 반환을 요청한다(S571). 이때, 리눅스 루트 관리부(9)는 SU 유틸리티를 종료하고 기존의 사용자 모드로 전환시키고, 이후에 다시 SU를 실행시킬 수 없도록 제거한다(S572). 이후, 리눅스 루트 관리부(9)는 안드로이드 플랫폼(7)에 소켓 I/O를 종료하였다는 메시지를 전송한다(S573).If the Android terminal 10 has completed all the tasks to proceed with the root authority, using the connected socket, requests the root authority return to the Linux root management unit 9 (S571). At this time, the Linux root management unit 9 terminates the SU utility, switches to the existing user mode, and removes it so that it is not possible to execute SU again (S572). Thereafter, the Linux root management unit 9 transmits a message indicating that the socket I / O is terminated to the Android platform 7 (S573).

이때, 도 6 및 도 7에서 안드로이드 플랫폼(7)은 프레임워크 레이어의 소켓 통신을 위한 클라이언트인 패키지매니저(40)를 의미한다.
6 and 7 refer to the package manager 40 as a client for socket communication of the framework layer.

사용자가 루트 권한이 필요한 어플리케이션을 삭제하는 경우의 본 발명의 일실시예에 따른 단말기의 동작을 도 8을 참조하여 개략적으로 살펴보면 다음과 같다.An operation of a terminal according to an embodiment of the present invention when a user deletes an application requiring root authority will be described below with reference to FIG. 8.

도 8을 참조하면, 사용자(1)는 삭제 및 설치 관리부(20)에서 어플리케이셕 삭제 요청을 하고(S801), 삭제 및 설치 관리부(20)는 권한 판단부(22)에게 어플리케이션 삭제 요청을 하고(S803), 권한 판단부(22)는 패키지 정보 관리부(42)로 권한 정보를 요청한다(S805).Referring to FIG. 8, the user 1 requests the application to be deleted from the deletion and installation management unit 20 (S801), and the deletion and installation management unit 20 requests the application deletion request to the authority determination unit 22. In operation S803, the authority judging unit 22 requests authority information from the package information management unit 42 (S805).

패키지 정보 관리부(42)는 설치 DB(50)의 데이터베이스에서 권한 정보를 조회하여 권한 판단부(22)로 권한 정보를 전달한고(S807), 권한 판단부(22)는 삭제 및 설치 관리부(20)로 권한 정보를 전달한다(S809).The package information management unit 42 queries the authority information from the database of the installation DB 50 and transmits the authority information to the authority determination unit 22 (S807), and the authority determination unit 22 deletes and installs the management unit 20. The authority information is transmitted to the server (S809).

권한 정보를 전달 받은 삭제 및 설치 관리부(20)는 삭제 허용 판단부(24)로 삭제 요청된 변경(삭제)이 허용된 어플리케이션인지를 확인하기 위해 삭제 허용 판단부(24)에 허용 정보를 요청한다(S811). 허용 정보판단부(24)는 미리 구축된 데이터베이스를 조회하여 삭제 요청된 어플리케이션이 변경(삭제)이 허용된 어플리케이션인지를 판단하고, 판단된 허용 정보를 삭제 및 설치 관리부(20)로 전달한다(S813).The deletion and installation management unit 20 having received the authority information requests permission information from the deletion permission determination unit 24 to confirm whether the change (deletion) requested to be deleted is an application that is allowed to be deleted. (S811). The permission information determination unit 24 queries the previously built database to determine whether the application requested to be deleted is an application that is allowed to be changed (deleted), and transmits the determined permission information to the deletion and installation management unit 20 (S813). ).

삭제 및 설치 관리부(20)는 수신된 허용 정보를 기초로 사용자의 어플리케이션 삭제 요청을 허용하거나 불허할 수 있다. 삭제가 허용된 어플리케이션으로 판단된 경우 삭제 및 설치 관리부(20)는 인증부(26)로 사용자 인증 요청을 하고(S815), 인증부(26)는 비밀번호 입력 등의 다양한 방식으로 사용자를 인증하고 인증 결과를 삭제 및 설치 관리부(20)로 전송한다(S817).The deletion and installation management unit 20 may allow or disallow the application deletion request of the user based on the received permission information. When it is determined that the application is permitted to be deleted, the deletion and installation management unit 20 requests a user authentication to the authentication unit 26 (S815), and the authentication unit 26 authenticates and authenticates the user by various methods such as a password input. The result is transmitted to the deletion and installation management unit 20 (S817).

사용자 인증이 완료되면, 삭제 및 설치 관리부(20)는 패키지 인스톨러(30)에 삭제 요청을 하고(S819), 패키지 인스톨러(30)는 패키지 삭제 및 설치 처리부(44)로 삭제 요청을 한다(S821).When the user authentication is completed, the deletion and installation management unit 20 makes a deletion request to the package installer 30 (S819), and the package installer 30 makes a deletion request to the package deletion and installation processing unit 44 (S821). .

패키지 삭제 및 설치 처리부(44)는 소켓 통신을 이용하여 루트 권한을 요청하고(S823), 루트 관리부(60)는 SU 유틸리티를 설치 및 실행하여 단말기(10)를 루팅시킨다(S825).The package deletion and installation processing unit 44 requests root authority by using socket communication (S823), and the root management unit 60 installs and executes the SU utility to root the terminal 10 (S825).

루팅이 완료되면, 루트 관리부(60)는 루팅이 완료되었다는 루트 권한 승인 메시지를 패키지 삭제 및 설치 처리부(44)로 전송하고(S827), 패키지 삭제 및 설치 처리부(44)는 루팅이 완료되었으므로, 사용자가 요청한 작업을 수행하고(S829), 다시 루트 관리부(60)로 루트 권한 반환을 요청한다(S831).When the routing is completed, the root management unit 60 transmits a root authority approval message indicating that the routing is completed to the package deletion and installation processing unit 44 (S827), and the package deletion and installation processing unit 44 completes the routing, so that the user Performs the requested operation (S829), and requests the root authority return to the root management unit 60 again (S831).

루트 관리부(60)는 SU 유틸리티를 종료하여 언루팅 시키고, SU 유틸리티를 삭제한 후(S833), 루트 권한 반환 메시지를 패키지 삭제 및 설치 처리부(44)로 전송한다(S835).The root management unit 60 terminates and unroutes the SU utility, deletes the SU utility (S833), and transmits a root authority return message to the package deletion and installation processing unit 44 (S835).

패키지 삭제 및 설치 처리부(44)는 패키지 인스톨러(30)에게 완료 알림 메시지를 전송하고(S837), 패키지 인스톨러(30)는 삭제 및 설치 관리부(20)에게 완료 알림 메시지를 전송하고(S839), 삭제 및 설치 관리부(20)는 UI 등을 통하여 사용자에게 완료 알림 메시지를 표시한다(S841).The package deletion and installation processing unit 44 transmits a completion notification message to the package installer 30 (S837), and the package installer 30 transmits a completion notification message to the deletion and installation management unit 20 (S839). And the installation management unit 20 displays the completion notification message to the user through the UI (S841).

이와 같은 동작으로 본 발명의 일실시예에 따른 단말기(10)는 프로세스간 통신, 특히 소켓 통신을 이용하여 필요한 경우에 임시적으로 루트 권한을 획득한 후, 사용자가 요청한 작업을 수행 후 루트 권한을 반환함으로써, 사용자로 하여금 루팅을 수행할 수 있도록 할 뿐만 아니라 보안성을 강화시킬 수 있다.In this operation, the terminal 10 according to an embodiment of the present invention temporarily acquires the root authority when necessary by using inter-process communication, in particular, socket communication, and then returns the root authority after performing the operation requested by the user. This not only allows users to perform rooting but also enhances security.

10: 단말기 20: 삭제 및 설치 관리부
30: 패키지 인스톨러 40: 패키지 매니저
50: 설치 DB
10: terminal 20: deletion and installation management unit
30: Package Installer 40: Package Manager
50: installation DB

Claims (19)

어플리케이션의 삭제 또는 설치와 관련된 사용자 인터페이스를 사용자에게 제공하는 삭제 및 설치 관리부;
상기 삭제 및 설치 관리부의 요청에 따라 어플리케이션의 삭제 또는 설치 명령을 처리하는 패키지 인스톨러; 및
상기 패키지 인스톨러의 요청에 따라 어플리케이션의 삭제 또는 설치를 수행하는 패키지 매니저를 포함하고,
상기 삭제 및 설치 관리부는 사용자가 어플리케이션 변경 요청을 하는 경우, 상기 패키지 매니저를 통하여 상기 변경 요청된 어플리케이션을 변경하는데 관리자 권한이 필요한지를 판단하고, 관리자 권한이 필요한 경우 상기 패키지 매니저에게 관리자 권한을 요청하고,
상기 패키지 매니저는 프로세스간 통신을 이용하여 커널 영역의 루트 관리부로부터 관리자 권한을 일시적으로 부여 받는 것을 특징으로 하는 단말기.
A deletion and installation management unit providing a user with a user interface related to the deletion or installation of an application;
A package installer for processing an application for deleting or installing an application at the request of the deletion and installation management unit; And
A package manager for deleting or installing an application according to a request of the package installer,
When the user requests an application change, the deletion and installation management unit determines whether the administrator authority is required to change the requested application through the package manager, and if the administrator authority is required, requests the administrator authority from the package manager. ,
The package manager is characterized in that the administrator is temporarily granted from the root management unit of the kernel region using the inter-process communication.
제1항에 있어서,
상기 관리자 권한은 시스템 파일에 접근 및 상기 시스템 파일을 제어할 수 있으며, 시스템의 동작을 감시 및 제어할 수 있는 권한인 것을 특징으로 하는 단말기.
The method of claim 1,
The administrator authority is a terminal that can access a system file and control the system file, and the authority to monitor and control the operation of the system.
제1항에 있어서,
상기 루트 관리부는 시스템 영역에 슈퍼 유저(Super User) 유틸리티를 설치 및 실행함으로써 상기 패키지 매니저에게 상기 관리자 권한을 부여하는 것을 특징으로 하는 단말기.
The method of claim 1,
And the root management unit grants the administrator authority to the package manager by installing and executing a super user utility in a system area.
제1항에 있어서,
상기 삭제 및 설치 관리부는 상기 관리자 권한을 부여 받은 상태에서 상기 변경 요청된 어플리케이션을 변경한 후, 상기 패키지 매니저에게 상기 관리자 권한의 반환을 요청하고,
상기 패키지 매니저는 상기 프로세스간 통신을 이용하여 커널 영역의 상기 루트 관리자에게 상기 관리자 권한의 반환을 요청하는 것을 특징으로 하는 단말기.
The method of claim 1,
The deletion and installation management unit changes the application for which the change is requested in the state in which the administrator authority has been granted, and requests the package manager to return the administrator authority.
And the package manager requests the root manager of a kernel region to return the administrator authority by using the interprocess communication.
제4항에 있어서,
상기 루트 관리부는 시스템 영역의 슈퍼 유저(Super User) 유틸리티를 종료 및 삭제함으로써 상기 패키지 매니저에게 상기 관리자 권한을 반환하는 것을 특징으로 하는 단말기.
5. The method of claim 4,
And the root manager returns the administrator authority to the package manager by terminating and deleting a super user utility of a system area.
제4항에 있어서,
상기 삭제 및 설치 관리부는,
상기 변경 요청된 어플리케이션을 변경하기 위해 관리자 권한이 필요한지를 판단하는 권한 판단부; 및
상기 변경 요청된 어플리케이션이 변경이 허용되는 어플리케이션인지를 판단하는 변경 허용 판단부를 포함하는 것을 특징으로 하는 단말기.
5. The method of claim 4,
The deletion and installation management unit,
An authority determining unit that determines whether an administrator authority is required to change the application for which the change is requested; And
And a change permission determiner configured to determine whether the change-requested application is an application that is allowed to change.
제6항에 있어서,
상기 삭제 및 설치 관리부는,
사용자 인증을 수행하는 인증부를 더 포함하는 것을 특징으로 하는 단말기.
The method according to claim 6,
The deletion and installation management unit,
The terminal further comprises an authentication unit for performing user authentication.
제4항에 있어서,
상기 패키지 매니저는,
상기 패키지 인스톨러의 요청에 따라 어플리케이션의 삭제 또는 설치를 수행하는 패키지 삭제 및 설치 처리부; 및
어플리케이션의 설치 및 삭제 정보를 관리하는 패키지 정보 관리부를 포함하는 것을 특징으로 하는 단말기.
5. The method of claim 4,
The package manager,
A package deletion and installation processing unit for deleting or installing an application according to a request of the package installer; And
A terminal comprising a package information management unit for managing the installation and deletion information of the application.
제4항에 있어서,
상기 프로세스간 통신은 소켓 통신인 것을 특징으로 하는 단말기.
5. The method of claim 4,
The inter-process communication is a terminal, characterized in that the socket communication.
제9항에 있어서,
상기 패키지 매니저는 상기 소켓 통신을 위하여 API(Application Programming Interface)로 JNI(Java Native Interface)를 이용하는 것을 특징으로 하는 단말기.
10. The method of claim 9,
The package manager is characterized in that for using the JNI (Java Native Interface) as an application programming interface (API) for the socket communication.
삭제 및 설치 관리부를 이용하여 사용자로부터 어플리케이션 변경 요청을 수신하는 단계;
상기 삭제 및 설치 관리부가 상기 변경 요청된 어플리케이션을 변경하는데 관리자 권한이 필요한지를 판단하는 단계;
관리자 권한이 필요한 경우 상기 삭제 및 설치 관리부가 패키지 매니저에게 관리자 권한을 요청하는 단계; 및
상기 패키지 매니저가 프로세스간 통신을 이용하여 커널 영역의 루트 관리부로부터 관리자 권한을 일시적으로 부여 받는 단계를 포함하는 단말기의 임시 관리자 권한 부여 방법.
Receiving an application change request from a user using a deletion and installation manager;
Determining, by the deletion and installation management unit, that an administrator authority is required to change the requested application;
Requesting administrator rights from a package manager by the deletion and installation manager when administrator rights are required; And
And the package manager temporarily granting administrator authority from a root manager of a kernel region using interprocess communication.
제11항에 있어서,
상기 관리자 권한은 시스템 파일에 접근 및 상기 시스템 파일을 제어할 수 있으며, 시스템의 동작을 감시 및 제어할 수 있는 권한인 것을 특징으로 하는 단말기의 임시 관리자 권한 부여 방법.
12. The method of claim 11,
The administrator authority is a authority to access a system file and to control the system file, and the temporary administrator authority grant method of the terminal, characterized in that for monitoring and controlling the operation of the system.
제11항에 있어서,
상기 루트 관리부는 시스템 영역에 슈퍼 유저(Super User) 유틸리티를 설치 및 실행함으로써 상기 패키지 매니저에게 상기 관리자 권한을 부여하는 것을 특징으로 하는 단말기의 임시 관리자 부여 방법.
12. The method of claim 11,
The root management unit grants the administrator authority to the package manager by installing and executing a super user utility in a system area.
제11항에 있어서,
상기 삭제 및 설치 관리부가 상기 관리자 권한을 부여 받은 상태에서 패키지 인스톨러에게 상기 어플리케이션의 변경을 요청하는 단계;
상기 패키지 인스톨러가 상기 패키지 매니저를 통하여 상기 어플리케이션을 변경하는 단계;
상기 삭제 및 설치 관리부가 상기 패키지 매니저에게 상기 관리자 권한의 반환을 요청하는 단계; 및
상기 패키지 매니저가 상기 프로세스간 통신을 이용하여 커널 영역의 상기 루트 관리자에게 상기 관리자 권한의 반환을 요청하는 단계를 포함하는 것을 특징으로 하는 단말기의 임시 관리자 권한 부여 방법.
12. The method of claim 11,
Requesting a package installer to change the application while the deletion and installation manager has been granted the administrator authority;
The package installer changing the application through the package manager;
Requesting the package manager to return the administrator authority to the package manager; And
And requesting, by the package manager, the return of the administrator authority to the root manager of a kernel region by using the interprocess communication.
제14항에 있어서,
상기 루트 관리부는 시스템 영역의 슈퍼 유저(Super User) 유틸리티를 종료 및 삭제함으로써 상기 패키지 매니저에게 상기 관리자 권한을 반환하는 단계를 더 포함하는 것을 특징으로 하는 단말기의 임시 관리자 권한 부여 방법.
15. The method of claim 14,
And the root management unit returns the administrator authority to the package manager by terminating and deleting a super user utility of a system area.
제14항에 있어서,
상기 삭제 및 설치 관리부가 상기 변경 요청된 어플리케이션이 변경이 허용된 어플리케이션인지를 판단하는 단계를 더 포함하는 것을 특징으로 하는 단말기의 임시 관리자 권한 부여 방법.
15. The method of claim 14,
The deletion and installation management unit further comprises the step of determining whether the change-requested application is an application that is allowed to change the temporary administrator authorization method of the terminal.
제14항에 있어서,
상기 삭제 및 설치 관리부가 사용자 인증을 수행하는 단계를 더 포함하는 것을 특징으로 하는 단말기의 임시 관리자 권한 부여 방법.
15. The method of claim 14,
And deleting and installing the management unit to perform user authentication.
제14항에 있어서,
상기 프로세스간 통신을 소켓 통신인 것을 특징으로 하는 단말기의 임시 관리자 권한 부여 방법.
15. The method of claim 14,
And the inter-process communication is socket communication.
제18항에 있어서,
상기 패키지 매니저는 상기 소켓 통신을 위하여 API(Application Programming Interface)로 JNI(Java Native Interface)를 이용하는 것을 특징으로 하는 단말기의 임시 관리자 권한 부여 방법.
19. The method of claim 18,
The package manager is a temporary manager authorization method of the terminal, characterized in that for using the JNI (Java Native Interface) as the Application Programming Interface (API) for the socket communication.
KR1020120019100A 2012-02-24 2012-02-24 Terminal having temporary root authority granting function and root authority granting method using the same KR101308859B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120019100A KR101308859B1 (en) 2012-02-24 2012-02-24 Terminal having temporary root authority granting function and root authority granting method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120019100A KR101308859B1 (en) 2012-02-24 2012-02-24 Terminal having temporary root authority granting function and root authority granting method using the same

Publications (1)

Publication Number Publication Date
KR101308859B1 true KR101308859B1 (en) 2013-09-16

Family

ID=49456191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120019100A KR101308859B1 (en) 2012-02-24 2012-02-24 Terminal having temporary root authority granting function and root authority granting method using the same

Country Status (1)

Country Link
KR (1) KR101308859B1 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101627078B1 (en) * 2016-01-05 2016-06-03 에스지앤 주식회사 Apparatus and method for managing password
EP3251005A4 (en) * 2015-01-28 2018-02-07 Ricoh Company, Ltd. Image processing device and electronic whiteboard
GB2563066A (en) * 2017-06-02 2018-12-05 Avecto Ltd Computer device and method for managing privilege delegation
US10963557B2 (en) 2017-09-08 2021-03-30 Avecto Limited Computer device and method for controlling process components
US10963237B2 (en) 2017-09-01 2021-03-30 Avecto Limited Managing installation of applications on a computing device
US10983845B2 (en) 2018-09-12 2021-04-20 Avecto Limited Controlling applications by an application control system in a computer device
CN112799739A (en) * 2021-02-04 2021-05-14 福州汇思博信息技术有限公司 Application protection method and terminal
US11062055B2 (en) 2017-09-27 2021-07-13 Avecto Limited Computer device and method for managing privilege delegation
US11270013B2 (en) 2018-02-08 2022-03-08 Avecto Limited Managing privilege delegation on a computer device
US11301228B2 (en) 2017-11-30 2022-04-12 Avecto Limited Managing removal and modification of installed programs on a computer device
US11321455B2 (en) 2018-04-18 2022-05-03 Avecto Limited Protecting a computer device from escalation of privilege attacks
US11366931B2 (en) 2018-02-12 2022-06-21 Avecto Limited Managing registry access on a computer device
US11379622B2 (en) 2018-01-31 2022-07-05 Avecto Limited Managing privilege delegation on a server device
WO2024025112A1 (en) * 2022-07-27 2024-02-01 삼성전자 주식회사 Electronic device for managing data and data management method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050008486A (en) * 2003-07-15 2005-01-21 김용규 method of administering access to database
JP2005092649A (en) * 2003-09-18 2005-04-07 Ricoh Co Ltd Digital data installation system, digital data installation method, program, and recording medium with program recorded thereon
KR20100027558A (en) * 2008-09-02 2010-03-11 주식회사 신한은행 System and method using website by permission control and recording medium
KR101068768B1 (en) 2011-06-28 2011-09-30 에스지에이 주식회사 A secure-kernel access control method by approving kernel jobs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050008486A (en) * 2003-07-15 2005-01-21 김용규 method of administering access to database
JP2005092649A (en) * 2003-09-18 2005-04-07 Ricoh Co Ltd Digital data installation system, digital data installation method, program, and recording medium with program recorded thereon
KR20100027558A (en) * 2008-09-02 2010-03-11 주식회사 신한은행 System and method using website by permission control and recording medium
KR101068768B1 (en) 2011-06-28 2011-09-30 에스지에이 주식회사 A secure-kernel access control method by approving kernel jobs

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3251005A4 (en) * 2015-01-28 2018-02-07 Ricoh Company, Ltd. Image processing device and electronic whiteboard
US10649754B2 (en) 2015-01-28 2020-05-12 Ricoh Company, Ltd. Image processing device and electronic whiteboard
KR101627078B1 (en) * 2016-01-05 2016-06-03 에스지앤 주식회사 Apparatus and method for managing password
GB2563066A (en) * 2017-06-02 2018-12-05 Avecto Ltd Computer device and method for managing privilege delegation
GB2563066B (en) * 2017-06-02 2019-11-06 Avecto Ltd Computer device and method for managing privilege delegation
US11151286B2 (en) 2017-06-02 2021-10-19 Avecto Limited Computer device and method for managing privilege delegation
US11604634B2 (en) 2017-09-01 2023-03-14 Avecto Limited Managing installation of applications on a computing device
US10963237B2 (en) 2017-09-01 2021-03-30 Avecto Limited Managing installation of applications on a computing device
US11868753B2 (en) 2017-09-01 2024-01-09 Avecto Limited Managing installation of applications on a computing device
US11226802B2 (en) 2017-09-01 2022-01-18 Avecto Limited Managing installation of applications on a computing device
US10963557B2 (en) 2017-09-08 2021-03-30 Avecto Limited Computer device and method for controlling process components
US11797664B2 (en) 2017-09-08 2023-10-24 Avecto Limited Computer device and method for controlling process components
US11687674B2 (en) 2017-09-27 2023-06-27 Avecto Limited Computer device and method for managing privilege delegation
US11062055B2 (en) 2017-09-27 2021-07-13 Avecto Limited Computer device and method for managing privilege delegation
US11301228B2 (en) 2017-11-30 2022-04-12 Avecto Limited Managing removal and modification of installed programs on a computer device
US11379622B2 (en) 2018-01-31 2022-07-05 Avecto Limited Managing privilege delegation on a server device
US11270013B2 (en) 2018-02-08 2022-03-08 Avecto Limited Managing privilege delegation on a computer device
US11797704B2 (en) 2018-02-08 2023-10-24 Avecto Limited Managing privilege delegation on a computer device
US11366931B2 (en) 2018-02-12 2022-06-21 Avecto Limited Managing registry access on a computer device
US11720712B2 (en) 2018-02-12 2023-08-08 Avecto Limited Managing registry access on a computer device
US11321455B2 (en) 2018-04-18 2022-05-03 Avecto Limited Protecting a computer device from escalation of privilege attacks
US10983845B2 (en) 2018-09-12 2021-04-20 Avecto Limited Controlling applications by an application control system in a computer device
CN112799739A (en) * 2021-02-04 2021-05-14 福州汇思博信息技术有限公司 Application protection method and terminal
WO2024025112A1 (en) * 2022-07-27 2024-02-01 삼성전자 주식회사 Electronic device for managing data and data management method

Similar Documents

Publication Publication Date Title
KR101308859B1 (en) Terminal having temporary root authority granting function and root authority granting method using the same
EP3130110B1 (en) Device policy manager
US20180307860A1 (en) Managing configurations of computing terminals
US9165139B2 (en) System and method for creating secure applications
EP2783321B1 (en) File system access for one or more sandboxed applications
US11893123B2 (en) Systems and methods for screenshot mediation based on policy
US11100227B2 (en) Security indication information configuration method and device
US9888009B2 (en) Security bypass environment for circumventing a security application in a computing environment
US11797704B2 (en) Managing privilege delegation on a computer device
US11797664B2 (en) Computer device and method for controlling process components
US11720712B2 (en) Managing registry access on a computer device
US11017081B2 (en) Blocking routine redirection
WO2017016231A1 (en) Policy management method, system and computer storage medium
KR20210068444A (en) Techniques for controlling the installation of unauthorized drivers on computer systems
KR101391508B1 (en) Terminal and method for protecting stored file

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
FPAY Annual fee payment

Payment date: 20160901

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee