KR20150099440A - 런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 방법 및 장치 - Google Patents

런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 방법 및 장치 Download PDF

Info

Publication number
KR20150099440A
KR20150099440A KR1020150022688A KR20150022688A KR20150099440A KR 20150099440 A KR20150099440 A KR 20150099440A KR 1020150022688 A KR1020150022688 A KR 1020150022688A KR 20150022688 A KR20150022688 A KR 20150022688A KR 20150099440 A KR20150099440 A KR 20150099440A
Authority
KR
South Korea
Prior art keywords
category
target application
application
electronic device
policy file
Prior art date
Application number
KR1020150022688A
Other languages
English (en)
Other versions
KR102333425B1 (ko
Inventor
진린 쉬
딩방 쉬
해청 지앙
팽 닝
레누카 스리니바산
레누카 스리니바산
신웬 장
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/555,950 external-priority patent/US10181028B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2015/001586 priority Critical patent/WO2015126133A1/en
Priority to CN201580009796.XA priority patent/CN106030601B/zh
Priority to EP15752239.2A priority patent/EP3108398B1/en
Publication of KR20150099440A publication Critical patent/KR20150099440A/ko
Application granted granted Critical
Publication of KR102333425B1 publication Critical patent/KR102333425B1/ko

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

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)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

애플리케이션 컨테이너를 생성하는 방법 및 장치가 제공된다. 상기 방법은 전자 장치에 포함된 다수의 애플리케이션들 중에서 타깃 애플리케이션을 선택하는 단계; 상기 타깃 애플리케이션과 대응하는 정책 파일을 획득하는 단계; 상기 정책 파일이 상기 타깃 애플리케이션의 카테고리를 포함하는지 여부를 판단하는 단계; 및 상기 타깃 애플리케이션을 포함하는 상기 애플리케이션 컨테이너를 실행하는 단계를 포함한다.

Description

