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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/37—Managing security policies for mobile devices or for controlling mobile applications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- User Interface Of Digital Computer (AREA)
- Telephone Function (AREA)
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.
Description
본 개시는 런타임(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
버스(110)는 회로를 포함한 하드웨어 장치일 수 있고, 전술한 구성 요소들을 연결할 수 있으며, 전술한 구성 요소들 간의 통신을 가능하게 할 수 있다. 예컨대, 버스(110)는 전자 장치(101)의 구성 요소들을 연결하여 연결된 구성 요소들 간에 전달될 제어 메시지들 및/또는 기타의 정보를 전송 및/또는 수신하게 할 수 있다.The
프로세서(120)는 예컨대 다른 구성 요소들, 예를 들어 메모리(130), I/O 인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 샌드박스 모듈(170) 등으로부터 명령을 수신하고, 수신된 명령을 해석하며, 해석된 명령에 따라 계산 및/또는 데이터 처리를 실행할 수 있다.The
메모리(130)는 예컨대 다른 구성 요소들, 예를 들어 프로세서(120), I/O 인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 샌드박스 모듈(170) 등으로부터 수신된 및/또는 등에 의해 생성된 명령 및/또는 데이터를 저장할 수 있다. 예컨대, 메모리(130)는 커널(131), 미들웨어(132), 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API)(133), 애플리케이션(134) 등의 프로그래밍 모듈들을 포함할 수 있다. 전술한 프로그래밍 모듈들은 각각 소프트웨어, 펌웨어, 및 하드웨어 중의 적어도 2개의 조합을 포함할 수 있다.
커널(131)은 미들웨어(132), API(133), 애플리케이션(134) 등의 다른 프로그래밍 모듈들에서 구현되는 동작들 또는 기능들을 실행하는데 사용될 수 있는 시스템 자원들, 예를 들어 버스(110), 프로세서(120), 메모리(130) 등을 제어 및/또는 관리할 수 있다. 커널(131)은 미들웨어(132), API(133), 애플리케이션(134) 등이 전자 장치(101)의 개별 구성 요소들에 액세스할 수 있게 하거나 다른 방식으로 그것을 용이하게 하는 인터페이스를 제공할 수 있다.
미들웨어(132)는 커널(131)이 API(133), 애플리케이션(134) 등과 통신하여 데이터를 송수신할 수 있게 하는 매체 및/또는 임의의 적절한 하드웨어 및/또는 소프트웨어일 수 있다. 미들웨어(132)는 애플리케이션(134)에 의해 생성된 및/또는 애플리케이션(134)과 대응하는 작업 요청들을 제어할 수 있다. 예컨대, 그러한 작업 요청들의 스케줄링, 로드 밸런싱(load balancing) 등을 수행할 수 있다. 예컨대, 미들웨어(132)는 전자 장치(101)의 시스템 자원들(예를 들어, 버스(110), 프로세서(120), 메모리(130) 등)을 사용하는 것에 대한 우선 순위를 애플리케이션(134)에 할당함으로써 애플리케이션9134)에 의한 작업 요청들을 제어할 수 있다.
API(133)는 커널(131), 미들웨어(132) 등에서 애플리케이션(134)이 제공할 수 있는 기능들을 제어하는 인터페이스일 수 있다. 예컨대, API(133) 파일 제어, 윈도우 제어, 비디오 처리, 문자 제어 등을 위한 적어도 하나의 인터페이스 및/또는 기능, 예를 들어 명령(command)을 포함할 수 있다.The
본 개시의 다양한 실시예들에 따르면, 애플리케이션(134)은 단문 메시지 서비스(SMS) 애플리케이션, 멀티미디어 메시징 서비스(MMS) 애플리케이션, e-메일 애플리케이션, 캘린더 애플리케이션, 알람 애플리케이션, 예를 들어 운동량 애플리케이션, 혈당 레벨 측정 애플리케이션 등의 헬스 케어 애플리케이션, 예를 들어 기압, 습도, 온도 정보를 제공할 수 있는 애플리케이션 등의 환경 정보 애플리케이션, 인스턴트 메시징 애플리케이션, 통화 애플리케이션, 인터넷 브라우징 애플리케이션, 게임 애플리케이션, 미디어 재생 애플리케이션, 이미지/비디오 캡처 애플리케이션, 파일 관리 애플리케이션 등을 포함할 수 있다. 부가적으로 및/또는 대안적으로, 애플리케이션(134)은 전자 장치(101)와 외부 전자 장치, 예를 들어 전자 장치(104) 간의 정보 교환과 관련된 애플리케이션일 수도 있다. 일례로, 정보 교환과 관련된 애플리케이션(134)은 외부 전자 장치에 일정 타입의 정보를 제공할 수 있는 통지 중계 애플리케이션(notification relay application), 외부 전자 장치를 관리할 수 있는 장치 관리 애플리케이션 등을 포함할 수 있다.According to various embodiments of the present disclosure, the
일례로, 통지 중계 애플리케이션은 전자 장치(101)에 포함된 다른 애플리케이션들, 예를 들어 SMS/MMS 애플리케이션, e-메일 애플리케이션, 헬스 케어 애플리케이션, 환경 정보 애플리케이션, 인스턴트 메시징 애플리케이션, 통화 애플리케이션, 인터넷 브라우징 애플리케이션, 게임 애플리케이션, 미디어 재생 애플리케이션, 이미지/비디오 캡처 애플리케이션, 파일 관리 애플리케이션 등에 의해 생성된 통지를 외부 전자 장치, 예를 들어 전자 장치(104)에게 제공하는 기능을 포함할 수 있다. 부가적으로, 통지 중계 애플리케이션은 예컨대 외부 전자 장치, 예를 들어 전자 장치(104)로부터의 수신 통지를 제공할 수 있고, 그 통지를 사용자에게 제공할 수 있다.For example, the notification relay application may include other applications included in the
일례로, 장치 관리 애플리케이션은 전자 장치(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
본 개시의 다양한 실시예들에 따르면, 일례로, 애플리케이션(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
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/
디스플레이(150)는 다양한 타입의 정보, 예를 들어 멀티미디어, 텍스트 데이터 등을 사용자에게 표시할 수 있다. 일례로, 디스플레이(150)는 사용자가 전자 장치(101)와 인터랙션(interaction)할 수 있게 하는 수단인 그래픽 사용자 인터페이스(Graphical User Interface; GUI)를 표시할 수 있다.The
통신 인터페이스(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
본 개시의 다양한 실시예들에 따르면, 네트워크(162)는 통신 네트워크(telecommunication network)일 수 있다. 일례로, 통신 네트워크는 컴퓨터 네트워크, 인터넷, 사물 인터넷(Internet of Things), 전화 네트워크 등 중의 적어도 하나를 포함할 수 있다. 전자 장치(101)와 외부 전자 장치 간의 통신을 위한 프로토콜, 예를 들어 전송 계층 프로토콜, 데이터 링크 프로토콜, 물리 계층 프로토콜 등이 애플리케이션(134), API(133), 미들웨어(132), 커널(131), 통신 인터페이스(160) 등 중의 적어도 하나에 의해 지원될 수 있다.According to various embodiments of the present disclosure, the
샌드박스 모듈(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
도 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
예컨대, 보안 서비스를 제공하는 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
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
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
도 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
도 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
다음으로, 동작 302에서, 전자 장치(101)가 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 정책 파일을 획득할 수 있다. 정책 파일은 애플리케이션 명칭, 디지털 인증서, 관련 카테고리와 같은, 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 정보 및 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 임의의 다른 유사한 또는 적절한 정보를 포함할 수 있다. 정책 파일은 전자 장치(101) 등의 장치의 변하는 환경을 기반으로 하거나 또는 사용자의 필요에 따라 수정 또는 변경될 수 있다. 정책 파일은 메모리(130)에 저장될 수 있거나 메모리(130)로부터 또는 정책 파일을 저장한 임의의 다른 유사한 또는 적절한 소스 중 적어도 하나로부터 획득될 수 있다.Next, in
동작 303에서, 전자 장치(101)가 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있는지 여부를 판단한다. 예컨대, 타깃 app가 이동 의료 기기의 동작들과 관련되어 있으면, 정책 파일은 타깃 app의 카테고리가 “헬스 케어 애플리케이션”이라는 것을 지시하는 정보를 포함할 수 있고, 다른 예로 타깃 app가 MP3 플레이어의 동작들과 관련되어 있으면, 타깃 app가 “음악 재생” 카테고리에 포함될 수 있다. 그러나 본 개시는 그에 한정되는 것이 아니고, 타깃 app의 카테고리는 전자 장치(101)에서 실행될 수 있는 애플리케이션들의 임의의 유사한 또는 적절한 타입의 카테고리일 수 있다.In
전자 장치(101)가 동작 303에서 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있지 않다고 판단하면, 동작 304에서, 전자 장치(101)가 타깃 app에 대한 새로운 카테고리 정보를 생성할 수 있다. 예컨대, 전자 장치(101)가 디스플레이(150)에 적어도 하나의 카테고리를 표시하여 전자 장치(101)의 사용자가 표시된 적어도 하나의 카테고리 중에서 타깃 app의 카테고리를 선택하게 하도록 할 수 있다. 부가적으로 또는 대안적으로, 전자 장치(101)의 사용자가 I/O 인터페이스(140)를 통해, 디스플레이(150)를 통해, 또는 타깃 app의 카테고리를 입력하는 임의의 유사한 또는 적절한 방법을 통해 타깃 app의 카테고리를 입력할 수도 있다.If the
다음으로, 동작 305에서, 전자 장치(101)가 타깃 app의 카테고리로 정책 파일을 업데이트할 수 있다. 예컨대, 전자 장치(101)가 사용자에 의해 입력된 새로운 카테고리에 타깃 app가 할당될 것을 지정하도록 정책 파일을 업데이트할 수 있다. 다음으로, 동작 306에서, 전자 장치(101)가 타깃 app의 데이터 파일 객체들을 새로운 카테고리에 따라 리라벨링할 수 있다.Next, in
동작 303으로 돌아와서, 전자 장치가 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있다고 판단하면, 전자 장치(101)가 타깃 app를 타깃 app의 카테고리에 따른 정책 파일과 대응하여 Appcontainer에 추가하기 위해 동작 308로 진행한다. 다음으로, 동작 307에서, 전자 장치(101)가 타깃 app를 포함하는 Appcontainer를 실행한다.Returning to
도 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
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
셀룰러 모듈(421)은 음성 통화, 화상 통화, 단문 메시지 서비스(SMS)< 인터넷 서비스 등의 서비스들을 통신 네트워크, 예를 들어 LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, GSM 등을 통해 제공할 수 있다. 예컨대, 셀룰러 모듈(421)은 가입자 식별 모듈(SIM) 카드, 예컨대 SIM 카드(424)를 사용하여 통신 네트워크 내의 전자 장치들을 구별 및 인증할 수 있다. 본 개시의 다양한 실시예들에 따르면, 셀룰러 모듈(421)은 AP(410)의 기능들 중의 적어도 일부를 수행할 수 있다. 예컨대, 셀룰러 모듈(421)은 멀티미디어 제어 기능 중의 적어도 일부를 수행할 수 있다.The
본 개시의 다양한 실시예들에 따르면, 통신 인터페이스(420) 및/또는 셀룰러 모듈(421)은 통신 프로세서(Communication Processor; CP)를 포함할 수 있다. 예컨대, 셀룰러 모듈(421)은 SoC로 구현될 수 있다.According to various embodiments of the present disclosure, the
도 4는 셀룰러 모듈(421), 예를 들어 CP, 메모리(430), 전력 관리 모듈(495) 등의 구성 요소들을 AP(410)와는 별개의 구성 요소들로 도시하고 있지만, 본 개시의 다양한 실시예들에 따르면, AP(410)는 전술한 구성 요소들 중의 하나 이상, 예를 들어 셀룰러 모듈(421)을 포함하거나 그와 통합될 수도 있다.Although FIG. 4 shows components such as the
본 개시의 다양한 실시예들에 따르면, AP(410), 셀룰러 모듈(421), 예를 들어 CP 등은 비휘발성 메모리 및 다른 구성 요소들로부터 수신된 명령들 및/또는 데이터를 휘발성 메모리로 로딩하여 그 명령들 및/또는 데이터를 처리할 수 있다. AP(410), 셀룰러 모듈(421), 통신 인터페이스(420) 등은 다른 구성 요소들 중의 적어도 하나로부터 수신된 데이터 및 다른 구성 요소들 중의 적어도 하나에 의해 생성된 데이터 중의 적어도 하나를 비휘발성 메모리에 저장할 수 있다.According to various embodiments of the present disclosure, the AP 410, the
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-
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
SIM 카드(424)는 가입자 식별 모듈(SIM)을 구현하는 카드일 수 있고, 전자 장치의 지정된 위치에 설치된 슬롯에 삽입될 수 있다. SIM 카드(1224)는 고유 식별자(예를 들어, ICCID(Integrated Circuit Card Identifier)), 가입자 정보(예를 들어, IMSI(International Mobile Subscriber Identity)) 등을 포함할 수 있다.The
메모리(430), 예를 들어 메모리(130)는 내장 메모리(432), 외장 메모리(434), 또는 그 조합을 포함할 수 있다.The
본 개시의 다양한 실시예들에 따르면, 내장 메모리(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
본 개시의 다양한 실시예들에 따르면, 내장 메모리(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
센서 모듈(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
입력 모듈(450)는 터치 패널(452), 펜 센서(pen sensor)(454), 키(key)(456), 초음파 입력 장치(458) 등을 포함할 수 있다.The input module 450 may include a
예컨대, 터치 패널(452)은 정전식, 감압식, 적외선 방식, 초음파 방식 등을 사용하여 터치 입력을 감지할 수 있다. 터치 패널(452)은 터치 패널 제어기(도시되지 않음)도 또한 포함할 수 있다. 예컨대, 정전식 터치 패널은 물리적 터치 입력에 추가하여 또는 그 대안으로 근접 입력, 예를 들어 호버링(hovering) 입력을 감지할 수 있다. 터치 패널(452)은 택타일 레이어(tactile layer)도 또한 포함할 수 있다. 본 개시의 다양한 실시예들에 따르면, 터치 패널(452)은 택타일 레이어를 사용하여 사용자에게 햅틱 피드백을 제공할 수 있다.For example, the
예컨대, 펜 센서(454)는 사용자로부터 터치 입력을 받는 것과 동일하거나 유사한 방법 또는 별도의 검출 시트(sheet)(예를 들어, 디지타이저(digitizer))를 사용하여 구현될 수 있다. 예컨대, 키(456)는 키패드, 터치 키 등일 수 있다. 예컨대, 초음파 입력 장치(458)는 초음파 신호를 발생할 수 있는 장치에 의해 발생한 초음파 신호를 마이크로폰(예를 들어, 마이크로폰(488))을 사용해서 감지하여 데이터를 확인하도록 구성된 장치일 수 있다. 초음파 입력 장치(458)는 무선으로 데이터를 감지할 수도 있다.For example, the
본 개시의 다양한 실시예들에 따르면, 전자 장치(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
인터페이스(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
오디오 모듈(480)은 소리를 전기 신호로 그리고 그 역으로 인코딩/디코딩할 수 있다. 본 개시의 다양한 실시예들에 따르면, 오디오 모듈(480)의 적어도 일부는 I/O 인터페이스(140)의 일부일 수 있다. 예컨대, 오디오 모듈(480)은 스피커(482), 리시버(484), 이어폰(486), 마이크로폰(488) 등으로 입력된 또는 그로부터 출력된 음성 정보를 인코딩/디코딩할 수 있다.
카메라 모듈(491)은 정지 영상 및/또는 동영상을 촬영할 수 있다. 본 개시의 다양한 실시예들에 따르면, 카메라 모듈(491)은 적어도 하나의 이미지 센서(예를 들어, 전면 센서 모듈, 후면 센서 모듈 등; 도시되지 않음), 영상 신호 프로세서(ISP(Image Signal Processor); 도시되지 않음), 플래시(예를 들어, LED, 제논 램프(xenon lamp) 등; 도시되지 않음)를 포함할 수 있다.The
전력 관리 모듈(495)은 전자 장치(401)의 전력을 관리할 수 있다. 도시되지는 않았지만, 전력 관리 모듈(495)은 예컨대 PMIC(Power Management Integrated Circuit), 충전 IC(charger Integrated Circuit), 배터리 게이지, 연료 게이지 등을 포함할 수 있다.The
예컨대, 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
인디케이터(497)는 전자 장치(401) 또는 그 일부(예를 들어, AP(410))의 적어도 하나의 상태, 예를 들어 부팅 상태, 메시지 상태, 충전 상태 등을 표시할 수 있다. 모터(498)는 전기 신호를 기계적 진동으로 변환할 수 있다.The
도시되지는 않았지만, 전자 장치(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.
상기 프로세서에 의해, 상기 타깃 애플리케이션과 대응하는 상기 정책 파일을 상기 타깃 애플리케이션의 카테고리를 포함하고 상기 카테고리 정보와 상응하도록 업데이트하는 단계; 및
상기 프로세서에 의해, 상기 타깃 애플리케이션과 대응하는 데이터 파일 객체들을 상기 타깃 애플리케이션의 카테고리와 관련되도록 업데이트하는 단계를 더 포함하는 방법.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.
표시부; 및
프로세서를 포함하고, 상기 프로세서는,
상기 전자 장치에 포함된 적어도 하나의 애플리케이션을 표시하도록 상기 표시부를 제어하고,
상기 전자 장치에 포함된 상기 적어도 하나의 애플리케이션 중에서 타깃 애플리케이션의 선택을 식별하고,
상기 타깃 애플리케이션과 대응하는 정책 파일을 획득하고,
상기 정책 파일에 근거하여 상기 타깃 애플리케이션에 대한 카테고리 정보를 식별하고,
상기 타깃 애플리케이션의 카테고리에 대응하는 애플리케이션 컨테이너를 생성하고,
상기 타깃 애플리케이션의 카테고리를 보안 컨텍스트에 할당하고,
상기 애플리케이션 컨테이너에서 상기 타깃 애플리케이션을 실행하도록 구성되고,
상기 타깃 애플리케이션의 데이터 파일 객체들은 상기 타깃 애플리케이션의 카테고리에 따라 라벨링되고,
상기 보안 컨텍스트는 상기 타깃 애플리케이션의 데이터 파일 객체들의 커널 레벨 분리 및 미들웨어 레벨 분리를 제공하는 전자 장치.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.
상기 표시부는 상기 사용자 입력과 대응하는 터치 입력을 수신하도록 더 구성되는 전자 장치.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.
상기 프로세서는 상기 타깃 애플리케이션과 대응하는 데이터 파일 객체들을 상기 타깃 애플리케이션의 카테고리와 관련되게끔 업데이트하도록 더 구성되는 전자 장치.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.
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.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15752239.2A EP3108398B1 (en) | 2014-02-21 | 2015-02-16 | Method and apparatus to sandbox run-time android applications with lightweight container |
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 |
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 | 2014-11-28 | ||
US14/555,950 US10181028B2 (en) | 2014-02-21 | 2014-11-28 | Method and apparatus to sandbox run-time android applications with lightweight container |
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)
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)
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)
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 |
-
2015
- 2015-02-13 KR KR1020150022688A patent/KR102333425B1/en active IP Right Grant
Patent Citations (1)
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 | |
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 | |
KR20160042739A (en) | Method for sharing a display and electronic device thereof | |
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 |