KR102333425B1 - Method and apparatus to sandbox run-time android applications with lightweight container - Google Patents

Method and apparatus to sandbox run-time android applications with lightweight container Download PDF

Info

Publication number
KR102333425B1
KR102333425B1 KR1020150022688A KR20150022688A KR102333425B1 KR 102333425 B1 KR102333425 B1 KR 102333425B1 KR 1020150022688 A KR1020150022688 A KR 1020150022688A KR 20150022688 A KR20150022688 A KR 20150022688A KR 102333425 B1 KR102333425 B1 KR 102333425B1
Authority
KR
South Korea
Prior art keywords
target application
category
application
electronic device
processor
Prior art date
Application number
KR1020150022688A
Other languages
Korean (ko)
Other versions
KR20150099440A (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
Priority claimed from US14/555,950 external-priority patent/US10181028B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to CN201580009796.XA priority Critical patent/CN106030601B/en
Priority to EP15752239.2A priority patent/EP3108398B1/en
Priority to PCT/KR2015/001586 priority patent/WO2015126133A1/en
Publication of KR20150099440A publication Critical patent/KR20150099440A/en
Application granted granted Critical
Publication of KR102333425B1 publication Critical patent/KR102333425B1/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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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/445Program loading or initiating
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications

Abstract

애플리케이션 컨테이너를 생성하는 방법 및 장치가 제공된다. 상기 방법은 전자 장치에 포함된 다수의 애플리케이션들 중에서 타깃 애플리케이션을 선택하는 단계; 상기 타깃 애플리케이션과 대응하는 정책 파일을 획득하는 단계; 상기 정책 파일이 상기 타깃 애플리케이션의 카테고리를 포함하는지 여부를 판단하는 단계; 및 상기 타깃 애플리케이션을 포함하는 상기 애플리케이션 컨테이너를 실행하는 단계를 포함한다.A method and apparatus for creating an application container are provided. The method includes: selecting a target application from among a plurality of applications included in the electronic device; obtaining a policy file corresponding to the target application; determining whether the policy file includes a category of the target application; and executing the application container containing the target application.

Figure R1020150022688
Figure R1020150022688

Description

런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 방법 및 장치{METHOD AND APPARATUS TO SANDBOX RUN-TIME ANDROID APPLICATIONS WITH LIGHTWEIGHT CONTAINER}METHOD AND APPARATUS TO SANDBOX RUN-TIME ANDROID APPLICATIONS WITH LIGHTWEIGHT CONTAINER

본 개시는 런타임(run-time) 시의 안드로이드 애플리케이션들을 경량 컨테이너(lightweight container)로 샌드박싱(sandboxing)하는 장치 및 방법에 관한 것이다. 구체적으로, 본 개시는 런타임 시점에 적어도 하나의 안드로이드 애플리케이션을 샌드박스의 그룹으로 분류하는 장치 및 방법에 관한 것이다.The present disclosure relates to an apparatus and method for sandboxing Android applications at run-time into a lightweight container. Specifically, the present disclosure relates to an apparatus and method for classifying at least one Android application into a group of sandboxes at runtime.

사용자들 간에 무선 통신을 제공하는 이동 단말기들이 개발되어 있다. 기술의 진보에 따라, 무선 단말기들은 이제 단순한 전화 통화를 벗어나 많은 부가의 사양들을 제공하고 있다. 예컨대, 이동 단말기들은 이제 알람, 단문 메시지 서비스(short messaging service; SMS), 멀티미디어 메시지 서비스(multimedia message service; MMS), E-메일, 게임, 근거리 통신의 원격 제어, 탑재된 디지털 카메라를 사용한 이미지 캡처링 기능, 오디오 및 비디오 콘텐츠 제공을 위한 멀티미디어 기능, 스케줄링 기능, 및 기타 유사한 기능들과 같은 부가 기능들을 제공하고 있다.Mobile terminals have been developed that provide wireless communication between users. With the advancement of technology, wireless terminals are now providing many additional features beyond simple phone calls. For example, mobile terminals now have alarms, short messaging service (SMS), multimedia message service (MMS), remote control of E-mail, games, short-range communication, image capture using an onboard digital camera. It provides additional functions such as a ring function, a multimedia function for providing audio and video content, a scheduling function, and other similar functions.

또한, 이동 단말기들은 전술한 기능들을 제공할 수 있거나 또는 이동 단말기들 상의 다른 기능들 또는 동작들 중 적어도 하나를 제공할 수 있는 애플리케이션들을 실행할 수 있다. 예컨대, 그러한 애플리케이션들은 음악 재생 애플리케이션, 비디오 재생 애플리케이션, 포토 갤러리 애플리케이션, 게임 애플리케이션, 소셜 네트워킹 애플리케이션, 인터넷 브라우징 애플리케이션, 파일 관리 애플리케이션, 클라우드 서비스 애플리케이션, 및 임의의 다른 유사거나 적절한 애플리케이션들, 기능들, 또는 동작들 중 적어도 하나를 포함할 수 있다. 그러나 이동 단말기의 운영 체제(operating system; OS), 예컨대 안드로이드 OS 또는 임의의 다른 유사하거나 적절한 OS 중 적어도 하나의 사용자는 애플리케이션들을 샌드박스(sandbox)에 포함되는 그룹으로 분류하여 실행 시에 또는 다른 말로 런타임 하는 경우에 샌드박스 내의 애플리케이션들과 그 애플리케이션들에 대한 각각의 애플리케이션 데이터 및 코드 실행이 이동 단말기의 나머지 것들과 분리되도록 할 수 있다. 이에 따라, 샌드박스 내의 애플리케이션들이 샌드박스에 포함된 다른 애플리케이션들과만 공유되도록 할 수 있다. 그러나 샌드박스는 샌드박스에 포함된 애플리케이션들과 샌드박스로부터 제외된 애플리케이션들 간의 적절한 분리를 제공하지 못할 수 있다.In addition, mobile terminals may provide the functions described above or may run applications that may provide at least one of other functions or operations on the mobile terminals. For example, such applications may include a music playback application, a video playback application, a photo gallery application, a gaming application, a social networking application, an internet browsing application, a file management application, a cloud service application, and any other similar or suitable applications, functions, or It may include at least one of the operations. However, the user of at least one of the mobile terminal's operating system (OS), such as the Android OS or any other similar or suitable OS, classifies the applications into groups included in a sandbox, either at runtime or in other words. At runtime, it is possible to ensure that the applications in the sandbox and the respective application data and code execution for those applications are separated from the rest of the mobile terminal. Accordingly, applications in the sandbox can be shared only with other applications included in the sandbox. However, sandboxes may not provide adequate separation between applications included in the sandbox and applications excluded from the sandbox.

전술한 정보는 단지 본 개시의 이해를 돕기 위한 배경 정보로서 제시된 것에 지나지 않는다. 전술한 사항 중의 어느 것이 본 개시에 대한 선행 기술로서 적용될 수 있는지 여부에 관해 그 어떤 판단도 내린 바가 없고, 그 어떤 주장도 한 바가 없다.The above-described information is merely presented as background information to help the understanding of the present disclosure. No judgment has been made, and no claim has been made as to whether any of the foregoing can be applied as prior art to the present disclosure.

본 개시의 양태들은 적어도 전술한 문제점들 및/또는 단점들을 해결하고, 적어도 후술하는 이점들을 제공하려는 것이다. 따라서 본 개시의 일 양태는 애플리케이션 컨테이너를 생성하는 장치 및 방법을 제공하는 것이다.Aspects of the present disclosure are intended to solve at least the problems and/or disadvantages described above, and to provide at least the advantages described below. Accordingly, one aspect of the present disclosure is to provide an apparatus and method for creating an application container.

본 개시의 일 양태에 따라, 애플리케이션 컨테이너를 생성하는 방법이 제공된다. 본 방법은 전자 장치에 포함된 다수의 애플리케이션들 중에서 타깃 애플리케이션을 선택하는 단계; 타깃 애플리케이션과 대응하는 정책 파일을 획득하는 단계; 정책 파일이 타깃 애플리케이션의 카테고리를 포함하는지 여부를 판단하는 단계; 및 타깃 애플리케이션을 포함하는 애플리케이션 컨테이너를 실행하는 단계를 포함한다.According to an aspect of the present disclosure, a method of creating an application container is provided. The method includes selecting a target application from among a plurality of applications included in the electronic device; obtaining a policy file corresponding to the target application; determining whether the policy file includes a category of the target application; and running an application container containing the target application.

본 개시의 다른 양태에 따라, 애플리케이션 컨테이너를 생성하는 전자 장치가 제공된다. 본 장치는 전자 장치에 포함된 적어도 하나의 애플리케이션을 표시하도록 구성된 표시부; 및 전자 장치에 포함된 적어도 하나의 애플리케이션 중에서 타깃 애플리케이션을 선택하고, 타깃 애플리케이션과 대응하는 정책 파일을 획득하며, 정책 파일이 타깃 애플리케이션의 카테고리를 포함하는지 여부를 판단하고, 타깃 애플리케이션을 포함하는 애플리케이션 컨테이너를 실행하도록 구성된 프로세서를 포함한다.According to another aspect of the present disclosure, an electronic device for generating an application container is provided. The device includes: a display configured to display at least one application included in the electronic device; and selecting a target application from among at least one application included in the electronic device, acquiring a policy file corresponding to the target application, determining whether the policy file includes a category of the target application, and an application container including the target application A processor configured to execute

첨부 도면들과 관련하여 이뤄져 본 개시의 다양한 실시예들을 개시하는 이후의 상세한 설명으로부터 본 개시의 다른 양태들, 이점들, 및 현격한 특징들이 당업자에게 명백해질 것이다.Other aspects, advantages, and outstanding features of the present disclosure will become apparent to those skilled in the art from the following detailed description taken in conjunction with the accompanying drawings and disclosing various embodiments of the present disclosure.

첨부 도면들과 관련하여 이뤄지는 이후의 설명으로부터 본 개시의 전술한 및 기타의 양태들, 특징들, 및 이점들이 더욱 분명해질 것이다. 첨부 도면들 중에서,
도 1은 본 개시의 다양한 실시예들에 따른 전자 장치를 포함하는 네트워크 환경을 나타낸 도면;
도 2는 본 개시의 다양한 실시예들에 따른 PerAppContainer의 실행을 위한 구조를 나타낸 도면;
도 3은 본 개시의 다양한 실시예들에 따른 PerAppContainer의 실행 방법을 나타낸 도면; 및
도 4는 본 개시의 다양한 실시예들에 따른 하드웨어를 나타낸 블록도.
The foregoing and other aspects, features, and advantages of the present disclosure will become more apparent from the following description taken in conjunction with the accompanying drawings. Among the accompanying drawings,
1 is a diagram illustrating a network environment including an electronic device according to various embodiments of the present disclosure;
2 is a diagram illustrating a structure for execution of a PerAppContainer according to various embodiments of the present disclosure;
3 is a diagram illustrating a method of executing PerAppContainer according to various embodiments of the present disclosure; and
4 is a block diagram illustrating hardware according to various embodiments of the present disclosure;

첨부 도면들을 참조하여 본 개시의 다양한 양태들을 상세히 설명하기로 한다. 그러한 설명은 단지 예로 보이는 것으로, 본 개시의 범위를 한정하려는 것이 아니다.Various aspects of the present disclosure will be described in detail with reference to the accompanying drawings. Such description is by way of example only and is not intended to limit the scope of the present disclosure.

첨부 도면들을 참조로 한 상세한 설명은 특허 청구 범위 및 그 균등물들로 정의되는 본 개시의 다양한 실시예들의 포괄적인 이해를 돕기 위해 제공되는 것이다. 그 상세한 설명은 그러한 이해를 돕는 여러 특정의 명세들을 포함하지만, 그 명세들은 단지 예시적인 것으로만 보아야 한다. 따라서 당업자라면 본 개시의 범위 및 사상을 벗어남이 없이 본 명세서에서 설명하는 실시예들의 다양한 변경들 및 수정들이 이뤄질 수 있다는 것을 인지할 것이다. 또한, 간단 명료하게 하기 위해, 공지의 기능들 및 구성들의 설명을 생략하기로 한다.The detailed description with reference to the accompanying drawings is provided to provide a comprehensive understanding of various embodiments of the present disclosure as defined by the claims and their equivalents. The detailed description includes several specific specifications that aid such understanding, but the specifications are to be regarded as illustrative only. Accordingly, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. In addition, for simplicity and clarity, descriptions of well-known functions and configurations will be omitted.

이후의 설명 및 특허 청구 범위에서 사용되는 용어들 및 단어들은 서지적 의미에 한정되는 것이 아니라, 단지 본 개시의 명료하고도 일관된 이해를 가능하게 하기 위해 본 발명자가 사용하고 있는 것에 지나지 않는다. 따라서 본 개시의 다양한 실시예들에 관한 이후의 설명은 오직 예시의 목적으로만 제공되는 것이지, 첨부된 특허 청구 범위 및 그 균등물로 정의되는 본 개시를 한정하려고 제공되는 것이 아님이 당업자에게 명백할 것이다.The terms and words used in the following description and claims are not limited to the bibliographical meaning, but are merely used by the present inventors to enable a clear and consistent understanding of the present disclosure. Accordingly, it will be apparent to those skilled in the art that the following description of various embodiments of the present disclosure is provided for purposes of illustration only, and not to limit the present disclosure, which is defined by the appended claims and their equivalents. will be.

단수 형태들인 "a", "an", 및 "the"는 문맥상 명백히 달리 지시하지 않는 한 복수의 지시 대상들을 포함하는 것임을 알아야 할 것이다. 따라서 예컨대 "부품 표면"이라고 언급하는 것은 그러한 표면들 중의 하나 이상을 언급하는 것을 포함하고 있다.It should be understood that the singular forms "a", "an", and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to "a component surface" includes reference to one or more of such surfaces.

"거의(substantially)"라는 용어는 기술된 특징, 파라미터, 또는 값이 정확히 달성되어야 할 필요가 있는 것이 아니라, 예컨대 허용 오차, 측정 오차, 측정 정확도 한계, 및 당업자에게 공지된 기타의 인자들을 비롯한 편차들이나 변동들이 해당 특징이 제공하려고 하였던 효과를 배제하지 않는 양으로 일어날 수 있다는 것을 의미한다.The term “substantially” does not mean that the described feature, parameter, or value needs to be precisely achieved, but rather a deviation including, for example, tolerances, measurement errors, limits of measurement accuracy, and other factors known to those skilled in the art. This means that changes or variations can occur in an amount that does not exclude the effect that the characteristic is intended to provide.

본 개시에 사용되는 용어들은 본 개시의 다양한 실시예들을 설명하는데 사용되는 것이지, 본 개시를 한정하려는 하는 것이 아니다. 단수 형태들은 문맥상 복수 형태들을 의도한 것이 아님을 명백히 하지 않는 한 복수 형태들을 포함하는 것으로 의도된 것이다.Terms used in the present disclosure are used to describe various embodiments of the present disclosure, and are not intended to limit the present disclosure. The singular forms are intended to include the plural forms unless the context clearly indicates that the plural forms are not intended.

달리 정의하지 않는 한, 기술적 또는 과학적 용어들을 비롯한 본 개시에서 사용되는 모든 용어들은 당해 기술 분야의 통상의 지식을 가진 자가 일반적으로 이해하고 있는 의미를 갖는다. 사전에 정의되어 있을 수 있는 통상의 용어들은 그 문맥과 모순되지 않는 의미를 갖는 것으로 이해되어야 하고, 본 개시에서 명백히 달리 정의하지 않는 한 과장되게 이상적이거나 형식에 구애되는 것으로 해석되어서는 안 된다.Unless defined otherwise, all terms used in this disclosure, including technical or scientific terms, have the meaning commonly understood by one of ordinary skill in the art. Common terms that may be defined in the dictionary should be understood to have meanings that are not inconsistent with their context, and should not be construed as exaggeratedly idealistic or limited in form unless explicitly defined otherwise in the present disclosure.

본 개시의 다양한 실시예들에 따르면, 전자 장치는 통신 기능을 포함할 수 있다. 예컨대, 전자 장치는 스마트폰, 태블릿 PC(Personal Computer), 이동 전화, 화상 전화, 전자책(e-book) 리더, 데스크톱 PC, 랩톱 PC, 넷북 PC, 개인 디지털 보조 장비(PDA), 휴대용 멀티미디어 플레이어(PMP), MPEG(Moving Picture Expert Group) 오디오 레이어 3(MP3) 플레이어, 이동 의료 기기, 카메라, 웨어러블 장치(예컨대, 헤드 마운트 장치(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 액세서리, 전자 문신, 또는 스마트 워치) 등일 수 있다.According to various embodiments of the present disclosure, an electronic device may include a communication function. For example, the electronic device includes a smart phone, a tablet PC (Personal Computer), a mobile phone, a video phone, an e-book reader, a desktop PC, a laptop PC, a netbook PC, a personal digital assistant (PDA), a portable multimedia player (PMP), MPEG (Moving Picture Expert Group) audio layer 3 (MP3) players, mobile medical devices, cameras, wearable devices (eg, head mounted devices (HMDs), electronic garments, electronic bracelets, electronic necklaces, electronic accessories, electronic tattoo, or smart watch).

본 개시의 다양한 실시예들에 따르면, 전자 장치는 통신 기능을 갖춘 스마트 가전 제품일 수 있다. 스마트 가전 제품은 예컨대 텔레비전, DVD(Digital Video Disk) 플레이어, 오디오 장치, 냉장고, 에어컨, 진공 청소기, 오븐, 전자레인지, 세탁기, 건조기, 공기 청정기, 셋톱박스, TV 박스(예컨대, Samsung HomeSyncTM, Apple TVTM, 또는 Google TVTM), 게임 콘솔, 전자 사전, 전자 키, 캠코더, 전자 사진 앨범 등일 수 있다.According to various embodiments of the present disclosure, the electronic device may be a smart home appliance having a communication function. Smart home appliances include, for example, televisions, DVD (Digital Video Disk) players, audio devices, refrigerators, air conditioners, vacuum cleaners, ovens, microwaves, washing machines, dryers, air purifiers, set-top boxes, TV boxes (eg, Samsung HomeSync™, Apple TV™). , or Google TV™), a game console, an electronic dictionary, an electronic key, a camcorder, an electronic photo album, or the like.

본 개시의 다양한 실시예들에 따르면, 전자 장치는 의료 기기(예컨대, MRA(Magnetic Resonance Angiography) 장치, MRI (Magnetic Resonance Imaging) 장치, CT(Computed Tomography) 장치, 촬상 장치, 또는 초음파 장치), 내비게이션 장치, GPS(Global Positioning System) 수신기, EDR(Event Data Recorder), FDR(Flight Data Recorder), 자동차 인포테인먼트 장치, 선박 전자 장치(예컨대, 선박 항해 장치, 자이로스코프, 또는 나침반), 항공 전자 장치, 보안 장치, 산업용 또는 가정용 로봇 등일 수 있다.According to various embodiments of the present disclosure, an electronic device may include a medical device (eg, a Magnetic Resonance Angiography (MRA) device, a Magnetic Resonance Imaging (MRI) device, a Computed Tomography (CT) device, an imaging device, or an ultrasound device), a navigation device, and a navigation device. Device, Global Positioning System (GPS) receiver, EDR (Event Data Recorder), FDR (Flight Data Recorder), automotive infotainment device, ship electronic device (eg, ship navigation device, gyroscope, or compass), avionics device, security devices, industrial or domestic robots, and the like.

본 개시의 다양한 실시예들에 따르면, 전자 장치는 통신 기능을 포함하는 가구, 빌딩/구조물의 일부, 전자 게시판, 전자 사명 수신 장치, 프로젝터, 다양한 계측 장치들(예컨대, 수도 계량기, 전기 계량기, 가스 계량기, 또는 전자파 계측 장치) 등일 수 있다.According to various embodiments of the present disclosure, an electronic device includes furniture including a communication function, a part of a building/structure, an electronic bulletin board, an electronic mission receiving device, a projector, and various measuring devices (eg, a water meter, an electricity meter, a gas meter, or an electromagnetic wave measuring device).

본 개시의 다양한 실시예들에 따르면, 전자 장치는 전술한 장치들의 임의의 조합일 수 있다. 또한, 본 개시의 다양한 실시예들에 따른 전자 장치는 전술한 장치들에 한정되는 것이 아님이 당업자에게 명백할 것이다.According to various embodiments of the present disclosure, the electronic device may be any combination of the aforementioned devices. In addition, it will be apparent to those skilled in the art that the electronic device according to various embodiments of the present disclosure is not limited to the above-described devices.

본 개시의 다양한 실시예들은 런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 장치 및 방법을 포함한다.Various embodiments of the present disclosure include an apparatus and method for sandboxing Android applications at runtime into a lightweight container.

예컨대, 이동 단말기의 사용자가 안드로이드 애플리케이션으로도 지칭할 수 있는 적어도 하나의 애플리케이션을 런타임 시점에 샌드박스(sandbox) 내에 있는 그룹으로 분류하여 샌드박스에 포함된 그 적어도 하나의 애플리케이션과 대응하는 애플리케이션 데이터 및 코드 실행이 샌드박스에 포함되지 않은 전자 장치의 애플리케이션들 중의 적어도 하나 및 그러한 애플리케이션들 또는 요소들 중 적어도 하나에 대응하는 애플리케이션 데이터 및 코드 실행으로부터 분리되도록 할 필요가 있는 경우가 있을 수 있다.For example, the user of the mobile terminal classifies at least one application, which may also be referred to as an Android application, into a group in a sandbox at runtime, and includes application data corresponding to the at least one application included in the sandbox and There may be instances where it may be necessary to ensure that code execution is separated from code execution and at least one of the applications of the electronic device not included in the sandbox and application data corresponding to at least one of those applications or elements.

더욱 상세히, 사용자가 런타임 시점에 워드 프로세싱 애플리케이션 및 스프레드시트(spreadsheet) 애플리케이션과 같은 적어도 하나의 오피스 애플리케이션을 그룹핑할 필요가 있을 수 있다. 그룹핑된 애플리케이션들에 의해 생성되는 데이터, 소켓 등의 자원들은 그룹핑된 애플리케이션들과만 공유될 수 있으며, 그룹핑된 애플리케이션에 속하지 않는 애플리케이션들과 공유되지 않을 수 있다. 그룹핑된 애플리케이션들의 컴포넌트들은 해당 그룹핑된 애플리케이션들에 포함되지 않는 어떠한 애플리케이션에 의해서도 시동(launch)될 수 없다. 예컨대, 사용자가 본인과 대응하는 은행 계좌를 감시 및 유지하는 애플리케이션 및 신용 계좌와 대응하는 애플리케이션과 같은 적어도 하나의 뱅킹(banking) 애플리케이션을 그룹핑하여 적어도 하나의 뱅킹 애플리케이션에 포함된 애플리케이션들과 적어도 하나의 뱅킹 애플리케이션의 그룹으로부터 제외된 애플리케이션들 간에 어떠한 컴포넌트 레벨의 통신도 차단되도록 적어도 하나의 뱅킹 애플리케이션의 그룹이 사용하는 자원들에 다른 애플리케이션이 액세스하지 못하게 하고, 그에 따라 그 그룹이 샌드박스인 것으로 간주되도록 할 수 있다. 다른 말로, 적어도 하나의 뱅킹 애플리케이션의 그룹에 포함된 애플리케이션들이 적어도 하나의 뱅킹 애플리케이션의 그룹으로부터 제외된 애플리케이션들과 컴포넌트 레벨에서 통신하는 것이 차단된다.More specifically, a user may need to group at least one office application at runtime, such as a word processing application and a spreadsheet application. Resources such as data and sockets generated by the grouped applications may be shared only with the grouped applications, and may not be shared with applications that do not belong to the grouped application. Components of grouped applications cannot be launched by any application that is not included in the grouped applications. For example, by grouping at least one banking application, such as an application for monitoring and maintaining a bank account corresponding to the user, and an application corresponding to a credit account, the user groups the applications included in the at least one banking application and at least one prevent other applications from accessing the resources used by the group of at least one banking application, such that any component level communication is blocked between applications excluded from the group of banking applications, and thus the group is considered to be sandboxed; can do. In other words, applications included in the group of at least one banking application are blocked from communicating at the component level with applications excluded from the group of at least one banking application.

그러나 애플리케이션들이 샌드박스에 포함되도록 그 애플리케이션들의 그룹을 샌드박싱하는 선행 기술 방법들은 안전한 환경을 제공하지 못할 수 있고, 샌드박스에 포함된 애플리케이션들과 샌드박스로부터 제외된 애플리케이션들 간의 강력한 분리를 제공하지 못할 수 있다. 또한, 안드로이드용 보안 강화(Security Enhancements for Android; SEAndroid)의 선행 기술의 버전은 다수의 안드로이드 애플리케이션들을 샌드박스로도 지칭할 수 있는 샌드박스 그룹으로 분류하여 그 애플리케이션들이 샌드박스 그룹에 속하지 않는 애플리케이션들에 의해 시동될 수 없도록 하며, 또한 그 역(逆)으로 될 수 없도록 하는 커널(kernel) 및 미들웨어 필수 액세스-제어(Middleware Mandatory Access-Control; MMAC) 메커니즘을 제공한다. SEAndroid 정책(SEPolicy)에 의해 데이터 분리 및 보호가 지원된다. 그러나 SEAndroid의 선행 기술 버전에 따른 샌드박스는 구축 시점 또는 SE 리눅스(SELinux) 정책 업데이트 시점 중 적어도 하나의 시점에 사전 설정되어야 하고, SEAndroid의 선행 기술 버전은 런타임 시점에 샌드박스를 형성하도록 애플리케이션들을 그룹으로 분류하는 것을 지원하지 않는다. 부가적으로, SEAndroid의 선행 기술 버전에 따르면, 그룹핑된 애플리케이션들이 가상 머신(virtual machine)에서 동작(run) 또는 실행(execute)될 수 있기는 하지만, 이동 단말기에서 다수의 가상 머신들을 실행하는 것은 성능 문제로 인해 곤란할 수 있다. 또한, 런타임 동안 가상 머신들을 온 디맨드(on-demand) 방식으로 시동하는 것이 어려울 수 있다.However, prior art methods of sandboxing a group of applications for inclusion in the sandbox may not provide a secure environment and do not provide a strong separation between applications included in the sandbox and applications excluded from the sandbox. may not be In addition, the prior art version of Security Enhancements for Android (SEAndroid) classifies a number of Android applications into a sandbox group, which can also be referred to as a sandbox, so that the applications do not belong to the sandbox group. Provides a kernel and middleware Mandatory Access-Control (MMAC) mechanism that prevents it from being started by . Data segregation and protection are supported by SEAndroid policy (SEPolicy). However, the sandbox according to the prior art version of SEAndroid must be preset at least one of the time of construction or the time of updating the SE Linux (SELinux) policy, and the prior art version of SEAndroid groups applications to form a sandbox at runtime. classification is not supported. Additionally, according to the prior art version of SEAndroid, although grouped applications can be run or executed in a virtual machine, running multiple virtual machines in a mobile terminal is not Problems can be troublesome. Also, it can be difficult to start up virtual machines on-demand during runtime.

도 1은 본 개시의 다양한 실시예들에 따른 전자 장치를 포함하는 네트워크 환경을 도시하고 있다.1 illustrates a network environment including an electronic device according to various embodiments of the present disclosure.

도 1을 참조하면, 네트워크 환경(100)은 전자 장치(101)를 포함한다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력(I/O) 인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 샌드박스 모듈(170) 등을 포함할 수 있다. 그러나 본 개시는 그에 한정되는 것이 아니고, 샌드박스 모듈(170)은 프로세서(120)와 같은 전자 장치(101)의 다른 요소들 및/또는 샌드박스 모듈(170)이 포함될 수 있는 임의의 다른 유사한 및/또는 적절한 요소에 포함될 수도 있다.Referring to FIG. 1 , a network environment 100 includes an electronic device 101 . The electronic device 101 includes a bus 110 , a processor 120 , a memory 130 , an input/output (I/O) interface 140 , a display 150 , a communication interface 160 , a sandbox module 170 , and the like. may include However, the present disclosure is not limited thereto, and the sandbox module 170 includes other elements of the electronic device 101 , such as the processor 120 , and/or any other similar and/or sandbox module 170 that may be included. / or may be included in the appropriate element.

버스(110)는 회로를 포함한 하드웨어 장치일 수 있고, 전술한 구성 요소들을 연결할 수 있으며, 전술한 구성 요소들 간의 통신을 가능하게 할 수 있다. 예컨대, 버스(110)는 전자 장치(101)의 구성 요소들을 연결하여 연결된 구성 요소들 간에 전달될 제어 메시지들 및/또는 기타의 정보를 전송 및/또는 수신하게 할 수 있다.The bus 110 may be a hardware device including a circuit, may connect the aforementioned components, and may enable communication between the aforementioned components. For example, the bus 110 may connect components of the electronic device 101 to transmit and/or receive control messages and/or other information to be transmitted between the connected components.

프로세서(120)는 예컨대 다른 구성 요소들, 예를 들어 메모리(130), I/O 인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 샌드박스 모듈(170) 등으로부터 명령을 수신하고, 수신된 명령을 해석하며, 해석된 명령에 따라 계산 및/또는 데이터 처리를 실행할 수 있다.The processor 120 receives commands from, for example, other components, such as the memory 130 , the I/O interface 140 , the display 150 , the communication interface 160 , the sandbox module 170 , and the like. , interprets the received command, and may perform calculations and/or data processing according to the interpreted command.

메모리(130)는 예컨대 다른 구성 요소들, 예를 들어 프로세서(120), I/O 인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 샌드박스 모듈(170) 등으로부터 수신된 및/또는 등에 의해 생성된 명령 및/또는 데이터를 저장할 수 있다. 예컨대, 메모리(130)는 커널(131), 미들웨어(132), 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API)(133), 애플리케이션(134) 등의 프로그래밍 모듈들을 포함할 수 있다. 전술한 프로그래밍 모듈들은 각각 소프트웨어, 펌웨어, 및 하드웨어 중의 적어도 2개의 조합을 포함할 수 있다.Memory 130 may be, for example, received from and/or from other components such as processor 120 , I/O interface 140 , display 150 , communication interface 160 , sandbox module 170 , etc. or may store commands and/or data generated by or the like. For example, the memory 130 may include programming modules such as a kernel 131 , middleware 132 , an application programming interface (API) 133 , and an application 134 . Each of the programming modules described above may include a combination of at least two of software, firmware, and hardware.