런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 방법 및 장치{METHOD AND APPARATUS TO SANDBOX RUN-TIME ANDROID APPLICATIONS WITH LIGHTWEIGHT CONTAINER}
본 개시는 런타임(run-time) 시의 안드로이드 애플리케이션들을 경량 컨테이너(lightweight container)로 샌드박싱(sandboxing)하는 장치 및 방법에 관한 것이다. 구체적으로, 본 개시는 런타임 시점에 적어도 하나의 안드로이드 애플리케이션을 샌드박스의 그룹으로 분류하는 장치 및 방법에 관한 것이다.
사용자들 간에 무선 통신을 제공하는 이동 단말기들이 개발되어 있다. 기술의 진보에 따라, 무선 단말기들은 이제 단순한 전화 통화를 벗어나 많은 부가의 사양들을 제공하고 있다. 예컨대, 이동 단말기들은 이제 알람, 단문 메시지 서비스(short messaging service; SMS), 멀티미디어 메시지 서비스(multimedia message service; MMS), E-메일, 게임, 근거리 통신의 원격 제어, 탑재된 디지털 카메라를 사용한 이미지 캡처링 기능, 오디오 및 비디오 콘텐츠 제공을 위한 멀티미디어 기능, 스케줄링 기능, 및 기타 유사한 기능들과 같은 부가 기능들을 제공하고 있다.
또한, 이동 단말기들은 전술한 기능들을 제공할 수 있거나 또는 이동 단말기들 상의 다른 기능들 또는 동작들 중 적어도 하나를 제공할 수 있는 애플리케이션들을 실행할 수 있다. 예컨대, 그러한 애플리케이션들은 음악 재생 애플리케이션, 비디오 재생 애플리케이션, 포토 갤러리 애플리케이션, 게임 애플리케이션, 소셜 네트워킹 애플리케이션, 인터넷 브라우징 애플리케이션, 파일 관리 애플리케이션, 클라우드 서비스 애플리케이션, 및 임의의 다른 유사거나 적절한 애플리케이션들, 기능들, 또는 동작들 중 적어도 하나를 포함할 수 있다. 그러나 이동 단말기의 운영 체제(operating system; OS), 예컨대 안드로이드 OS 또는 임의의 다른 유사하거나 적절한 OS 중 적어도 하나의 사용자는 애플리케이션들을 샌드박스(sandbox)에 포함되는 그룹으로 분류하여 실행 시에 또는 다른 말로 런타임 하는 경우에 샌드박스 내의 애플리케이션들과 그 애플리케이션들에 대한 각각의 애플리케이션 데이터 및 코드 실행이 이동 단말기의 나머지 것들과 분리되도록 할 수 있다. 이에 따라, 샌드박스 내의 애플리케이션들이 샌드박스에 포함된 다른 애플리케이션들과만 공유되도록 할 수 있다. 그러나 샌드박스는 샌드박스에 포함된 애플리케이션들과 샌드박스로부터 제외된 애플리케이션들 간의 적절한 분리를 제공하지 못할 수 있다.
전술한 정보는 단지 본 개시의 이해를 돕기 위한 배경 정보로서 제시된 것에 지나지 않는다. 전술한 사항 중의 어느 것이 본 개시에 대한 선행 기술로서 적용될 수 있는지 여부에 관해 그 어떤 판단도 내린 바가 없고, 그 어떤 주장도 한 바가 없다.
본 개시의 양태들은 적어도 전술한 문제점들 및/또는 단점들을 해결하고, 적어도 후술하는 이점들을 제공하려는 것이다. 따라서 본 개시의 일 양태는 애플리케이션 컨테이너를 생성하는 장치 및 방법을 제공하는 것이다.
본 개시의 일 양태에 따라, 애플리케이션 컨테이너를 생성하는 방법이 제공된다. 본 방법은 전자 장치에 포함된 다수의 애플리케이션들 중에서 타깃 애플리케이션을 선택하는 단계; 타깃 애플리케이션과 대응하는 정책 파일을 획득하는 단계; 정책 파일이 타깃 애플리케이션의 카테고리를 포함하는지 여부를 판단하는 단계; 및 타깃 애플리케이션을 포함하는 애플리케이션 컨테이너를 실행하는 단계를 포함한다.
본 개시의 다른 양태에 따라, 애플리케이션 컨테이너를 생성하는 전자 장치가 제공된다. 본 장치는 전자 장치에 포함된 적어도 하나의 애플리케이션을 표시하도록 구성된 표시부; 및 전자 장치에 포함된 적어도 하나의 애플리케이션 중에서 타깃 애플리케이션을 선택하고, 타깃 애플리케이션과 대응하는 정책 파일을 획득하며, 정책 파일이 타깃 애플리케이션의 카테고리를 포함하는지 여부를 판단하고, 타깃 애플리케이션을 포함하는 애플리케이션 컨테이너를 실행하도록 구성된 프로세서를 포함한다.
첨부 도면들과 관련하여 이뤄져 본 개시의 다양한 실시예들을 개시하는 이후의 상세한 설명으로부터 본 개시의 다른 양태들, 이점들, 및 현격한 특징들이 당업자에게 명백해질 것이다.
첨부 도면들과 관련하여 이뤄지는 이후의 설명으로부터 본 개시의 전술한 및 기타의 양태들, 특징들, 및 이점들이 더욱 분명해질 것이다. 첨부 도면들 중에서,
도 1은 본 개시의 다양한 실시예들에 따른 전자 장치를 포함하는 네트워크 환경을 나타낸 도면;
도 2는 본 개시의 다양한 실시예들에 따른 PerAppContainer의 실행을 위한 구조를 나타낸 도면;
도 3은 본 개시의 다양한 실시예들에 따른 PerAppContainer의 실행 방법을 나타낸 도면; 및
도 4는 본 개시의 다양한 실시예들에 따른 하드웨어를 나타낸 블록도.
첨부 도면들을 참조하여 본 개시의 다양한 양태들을 상세히 설명하기로 한다. 그러한 설명은 단지 예로 보이는 것으로, 본 개시의 범위를 한정하려는 것이 아니다.
첨부 도면들을 참조로 한 상세한 설명은 특허 청구 범위 및 그 균등물들로 정의되는 본 개시의 다양한 실시예들의 포괄적인 이해를 돕기 위해 제공되는 것이다. 그 상세한 설명은 그러한 이해를 돕는 여러 특정의 명세들을 포함하지만, 그 명세들은 단지 예시적인 것으로만 보아야 한다. 따라서 당업자라면 본 개시의 범위 및 사상을 벗어남이 없이 본 명세서에서 설명하는 실시예들의 다양한 변경들 및 수정들이 이뤄질 수 있다는 것을 인지할 것이다. 또한, 간단 명료하게 하기 위해, 공지의 기능들 및 구성들의 설명을 생략하기로 한다.
이후의 설명 및 특허 청구 범위에서 사용되는 용어들 및 단어들은 서지적 의미에 한정되는 것이 아니라, 단지 본 개시의 명료하고도 일관된 이해를 가능하게 하기 위해 본 발명자가 사용하고 있는 것에 지나지 않는다. 따라서 본 개시의 다양한 실시예들에 관한 이후의 설명은 오직 예시의 목적으로만 제공되는 것이지, 첨부된 특허 청구 범위 및 그 균등물로 정의되는 본 개시를 한정하려고 제공되는 것이 아님이 당업자에게 명백할 것이다.
단수 형태들인 "a", "an", 및 "the"는 문맥상 명백히 달리 지시하지 않는 한 복수의 지시 대상들을 포함하는 것임을 알아야 할 것이다. 따라서 예컨대 "부품 표면"이라고 언급하는 것은 그러한 표면들 중의 하나 이상을 언급하는 것을 포함하고 있다.
"거의(substantially)"라는 용어는 기술된 특징, 파라미터, 또는 값이 정확히 달성되어야 할 필요가 있는 것이 아니라, 예컨대 허용 오차, 측정 오차, 측정 정확도 한계, 및 당업자에게 공지된 기타의 인자들을 비롯한 편차들이나 변동들이 해당 특징이 제공하려고 하였던 효과를 배제하지 않는 양으로 일어날 수 있다는 것을 의미한다.
본 개시에 사용되는 용어들은 본 개시의 다양한 실시예들을 설명하는데 사용되는 것이지, 본 개시를 한정하려는 하는 것이 아니다. 단수 형태들은 문맥상 복수 형태들을 의도한 것이 아님을 명백히 하지 않는 한 복수 형태들을 포함하는 것으로 의도된 것이다.
달리 정의하지 않는 한, 기술적 또는 과학적 용어들을 비롯한 본 개시에서 사용되는 모든 용어들은 당해 기술 분야의 통상의 지식을 가진 자가 일반적으로 이해하고 있는 의미를 갖는다. 사전에 정의되어 있을 수 있는 통상의 용어들은 그 문맥과 모순되지 않는 의미를 갖는 것으로 이해되어야 하고, 본 개시에서 명백히 달리 정의하지 않는 한 과장되게 이상적이거나 형식에 구애되는 것으로 해석되어서는 안 된다.
본 개시의 다양한 실시예들에 따르면, 전자 장치는 통신 기능을 포함할 수 있다. 예컨대, 전자 장치는 스마트폰, 태블릿 PC(Personal Computer), 이동 전화, 화상 전화, 전자책(e-book) 리더, 데스크톱 PC, 랩톱 PC, 넷북 PC, 개인 디지털 보조 장비(PDA), 휴대용 멀티미디어 플레이어(PMP), MPEG(Moving Picture Expert Group) 오디오 레이어 3(MP3) 플레이어, 이동 의료 기기, 카메라, 웨어러블 장치(예컨대, 헤드 마운트 장치(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 액세서리, 전자 문신, 또는 스마트 워치) 등일 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치는 통신 기능을 갖춘 스마트 가전 제품일 수 있다. 스마트 가전 제품은 예컨대 텔레비전, DVD(Digital Video Disk) 플레이어, 오디오 장치, 냉장고, 에어컨, 진공 청소기, 오븐, 전자레인지, 세탁기, 건조기, 공기 청정기, 셋톱박스, TV 박스(예컨대, Samsung HomeSyncTM, Apple TVTM, 또는 Google TVTM), 게임 콘솔, 전자 사전, 전자 키, 캠코더, 전자 사진 앨범 등일 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치는 의료 기기(예컨대, MRA(Magnetic Resonance Angiography) 장치, MRI (Magnetic Resonance Imaging) 장치, CT(Computed Tomography) 장치, 촬상 장치, 또는 초음파 장치), 내비게이션 장치, GPS(Global Positioning System) 수신기, EDR(Event Data Recorder), FDR(Flight Data Recorder), 자동차 인포테인먼트 장치, 선박 전자 장치(예컨대, 선박 항해 장치, 자이로스코프, 또는 나침반), 항공 전자 장치, 보안 장치, 산업용 또는 가정용 로봇 등일 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치는 통신 기능을 포함하는 가구, 빌딩/구조물의 일부, 전자 게시판, 전자 사명 수신 장치, 프로젝터, 다양한 계측 장치들(예컨대, 수도 계량기, 전기 계량기, 가스 계량기, 또는 전자파 계측 장치) 등일 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치는 전술한 장치들의 임의의 조합일 수 있다. 또한, 본 개시의 다양한 실시예들에 따른 전자 장치는 전술한 장치들에 한정되는 것이 아님이 당업자에게 명백할 것이다.
본 개시의 다양한 실시예들은 런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 장치 및 방법을 포함한다.
예컨대, 이동 단말기의 사용자가 안드로이드 애플리케이션으로도 지칭할 수 있는 적어도 하나의 애플리케이션을 런타임 시점에 샌드박스(sandbox) 내에 있는 그룹으로 분류하여 샌드박스에 포함된 그 적어도 하나의 애플리케이션과 대응하는 애플리케이션 데이터 및 코드 실행이 샌드박스에 포함되지 않은 전자 장치의 애플리케이션들 중의 적어도 하나 및 그러한 애플리케이션들 또는 요소들 중 적어도 하나에 대응하는 애플리케이션 데이터 및 코드 실행으로부터 분리되도록 할 필요가 있는 경우가 있을 수 있다.
더욱 상세히, 사용자가 런타임 시점에 워드 프로세싱 애플리케이션 및 스프레드시트(spreadsheet) 애플리케이션과 같은 적어도 하나의 오피스 애플리케이션을 그룹핑할 필요가 있을 수 있다. 그룹핑된 애플리케이션들에 의해 생성되는 데이터, 소켓 등의 자원들은 그룹핑된 애플리케이션들과만 공유될 수 있으며, 그룹핑된 애플리케이션에 속하지 않는 애플리케이션들과 공유되지 않을 수 있다. 그룹핑된 애플리케이션들의 컴포넌트들은 해당 그룹핑된 애플리케이션들에 포함되지 않는 어떠한 애플리케이션에 의해서도 시동(launch)될 수 없다. 예컨대, 사용자가 본인과 대응하는 은행 계좌를 감시 및 유지하는 애플리케이션 및 신용 계좌와 대응하는 애플리케이션과 같은 적어도 하나의 뱅킹(banking) 애플리케이션을 그룹핑하여 적어도 하나의 뱅킹 애플리케이션에 포함된 애플리케이션들과 적어도 하나의 뱅킹 애플리케이션의 그룹으로부터 제외된 애플리케이션들 간에 어떠한 컴포넌트 레벨의 통신도 차단되도록 적어도 하나의 뱅킹 애플리케이션의 그룹이 사용하는 자원들에 다른 애플리케이션이 액세스하지 못하게 하고, 그에 따라 그 그룹이 샌드박스인 것으로 간주되도록 할 수 있다. 다른 말로, 적어도 하나의 뱅킹 애플리케이션의 그룹에 포함된 애플리케이션들이 적어도 하나의 뱅킹 애플리케이션의 그룹으로부터 제외된 애플리케이션들과 컴포넌트 레벨에서 통신하는 것이 차단된다.
그러나 애플리케이션들이 샌드박스에 포함되도록 그 애플리케이션들의 그룹을 샌드박싱하는 선행 기술 방법들은 안전한 환경을 제공하지 못할 수 있고, 샌드박스에 포함된 애플리케이션들과 샌드박스로부터 제외된 애플리케이션들 간의 강력한 분리를 제공하지 못할 수 있다. 또한, 안드로이드용 보안 강화(Security Enhancements for Android; SEAndroid)의 선행 기술의 버전은 다수의 안드로이드 애플리케이션들을 샌드박스로도 지칭할 수 있는 샌드박스 그룹으로 분류하여 그 애플리케이션들이 샌드박스 그룹에 속하지 않는 애플리케이션들에 의해 시동될 수 없도록 하며, 또한 그 역(逆)으로 될 수 없도록 하는 커널(kernel) 및 미들웨어 필수 액세스-제어(Middleware Mandatory Access-Control; MMAC) 메커니즘을 제공한다. SEAndroid 정책(SEPolicy)에 의해 데이터 분리 및 보호가 지원된다. 그러나 SEAndroid의 선행 기술 버전에 따른 샌드박스는 구축 시점 또는 SE 리눅스(SELinux) 정책 업데이트 시점 중 적어도 하나의 시점에 사전 설정되어야 하고, SEAndroid의 선행 기술 버전은 런타임 시점에 샌드박스를 형성하도록 애플리케이션들을 그룹으로 분류하는 것을 지원하지 않는다. 부가적으로, SEAndroid의 선행 기술 버전에 따르면, 그룹핑된 애플리케이션들이 가상 머신(virtual machine)에서 동작(run) 또는 실행(execute)될 수 있기는 하지만, 이동 단말기에서 다수의 가상 머신들을 실행하는 것은 성능 문제로 인해 곤란할 수 있다. 또한, 런타임 동안 가상 머신들을 온 디맨드(on-demand) 방식으로 시동하는 것이 어려울 수 있다.
도 1은 본 개시의 다양한 실시예들에 따른 전자 장치를 포함하는 네트워크 환경을 도시하고 있다.
도 1을 참조하면, 네트워크 환경(100)은 전자 장치(101)를 포함한다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력(I/O) 인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 샌드박스 모듈(170) 등을 포함할 수 있다. 그러나 본 개시는 그에 한정되는 것이 아니고, 샌드박스 모듈(170)은 프로세서(120)와 같은 전자 장치(101)의 다른 요소들 및/또는 샌드박스 모듈(170)이 포함될 수 있는 임의의 다른 유사한 및/또는 적절한 요소에 포함될 수도 있다.
버스(110)는 회로를 포함한 하드웨어 장치일 수 있고, 전술한 구성 요소들을 연결할 수 있으며, 전술한 구성 요소들 간의 통신을 가능하게 할 수 있다. 예컨대, 버스(110)는 전자 장치(101)의 구성 요소들을 연결하여 연결된 구성 요소들 간에 전달될 제어 메시지들 및/또는 기타의 정보를 전송 및/또는 수신하게 할 수 있다.
프로세서(120)는 예컨대 다른 구성 요소들, 예를 들어 메모리(130), I/O 인터페이스(140), 디스플레이(150), 통신 인터페이스(160), 샌드박스 모듈(170) 등으로부터 명령을 수신하고, 수신된 명령을 해석하며, 해석된 명령에 따라 계산 및/또는 데이터 처리를 실행할 수 있다.
메모리(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)을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 애플리케이션(134)은 단문 메시지 서비스(SMS) 애플리케이션, 멀티미디어 메시징 서비스(MMS) 애플리케이션, e-메일 애플리케이션, 캘린더 애플리케이션, 알람 애플리케이션, 예를 들어 운동량 애플리케이션, 혈당 레벨 측정 애플리케이션 등의 헬스 케어 애플리케이션, 예를 들어 기압, 습도, 온도 정보를 제공할 수 있는 애플리케이션 등의 환경 정보 애플리케이션, 인스턴트 메시징 애플리케이션, 통화 애플리케이션, 인터넷 브라우징 애플리케이션, 게임 애플리케이션, 미디어 재생 애플리케이션, 이미지/비디오 캡처 애플리케이션, 파일 관리 애플리케이션 등을 포함할 수 있다. 부가적으로 및/또는 대안적으로, 애플리케이션(134)은 전자 장치(101)와 외부 전자 장치, 예를 들어 전자 장치(104) 간의 정보 교환과 관련된 애플리케이션일 수도 있다. 일례로, 정보 교환과 관련된 애플리케이션(134)은 외부 전자 장치에 일정 타입의 정보를 제공할 수 있는 통지 중계 애플리케이션(notification relay application), 외부 전자 장치를 관리할 수 있는 장치 관리 애플리케이션 등을 포함할 수 있다.
일례로, 통지 중계 애플리케이션은 전자 장치(101)에 포함된 다른 애플리케이션들, 예를 들어 SMS/MMS 애플리케이션, e-메일 애플리케이션, 헬스 케어 애플리케이션, 환경 정보 애플리케이션, 인스턴트 메시징 애플리케이션, 통화 애플리케이션, 인터넷 브라우징 애플리케이션, 게임 애플리케이션, 미디어 재생 애플리케이션, 이미지/비디오 캡처 애플리케이션, 파일 관리 애플리케이션 등에 의해 생성된 통지를 외부 전자 장치, 예를 들어 전자 장치(104)에게 제공하는 기능을 포함할 수 있다. 부가적으로, 통지 중계 애플리케이션은 예컨대 외부 전자 장치, 예를 들어 전자 장치(104)로부터의 수신 통지를 제공할 수 있고, 그 통지를 사용자에게 제공할 수 있다.
일례로, 장치 관리 애플리케이션은 전자 장치(101)와 통신 상태에 있는 외부 전자 장치의 적어도 일부, 예를 들어 외부 전자 장치 그 자체 및/또는 외부 전자 장치의 적어도 하나의 구성 요소와 관련된 기능들의 인에이블링(enabling) 또는 디스에이블링(disabling)을 관리할 수 있고, 외부 전자 장치(104)의 디스플레이의 밝기 및/또는 해상도를 제어할 수 있으며, 외부 전자 장치(104)에서 동작하는 애플리케이션 또는 외부 전자 장치(104)에 의해 제공되는 서비스, 예를 들어 음성 통화 서비스, 메시징 서비스 등을 제어할 수 있다.
본 개시의 다양한 실시예들에 따르면, 일례로, 애플리케이션(134)은 외부 전자 장치, 예를 들어 외부 전자 장치(104)의 특성, 예를 들어 전자 장치 타입에 따라 결정되는 적어도 하나의 애플리케이션을 포함할 수 있다. 예컨대, 외부 전자 장치가 MPEG(Moving Picture Expert Group) 오디오 레이어 3(MP3) 플레이어이면, 애플리케이션(134)은 음악 재생과 관련된 적어도 하나의 애플리케이션을 포함할 수 있다. 다른 예로, 외부 전자 장치가 이동 의료 기기이면, 애플리케이션(134)은 헬스 케어 관련 애플리케이션일 수 있다. 본 개시의 다양한 실시예들에 따르면, 애플리케이션(134)은 전자 장치(101)에서 프리로딩(preload)된 애플리케이션 및 외부 전자 장치, 예컨대 외부 전자 장치(104), 서버(106) 등으로부터 수신된 애플리케이션 중의 적어도 하나를 포함할 수 있다.
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)에 의해 처리된 음성 데이터를 스피커를 통해 출력할 수 있다.
디스플레이(150)는 다양한 타입의 정보, 예를 들어 멀티미디어, 텍스트 데이터 등을 사용자에게 표시할 수 있다. 일례로, 디스플레이(150)는 사용자가 전자 장치(101)와 인터랙션(interaction)할 수 있게 하는 수단인 그래픽 사용자 인터페이스(Graphical User Interface; GUI)를 표시할 수 있다.
통신 인터페이스(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) 등 중의 적어도 하나일 수 있는 유선 통신으로 통신할 수도 있다.
본 개시의 다양한 실시예들에 따르면, 네트워크(162)는 통신 네트워크(telecommunication network)일 수 있다. 일례로, 통신 네트워크는 컴퓨터 네트워크, 인터넷, 사물 인터넷(Internet of Things), 전화 네트워크 등 중의 적어도 하나를 포함할 수 있다. 전자 장치(101)와 외부 전자 장치 간의 통신을 위한 프로토콜, 예를 들어 전송 계층 프로토콜, 데이터 링크 프로토콜, 물리 계층 프로토콜 등이 애플리케이션(134), API(133), 미들웨어(132), 커널(131), 통신 인터페이스(160) 등 중의 적어도 하나에 의해 지원될 수 있다.
샌드박스 모듈(170)은 예컨대 다른 구성 요소들, 예를 들어 프로세서(120), 메모리(130), I/O 인터페이스(140), 통신 인터페이스(160) 등으로부터 수신된 정보 중의 적어도 일부를 처리할 수 있고, 다양한 정보, 서비스 등을 여러 방식으로 사용자에게 제공할 수 있다. 예컨대, 샌드박스 모듈(170)은 다른 전자 장치, 예를 들어 외부 전자 장치(104), 서버(106) 등과 통신 및/또는 연결하는 전자 장치(101)의 기능들 중의 적어도 일부를 프로세서(120)를 통해 또는 독립적으로 제어할 수 있다. 도 2는 런타임 시점에 실행될 적어도 하나의 애플리케이션을 애플리케이션 프로그램 인터페이스(Application Program Interface; API)에 의해 분리된 컨테이너에 포함시키기 위해 MyContainer로도 지칭할 수 있는 PerAppContainer를 제공할 수 있는 샌드박스 모듈(170)에 관한 추가의 정보를 제공할 것이다.
도 2는 본 개시의 다양한 실시예들에 따른 PerAppContainer의 실행을 위한 구조를 도시하고 있다.
도 2를 참조하면, 전자 장치(101)의 샌드박스 모듈(170) 및/또는 프로세서(120) 등의 임의의 다른 유사한 및/또는 적절한 요소, 유닛, 하드웨어 장치, 및/또는 하드웨어 유닛이 PerAppContainer를 제공할 수 있다. PerAppContainer는 런타임 시에 안드로이드 애플리케이션과 같은 적어도 하나의 애플리케이션에게 샌드박스를 제공하여 그 적어도 하나의 애플리케이션과 대응하는 애플리케이션 데이터 및 코드 실행을 그 적어도 하나의 애플리케이션과 샌드박스에 포함되지 않는 다른 애플리케이션들 간에 분리하기 위해 그 적어도 하나의 애플리케이션이 API 호출에 의해 분리된 컨테이너 환경에서 동작(run)될 수 있게, 환언하면 실행(execute)될 수 있게 한다.
예컨대, 보안 서비스를 제공하는 Samsung Knox 2.0의 경우, PerAppContainer는 SEAndroid에 대한 멀티레벨 보안/멀티카테고리 보안(Multi-Level Security/Multi-Category Security; MLS/MCS) 정책을 포함할 수 있다. 특히, 애플리케이션들이 분리된 환경에서 동작 또는 실행되되, 신뢰할 수 없는 애플리케이션들이 타깃 애플리케이션의 데이터 및 다른 각각의 객체들에 액세스할 수 없고 타깃 애플리케이션과 다른 신뢰할 수 없는 애플리케이션들간의 인터랙션들이 차단되는 것을 SEAndroid 보안 정책이 보장하도록 타깃 애플리케이션이 전용 카테고리(dedicated category)에 할당된다.
이동 장치 관리(Mobile Device management; MDM) 컨테이너를 포함하는 선행 기술에 따르면, 안드로이드 애플리케이션은 예를 들어 리덱싱(redexing) 및/또는 애플리케이션 랩핑(application wrapping) 기술들에 의해 리패키징(re-package)될 수 있거나, 아니면 전용 소프트웨어 개발 키트(Software Development Kit; SDK)에 의해 개발된다. 따라서 선행 기술의 MDM 컨테이너에서는, 다운로드된 애플리케이션, 환언하면 컨테이너 내의 어떤 임의의 애플리케이션이 동작 및/또는 실행될 수 없다.
반면에, 본 개시의 실시예에 따르면, PerAppContainer는 다운로드된 애플리케이션 또는 임의의 다른 유사한 및/또는 적절한 애플리케이션을 SEAndroid 관리자 서비스(SEAndroid Manager Service; SEAMS)를 사용하여 경량 컨테이너(lightweight container)에서 동작하는 방법을 제공한다.
본 개시의 실시예에 따른 PerAppContainer는 SEAMS API를 호출함으로써, 예를 들어 MDM 클라이언트 또는 MyContainerManager 중 적어도 하나의 안드로이드 애플리케이션에 의해 생성된 호출에 의해 생성 또는 종료될 수 있다. MyContainerManager에 의해 제공되는 사용자 인터페이스(UI)를 사용하여, 사용자는 런타임 시점에 MyContainerManager를 형성하기 위해 전자 장치(101)에 설치된 애플리케이션들 중의 적어도 하나를 선택할 수 있다. 부가적으로, MDM 클라이언트는 사용자 입력을 필요로 함이 없이 MyContainerManager의 동작들을 수행할 수 있다.
MyContainer 내의 안드로이드 애플리케이션들은 MyContainer의 외부에 위치한, 다른 말로 MyContainer에 포함되지 않는 어떠한 애플리케이션들에 의해서도 시동, 즉 동작 또는 실행될 수 없는데, 그것은 액티비티 관리자 서비스(Activity Manager Service)에 구현된 필수 액세스 제어(Mandatory Access Control; MAC) 메커니즘에 의해 수행(enforce)될 수 있다. 따라서 MyContainer에 포함된 어떤 애플리케이션에 의해 생성되는 자원들은 MyContainer로부터 제외된 어떠한 애플리케이션, 다른 말로 MyContainer의 외부에 있는 어떠한 애플리케이션에 의해서도 액세스될 수 없는데, 그 이유는 그러한 애플리케이션들이 Linux 커널 레벨에서 구현된 SELinux 다중 카테고리 보안(Multiple Categories Security; MCS) 메커니즘에 의해 차단되기 때문이다.
구체적으로, ServiceKeeper(201)가 MDM 클라이언트에 권한을 부여하는 API 호출일 수 있는 권한 있는 호출(authorized call)에 의해, SEAMS가 타깃 애플리케이션에 대한 새로운 카테고리를 생성할 수 있고, 전자 장치(101)에서 애플리케이션이 그 새로운 카테고리에 할당될 것을 지정하도록 정책 파일을 업데이트할 수 있으며, 타깃 애플리케이션의 데이터 파일 객체들을 새로운 카테고리에 따라 리라벨링(re-label)할 수 있다.
SEAMS가 타깃 애플리케이션에 대한 새로운 카테고리를 생성하고 전술한 단계들을 완료한 후, 그 다음으로 애플리케이션이 재시동될 때에 안드로이드의 패키지 관리자 서비스(Package Manager Service; PMS)가 업데이트된 정책 파일을 조회한다. 그것은 전자 장치(101)에 포함된 애플리케이션들에 공통된 코어 라이브러리(core library)들을 포함하는 Zygote가 새로운 카테고리를 애플리케이션 프로세스들의 보안 컨텍스트(security context)의 일부로서 할당할 것을 보장한다. 커널 레벨 분리 및 미들웨어 레벨 분리를 모두 제공하는 디폴트 보안 정책에 의해, 애플리케이션 프로세스들이 커널 레벨에서 및 미들웨어 레벨에서 모두 분리되게 된다. 타깃 애플리케이션들이 미들웨어와 커널 레벨에서 정책 수행(policy enforcement)에 의해 어떻게 분리되는지에 관한 더욱 상세한 사항은 정책 기반 컨테이너(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에만 할당될 수도 있다.
도 3은 본 개시의 다양한 실시예들에 따른 PerAppContainer의 실행 방법을 도시하고 있다.
도 3을 참조하면, 동작 301에서, 사용자가 타깃 app로도 지칭할 수 있는 타깃 애플리케이션을 선택할 수 있다. 예컨대, 전자 장치(101)가 디스플레이(150)를 통해 적어도 하나의 애플리케이션을 표시할 수 있고, 전자 장치(101)의 사용자가 디스플레이(150)에 표시된 적어도 하나의 애플리케이션 가운데서 적어도 하나의 타깃 애플리케이션, 예를 들어 적어도 하나의 타깃 app를 선택할 수 있다. 그러나 본 개시의 다양한 실시예들은 그에 한정되는 것이 아니고, 전자 장치(101)에 의해 실행될 수 있는 어떠한 적절한 애플리케이션도 타깃 애플리케이션으로 선택될 수 있다.
다음으로, 동작 302에서, 전자 장치(101)가 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 정책 파일을 획득할 수 있다. 정책 파일은 애플리케이션 명칭, 디지털 인증서, 관련 카테고리와 같은, 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 정보 및 사용자에 의해 선택된 타깃 애플리케이션과 대응하는 임의의 다른 유사한 또는 적절한 정보를 포함할 수 있다. 정책 파일은 전자 장치(101) 등의 장치의 변하는 환경을 기반으로 하거나 또는 사용자의 필요에 따라 수정 또는 변경될 수 있다. 정책 파일은 메모리(130)에 저장될 수 있거나 메모리(130)로부터 또는 정책 파일을 저장한 임의의 다른 유사한 또는 적절한 소스 중 적어도 하나로부터 획득될 수 있다.
동작 303에서, 전자 장치(101)가 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있는지 여부를 판단한다. 예컨대, 타깃 app가 이동 의료 기기의 동작들과 관련되어 있으면, 정책 파일은 타깃 app의 카테고리가 “헬스 케어 애플리케이션”이라는 것을 지시하는 정보를 포함할 수 있고, 다른 예로 타깃 app가 MP3 플레이어의 동작들과 관련되어 있으면, 타깃 app가 “음악 재생” 카테고리에 포함될 수 있다. 그러나 본 개시는 그에 한정되는 것이 아니고, 타깃 app의 카테고리는 전자 장치(101)에서 실행될 수 있는 애플리케이션들의 임의의 유사한 또는 적절한 타입의 카테고리일 수 있다.
전자 장치(101)가 동작 303에서 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있지 않다고 판단하면, 동작 304에서, 전자 장치(101)가 타깃 app에 대한 새로운 카테고리 정보를 생성할 수 있다. 예컨대, 전자 장치(101)가 디스플레이(150)에 적어도 하나의 카테고리를 표시하여 전자 장치(101)의 사용자가 표시된 적어도 하나의 카테고리 중에서 타깃 app의 카테고리를 선택하게 하도록 할 수 있다. 부가적으로 또는 대안적으로, 전자 장치(101)의 사용자가 I/O 인터페이스(140)를 통해, 디스플레이(150)를 통해, 또는 타깃 app의 카테고리를 입력하는 임의의 유사한 또는 적절한 방법을 통해 타깃 app의 카테고리를 입력할 수도 있다.
다음으로, 동작 305에서, 전자 장치(101)가 타깃 app의 카테고리로 정책 파일을 업데이트할 수 있다. 예컨대, 전자 장치(101)가 사용자에 의해 입력된 새로운 카테고리에 타깃 app가 할당될 것을 지정하도록 정책 파일을 업데이트할 수 있다. 다음으로, 동작 306에서, 전자 장치(101)가 타깃 app의 데이터 파일 객체들을 새로운 카테고리에 따라 리라벨링할 수 있다.
동작 303으로 돌아와서, 전자 장치가 정책 파일이 타깃 app의 카테고리를 지시하는 정보를 포함하고 있다고 판단하면, 전자 장치(101)가 타깃 app를 타깃 app의 카테고리에 따른 정책 파일과 대응하여 Appcontainer에 추가하기 위해 동작 308로 진행한다. 다음으로, 동작 307에서, 전자 장치(101)가 타깃 app를 포함하는 Appcontainer를 실행한다.
도 4는 본 개시의 다양한 실시예들에 따른 하드웨어의 블록도를 도시하고 있다.
도 4를 참조하면, 전자 장치(401)는 예컨대 전자 장치(101)의 일부 또는 전체일 수 있다. 도 4를 참조하면, 전자 장치(401)는 적어도 하나의 애플리케이션 프로세서(Application Processor; AP)(410), 통신 모듈(420), 가입자 식별 모듈(SIM) 카드(424), 메모리(430), 센서 모듈(440), 입력 모듈(450), 디스플레이 모듈(460), 인터페이스(470), 오디오 모듈(480), 카메라 모듈(490), 전력 관리 모듈(495), 배터리(496), 인디케이터(497), 모터(498) 등을 포함할 수 있다.
AP(410)는 AP(410)와 연결된 하나 이상의 하드웨어 또는 소프트웨어 컴포넌트들을 제어할 수 있고, 멀티미디어 데이터 등을 비롯한 데이터의 처리 및/또는 계산을 수행할 수 있다. 예컨대, AP(410)는 시스템 온 칩(System-on-Chip; SoC)으로 구현될 수 있다. AP(410)는 그래픽 처리 유닛(Graphics Processing Unit; GPU)(도시되지 않음)을 포함할 수 있다.
통신 모듈(420), 예를 들어 통신 인터페이스(160)는 전자 장치(101)와 다른 전자 장치들, 예를 들어 전자 장치(104), 서버(106) 등 간의 통신에서 데이터를 송수신할 수 있다. 예컨대, 통신 모듈(420)은 셀룰러 모듈(421), Wi-Fi모듈(423), Bluetooth 모듈(425), GPS 모듈(427), NFC 모듈(428), 무선 주파수(Radio Frequency; RF) 모듈(429) 등 중의 하나 이상을 포함할 수 있다.
셀룰러 모듈(421)은 음성 통화, 화상 통화, 단문 메시지 서비스(SMS)< 인터넷 서비스 등의 서비스들을 통신 네트워크, 예를 들어 LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, GSM 등을 통해 제공할 수 있다. 예컨대, 셀룰러 모듈(421)은 가입자 식별 모듈(SIM) 카드, 예컨대 SIM 카드(424)를 사용하여 통신 네트워크 내의 전자 장치들을 구별 및 인증할 수 있다. 본 개시의 다양한 실시예들에 따르면, 셀룰러 모듈(421)은 AP(410)의 기능들 중의 적어도 일부를 수행할 수 있다. 예컨대, 셀룰러 모듈(421)은 멀티미디어 제어 기능 중의 적어도 일부를 수행할 수 있다.
본 개시의 다양한 실시예들에 따르면, 통신 인터페이스(420) 및/또는 셀룰러 모듈(421)은 통신 프로세서(Communication Processor; CP)를 포함할 수 있다. 예컨대, 셀룰러 모듈(421)은 SoC로 구현될 수 있다.
도 4는 셀룰러 모듈(421), 예를 들어 CP, 메모리(430), 전력 관리 모듈(495) 등의 구성 요소들을 AP(410)와는 별개의 구성 요소들로 도시하고 있지만, 본 개시의 다양한 실시예들에 따르면, AP(410)는 전술한 구성 요소들 중의 하나 이상, 예를 들어 셀룰러 모듈(421)을 포함하거나 그와 통합될 수도 있다.
본 개시의 다양한 실시예들에 따르면, AP(410), 셀룰러 모듈(421), 예를 들어 CP 등은 비휘발성 메모리 및 다른 구성 요소들로부터 수신된 명령들 및/또는 데이터를 휘발성 메모리로 로딩하여 그 명령들 및/또는 데이터를 처리할 수 있다. AP(410), 셀룰러 모듈(421), 통신 인터페이스(420) 등은 다른 구성 요소들 중의 적어도 하나로부터 수신된 데이터 및 다른 구성 요소들 중의 적어도 하나에 의해 생성된 데이터 중의 적어도 하나를 비휘발성 메모리에 저장할 수 있다.
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로 구현될 수 있다.
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 신호들을 송수신할 수도 있다.
SIM 카드(424)는 가입자 식별 모듈(SIM)을 구현하는 카드일 수 있고, 전자 장치의 지정된 위치에 설치된 슬롯에 삽입될 수 있다. SIM 카드(1224)는 고유 식별자(예를 들어, ICCID(Integrated Circuit Card Identifier)), 가입자 정보(예를 들어, IMSI(International Mobile Subscriber Identity)) 등을 포함할 수 있다.
메모리(430), 예를 들어 메모리(130)는 내장 메모리(432), 외장 메모리(434), 또는 그 조합을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 내장 메모리(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) 등 중의 적어도 하나를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 내장 메모리(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) 등과 같은 기록 장치 및/또는 기록 매체를 포함할 수 있다.
센서 모듈(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)은 그 내부에 포함된 적어도 하나의 센서를 제어하기 위한 제어 회로도 또한 포함할 수도 있다.
입력 모듈(450)는 터치 패널(452), 펜 센서(pen sensor)(454), 키(key)(456), 초음파 입력 장치(458) 등을 포함할 수 있다.
예컨대, 터치 패널(452)은 정전식, 감압식, 적외선 방식, 초음파 방식 등을 사용하여 터치 입력을 감지할 수 있다. 터치 패널(452)은 터치 패널 제어기(도시되지 않음)도 또한 포함할 수 있다. 예컨대, 정전식 터치 패널은 물리적 터치 입력에 추가하여 또는 그 대안으로 근접 입력, 예를 들어 호버링(hovering) 입력을 감지할 수 있다. 터치 패널(452)은 택타일 레이어(tactile layer)도 또한 포함할 수 있다. 본 개시의 다양한 실시예들에 따르면, 터치 패널(452)은 택타일 레이어를 사용하여 사용자에게 햅틱 피드백을 제공할 수 있다.
예컨대, 펜 센서(454)는 사용자로부터 터치 입력을 받는 것과 동일하거나 유사한 방법 또는 별도의 검출 시트(sheet)(예를 들어, 디지타이저(digitizer))를 사용하여 구현될 수 있다. 예컨대, 키(456)는 키패드, 터치 키 등일 수 있다. 예컨대, 초음파 입력 장치(458)는 초음파 신호를 발생할 수 있는 장치에 의해 발생한 초음파 신호를 마이크로폰(예를 들어, 마이크로폰(488))을 사용해서 감지하여 데이터를 확인하도록 구성된 장치일 수 있다. 초음파 입력 장치(458)는 무선으로 데이터를 감지할 수도 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치(401)는 통신 모듈(401)을 사용하여 전자 장치(401)와 연결된 외부 장치, 예를 들어 네트워크, 컴퓨터, 또는 서버로부터 사용자 입력을 수신할 수 있다.
디스플레이 모듈(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) 등을 제어하기 위한 제어 회로도 또한 포함할 수 있다.
인터페이스(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) 규격 인터페이스 등 중의 적어도 하나를 포함할 수 있다.
오디오 모듈(480)은 소리를 전기 신호로 그리고 그 역으로 인코딩/디코딩할 수 있다. 본 개시의 다양한 실시예들에 따르면, 오디오 모듈(480)의 적어도 일부는 I/O 인터페이스(140)의 일부일 수 있다. 예컨대, 오디오 모듈(480)은 스피커(482), 리시버(484), 이어폰(486), 마이크로폰(488) 등으로 입력된 또는 그로부터 출력된 음성 정보를 인코딩/디코딩할 수 있다.
카메라 모듈(491)은 정지 영상 및/또는 동영상을 촬영할 수 있다. 본 개시의 다양한 실시예들에 따르면, 카메라 모듈(491)은 적어도 하나의 이미지 센서(예를 들어, 전면 센서 모듈, 후면 센서 모듈 등; 도시되지 않음), 영상 신호 프로세서(ISP(Image Signal Processor); 도시되지 않음), 플래시(예를 들어, LED, 제논 램프(xenon lamp) 등; 도시되지 않음)를 포함할 수 있다.
전력 관리 모듈(495)은 전자 장치(401)의 전력을 관리할 수 있다. 도시되지는 않았지만, 전력 관리 모듈(495)은 예컨대 PMIC(Power Management Integrated Circuit), 충전 IC(charger Integrated Circuit), 배터리 게이지, 연료 게이지 등을 포함할 수 있다.
예컨대, PMIC는 집적회로 또는 SoC 반도체에 탑재될 수 있다. 전자 장치(410)의 충전 방식은 유선 충전과 무선 충전을 포함할 수 있다. 충전 IC는 배터리를 충전할 수 있고, 충전기로부터의 과전압 또는 과전류가 전자 장치(401) 등에 유입되는 것을 방지할 수 있다. 본 개시의 다양한 실시예들에 따르면, 충전 IC는 유선 충전 IC와 무선 충전 IC 중의 적어도 하나를 포함할 수 있다. 예컨대, 무선 충전 IC는 자기 공명 방식, 자기 유도 방식, 전자기파 방식 등일 수 있다. 예컨대, 무선 충전 IC는 코일 루프, 공진 회로, 정류기 등의 회로들을 포함할 수 있다. 예컨대, 배터리 게이지는 배터리(496)의 잔량, 충전 중 전압, 온도 등을 측정할 수 있다. 예컨대, 배터리(496)는 전자 장치(401)에 전원을 공급할 수 있다. 예컨대, 배터리(496)는 충전식 전지(rechargeable battery), 태양 전지(solar battery) 등일 수 있다.
인디케이터(497)는 전자 장치(401) 또는 그 일부(예를 들어, AP(410))의 적어도 하나의 상태, 예를 들어 부팅 상태, 메시지 상태, 충전 상태 등을 표시할 수 있다. 모터(498)는 전기 신호를 기계적 진동으로 변환할 수 있다.
도시되지는 않았지만, 전자 장치(401)는 모바일 텔레비전(모바일 TV)을 지원하기 위한 적어도 하나의 장치, 예를 들어 GPU(graphics processing Unit) 등을 포함할 수 있다. 모바일 TV 지원을 위한 장치는 예컨대 DMB(Digital Multimedia Broadcasting), DVB(Digital Video Broadcasting), 미디어플로우(media flow) 등의 규격에 따른 미디어 데이터의 처리를 지원할 수 있다.
특허 청구 범위 및 본 명세서의 설명에 따른 본 개시의 다양한 실시예들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될 수 잇다는 것을 알아야 할 것이다.
그러한 임의의 소프트웨어는 비일시적(non-transitory) 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 비일시적 컴퓨터 판독 가능 저장 매체는 하나 이상의 프로그램들(소프트웨어 모듈들)을 저장하고 있고, 그 하나 이상의 프로그램들은 전자 장치의 하나 이상의 프로세서들에 의해 실행될 때에 전자 장치가 본 개시의 방법을 수행하게 하는 명령들을 포함한다.
그러한 임의의 소프트웨어는 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 및/또는 비휘발성 저장 장치의 형태로, 또는 RAM, 메모리 칩, 장치 또는 집적 회로 등의 메모리, CD, DVD, 자기 디스크, 또는 자기 테이프 등의 광학적으로 또는 자기적으로 판독 가능한 매체의 형태로 저장될 수 있다. 저장 장치들 및 저장 매체들은 실행 시에 본 개시의 다양한 실시예들을 구현하는 명령들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 판독 가능한 비일시적 저장 매체의 여러 실시예들임을 알아야 할 것이다. 따라서 다양한 실시예들은 본 명세서의 청구항들 중의 어느 한 항에서 청구된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 그러한 프로그램을 저장하는 기계로 판독 가능한 저장 장치를 포함한다.
본 개시를 그 다양한 실시예들을 참조하여 도시하고 설명하였지만, 당업자라면 첨부된 특허 청구 범위 및 그 균등물에 의해 정해지는 본 개시의 사상 및 범위를 벗어남이 없이 본 개시에서 형태 및 세부의 다양한 변경들이 이뤄질 수 있다는 것을 이해할 것이다. 본 개시의 다양한 실시예들은 단지 예로서 기재된 것이지, 본 개시의 범위를 한정하려는 것이 아니다. 따라서 본 개시의 범위는 본 개시의 기술 사상을 벗어남이 없이 이뤄질 수 있는 임의의 변경 및 모든 변경들을 망라하는 것으로 해석되어야 한다.
101. 104. 401: 전자 장치 110: 버스
120: 프로세서 130: 메모리
140: I/O 인터페이스 150: 디스플레이
160: 통신 인터페이스 170: 샌드박스 모듈

Claims (20)

  1. 애플리케이션 컨테이너를 생성하는 방법으로서,
    전자 장치에 포함된 다수의 애플리케이션들 중에서 타깃 애플리케이션을 선택하는 단계;
    상기 타깃 애플리케이션과 대응하는 정책 파일을 획득하는 단계;
    상기 정책 파일이 상기 타깃 애플리케이션의 카테고리를 포함하는지 여부를 판단하는 단계; 및
    상기 타깃 애플리케이션을 포함하는 상기 애플리케이션 컨테이너를 실행하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 타깃 애플리케이션의 카테고리를 판단하는 단계는 상기 타깃 애플리케이션의 카테고리를 포함하는, 상기 타깃 애플리케이션에 대한 카테고리 정보를 생성하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서, 상기 타깃 애플리케이션에 대한 상기 카테고리 정보를 생성하는 단계는 상기 타깃 애플리케이션의 카테고리를 지시하는 사용자 입력을 수신하는 단계를 포함하는 방법.
  4. 제 3 항에 있어서, 상기 타깃 애플리케이션의 카테고리를 지시하는 상기 사용자 입력을 수신하는 단계는 적어도 하나의 미리 정해진 카테고리 중에서 하나의 카테고리를 선택하는 사용자 입력을 수신하는 단계 또는 새로운 카테고리와 대응하는 사용자 입력을 수신하는 단계 중의 적어도 하나를 포함하는 방법.
  5. 제 4 항에 있어서, 상기 타깃 애플리케이션을 상기 적어도 하나의 미리 정해진 카테고리 중의 하나의 카테고리 또는 상기 새로운 카테고리 중의 적어도 하나에 할당하는 단계를 더 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 타깃 애플리케이션과 대응하는 상기 정책 파일을 상기 타깃 애플리케이션의 카테고리를 포함하고 상기 카테고리 정보와 상응하도록 업데이트하는 단계; 및
    상기 타깃 애플리케이션과 대응하는 데이터 파일 객체들을 상기 타깃 애플리케이션의 카테고리와 관련되도록 업데이트하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서, 상기 타깃 애플리케이션의 카테고리에 포함되는 다른 애플리케이션이 상기 타깃 애플리케이션의 카테고리에 포함되지 않는 애플리케이션들과 자원들, 정보, 애플리케이션 데이터 및 코드 실행 중의 어떠한 것도 공유하지 않는 방법.
  8. 제 1 항에 있어서, 상기 정책 파일은 사용자에 의해 선택된 상기 타깃 애플리케이션과 대응하는 정보를 포함하는 방법.
  9. 제 8 항에 있어서, 상기 정책 파일에 포함되는 정보는 상기 선택된 타깃 애플리케이션과 대응하는 애플리케이션 명칭, 디지털 인증서, 및 관련 카테고리 중의 적어도 하나인 방법.
  10. 제 8 항에 있어서, 상기 정책 파일은 상기 전자 장치의 변하는 환경을 기반으로 하여 수정 및 변경되는 정책 파일 및 상기 전자 장치의 사용자의 필요에 따라 수정 및 변경되는 정책 파일 중의 적어도 하나일 수 있는 방법.
  11. 애플리케이션 컨테이너를 생성하는 전자 장치로서,
    상기 전자 장치에 포함된 적어도 하나의 애플리케이션을 표시하도록 구성된 표시부; 및
    상기 전자 장치에 포함된 상기 적어도 하나의 애플리케이션 중에서 타깃 애플리케이션을 선택하고, 상기 타깃 애플리케이션과 대응하는 정책 파일을 획득하며, 상기 정책 파일이 상기 타깃 애플리케이션의 카테고리를 포함하는지 여부를 판단하고, 상기 타깃 애플리케이션을 포함하는 상기 애플리케이션 컨테이너를 실행하도록 구성된 프로세서를 포함하는 전자 장치.
  12. 제 11 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션의 카테고리를 포함하는, 상기 타깃 애플리케이션에 대한 카테고리 정보를 생성하도록 더 구성되는 전자 장치.
  13. 제 12 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션의 카테고리를 지시하는 사용자 입력을 수신하도록 더 구성되고,
    상기 표시부는 상기 사용자 입력과 대응하는 터치 입력을 수신하도록 더 구성되는 전자 장치.
  14. 제 13 항에 있어서, 상기 프로세서는 적어도 하나의 미리 정해진 카테고리 중에서 하나의 카테고리를 선택하는 사용자 입력 및 새로운 카테고리와 대응하는 사용자 입력 중의 적어도 하나를 수신하도록 더 구성되는 전자 장치.
  15. 제 14 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션을 상기 적어도 하나의 미리 정해진 카테고리 중의 하나의 카테고리 및 상기 새로운 카테고리 중의 적어도 하나에 할당하도록 더 구성되는 전자 장치.
  16. 제 15 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션과 대응하는 상기 정책 파일을 상기 타깃 애플리케이션의 카테고리를 포함하고 상기 카테고리 정보와 상응하도록 업데이트하도록 더 구성되고;
    상기 프로세서는 상기 타깃 애플리케이션과 대응하는 데이터 파일 객체들을 상기 타깃 애플리케이션의 카테고리와 관련되게끔 업데이트하도록 더 구성되는 전자 장치.
  17. 제 11 항에 있어서, 상기 프로세서는 상기 타깃 애플리케이션의 카테고리에 포함되지 않는 애플리케이션들과 자원들, 정보, 애플리케이션 데이터 및 코드 실행 중의 어떠한 것도 공유하지 않도록 더 구성되는 전자 장치.
  18. 제 11 항에 있어서, 상기 정책 파일은 사용자에 의해 선택된 상기 타깃 애플리케이션과 대응하는 정보를 포함하는 전자 장치.
  19. 제 18 항에 있어서, 상기 정책 파일에 포함되는 정보는 상기 선택된 타깃 애플리케이션과 대응하는 애플리케이션 명칭, 디지털 인증서, 및 관련 카테고리 중의 적어도 하나인 전자 장치.
  20. 제 18 항에 있어서, 상기 정책 파일은 상기 전자 장치의 변하는 환경을 기반으로 하여 수정 및 변경되는 정책 파일 및 상기 전자 장치의 사용자의 필요에 따라 수정 및 변경되는 정책 파일 중의 적어도 하나일 수 있는 전자 장치.
KR1020150022688A 2014-02-21 2015-02-13 런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 방법 및 장치 KR102333425B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2015/001586 WO2015126133A1 (en) 2014-02-21 2015-02-16 Method and apparatus to sandbox run-time android applications with lightweight container
CN201580009796.XA CN106030601B (zh) 2014-02-21 2015-02-16 用于利用轻量级容器对运行时的安卓应用创建沙盒的方法和设备
EP15752239.2A EP3108398B1 (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 true KR20150099440A (ko) 2015-08-31
KR102333425B1 KR102333425B1 (ko) 2021-12-02

Family

ID=78866934

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150022688A KR102333425B1 (ko) 2014-02-21 2015-02-13 런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102333425B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200050311A (ko) * 2018-11-01 2020-05-11 숭실대학교산학협력단 하이브리드 신뢰 실행 환경 기반의 안드로이드 보안 프레임워크, 이를 탑재한 안드로이드 디바이스 및 안드로이드 디바이스에서의 신뢰 서비스 실행 방법
US10671728B2 (en) 2017-01-19 2020-06-02 Foundation Of Soongsil University-Industry Cooperation Mobile device for analyzing malicious code using a container platform, system for analyzing malicious code in a mobile device using the same, and method for analyzing malicious code using the same
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
KR20220068874A (ko) * 2020-11-19 2022-05-26 숭실대학교산학협력단 이진 분석을 수행하는 소프트웨어 패키징 장치, 방법 및 이를 수행하기 위한 프로그램이 기록된 기록매체
CN116466958A (zh) * 2023-03-21 2023-07-21 摩尔线程智能科技(北京)有限责任公司 一种安卓容器构建方法及装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2533168A1 (en) * 2011-06-07 2012-12-12 Research In Motion Limited Method and devices for managing permission requests to allow access to computing resource
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2533168A1 (en) * 2011-06-07 2012-12-12 Research In Motion Limited Method and devices for managing permission requests to allow access to computing resource
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671728B2 (en) 2017-01-19 2020-06-02 Foundation Of Soongsil University-Industry Cooperation Mobile device for analyzing malicious code using a container platform, system for analyzing malicious code in a mobile device using the same, and method for analyzing malicious code using the same
KR20200050311A (ko) * 2018-11-01 2020-05-11 숭실대학교산학협력단 하이브리드 신뢰 실행 환경 기반의 안드로이드 보안 프레임워크, 이를 탑재한 안드로이드 디바이스 및 안드로이드 디바이스에서의 신뢰 서비스 실행 방법
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
US11874919B2 (en) 2018-11-01 2024-01-16 Crowdstrike, Inc. Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device
KR20220068874A (ko) * 2020-11-19 2022-05-26 숭실대학교산학협력단 이진 분석을 수행하는 소프트웨어 패키징 장치, 방법 및 이를 수행하기 위한 프로그램이 기록된 기록매체
CN116466958A (zh) * 2023-03-21 2023-07-21 摩尔线程智能科技(北京)有限责任公司 一种安卓容器构建方法及装置、电子设备和存储介质
CN116466958B (zh) * 2023-03-21 2023-11-21 摩尔线程智能科技(北京)有限责任公司 一种安卓容器构建方法及装置、电子设备和存储介质

Also Published As

Publication number Publication date
KR102333425B1 (ko) 2021-12-02

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 (ko) 어플리케이션을 설치하는 전자 장치 및 그 제어 방법
KR20160101826A (ko) 멀티 유저 기반의 전자 장치
KR102387157B1 (ko) 장치 관리 방법 및 이를 지원하는 전자 장치
KR102467474B1 (ko) 동일한 애플리케이션의 복수 인스턴스를 실행하는 방법 및 그 전자 장치
KR20160097511A (ko) 권한 제어 방법 및 이를 운용하는 전자 장치
CN105809028B (zh) 在移动设备中运行相同应用的多个实例的装置和方法
US20170192746A1 (en) Method for outputting sound and electronic device supporting the same
KR102333425B1 (ko) 런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 방법 및 장치
US10430091B2 (en) Electronic device and method for storing security information thereof
KR20160033510A (ko) 권한 설정 토큰을 이용하는 전자 장치
WO2015126133A1 (en) Method and apparatus to sandbox run-time android applications with lightweight container
US20170078269A1 (en) Method for managing application and electronic device supporting the same
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
US10482237B2 (en) Method for processing security of application and electronic device supporting the same
KR102378373B1 (ko) 복수의 충전 회로를 활용하는 전자 장치 및 방법
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