커널(131)은 미들웨어(132), API(133), 애플리케이션(134) 등의 다른 프로그래밍 모듈들에서 구현되는 동작들 또는 기능들을 실행하는데 사용될 수 있는 시스템 자원들, 예를 들어 버스(110), 프로세서(120), 메모리(130) 등을 제어 및/또는 관리할 수 있다. 커널(131)은 미들웨어(132), API(133), 애플리케이션(134) 등이 전자 장치(101)의 개별 구성 요소들에 액세스할 수 있게 하거나 다른 방식으로 그것을 용이하게 하는 인터페이스를 제공할 수 있다.Kernel 131 includes system resources that can be used to execute operations or functions implemented in other programming modules such as middleware 132, API 133, application 134, etc., for example, bus 110, The processor 120 , the memory 130 , and the like may be controlled and/or managed. Kernel 131 may provide an interface that allows middleware 132 , API 133 , application 134 , etc. to access individual components of electronic device 101 , or otherwise facilitates it. .

미들웨어(132)는 커널(131)이 API(133), 애플리케이션(134) 등과 통신하여 데이터를 송수신할 수 있게 하는 매체 및/또는 임의의 적절한 하드웨어 및/또는 소프트웨어일 수 있다. 미들웨어(132)는 애플리케이션(134)에 의해 생성된 및/또는 애플리케이션(134)과 대응하는 작업 요청들을 제어할 수 있다. 예컨대, 그러한 작업 요청들의 스케줄링, 로드 밸런싱(load balancing) 등을 수행할 수 있다. 예컨대, 미들웨어(132)는 전자 장치(101)의 시스템 자원들(예를 들어, 버스(110), 프로세서(120), 메모리(130) 등)을 사용하는 것에 대한 우선 순위를 애플리케이션(134)에 할당함으로써 애플리케이션9134)에 의한 작업 요청들을 제어할 수 있다.Middleware 132 may be a medium and/or any suitable hardware and/or software that enables kernel 131 to communicate with API 133 , applications 134 , and the like to send and receive data. Middleware 132 may control work requests generated by and/or corresponding to application 134 . For example, scheduling of such work requests, load balancing, and the like may be performed. For example, the middleware 132 gives priority to the application 134 for using system resources (eg, the bus 110 , the processor 120 , the memory 130 , etc.) of the electronic device 101 . By assigning it is possible to control the work requests by the application 9134).

API(133)는 커널(131), 미들웨어(132) 등에서 애플리케이션(134)이 제공할 수 있는 기능들을 제어하는 인터페이스일 수 있다. 예컨대, API(133) 파일 제어, 윈도우 제어, 비디오 처리, 문자 제어 등을 위한 적어도 하나의 인터페이스 및/또는 기능, 예를 들어 명령(command)을 포함할 수 있다.The API 133 may be an interface that controls functions that the application 134 may provide, such as the kernel 131 and the middleware 132 . For example, the API 133 may include at least one interface and/or function, for example, a command, for file control, window control, video processing, text control, and the like.

본 개시의 다양한 실시예들에 따르면, 애플리케이션(134)은 단문 메시지 서비스(SMS) 애플리케이션, 멀티미디어 메시징 서비스(MMS) 애플리케이션, e-메일 애플리케이션, 캘린더 애플리케이션, 알람 애플리케이션, 예를 들어 운동량 애플리케이션, 혈당 레벨 측정 애플리케이션 등의 헬스 케어 애플리케이션, 예를 들어 기압, 습도, 온도 정보를 제공할 수 있는 애플리케이션 등의 환경 정보 애플리케이션, 인스턴트 메시징 애플리케이션, 통화 애플리케이션, 인터넷 브라우징 애플리케이션, 게임 애플리케이션, 미디어 재생 애플리케이션, 이미지/비디오 캡처 애플리케이션, 파일 관리 애플리케이션 등을 포함할 수 있다. 부가적으로 및/또는 대안적으로, 애플리케이션(134)은 전자 장치(101)와 외부 전자 장치, 예를 들어 전자 장치(104) 간의 정보 교환과 관련된 애플리케이션일 수도 있다. 일례로, 정보 교환과 관련된 애플리케이션(134)은 외부 전자 장치에 일정 타입의 정보를 제공할 수 있는 통지 중계 애플리케이션(notification relay application), 외부 전자 장치를 관리할 수 있는 장치 관리 애플리케이션 등을 포함할 수 있다.According to various embodiments of the present disclosure, the application 134 is a short message service (SMS) application, a multimedia messaging service (MMS) application, an e-mail application, a calendar application, an alarm application, such as an exercise amount application, a blood sugar level Health care applications such as measurement applications, environmental information applications such as applications that can provide barometric pressure, humidity and temperature information, instant messaging applications, call applications, internet browsing applications, gaming applications, media playback applications, images/videos capture applications, file management applications, and the like. Additionally and/or alternatively, the application 134 may be an application related to information exchange between the electronic device 101 and an external electronic device, for example, the electronic device 104 . For example, the application 134 related to information exchange may include a notification relay application capable of providing a certain type of information to an external electronic device, a device management application capable of managing the external electronic device, and the like. have.

일례로, 통지 중계 애플리케이션은 전자 장치(101)에 포함된 다른 애플리케이션들, 예를 들어 SMS/MMS 애플리케이션, e-메일 애플리케이션, 헬스 케어 애플리케이션, 환경 정보 애플리케이션, 인스턴트 메시징 애플리케이션, 통화 애플리케이션, 인터넷 브라우징 애플리케이션, 게임 애플리케이션, 미디어 재생 애플리케이션, 이미지/비디오 캡처 애플리케이션, 파일 관리 애플리케이션 등에 의해 생성된 통지를 외부 전자 장치, 예를 들어 전자 장치(104)에게 제공하는 기능을 포함할 수 있다. 부가적으로, 통지 중계 애플리케이션은 예컨대 외부 전자 장치, 예를 들어 전자 장치(104)로부터의 수신 통지를 제공할 수 있고, 그 통지를 사용자에게 제공할 수 있다.For example, the notification relay application may include other applications included in the electronic device 101 , for example, an SMS/MMS application, an e-mail application, a health care application, an environment information application, an instant messaging application, a call application, and an Internet browsing application. , a game application, a media playback application, an image/video capture application, a file management application, and the like, to an external electronic device, for example, the electronic device 104 . Additionally, the notification relay application may provide, for example, a notification of reception from an external electronic device, for example, the electronic device 104 , and may provide the notification to the user.

일례로, 장치 관리 애플리케이션은 전자 장치(101)와 통신 상태에 있는 외부 전자 장치의 적어도 일부, 예를 들어 외부 전자 장치 그 자체 및/또는 외부 전자 장치의 적어도 하나의 구성 요소와 관련된 기능들의 인에이블링(enabling) 또는 디스에이블링(disabling)을 관리할 수 있고, 외부 전자 장치(104)의 디스플레이의 밝기 및/또는 해상도를 제어할 수 있으며, 외부 전자 장치(104)에서 동작하는 애플리케이션 또는 외부 전자 장치(104)에 의해 제공되는 서비스, 예를 들어 음성 통화 서비스, 메시징 서비스 등을 제어할 수 있다.In one example, the device management application enables functions related to at least a part of the external electronic device in communication with the electronic device 101 , for example, the external electronic device itself and/or at least one component of the external electronic device. It is possible to manage ring (enabling) or disabling (disabling), control the brightness and/or resolution of the display of the external electronic device 104 , and an application or external electronic device operated in the external electronic device 104 . It may control the services provided by the device 104 , such as voice calling services, messaging services, and the like.

본 개시의 다양한 실시예들에 따르면, 일례로, 애플리케이션(134)은 외부 전자 장치, 예를 들어 외부 전자 장치(104)의 특성, 예를 들어 전자 장치 타입에 따라 결정되는 적어도 하나의 애플리케이션을 포함할 수 있다. 예컨대, 외부 전자 장치가 MPEG(Moving Picture Expert Group) 오디오 레이어 3(MP3) 플레이어이면, 애플리케이션(134)은 음악 재생과 관련된 적어도 하나의 애플리케이션을 포함할 수 있다. 다른 예로, 외부 전자 장치가 이동 의료 기기이면, 애플리케이션(134)은 헬스 케어 관련 애플리케이션일 수 있다. 본 개시의 다양한 실시예들에 따르면, 애플리케이션(134)은 전자 장치(101)에서 프리로딩(preload)된 애플리케이션 및 외부 전자 장치, 예컨대 외부 전자 장치(104), 서버(106) 등으로부터 수신된 애플리케이션 중의 적어도 하나를 포함할 수 있다.According to various embodiments of the present disclosure, as an example, the application 134 includes at least one application determined according to a characteristic of an external electronic device, for example, the external electronic device 104 , for example, an electronic device type. can do. For example, if the external electronic device is a Moving Picture Expert Group (MPEG) audio layer 3 (MP3) player, the application 134 may include at least one application related to music reproduction. As another example, if the external electronic device is a mobile medical device, the application 134 may be a health care related application. According to various embodiments of the present disclosure, the application 134 is an application preloaded in the electronic device 101 and an application received from an external electronic device, for example, the external electronic device 104 , the server 106 , or the like. may include at least one of

I/O 인터페이스(140)는 예컨대 사용자로부터 명령 및/또는 데이터 중의 적어도 하나를 수신할 수 있다. I/O 인터페이스(140)는 버스(110)를 통해 프로세서(120), 메모리(130), 통신 인터페이스(160), 샌드박스 모듈(170) 등에게 명령 및/또는 데이터를 보낼 수 있다. 예컨대, I/O 인터페이스(140)는 터치스크린을 통해 수신된 사용자 입력과 같은 사용자 입력과 관련된 데이터를 프로세서(120)에게 제공할 수 있다. I/O 인터페이스(140)는 예컨대 프로세서(120), 메모리(130), 통신 인터페이스(160), 샌드박스 모듈(170) 등으로부터 버스(110)를 통해 수신된 명령 및/또는 데이터를 I/O 장치, 예를 들어 스피커(도시되지 않음), 디스플레이(도시되지 않음) 등을 통해 출력할 수 있다. 예컨대, I/O 인터페이스(140)는 음성 데이터, 예를 들어 프로세서(120)에 의해 처리된 음성 데이터를 스피커를 통해 출력할 수 있다.The I/O interface 140 may receive, for example, at least one of commands and/or data from a user. The I/O interface 140 may send commands and/or data to the processor 120 , the memory 130 , the communication interface 160 , the sandbox module 170 , and the like via the bus 110 . For example, the I/O interface 140 may provide data related to a user input, such as a user input received through a touch screen, to the processor 120 . The I/O interface 140 may I/O commands and/or data received over the bus 110 from, for example, the processor 120 , the memory 130 , the communication interface 160 , the sandbox module 170 , and the like. The output may be through a device, for example, a speaker (not shown), a display (not shown), or the like. For example, the I/O interface 140 may output voice data, for example, voice data processed by the processor 120 through a speaker.

디스플레이(150)는 다양한 타입의 정보, 예를 들어 멀티미디어, 텍스트 데이터 등을 사용자에게 표시할 수 있다. 일례로, 디스플레이(150)는 사용자가 전자 장치(101)와 인터랙션(interaction)할 수 있게 하는 수단인 그래픽 사용자 인터페이스(Graphical User Interface; GUI)를 표시할 수 있다.The display 150 may display various types of information, for example, multimedia, text data, and the like to the user. For example, the display 150 may display a graphical user interface (GUI) that is a means for allowing a user to interact with the electronic device 101 .

통신 인터페이스(160)는 전자 장치(101)와 하나 이상의 외부 전자 장치들, 예를 들어 외부 전자 장치(104), 서버(106) 등 간의 통신을 제공할 수 있다. 예컨대, 통신 인터페이스(160)는 무선 및/또는 유선 통신을 사용하여 네트워크(162)와의 연결을 설정함으로써 외부 전자 장치와 통신할 수 있다. 일례로, 통신 인터페이스(160)는 Wi-Fi, Bluetooth, 근거리 통신(Near Field Communication; NFC), GPS(Global Positioning System), 셀룰러 통신, 예를 들어 LTE(Long Term Evolution), LTE-A(LTE Advanced), CDMA(Code Division Multiple Access), 광대역 CDMA(WCDMA), UMTS(Universal Telecommunications System), WiBro(Wireless Broadband), GSM(Global System for Mobile Communications) 등 중의 적어도 하나일 수 있는 무선 통신을 사용하여 통신할 수 있다. 부가적으로 및/또는 대안적으로, 예컨대 통신 인터페이스(150)는 예를 들어 USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), RS-232(Recommended Standard 232), POTS(Plain Old Telephone Service) 등 중의 적어도 하나일 수 있는 유선 통신으로 통신할 수도 있다.The communication interface 160 may provide communication between the electronic device 101 and one or more external electronic devices, for example, the external electronic device 104 or the server 106 . For example, the communication interface 160 may communicate with an external electronic device by establishing a connection with the network 162 using wireless and/or wired communication. In one example, the communication interface 160 may include Wi-Fi, Bluetooth, Near Field Communication (NFC), Global Positioning System (GPS), cellular communication, such as Long Term Evolution (LTE), LTE-A (LTE). Advanced), Code Division Multiple Access (CDMA), Wideband CDMA (WCDMA), Universal Telecommunications System (UMTS), Wireless Broadband (WiBro), Global System for Mobile Communications (GSM), etc. can communicate Additionally and/or alternatively, for example, the communication interface 150 may be, for example, Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), Recommended Standard 232 (RS-232), Plain Old Telephone Service (POTS). ) may be communicated through wired communication, which may be at least one of.

본 개시의 다양한 실시예들에 따르면, 네트워크(162)는 통신 네트워크(telecommunication network)일 수 있다. 일례로, 통신 네트워크는 컴퓨터 네트워크, 인터넷, 사물 인터넷(Internet of Things), 전화 네트워크 등 중의 적어도 하나를 포함할 수 있다. 전자 장치(101)와 외부 전자 장치 간의 통신을 위한 프로토콜, 예를 들어 전송 계층 프로토콜, 데이터 링크 프로토콜, 물리 계층 프로토콜 등이 애플리케이션(134), API(133), 미들웨어(132), 커널(131), 통신 인터페이스(160) 등 중의 적어도 하나에 의해 지원될 수 있다.According to various embodiments of the present disclosure, the network 162 may be a telecommunication network. For example, the communication network may include at least one of a computer network, the Internet, the Internet of Things, and a telephone network. A protocol for communication between the electronic device 101 and an external electronic device, for example, a transport layer protocol, a data link protocol, a physical layer protocol, etc. is an application 134 , an API 133 , a middleware 132 , and a kernel 131 . , may be supported by at least one of the communication interface 160 , and the like.

샌드박스 모듈(170)은 예컨대 다른 구성 요소들, 예를 들어 프로세서(120), 메모리(130), I/O 인터페이스(140), 통신 인터페이스(160) 등으로부터 수신된 정보 중의 적어도 일부를 처리할 수 있고, 다양한 정보, 서비스 등을 여러 방식으로 사용자에게 제공할 수 있다. 예컨대, 샌드박스 모듈(170)은 다른 전자 장치, 예를 들어 외부 전자 장치(104), 서버(106) 등과 통신 및/또는 연결하는 전자 장치(101)의 기능들 중의 적어도 일부를 프로세서(120)를 통해 또는 독립적으로 제어할 수 있다. 도 2는 런타임 시점에 실행될 적어도 하나의 애플리케이션을 애플리케이션 프로그램 인터페이스(Application Program Interface; API)에 의해 분리된 컨테이너에 포함시키기 위해 MyContainer로도 지칭할 수 있는 PerAppContainer를 제공할 수 있는 샌드박스 모듈(170)에 관한 추가의 정보를 제공할 것이다.The sandbox module 170 may process at least some of the information received from, for example, other components, for example, the processor 120 , the memory 130 , the I/O interface 140 , the communication interface 160 , and the like. and various information and services may be provided to the user in various ways. For example, the sandbox module 170 performs at least some of the functions of the electronic device 101 to communicate and/or connect to another electronic device, for example, the external electronic device 104 , the server 106 , and the like to the processor 120 . can be controlled via or independently. 2 is a sandbox module 170 that can provide a PerAppContainer, also referred to as MyContainer, to include at least one application to be executed at runtime in a container separated by an application program interface (API). will provide additional information regarding

도 2는 본 개시의 다양한 실시예들에 따른 PerAppContainer의 실행을 위한 구조를 도시하고 있다.2 illustrates a structure for executing PerAppContainer according to various embodiments of the present disclosure.

도 2를 참조하면, 전자 장치(101)의 샌드박스 모듈(170) 및/또는 프로세서(120) 등의 임의의 다른 유사한 및/또는 적절한 요소, 유닛, 하드웨어 장치, 및/또는 하드웨어 유닛이 PerAppContainer를 제공할 수 있다. PerAppContainer는 런타임 시에 안드로이드 애플리케이션과 같은 적어도 하나의 애플리케이션에게 샌드박스를 제공하여 그 적어도 하나의 애플리케이션과 대응하는 애플리케이션 데이터 및 코드 실행을 그 적어도 하나의 애플리케이션과 샌드박스에 포함되지 않는 다른 애플리케이션들 간에 분리하기 위해 그 적어도 하나의 애플리케이션이 API 호출에 의해 분리된 컨테이너 환경에서 동작(run)될 수 있게, 환언하면 실행(execute)될 수 있게 한다.Referring to FIG. 2 , any other similar and/or suitable element, unit, hardware device, and/or hardware unit, such as sandbox module 170 and/or processor 120 of electronic device 101 , may create a PerAppContainer can provide PerAppContainer provides a sandbox at runtime to at least one application, such as an Android application, to separate the at least one application and corresponding application data and code execution between the at least one application and other applications not included in the sandbox. In order to do this, the at least one application can be run in a container environment separated by an API call, in other words, it can be executed.

예컨대, 보안 서비스를 제공하는 Samsung Knox 2.0의 경우, PerAppContainer는 SEAndroid에 대한 멀티레벨 보안/멀티카테고리 보안(Multi-Level Security/Multi-Category Security; MLS/MCS) 정책을 포함할 수 있다. 특히, 애플리케이션들이 분리된 환경에서 동작 또는 실행되되, 신뢰할 수 없는 애플리케이션들이 타깃 애플리케이션의 데이터 및 다른 각각의 객체들에 액세스할 수 없고 타깃 애플리케이션과 다른 신뢰할 수 없는 애플리케이션들간의 인터랙션들이 차단되는 것을 SEAndroid 보안 정책이 보장하도록 타깃 애플리케이션이 전용 카테고리(dedicated category)에 할당된다.For example, in the case of Samsung Knox 2.0 that provides a security service, PerAppContainer may include a Multi-Level Security/Multi-Category Security (MLS/MCS) policy for SEAndroid. In particular, SEAndroid security ensures that applications are operated or executed in a separate environment, untrusted applications cannot access data and other individual objects of the target application, and interactions between the target application and other untrusted applications are blocked. The target application is assigned to a dedicated category to ensure that the policy guarantees it.

이동 장치 관리(Mobile Device management; MDM) 컨테이너를 포함하는 선행 기술에 따르면, 안드로이드 애플리케이션은 예를 들어 리덱싱(redexing) 및/또는 애플리케이션 랩핑(application wrapping) 기술들에 의해 리패키징(re-package)될 수 있거나, 아니면 전용 소프트웨어 개발 키트(Software Development Kit; SDK)에 의해 개발된다. 따라서 선행 기술의 MDM 컨테이너에서는, 다운로드된 애플리케이션, 환언하면 컨테이너 내의 어떤 임의의 애플리케이션이 동작 및/또는 실행될 수 없다.According to the prior art comprising a Mobile Device management (MDM) container, an Android application is re-packaged, for example by redexing and/or application wrapping techniques. may be, or otherwise developed by a dedicated Software Development Kit (SDK). Therefore, in the MDM container of the prior art, the downloaded application, in other words any arbitrary application within the container, cannot be operated and/or executed.

반면에, 본 개시의 실시예에 따르면, PerAppContainer는 다운로드된 애플리케이션 또는 임의의 다른 유사한 및/또는 적절한 애플리케이션을 SEAndroid 관리자 서비스(SEAndroid Manager Service; SEAMS)를 사용하여 경량 컨테이너(lightweight container)에서 동작하는 방법을 제공한다.On the other hand, according to an embodiment of the present disclosure, PerAppContainer is a method of running a downloaded application or any other similar and/or suitable application in a lightweight container using SEAndroid Manager Service (SEAMS). provides

본 개시의 실시예에 따른 PerAppContainer는 SEAMS API를 호출함으로써, 예를 들어 MDM 클라이언트 또는 MyContainerManager 중 적어도 하나의 안드로이드 애플리케이션에 의해 생성된 호출에 의해 생성 또는 종료될 수 있다. MyContainerManager에 의해 제공되는 사용자 인터페이스(UI)를 사용하여, 사용자는 런타임 시점에 MyContainerManager를 형성하기 위해 전자 장치(101)에 설치된 애플리케이션들 중의 적어도 하나를 선택할 수 있다. 부가적으로, MDM 클라이언트는 사용자 입력을 필요로 함이 없이 MyContainerManager의 동작들을 수행할 수 있다.PerAppContainer according to an embodiment of the present disclosure may be created or terminated by calling a SEAMS API, for example, by a call generated by an Android application of at least one of an MDM client or MyContainerManager. Using a user interface (UI) provided by MyContainerManager, the user may select at least one of the applications installed on the electronic device 101 to form MyContainerManager at runtime. Additionally, the MDM client can perform the operations of MyContainerManager without requiring user input.

MyContainer 내의 안드로이드 애플리케이션들은 MyContainer의 외부에 위치한, 다른 말로 MyContainer에 포함되지 않는 어떠한 애플리케이션들에 의해서도 시동, 즉 동작 또는 실행될 수 없는데, 그것은 액티비티 관리자 서비스(Activity Manager Service)에 구현된 필수 액세스 제어(Mandatory Access Control; MAC) 메커니즘에 의해 수행(enforce)될 수 있다. 따라서 MyContainer에 포함된 어떤 애플리케이션에 의해 생성되는 자원들은 MyContainer로부터 제외된 어떠한 애플리케이션, 다른 말로 MyContainer의 외부에 있는 어떠한 애플리케이션에 의해서도 액세스될 수 없는데, 그 이유는 그러한 애플리케이션들이 Linux 커널 레벨에서 구현된 SELinux 다중 카테고리 보안(Multiple Categories Security; MCS) 메커니즘에 의해 차단되기 때문이다.Android applications in MyContainer cannot be started, ie, operated or executed by any applications located outside of MyContainer, in other words not included in MyContainer, which is a Mandatory Access Control implemented in the Activity Manager Service. Control (MAC) may be enforced by a mechanism. Therefore, resources created by any application contained in MyContainer cannot be accessed by any application excluded from MyContainer, in other words any application outside of MyContainer, because such applications are This is because it is blocked by the Multiple Categories Security (MCS) mechanism.

구체적으로, ServiceKeeper(201)가 MDM 클라이언트에 권한을 부여하는 API 호출일 수 있는 권한 있는 호출(authorized call)에 의해, SEAMS가 타깃 애플리케이션에 대한 새로운 카테고리를 생성할 수 있고, 전자 장치(101)에서 애플리케이션이 그 새로운 카테고리에 할당될 것을 지정하도록 정책 파일을 업데이트할 수 있으며, 타깃 애플리케이션의 데이터 파일 객체들을 새로운 카테고리에 따라 리라벨링(re-label)할 수 있다.Specifically, by an authorized call, which may be an API call that ServiceKeeper 201 authorizes to an MDM client, SEAMS may create a new category for the target application, and in the electronic device 101 The policy file can be updated to specify that the application is to be assigned to the new category, and the target application's data file objects can be re-labeled according to the new category.

SEAMS가 타깃 애플리케이션에 대한 새로운 카테고리를 생성하고 전술한 단계들을 완료한 후, 그 다음으로 애플리케이션이 재시동될 때에 안드로이드의 패키지 관리자 서비스(Package Manager Service; PMS)가 업데이트된 정책 파일을 조회한다. 그것은 전자 장치(101)에 포함된 애플리케이션들에 공통된 코어 라이브러리(core library)들을 포함하는 Zygote가 새로운 카테고리를 애플리케이션 프로세스들의 보안 컨텍스트(security context)의 일부로서 할당할 것을 보장한다. 커널 레벨 분리 및 미들웨어 레벨 분리를 모두 제공하는 디폴트 보안 정책에 의해, 애플리케이션 프로세스들이 커널 레벨에서 및 미들웨어 레벨에서 모두 분리되게 된다. 타깃 애플리케이션들이 미들웨어와 커널 레벨에서 정책 수행(policy enforcement)에 의해 어떻게 분리되는지에 관한 더욱 상세한 사항은 정책 기반 컨테이너(policy-based container) IDF에서 찾아볼 수 있다.After SEAMS creates a new category for the target application and completes the above steps, when the application is restarted next, Android's Package Manager Service (PMS) searches for an updated policy file. It ensures that Zygote, which includes core libraries common to applications included in the electronic device 101 , assigns a new category as part of the security context of the application processes. By default security policy providing both kernel level isolation and middleware level isolation, application processes are separated at both the kernel level and the middleware level. More details on how target applications are separated by policy enforcement at the middleware and kernel level can be found in the policy-based container IDF.

도 2에 도시된 바와 같이, PerAppContainer의 실행을 위한 구조는 PerAppContainer를 동작하는 하이 레벨 뷰(high level view)를 나타내고 있다. MDM 클라이언트가 ServiceKeeper(201)에 의해 권한을 부여 받는 경우, MDM 클라이언트는 SEAMS API(202)를 호출하여 애플리케이션들 App1(203), App2(204), 및 App3(205)을 포함하는 MyContainer1(209)과 애플리케이션들 App4(206), App5(207), 및 App6(208)을 포함하는 MyContainer2(210) 등의 분리된 컨테이너들에서 동작 또는 실행될 수 있는, App1(203) 내지 App6(208)을 비롯한 다수의 애플리케이션들 중의 어느 하나에 고유 카테고리(unique category)를 할당할 수 있다. 부가적으로, 전자 장치(101) 등의 장치에서 다수의 PerAppContainer들, 다른 말로 PerAppContainer의 하나 이상의 인스턴스(instance)들이 동시에 동작될 수 있고, PerAppContainer의 각각의 인스턴스는 뱅킹 애플리케이션의 단일 인스턴스에 대한 PerAppContainer 또는 게임들에 대한 PerAppContainer 또는 애플리케이션들의 임의의 적절한 또는 유사한 인스턴스 또는 그룹에 대한 PerAppContainer와 같이 상이한 애플리케이션 타입 중 적어도 하나에 대한 것일 수 있다. 그러나 애플리케이션이 어떤 한번의 시기에 단일 PerAppContainer에만 할당될 수도 있다.As shown in FIG. 2 , the structure for the execution of the PerAppContainer represents a high level view of operating the PerAppContainer. When MDM client is authorized by ServiceKeeper 201, MDM client calls SEAMS API 202 to MyContainer1 209 containing applications App1 203, App2 204, and App3 205 Many, including Appl 203 - App6 208, which can run or run in separate containers, such as MyContainer2 210, which includes and applications App4 206, App5 207, and App6 208 You can assign a unique category to any one of the applications of Additionally, multiple PerAppContainers, in other words, one or more instances of PerAppContainer, may be operated concurrently in a device such as electronic device 101 , each instance of a PerAppContainer or PerAppContainer for a single instance of a banking application It may be for at least one of a different application type, such as a PerAppContainer for games or a PerAppContainer for any suitable or similar instance or group of applications. However, an application may only be assigned to a single PerAppContainer at any one time.

도 3은 본 개시의 다양한 실시예들에 따른 PerAppContainer의 실행 방법을 도시하고 있다.3 illustrates a method of executing PerAppContainer according to various embodiments of the present disclosure.

도 3을 참조하면, 동작 301에서, 사용자가 타깃 app로도 지칭할 수 있는 타깃 애플리케이션을 선택할 수 있다. 예컨대, 전자 장치(101)가 디스플레이(150)를 통해 적어도 하나의 애플리케이션을 표시할 수 있고, 전자 장치(101)의 사용자가 디스플레이(150)에 표시된 적어도 하나의 애플리케이션 가운데서 적어도 하나의 타깃 애플리케이션, 예를 들어 적어도 하나의 타깃 app를 선택할 수 있다. 그러나 본 개시의 다양한 실시예들은 그에 한정되는 것이 아니고, 전자 장치(101)에 의해 실행될 수 있는 어떠한 적절한 애플리케이션도 타깃 애플리케이션으로 선택될 수 있다.Referring to FIG. 3 , in operation 301, a user may select a target application, which may also be referred to as a target app. For example, the electronic device 101 may display at least one application through the display 150 , and the user of the electronic device 101 may display at least one target application among the at least one application displayed on the display 150 , for example. For example, you can select at least one target app. However, various embodiments of the present disclosure are not limited thereto, and any suitable application that can be executed by the electronic device 101 may be selected as the target application.

다음으로, 동작 302에서, 전자 장치(101)가 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 정책 파일을 획득할 수 있다. 정책 파일은 애플리케이션 명칭, 디지털 인증서, 관련 카테고리와 같은, 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 정보 및 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 임의의 다른 유사한 또는 적절한 정보를 포함할 수 있다. 정책 파일은 전자 장치(101) 등의 장치의 변하는 환경을 기반으로 하거나 또는 사용자의 필요에 따라 수정 또는 변경될 수 있다. 정책 파일은 메모리(130)에 저장될 수 있거나 메모리(130)로부터 또는 정책 파일을 저장한 임의의 다른 유사한 또는 적절한 소스 중 적어도 하나로부터 획득될 수 있다.Next, in operation 302 , the electronic device 101 may obtain a policy file corresponding to the target application selected by the user. The policy file may contain information corresponding to the target application selected by the user and any other similar or suitable information corresponding to the target application selected by the user, such as application names, digital certificates, and related categories. The policy file may be modified or changed based on a changing environment of a device such as the electronic device 101 or according to a user's needs. The policy file may be stored in memory 130 or may be obtained from at least one of memory 130 or any other similar or suitable source that has stored the policy file.

동작 303에서, 전자 장치(101)가 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있는지 여부를 판단한다. 예컨대, 타깃 app가 이동 의료 기기의 동작들과 관련되어 있으면, 정책 파일은 타깃 app의 카테고리가 “헬스 케어 애플리케이션”이라는 것을 지시하는 정보를 포함할 수 있고, 다른 예로 타깃 app가 MP3 플레이어의 동작들과 관련되어 있으면, 타깃 app가 “음악 재생” 카테고리에 포함될 수 있다. 그러나 본 개시는 그에 한정되는 것이 아니고, 타깃 app의 카테고리는 전자 장치(101)에서 실행될 수 있는 애플리케이션들의 임의의 유사한 또는 적절한 타입의 카테고리일 수 있다.In operation 303, the electronic device 101 determines whether the policy file includes information indicating the category of the target app. For example, if the target app is related to the actions of a mobile medical device, the policy file may include information indicating that the category of the target app is “health care application”, as another example, if the target app is related to the actions of an MP3 player related to, the target app may be included in the “music play” category. However, the present disclosure is not limited thereto, and the category of the target app may be any similar or suitable type of category of applications that may be executed in the electronic device 101 .

전자 장치(101)가 동작 303에서 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있지 않다고 판단하면, 동작 304에서, 전자 장치(101)가 타깃 app에 대한 새로운 카테고리 정보를 생성할 수 있다. 예컨대, 전자 장치(101)가 디스플레이(150)에 적어도 하나의 카테고리를 표시하여 전자 장치(101)의 사용자가 표시된 적어도 하나의 카테고리 중에서 타깃 app의 카테고리를 선택하게 하도록 할 수 있다. 부가적으로 또는 대안적으로, 전자 장치(101)의 사용자가 I/O 인터페이스(140)를 통해, 디스플레이(150)를 통해, 또는 타깃 app의 카테고리를 입력하는 임의의 유사한 또는 적절한 방법을 통해 타깃 app의 카테고리를 입력할 수도 있다.If the electronic device 101 determines that the policy file does not include information indicating the category of the target app in operation 303, the electronic device 101 may generate new category information on the target app in operation 304 . For example, the electronic device 101 may display at least one category on the display 150 to allow the user of the electronic device 101 to select a category of the target app from among the displayed at least one category. Additionally or alternatively, the user of the electronic device 101 via the I/O interface 140 , the display 150 , or any similar or suitable method for entering a category of the target app You can also enter a category for the app.

다음으로, 동작 305에서, 전자 장치(101)가 타깃 app의 카테고리로 정책 파일을 업데이트할 수 있다. 예컨대, 전자 장치(101)가 사용자에 의해 입력된 새로운 카테고리에 타깃 app가 할당될 것을 지정하도록 정책 파일을 업데이트할 수 있다. 다음으로, 동작 306에서, 전자 장치(101)가 타깃 app의 데이터 파일 객체들을 새로운 카테고리에 따라 리라벨링할 수 있다.Next, in operation 305 , the electronic device 101 may update the policy file with the category of the target app. For example, the electronic device 101 may update the policy file to designate that the target app be assigned to a new category input by the user. Next, in operation 306 , the electronic device 101 may relabel the data file objects of the target app according to a new category.

동작 303으로 돌아와서, 전자 장치가 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있다고 판단하면, 전자 장치(101)가 타깃 app를 타깃 app의 카테고리에 따른 정책 파일과 대응하여 Appcontainer에 추가하기 위해 동작 308로 진행한다. 다음으로, 동작 307에서, 전자 장치(101)가 타깃 app를 포함하는 Appcontainer를 실행한다.Returning to operation 303, if the electronic device determines that the policy file includes information indicating the category of the target app, the electronic device 101 adds the target app to the Appcontainer in correspondence with the policy file according to the category of the target app In order to do so, the process proceeds to operation 308. Next, in operation 307 , the electronic device 101 executes an Appcontainer including the target app.

도 4는 본 개시의 다양한 실시예들에 따른 하드웨어의 블록도를 도시하고 있다.4 illustrates a block diagram of hardware according to various embodiments of the present disclosure.

도 4를 참조하면, 전자 장치(401)는 예컨대 전자 장치(101)의 일부 또는 전체일 수 있다. 도 4를 참조하면, 전자 장치(401)는 적어도 하나의 애플리케이션 프로세서(Application Processor; AP)(410), 통신 모듈(420), 가입자 식별 모듈(SIM) 카드(424), 메모리(430), 센서 모듈(440), 입력 모듈(450), 디스플레이 모듈(460), 인터페이스(470), 오디오 모듈(480), 카메라 모듈(490), 전력 관리 모듈(495), 배터리(496), 인디케이터(497), 모터(498) 등을 포함할 수 있다.Referring to FIG. 4 , the electronic device 401 may be, for example, a part or the whole of the electronic device 101 . Referring to FIG. 4 , the electronic device 401 includes at least one application processor (AP) 410 , a communication module 420 , a subscriber identification module (SIM) card 424 , a memory 430 , and a sensor. module 440 , input module 450 , display module 460 , interface 470 , audio module 480 , camera module 490 , power management module 495 , battery 496 , indicator 497 . , a motor 498, and the like.

AP(410)는 AP(410)와 연결된 하나 이상의 하드웨어 또는 소프트웨어 컴포넌트들을 제어할 수 있고, 멀티미디어 데이터 등을 비롯한 데이터의 처리 및/또는 계산을 수행할 수 있다. 예컨대, AP(410)는 시스템 온 칩(System-on-Chip; SoC)으로 구현될 수 있다. AP(410)는 그래픽 처리 유닛(Graphics Processing Unit; GPU)(도시되지 않음)을 포함할 수 있다.The AP 410 may control one or more hardware or software components connected to the AP 410 , and may process and/or calculate data including multimedia data. For example, the AP 410 may be implemented as a system-on-chip (SoC). The AP 410 may include a graphics processing unit (GPU) (not shown).

통신 모듈(420), 예를 들어 통신 인터페이스(160)는 전자 장치(101)와 다른 전자 장치들, 예를 들어 전자 장치(104), 서버(106) 등 간의 통신에서 데이터를 송수신할 수 있다. 예컨대, 통신 모듈(420)은 셀룰러 모듈(421), Wi-Fi모듈(423), Bluetooth 모듈(425), GPS 모듈(427), NFC 모듈(428), 무선 주파수(Radio Frequency; RF) 모듈(429) 등 중의 하나 이상을 포함할 수 있다.The communication module 420 , for example, the communication interface 160 , may transmit/receive data in communication between the electronic device 101 and other electronic devices, for example, the electronic device 104 , the server 106 , and the like. For example, the communication module 420 includes a cellular module 421, a Wi-Fi module 423, a Bluetooth module 425, a GPS module 427, an NFC module 428, a radio frequency (RF) module ( 429) and the like.

셀룰러 모듈(421)은 음성 통화, 화상 통화, 단문 메시지 서비스(SMS)< 인터넷 서비스 등의 서비스들을 통신 네트워크, 예를 들어 LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, GSM 등을 통해 제공할 수 있다. 예컨대, 셀룰러 모듈(421)은 가입자 식별 모듈(SIM) 카드, 예컨대 SIM 카드(424)를 사용하여 통신 네트워크 내의 전자 장치들을 구별 및 인증할 수 있다. 본 개시의 다양한 실시예들에 따르면, 셀룰러 모듈(421)은 AP(410)의 기능들 중의 적어도 일부를 수행할 수 있다. 예컨대, 셀룰러 모듈(421)은 멀티미디어 제어 기능 중의 적어도 일부를 수행할 수 있다.The cellular module 421 provides services such as voice call, video call, and short message service (SMS) < Internet service through a communication network, for example, LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, GSM, etc. can do. For example, the cellular module 421 may use a Subscriber Identity Module (SIM) card, such as the SIM card 424 , to differentiate and authenticate electronic devices within a communication network. According to various embodiments of the present disclosure, the cellular module 421 may perform at least some of the functions of the AP 410 . For example, the cellular module 421 may perform at least a part of multimedia control functions.

본 개시의 다양한 실시예들에 따르면, 통신 인터페이스(420) 및/또는 셀룰러 모듈(421)은 통신 프로세서(Communication Processor; CP)를 포함할 수 있다. 예컨대, 셀룰러 모듈(421)은 SoC로 구현될 수 있다.According to various embodiments of the present disclosure, the communication interface 420 and/or the cellular module 421 may include a communication processor (CP). For example, the cellular module 421 may be implemented as an SoC.

도 4는 셀룰러 모듈(421), 예를 들어 CP, 메모리(430), 전력 관리 모듈(495) 등의 구성 요소들을 AP(410)와는 별개의 구성 요소들로 도시하고 있지만, 본 개시의 다양한 실시예들에 따르면, AP(410)는 전술한 구성 요소들 중의 하나 이상, 예를 들어 셀룰러 모듈(421)을 포함하거나 그와 통합될 수도 있다.Although FIG. 4 shows components such as the cellular module 421, for example, the CP, the memory 430, and the power management module 495 as components separate from the AP 410, various implementations of the present disclosure According to examples, the AP 410 may include or be integrated with one or more of the components described above, for example, the cellular module 421 .

본 개시의 다양한 실시예들에 따르면, AP(410), 셀룰러 모듈(421), 예를 들어 CP 등은 비휘발성 메모리 및 다른 구성 요소들로부터 수신된 명령들 및/또는 데이터를 휘발성 메모리로 로딩하여 그 명령들 및/또는 데이터를 처리할 수 있다. AP(410), 셀룰러 모듈(421), 통신 인터페이스(420) 등은 다른 구성 요소들 중의 적어도 하나로부터 수신된 데이터 및 다른 구성 요소들 중의 적어도 하나에 의해 생성된 데이터 중의 적어도 하나를 비휘발성 메모리에 저장할 수 있다.According to various embodiments of the present disclosure, the AP 410, the cellular module 421, for example, the CP, etc. loads the commands and/or data received from the non-volatile memory and other components into the volatile memory. The instructions and/or data may be processed. The AP 410 , the cellular module 421 , the communication interface 420 , etc. stores at least one of data received from at least one of the other components and data generated by at least one of the other components to the non-volatile memory. can be saved

Wi-Fi 모듈(423), Bluetooth 모듈(425), GPS 모듈(427), NFC 모듈(428) 등은 각각 예컨대 각각의 모듈들이 수신 및 전송한 데이터를 처리할 수 있는 적어도 하나의 프로세서를 포함할 수 있다. 도 4는 셀룰러 모듈(421), Wi-Fi 모듈(423), Bluetooth 모듈(425), GPS 모듈(427), 및 NFC 모듈(428)을 별개의 블록들로 도시하고 있지만, 본 개시의 다양한 실시예들에 따르면, 셀룰러 모듈(421), Wi-Fi 모듈(423), Bluetooth 모듈(425), GPS 모듈(427), NFC 모듈(428) 등의 임의의 조합, 예를 들어 2개 이상의 조합이 집적 회로(IC) 또는 IC 패키지에 포함될 수도 있다. 예컨대, 셀룰러 모듈(421), Wi-Fi 모듈(423), Bluetooth 모듈(425), GPS 모듈(427), NFC 모듈(428) 등과 각각 대응하는 프로세서들 중의 적어도 일부가 단일 SoC로 구현될 수 있다. 예컨대, 셀룰러 모듈(421)과 대응하는 CP 및 Wi-Fi 모듈(423)과 대응하는 Wi-Fi 프로세서가 단일 SoC로 구현될 수 있다.The Wi-Fi module 423, the Bluetooth module 425, the GPS module 427, the NFC module 428, etc. each include, for example, at least one processor capable of processing data received and transmitted by the respective modules. can 4 shows the cellular module 421 , the Wi-Fi module 423 , the Bluetooth module 425 , the GPS module 427 , and the NFC module 428 as separate blocks, various implementations of the present disclosure According to examples, any combination of cellular module 421 , Wi-Fi module 423 , Bluetooth module 425 , GPS module 427 , NFC module 428 , etc., for example a combination of two or more It may also be included in an integrated circuit (IC) or IC package. For example, at least some of the processors corresponding to the cellular module 421 , the Wi-Fi module 423 , the Bluetooth module 425 , the GPS module 427 , the NFC module 428 and the like may be implemented as a single SoC. . For example, a CP corresponding to the cellular module 421 and a Wi-Fi processor corresponding to the Wi-Fi module 423 may be implemented as a single SoC.

RF 모듈(429)은 예컨대 RF 신호들을 송수신할 수 있다. 도시되지는 않았지만, RF 모듈(429)은 송수신기, 파워 앰프 모듈(Power Amp Module; PAM), 주파수 필터, 저잡음 증폭기(Low Noise Amplifier; LNA) 등을 포함할 수 있다. RF 모듈(429)은 예를 들어 자유 공간에서 전자파(EM waves)를 송수신하기 위한, 도체 또는 도선 등의 하나 이상의 요소들을 포함할 수 있다. 도 4는 셀룰러 모듈(421), Wi-Fi 모듈(423), Bluetooth 모듈(425), GPS 모듈(427), 및 NFC 모듈(428)이 하나의 RF 모듈(429)을 서로 공유하는 것으로 도시하고 있지만, 본 개시의 다양한 실시예들에 따르면, 셀룰러 모듈(421), Wi-Fi 모듈(423), Bluetooth 모듈(425), GPS 모듈(427), NFC 모듈(428) 등 중의 적어도 하나는 별개의 RF 모듈을 통해 RF 신호들을 송수신할 수도 있다.The RF module 429 may transmit and receive RF signals, for example. Although not shown, the RF module 429 may include a transceiver, a power amplifier module (PAM), a frequency filter, a low noise amplifier (LNA), and the like. The RF module 429 may include one or more elements, such as a conductor or a conducting wire, for transmitting and receiving electromagnetic waves (EM waves) in free space, for example. 4 shows the cellular module 421 , the Wi-Fi module 423 , the Bluetooth module 425 , the GPS module 427 , and the NFC module 428 as sharing one RF module 429 with each other and However, according to various embodiments of the present disclosure, at least one of the cellular module 421, the Wi-Fi module 423, the Bluetooth module 425, the GPS module 427, the NFC module 428, etc. is a separate RF signals may be transmitted/received through the RF module.

SIM 카드(424)는 가입자 식별 모듈(SIM)을 구현하는 카드일 수 있고, 전자 장치의 지정된 위치에 설치된 슬롯에 삽입될 수 있다. SIM 카드(1224)는 고유 식별자(예를 들어, ICCID(Integrated Circuit Card Identifier)), 가입자 정보(예를 들어, IMSI(International Mobile Subscriber Identity)) 등을 포함할 수 있다.The SIM card 424 may be a card implementing a subscriber identification module (SIM), and may be inserted into a slot installed at a designated location of the electronic device. The SIM card 1224 may include a unique identifier (eg, Integrated Circuit Card Identifier (ICCID)), subscriber information (eg, International Mobile Subscriber Identity (IMSI)), and the like.

메모리(430), 예를 들어 메모리(130)는 내장 메모리(432), 외장 메모리(434), 또는 그 조합을 포함할 수 있다.The memory 430 , for example, the memory 130 , may include an internal memory 432 , an external memory 434 , or a combination thereof.

본 개시의 다양한 실시예들에 따르면, 내장 메모리(432)는 예컨대 휘발성 메모리(예를 들어, DRAM(Dynamic Random Access Memory), SRAM(Static RAM), 및/또는 SDRAM(Synchronous Dynamic RAM)), 비휘발성 메모리(예를 들어, OTPROM(One Time Programmable Read Only Memory), PROM(programmable ROM), EPROM(Erasable and Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory) 등 중의 적어도 하나를 포함할 수 있다.According to various embodiments of the present disclosure, the embedded memory 432 is, for example, a volatile memory (eg, Dynamic Random Access Memory (DRAM), Static RAM (SRAM), and/or Synchronous Dynamic RAM (SDRAM)), non-volatile memory Volatile memory (e.g. One Time Programmable Read Only Memory (OTPROM), programmable ROM (PROM), Erasable and Programmable ROM (EPROM), Electrically Erasable and Programmable ROM (EEPROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory) and the like.

본 개시의 다양한 실시예들에 따르면, 내장 메모리(432)는 SSD(Solid State Drive)일 수 있다. 예컨대, 외장 메모리(434)는 플래시 드라이브(flash drive), 예를 들어 CF(Compact Flash) drive, SD(Secure Digital), micro SD(micro Secure Digital), Mini SD(mini Secure Digital), xD(extreme Digital), 메모리 스틱(Memory Stick) 등일 수 있다. 외장 메모리(434)는 다양한 인터페이스들을 통해 전자 장치(401)와 기능적으로 연결될 수 있다. 본 개시의 다양한 실시예들에 따르면, 전자 장치(401)는 하드 디스크 드라이브(hard Disk Drive; HDD) 등과 같은 기록 장치 및/또는 기록 매체를 포함할 수 있다.According to various embodiments of the present disclosure, the internal memory 432 may be a solid state drive (SSD). For example, the external memory 434 may be a flash drive, for example, a CF (Compact Flash) drive, SD (Secure Digital), micro SD (micro Secure Digital), Mini SD (mini Secure Digital), or xD (extreme) drive. Digital), a memory stick, or the like. The external memory 434 may be functionally connected to the electronic device 401 through various interfaces. According to various embodiments of the present disclosure, the electronic device 401 may include a recording device and/or a recording medium such as a hard disk drive (HDD).

센서 모듈(440)은 물리/환경 특성의 계측, 전자 장치(401)와 관련된 작동 상태의 감지 등을 수행하고, 계측된 및/또는 감지된 정보를 전기 신호 또는 전자기 신호 등의 신호로 변환할 수 있다. 예컨대, 센서 모듈(440)은 제스처 센서(440A), 자이로 센서(440B), 기압 센서(440C), 마그네틱 센서(440D), 가속도 센서(440E), 그립 센서(440F), 근접 센서(440G), RGB 센서(440H), 생체 센서(440I), 온도/습도 센서(440J), 조도 센서(440K), UV(Ultra Violet) 센서(440M) 등 중의 적어도 하나를 포함할 수 있다. 센서 모듈(440)은 전자 장치의 작동 상태의 감지 및/또는 물리 특성의 계측을 수행하고, 감지되거나 계측된 정보를 전기 신호로 변환할 수 있다. 부가적으로 또는 대안적으로, 센서 모듈(440)은 예컨대 전자 코 센서(electrical nose sensor; 도시되지 않음), EMG 센서(electromyography sensor; 도시되지 않음), EEG 센서(electroencephalogram sensor; 도시되지 않음), ECG 센서(electrocardiogram sensor; 도시되지 않음), IR(infrared) 센서(도시되지 않음), 눈동자 스캐닝 센서(예를 들어, 홍채 센서; 도시되지 않음), 지문 센서(도시되지 않음) 등도 또한 포함할 수 있다. 센서 모듈(440)은 그 내부에 포함된 적어도 하나의 센서를 제어하기 위한 제어 회로도 또한 포함할 수도 있다.The sensor module 440 may measure physical/environmental characteristics, detect an operating state related to the electronic device 401, etc., and convert the measured and/or sensed information into a signal such as an electrical signal or an electromagnetic signal. have. For example, the sensor module 440 may include a gesture sensor 440A, a gyro sensor 440B, a barometric pressure sensor 440C, a magnetic sensor 440D, an acceleration sensor 440E, a grip sensor 440F, a proximity sensor 440G, It may include at least one of an RGB sensor 440H, a biometric sensor 440I, a temperature/humidity sensor 440J, an illuminance sensor 440K, and an Ultra Violet (UV) sensor 440M. The sensor module 440 may detect an operating state of the electronic device and/or measure a physical characteristic, and may convert the sensed or measured information into an electrical signal. Additionally or alternatively, the sensor module 440 may include, for example, an electrical nose sensor (not shown), an electromyography sensor (not shown), an electroencephalogram sensor (not shown), an EEG sensor (not shown); It may also include an electrocardiogram sensor (not shown), an infrared (IR) sensor (not shown), an eye scanning sensor (eg, an iris sensor; not shown), a fingerprint sensor (not shown), and the like. have. The sensor module 440 may also include a control circuit for controlling at least one sensor included therein.

입력 모듈(450)는 터치 패널(452), 펜 센서(pen sensor)(454), 키(key)(456), 초음파 입력 장치(458) 등을 포함할 수 있다.The input module 450 may include a touch panel 452 , a pen sensor 454 , a key 456 , an ultrasonic input device 458 , and the like.

예컨대, 터치 패널(452)은 정전식, 감압식, 적외선 방식, 초음파 방식 등을 사용하여 터치 입력을 감지할 수 있다. 터치 패널(452)은 터치 패널 제어기(도시되지 않음)도 또한 포함할 수 있다. 예컨대, 정전식 터치 패널은 물리적 터치 입력에 추가하여 또는 그 대안으로 근접 입력, 예를 들어 호버링(hovering) 입력을 감지할 수 있다. 터치 패널(452)은 택타일 레이어(tactile layer)도 또한 포함할 수 있다. 본 개시의 다양한 실시예들에 따르면, 터치 패널(452)은 택타일 레이어를 사용하여 사용자에게 햅틱 피드백을 제공할 수 있다.For example, the touch panel 452 may sense a touch input using a capacitive type, a pressure sensitive type, an infrared type, an ultrasonic type, or the like. Touch panel 452 may also include a touch panel controller (not shown). For example, a capacitive touch panel may sense a proximity input, eg, a hovering input, in addition to or as an alternative to physical touch input. The touch panel 452 may also include a tactile layer. According to various embodiments of the present disclosure, the touch panel 452 may provide haptic feedback to the user by using a tactile layer.

예컨대, 펜 센서(454)는 사용자로부터 터치 입력을 받는 것과 동일하거나 유사한 방법 또는 별도의 검출 시트(sheet)(예를 들어, 디지타이저(digitizer))를 사용하여 구현될 수 있다. 예컨대, 키(456)는 키패드, 터치 키 등일 수 있다. 예컨대, 초음파 입력 장치(458)는 초음파 신호를 발생할 수 있는 장치에 의해 발생한 초음파 신호를 마이크로폰(예를 들어, 마이크로폰(488))을 사용해서 감지하여 데이터를 확인하도록 구성된 장치일 수 있다. 초음파 입력 장치(458)는 무선으로 데이터를 감지할 수도 있다.For example, the pen sensor 454 may be implemented using the same or similar method as receiving a touch input from a user or a separate detection sheet (eg, a digitizer). For example, key 456 may be a keypad, touch key, or the like. For example, the ultrasound input device 458 may be a device configured to check data by detecting an ultrasound signal generated by a device capable of generating an ultrasound signal using a microphone (eg, the microphone 488 ). The ultrasound input device 458 may wirelessly sense data.

본 개시의 다양한 실시예들에 따르면, 전자 장치(401)는 통신 모듈(401)을 사용하여 전자 장치(401)와 연결된 외부 장치, 예를 들어 네트워크, 컴퓨터, 또는 서버로부터 사용자 입력을 수신할 수 있다.According to various embodiments of the present disclosure, the electronic device 401 may receive a user input from an external device connected to the electronic device 401 using the communication module 401, for example, a network, a computer, or a server. have.

디스플레이 모듈(460), 예를 들어 디스플레이(150)는 패널(462), 홀로그램 장치(464), 프로젝터(466) 등을 포함할 수 있다. 예컨대, 패널(462)은 LCD(Liquid-Crystal Display), AM-OLED(Active-Matrix Organic Light-Emitting Diode) 디스플레이 등일 수 있다. 예컨대, 패널(462)은 플렉서블(flexible)하게, 투명하게(transparent), 및/또는 착용 가능하게(wearable) 구현될 수 있다. 패널(462)과 터치 패널(452)은 단일 모듈로 구현될 수도 있다. 홀로그램 장치(464)는 입체 영상을 제공할 수 있다. 예컨대, 홀로그램 장치(464)는 광파의 간섭을 이용하여 입체 영상을 허공에 제공할 수 있다. 프로젝터(466)는 표면, 예를 들어 벽, 스크린 등에 빛을 투사하여 영상을 제공할 수 있다. 예컨대, 상기 표면은 전자 장치(401)의 내부 또는 외부에 위치할 수 있다. 본 개시의 다양한 실시예들에 따르면, 디스플레이 모듈(460)은 패널(462), 홀로그램 장치(464), 프로젝터(466) 등을 제어하기 위한 제어 회로도 또한 포함할 수 있다.The display module 460 , for example the display 150 , may include a panel 462 , a hologram device 464 , a projector 466 , and the like. For example, the panel 462 may be a liquid-crystal display (LCD), an active-matrix organic light-emitting diode (AM-OLED) display, or the like. For example, the panel 462 may be implemented to be flexible, transparent, and/or wearable. The panel 462 and the touch panel 452 may be implemented as a single module. The hologram device 464 may provide a stereoscopic image. For example, the hologram device 464 may provide a stereoscopic image in the air using interference of light waves. The projector 466 may provide an image by projecting light onto a surface, for example, a wall, a screen, or the like. For example, the surface may be located inside or outside the electronic device 401 . According to various embodiments of the present disclosure, the display module 460 may also include a control circuit for controlling the panel 462 , the hologram device 464 , the projector 466 , and the like.

인터페이스(470)는 예컨대 HDMI(High-Definition Multimedia Interface)(472), USB(474), 광 인터페이스(optical interface)(476), D-sub(D-subminiature)(478) 등을 포함할 수 있다. 예컨대, 인터페이스(470)는 통신 인터페이스(420)의 일부일 수 있다. 부가적으로 또는 대안적으로, 인터페이스(470)는 예컨대 MHL(Mobile High-Definition Link) 인터페이스, SD(Secure Digital)/MMC(Multi-Media Card) 인터페이스, IrDA(Infrared Data Association) 규격 인터페이스 등 중의 적어도 하나를 포함할 수 있다.The interface 470 may include, for example, a High-Definition Multimedia Interface (HDMI) 472 , a USB 474 , an optical interface 476 , a D-subminiature (D-sub) 478 , and the like. . For example, interface 470 may be part of communication interface 420 . Additionally or alternatively, the interface 470 may include, for example, at least one of a Mobile High-Definition Link (MHL) interface, a Secure Digital (SD)/Multi-Media Card (MMC) interface, an Infrared Data Association (IrDA) standard interface, and the like. may contain one.

오디오 모듈(480)은 소리를 전기 신호로 그리고 그 역으로 인코딩/디코딩할 수 있다. 본 개시의 다양한 실시예들에 따르면, 오디오 모듈(480)의 적어도 일부는 I/O 인터페이스(140)의 일부일 수 있다. 예컨대, 오디오 모듈(480)은 스피커(482), 리시버(484), 이어폰(486), 마이크로폰(488) 등으로 입력된 또는 그로부터 출력된 음성 정보를 인코딩/디코딩할 수 있다.Audio module 480 may encode/decode sound into electrical signals and vice versa. According to various embodiments of the present disclosure, at least a portion of the audio module 480 may be a portion of the I/O interface 140 . For example, the audio module 480 may encode/decode voice information input to or output from the speaker 482 , the receiver 484 , the earphone 486 , the microphone 488 , and the like.

카메라 모듈(491)은 정지 영상 및/또는 동영상을 촬영할 수 있다. 본 개시의 다양한 실시예들에 따르면, 카메라 모듈(491)은 적어도 하나의 이미지 센서(예를 들어, 전면 센서 모듈, 후면 센서 모듈 등; 도시되지 않음), 영상 신호 프로세서(ISP(Image Signal Processor); 도시되지 않음), 플래시(예를 들어, LED, 제논 램프(xenon lamp) 등; 도시되지 않음)를 포함할 수 있다.The camera module 491 may capture a still image and/or a moving image. According to various embodiments of the present disclosure, the camera module 491 includes at least one image sensor (eg, a front sensor module, a rear sensor module, etc.; not shown), an image signal processor (ISP). ; not shown), and a flash (eg, LED, xenon lamp, etc.; not shown).

전력 관리 모듈(495)은 전자 장치(401)의 전력을 관리할 수 있다. 도시되지는 않았지만, 전력 관리 모듈(495)은 예컨대 PMIC(Power Management Integrated Circuit), 충전 IC(charger Integrated Circuit), 배터리 게이지, 연료 게이지 등을 포함할 수 있다.The power management module 495 may manage power of the electronic device 401 . Although not shown, the power management module 495 may include, for example, a power management integrated circuit (PMIC), a charger integrated circuit (IC), a battery gauge, a fuel gauge, and the like.

예컨대, PMIC는 집적회로 또는 SoC 반도체에 탑재될 수 있다. 전자 장치(410)의 충전 방식은 유선 충전과 무선 충전을 포함할 수 있다. 충전 IC는 배터리를 충전할 수 있고, 충전기로부터의 과전압 또는 과전류가 전자 장치(401) 등에 유입되는 것을 방지할 수 있다. 본 개시의 다양한 실시예들에 따르면, 충전 IC는 유선 충전 IC와 무선 충전 IC 중의 적어도 하나를 포함할 수 있다. 예컨대, 무선 충전 IC는 자기 공명 방식, 자기 유도 방식, 전자기파 방식 등일 수 있다. 예컨대, 무선 충전 IC는 코일 루프, 공진 회로, 정류기 등의 회로들을 포함할 수 있다. 예컨대, 배터리 게이지는 배터리(496)의 잔량, 충전 중 전압, 온도 등을 측정할 수 있다. 예컨대, 배터리(496)는 전자 장치(401)에 전원을 공급할 수 있다. 예컨대, 배터리(496)는 충전식 전지(rechargeable battery), 태양 전지(solar battery) 등일 수 있다.For example, the PMIC may be mounted on an integrated circuit or SoC semiconductor. The charging method of the electronic device 410 may include wired charging and wireless charging. The charger IC may charge a battery and prevent an overvoltage or overcurrent from the charger from flowing into the electronic device 401 or the like. According to various embodiments of the present disclosure, the charging IC may include at least one of a wired charging IC and a wireless charging IC. For example, the wireless charging IC may be a magnetic resonance method, a magnetic induction method, an electromagnetic wave method, or the like. For example, the wireless charger may include circuits such as a coil loop, a resonance circuit, and a rectifier. For example, the battery gauge may measure a remaining amount of the battery 496 , a voltage during charging, a temperature, and the like. For example, the battery 496 may supply power to the electronic device 401 . For example, the battery 496 may be a rechargeable battery, a solar battery, or the like.

인디케이터(497)는 전자 장치(401) 또는 그 일부(예를 들어, AP(410))의 적어도 하나의 상태, 예를 들어 부팅 상태, 메시지 상태, 충전 상태 등을 표시할 수 있다. 모터(498)는 전기 신호를 기계적 진동으로 변환할 수 있다.The indicator 497 may display at least one state of the electronic device 401 or a part thereof (eg, the AP 410 ), for example, a booting state, a message state, a charging state, and the like. Motor 498 may convert electrical signals into mechanical vibrations.

도시되지는 않았지만, 전자 장치(401)는 모바일 텔레비전(모바일 TV)을 지원하기 위한 적어도 하나의 장치, 예를 들어 GPU(graphics processing Unit) 등을 포함할 수 있다. 모바일 TV 지원을 위한 장치는 예컨대 DMB(Digital Multimedia Broadcasting), DVB(Digital Video Broadcasting), 미디어플로우(media flow) 등의 규격에 따른 미디어 데이터의 처리를 지원할 수 있다.Although not shown, the electronic device 401 may include at least one device for supporting a mobile television (mobile TV), for example, a graphics processing unit (GPU). An apparatus for supporting mobile TV may support processing of media data according to standards such as Digital Multimedia Broadcasting (DMB), Digital Video Broadcasting (DVB), and media flow.

특허 청구 범위 및 본 명세서의 설명에 따른 본 개시의 다양한 실시예들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될 수 잇다는 것을 알아야 할 것이다.It should be understood that various embodiments of the present disclosure according to the claims and description of the present specification may be implemented in the form of hardware, software, or a combination of hardware and software.

그러한 임의의 소프트웨어는 비일시적(non-transitory) 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 비일시적 컴퓨터 판독 가능 저장 매체는 하나 이상의 프로그램들(소프트웨어 모듈들)을 저장하고 있고, 그 하나 이상의 프로그램들은 전자 장치의 하나 이상의 프로세서들에 의해 실행될 때에 전자 장치가 본 개시의 방법을 수행하게 하는 명령들을 포함한다.Any such software may be stored in a non-transitory computer-readable storage medium. The non-transitory computer-readable storage medium stores one or more programs (software modules), the one or more programs instructions that, when executed by one or more processors of the electronic device, cause the electronic device to perform the method of the present disclosure include those

그러한 임의의 소프트웨어는 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 및/또는 비휘발성 저장 장치의 형태로, 또는 RAM, 메모리 칩, 장치 또는 집적 회로 등의 메모리, CD, DVD, 자기 디스크, 또는 자기 테이프 등의 광학적으로 또는 자기적으로 판독 가능한 매체의 형태로 저장될 수 있다. 저장 장치들 및 저장 매체들은 실행 시에 본 개시의 다양한 실시예들을 구현하는 명령들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 판독 가능한 비일시적 저장 매체의 여러 실시예들임을 알아야 할 것이다. 따라서 다양한 실시예들은 본 명세서의 청구항들 중의 어느 한 항에서 청구된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 그러한 프로그램을 저장하는 기계로 판독 가능한 저장 장치를 포함한다.Any such software, whether erasable or rewritable, may be in the form of volatile and/or non-volatile storage devices, such as storage devices such as ROM, or memory, CDs, CDs, such as RAM, memory chips, devices or integrated circuits; It may be stored in the form of an optically or magnetically readable medium such as a DVD, magnetic disk, or magnetic tape. It should be appreciated that the storage devices and storage media are various embodiments of a machine-readable non-transitory storage medium suitable for storing a program or programs comprising instructions that, when executed, implement various embodiments of the present disclosure. Accordingly, various embodiments include a program comprising code for implementing an apparatus or method as claimed in any one of the claims herein, and a machine-readable storage device storing such a program.

본 개시를 그 다양한 실시예들을 참조하여 도시하고 설명하였지만, 당업자라면 첨부된 특허 청구 범위 및 그 균등물에 의해 정해지는 본 개시의 사상 및 범위를 벗어남이 없이 본 개시에서 형태 및 세부의 다양한 변경들이 이뤄질 수 있다는 것을 이해할 것이다. 본 개시의 다양한 실시예들은 단지 예로서 기재된 것이지, 본 개시의 범위를 한정하려는 것이 아니다. 따라서 본 개시의 범위는 본 개시의 기술 사상을 벗어남이 없이 이뤄질 수 있는 임의의 변경 및 모든 변경들을 망라하는 것으로 해석되어야 한다.While the present disclosure has been shown and described with reference to its various embodiments, those skilled in the art may make various changes in form and detail in this disclosure without departing from the spirit and scope of the disclosure as defined by the appended claims and their equivalents. You will understand that it can be done. The various embodiments of the present disclosure are described by way of example only, and are not intended to limit the scope of the present disclosure. Accordingly, the scope of the present disclosure should be construed to cover any and all modifications that may be made without departing from the spirit of the present disclosure.

101. 104. 401: 전자 장치 110: 버스
120: 프로세서 130: 메모리
140: I/O 인터페이스 150: 디스플레이
160: 통신 인터페이스 170: 샌드박스 모듈
101. 104. 401: electronic device 110: bus
120: processor 130: memory
140: I/O interface 150: display
160: communication interface 170: sandbox module

Claims (20)

애플리케이션 컨테이너를 생성하는 방법으로서,
전자 장치의 프로세서에 의해, 상기 전자 장치의 표시부에 표시된 다수의 애플리케이션들 중에서 타깃 애플리케이션의 선택을 식별하는 단계;
상기 프로세서에 의해, 상기 타깃 애플리케이션과 대응하는 정책 파일을 획득하는 단계;
상기 프로세서에 의해, 상기 정책 파일에 근거하여 상기 타깃 애플리케이션에 대한 카테고리 정보를 식별하는 단계;
상기 프로세서에 의해, 상기 타깃 애플리케이션의 카테고리에 대응하는 애플리케이션 컨테이너를 생성하는 단계;
상기 프로세서에 의해, 상기 타깃 애플리케이션의 카테고리를 보안 컨텍스트에 할당하는 단계; 및
상기 프로세서에 의해, 상기 애플리케이션 컨테이너에서 상기 타깃 애플리케이션을 실행하는 단계를 포함하고,
상기 타깃 애플리케이션의 데이터 파일 객체들은 상기 타깃 애플리케이션의 카테고리에 따라 라벨링되고,
상기 보안 컨텍스트는 상기 타깃 애플리케이션의 데이터 파일 객체들의 커널 레벨 분리 및 미들웨어 레벨 분리를 제공하는 방법.
A method of creating an application container, comprising:
identifying, by a processor of the electronic device, selection of a target application from among a plurality of applications displayed on a display unit of the electronic device;
obtaining, by the processor, a policy file corresponding to the target application;
identifying, by the processor, category information for the target application based on the policy file;
generating, by the processor, an application container corresponding to the category of the target application;
assigning, by the processor, a category of the target application to a security context; and
executing, by the processor, the target application in the application container;
the data file objects of the target application are labeled according to the category of the target application;
The security context provides kernel level separation and middleware level separation of data file objects of the target application.
제 1 항에 있어서,상기 프로세서에 의해, 상기 타깃 애플리케이션의 카테고리를 포함하는, 상기 타깃 애플리케이션에 대한 카테고리 정보를 생성하는 단계를 더 포함하는 방법.The method of claim 1 , further comprising, by the processor, generating category information for the target application, including the category of the target application. 제 2 항에 있어서, 상기 타깃 애플리케이션에 대한 상기 카테고리 정보를 생성하는 단계는 상기 타깃 애플리케이션의 카테고리를 지시하는 사용자 입력을 수신하는 단계를 포함하는 방법.The method of claim 2 , wherein the generating of the category information for the target application comprises receiving a user input indicating a category of the target application. 제 3 항에 있어서, 상기 타깃 애플리케이션의 카테고리를 지시하는 상기 사용자 입력을 수신하는 단계는 적어도 하나의 미리 정해진 카테고리 중에서 하나의 카테고리를 선택하는 사용자 입력을 수신하는 단계 또는 새로운 카테고리와 대응하는 사용자 입력을 수신하는 단계 중의 적어도 하나를 포함하는 방법.The method of claim 3, wherein the receiving of the user input indicating the category of the target application comprises receiving a user input for selecting one category from among at least one predetermined category or receiving a user input corresponding to a new category. A method comprising at least one of receiving. 제 4 항에 있어서, 상기 프로세서에 의해, 상기 타깃 애플리케이션을 상기 적어도 하나의 미리 정해진 카테고리 중의 하나의 카테고리 또는 상기 새로운 카테고리 중의 적어도 하나에 할당하는 단계를 더 포함하는 방법.5. The method of claim 4, further comprising assigning, by the processor, the target application to one of the at least one predefined category or to at least one of the new category. 제 5 항에 있어서,
상기 프로세서에 의해, 상기 타깃 애플리케이션과 대응하는 상기 정책 파일을 상기 타깃 애플리케이션의 카테고리를 포함하고 상기 카테고리 정보와 상응하도록 업데이트하는 단계; 및
상기 프로세서에 의해, 상기 타깃 애플리케이션과 대응하는 데이터 파일 객체들을 상기 타깃 애플리케이션의 카테고리와 관련되도록 업데이트하는 단계를 더 포함하는 방법.
6. The method of claim 5,
updating, by the processor, the policy file corresponding to the target application to include a category of the target application and to correspond to the category information; and
updating, by the processor, data file objects corresponding to the target application to be associated with a category of the target application.
제 1 항에 있어서, 상기 타깃 애플리케이션의 카테고리에 포함되는 다른 애플리케이션이 상기 타깃 애플리케이션의 카테고리에 포함되지 않는 애플리케이션들과 자원들, 정보, 애플리케이션 데이터 및 코드 실행 중의 어떠한 것도 공유하지 않는 방법.The method of claim 1 , wherein another application included in the category of the target application does not share any of resources, information, application data and code execution with applications not included in the category of the target application. 제 1 항에 있어서, 상기 정책 파일은 사용자에 의해 선택된 상기 타깃 애플리케이션과 대응하는 정보를 포함하는 방법.The method of claim 1 , wherein the policy file includes information corresponding to the target application selected by a user. 제 8 항에 있어서, 상기 정책 파일에 포함되는 정보는 상기 선택된 타깃 애플리케이션과 대응하는 애플리케이션 명칭, 디지털 인증서, 및 관련 카테고리 중의 적어도 하나인 방법.The method of claim 8 , wherein the information included in the policy file is at least one of an application name corresponding to the selected target application, a digital certificate, and a related category. 제 8 항에 있어서, 상기 정책 파일은 상기 전자 장치의 변하는 환경을 기반으로 하여 수정 및 변경되는 정책 파일 및 상기 전자 장치의 사용자의 필요에 따라 수정 및 변경되는 정책 파일 중의 적어도 하나인 방법.The method of claim 8 , wherein the policy file is at least one of a policy file that is modified and changed based on a changing environment of the electronic device and a policy file that is modified and changed according to the needs of a user of the electronic device. 애플리케이션 컨테이너를 생성하는 전자 장치로서,
표시부; 및
프로세서를 포함하고, 상기 프로세서는,
상기 전자 장치에 포함된 적어도 하나의 애플리케이션을 표시하도록 상기 표시부를 제어하고,
상기 전자 장치에 포함된 상기 적어도 하나의 애플리케이션 중에서 타깃 애플리케이션의 선택을 식별하고,
상기 타깃 애플리케이션과 대응하는 정책 파일을 획득하고,
상기 정책 파일에 근거하여 상기 타깃 애플리케이션에 대한 카테고리 정보를 식별하고,
상기 타깃 애플리케이션의 카테고리에 대응하는 애플리케이션 컨테이너를 생성하고,
상기 타깃 애플리케이션의 카테고리를 보안 컨텍스트에 할당하고,
상기 애플리케이션 컨테이너에서 상기 타깃 애플리케이션을 실행하도록 구성되고,
상기 타깃 애플리케이션의 데이터 파일 객체들은 상기 타깃 애플리케이션의 카테고리에 따라 라벨링되고,
상기 보안 컨텍스트는 상기 타깃 애플리케이션의 데이터 파일 객체들의 커널 레벨 분리 및 미들웨어 레벨 분리를 제공하는 전자 장치.
An electronic device for creating an application container, comprising:
display unit; and
A processor comprising:
controlling the display unit to display at least one application included in the electronic device;
identify a selection of a target application among the at least one application included in the electronic device;
obtain a policy file corresponding to the target application;
identify category information for the target application based on the policy file;
create an application container corresponding to the category of the target application;
assign a category of the target application to a security context;
configured to run the target application in the application container;
the data file objects of the target application are labeled according to the category of the target application;
The security context provides kernel-level separation and middleware-level separation of data file objects of the target application.
제 11 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션의 카테고리를 포함하는, 상기 타깃 애플리케이션에 대한 카테고리 정보를 생성하도록 더 구성되는 전자 장치.The electronic device of claim 11 , wherein the processor is further configured to generate category information for the target application including a category of the target application. 제 12 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션의 카테고리를 지시하는 사용자 입력을 수신하도록 더 구성되고,
상기 표시부는 상기 사용자 입력과 대응하는 터치 입력을 수신하도록 더 구성되는 전자 장치.
13. The method of claim 12, wherein the processor is further configured to receive a user input indicating a category of the target application;
The display unit is further configured to receive a touch input corresponding to the user input.
제 13 항에 있어서, 상기 프로세서는 적어도 하나의 미리 정해진 카테고리 중에서 하나의 카테고리를 선택하는 사용자 입력 및 새로운 카테고리와 대응하는 사용자 입력 중의 적어도 하나를 수신하도록 더 구성되는 전자 장치.The electronic device of claim 13 , wherein the processor is further configured to receive at least one of a user input for selecting one category from among at least one predetermined category and a user input corresponding to a new category. 제 14 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션을 상기 적어도 하나의 미리 정해진 카테고리 중의 하나의 카테고리 및 상기 새로운 카테고리 중의 적어도 하나에 할당하도록 더 구성되는 전자 장치.15. The electronic device of claim 14, wherein the processor is further configured to assign the target application to one of the at least one predefined category and to at least one of the new category. 제 15 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션과 대응하는 상기 정책 파일을 상기 타깃 애플리케이션의 카테고리를 포함하고 상기 카테고리 정보와 상응하도록 업데이트하도록 더 구성되고;
상기 프로세서는 상기 타깃 애플리케이션과 대응하는 데이터 파일 객체들을 상기 타깃 애플리케이션의 카테고리와 관련되게끔 업데이트하도록 더 구성되는 전자 장치.
16. The method of claim 15, wherein the processor is further configured to: update the policy file corresponding to the target application to include a category of the target application and to correspond to the category information;
and the processor is further configured to update data file objects corresponding to the target application to be associated with a category of the target application.
제 11 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션의 카테고리에 포함되지 않는 애플리케이션들과 자원들, 정보, 애플리케이션 데이터 및 코드 실행 중의 어떠한 것도 공유하지 않도록 더 구성되는 전자 장치.The electronic device of claim 11 , wherein the processor is further configured to not share any of resources, information, application data and code execution with applications not included in the category of the target application. 제 11 항에 있어서, 상기 정책 파일은 사용자에 의해 선택된 상기 타깃 애플리케이션과 대응하는 정보를 포함하는 전자 장치.The electronic device of claim 11 , wherein the policy file includes information corresponding to the target application selected by a user. 제 18 항에 있어서, 상기 정책 파일에 포함되는 정보는 상기 선택된 타깃 애플리케이션과 대응하는 애플리케이션 명칭, 디지털 인증서, 및 관련 카테고리 중의 적어도 하나인 전자 장치.The electronic device of claim 18 , wherein the information included in the policy file is at least one of an application name corresponding to the selected target application, a digital certificate, and a related category. 제 18 항에 있어서, 상기 정책 파일은 상기 전자 장치의 변하는 환경을 기반으로 하여 수정 및 변경되는 정책 파일 및 상기 전자 장치의 사용자의 필요에 따라 수정 및 변경되는 정책 파일 중의 적어도 하나인 전자 장치.
The electronic device of claim 18 , wherein the policy file is at least one of a policy file that is modified and changed based on a changing environment of the electronic device and a policy file that is modified and changed according to the needs of a user of the electronic device.
KR1020150022688A 2014-02-21 2015-02-13 Method and apparatus to sandbox run-time android applications with lightweight container KR102333425B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201580009796.XA CN106030601B (en) 2014-02-21 2015-02-16 The method and apparatus of Android application creation sandbox when for using Lightweight Container to operation
EP15752239.2A EP3108398B1 (en) 2014-02-21 2015-02-16 Method and apparatus to sandbox run-time android applications with lightweight container
PCT/KR2015/001586 WO2015126133A1 (en) 2014-02-21 2015-02-16 Method and apparatus to sandbox run-time android applications with lightweight container

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461942902P 2014-02-21 2014-02-21
US61/942,902 2014-02-21
US14/555,950 US10181028B2 (en) 2014-02-21 2014-11-28 Method and apparatus to sandbox run-time android applications with lightweight container
US14/555,950 2014-11-28

Publications (2)

Publication Number Publication Date
KR20150099440A KR20150099440A (en) 2015-08-31
KR102333425B1 true KR102333425B1 (en) 2021-12-02

Family

ID=78866934

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150022688A KR102333425B1 (en) 2014-02-21 2015-02-13 Method and apparatus to sandbox run-time android applications with lightweight container

Country Status (1)

Country Link
KR (1) KR102333425B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857009B1 (en) 2017-01-19 2018-05-11 숭실대학교산학협력단 Container-based platform for android malware analysis and security method using the same in a mobile device
US11132440B2 (en) 2018-11-01 2021-09-28 Foundation Of Soongsil University-Industry Cooperation Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device
KR102151315B1 (en) * 2018-11-01 2020-09-02 숭실대학교산학협력단 Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device
KR102459269B1 (en) * 2020-11-19 2022-10-26 숭실대학교 산학협력단 Software packaging device and method for performing binary analysis, and recorded media recorded of the program for performing the same
CN116466958B (en) * 2023-03-21 2023-11-21 摩尔线程智能科技(北京)有限责任公司 Construction method and device of An Zhuo Rongqi, electronic equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2533168B1 (en) * 2011-06-07 2017-01-25 BlackBerry Limited Method and devices for managing permission requests to allow access to computing resource

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management

Also Published As

Publication number Publication date
KR20150099440A (en) 2015-08-31

Similar Documents

Publication Publication Date Title
EP3108398B1 (en) Method and apparatus to sandbox run-time android applications with lightweight container
US10021103B2 (en) Service authorization methods and apparatuses
KR102320151B1 (en) Electronic devcie for installing application and method for cotrolling thereof
USRE48311E1 (en) Apparatus and method for running multiple instances of a same application in mobile devices
EP3100410B1 (en) Apparatus and method for providing a service
KR20160101826A (en) Multi-Users Based Device
CN105809028B (en) Apparatus and method for running multiple instances of the same application in a mobile device
KR102277460B1 (en) Method for sharing a display and electronic device thereof
KR20160097511A (en) Permission control method and Electronic device operating the same
KR102304694B1 (en) Electronic device and method for determining waterproofing of the electronic device
KR102333425B1 (en) Method and apparatus to sandbox run-time android applications with lightweight container
US20170192746A1 (en) Method for outputting sound and electronic device supporting the same
US10430091B2 (en) Electronic device and method for storing security information thereof
US20170078269A1 (en) Method for managing application and electronic device supporting the same
WO2015126133A1 (en) Method and apparatus to sandbox run-time android applications with lightweight container
US10360375B2 (en) Electronic device for executing application and method of controlling same
EP3131031A1 (en) Content security processing method and electronic device supporting the same
EP2908502B1 (en) Providing control in a multi user environment
EP2911082B1 (en) Apparatus, method, and system for accessing and managing security libraries

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