KR20190021776A - Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치 - Google Patents

Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치 Download PDF

Info

Publication number
KR20190021776A
KR20190021776A KR1020170106964A KR20170106964A KR20190021776A KR 20190021776 A KR20190021776 A KR 20190021776A KR 1020170106964 A KR1020170106964 A KR 1020170106964A KR 20170106964 A KR20170106964 A KR 20170106964A KR 20190021776 A KR20190021776 A KR 20190021776A
Authority
KR
South Korea
Prior art keywords
usb
electronic device
external device
class code
processor
Prior art date
Application number
KR1020170106964A
Other languages
English (en)
Other versions
KR102387657B1 (ko
Inventor
김병준
신동락
이우광
이재진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170106964A priority Critical patent/KR102387657B1/ko
Priority to PCT/KR2018/009637 priority patent/WO2019039851A1/ko
Priority to US16/636,764 priority patent/US11068427B2/en
Publication of KR20190021776A publication Critical patent/KR20190021776A/ko
Application granted granted Critical
Publication of KR102387657B1 publication Critical patent/KR102387657B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명의 일 실시예에 따른 전자 장치는, USB(universal serial bus) 인터페이스, 상기 USB 인터페이스에 전기적으로 연결된 프로세서 및 상기 프로세서에 전기적으로 연결된 메모리;를 포함하며, 상기 메모리는, 실행 시에, 상기 프로세서가, 보안 모드로 진입하고, 상기 보안 모드에서, 상기 USB 인터페이스를 통해 연결된 외부 장치로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신하고, 상기 보안 모드에서 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 상기 USB 클래스 코드가 포함되는지 판단하고, 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하도록 하는 인스트럭션들(instructions)을 저장할 수 있다. 또한 다른 실시예도 가능하다.

Description

USB 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치{METHOD FOR CONNECTING EXTERNAL DEVICE THROUGHT USB INTERFACE AND ELECTRONIC DEVICE THEREFOR}
본 발명의 다양한 실시예는 USB(universal serial bus) 인터페이스를 통해 외부 장치와 연결하는 방법 및 이를 위한 전자 장치에 관한 것이다.
보안, 기밀 유출 방지 목적으로 보안 사업장에서는 보안 솔루션으로서 이동 디바이스 매니지먼트(mobile device management: MDM) 정책을 이용한다. 예를 들어, USB 인터페이스를 포함하는 전자 장치에 MDM 정책이 적용되면, 상기 전자 장치에서는 상기 USB 인터페이스 기능을 사용할 수 없게 된다.
예를 들어, 일부 액세서리들(예를 들어, Dex Dock, Gear VR 등)은 상기 전자 장치에 연결될 경우, 상기 전자 장치의 메모리에 접근 가능하기 때문에, 보안 정책의 적용이 요구될 수 있다. 상기 전자 장치에 보안 정책이 적용되면, 이러한 액세서리(예를 들어, 도킹 스테이션(docking station), HMD(head mounted display) 등)이 USB 인터페이스를 통해 상기 전자 장치에 연결되더라도, 상기 전자 장치는 상기 액세서리를 사용할 수 없게 된다. 반면, 키보드, 마우스와 같은 HID(hardware interface design) 장치, 오디오, 프린터 등과 같이 보안 정책과는 관계가 없거나 적은 액세서리들의 경우에도, 상기 전자 장치에 MDM 정책이 적용되면, 상기 전자 장치는 상기 액세서리들을 마찬가지로 사용할 수 없다. 또한 상기 전자 장치에 MDM 정책과 같은 USB 인터페이스의 사용을 제한하기 위한 정책이 일단 적용되면, 상기 적용된 정책이 해제될 때까지 USB 인터페이스를 통해 연결된 액세서리들의 이용이 가능하지 않게 된다.
본 발명의 다양한 실시예는 USB 인터페이스를 통해 연결되는 액세서리의 사용 가능 여부를 유동적으로 조절할 수 있는 전자 장치 및 그 방법을 제공할 수 있다.
본 발명의 일 실시예에 따른 전자 장치는, USB(universal serial bus) 인터페이스; 상기 USB 인터페이스에 전기적으로 연결된 프로세서 및 상기 프로세서에 전기적으로 연결된 메모리를 포함하며, 상기 메모리는, 실행 시에, 상기 프로세서가, 보안 모드로 진입하고, 상기 보안 모드에서, 상기 USB 인터페이스를 통해 연결된 외부 장치로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신하고, 상기 보안 모드에서 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 상기 USB 클래스 코드가 포함되는지 판단하고, 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.
본 발명의 일 실시예에 따른 전자 장치의 동작 방법은, 보안 모드로 진입하는 동작, 상기 보안 모드에서, 상기 전자 장치의 USB 인터페이스를 통해 연결된 외부 장치로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신하는 동작, 상기 보안 모드에서 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 상기 USB 클래스 코드가 포함되는지 판단하는 동작 및 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하는 동작을 포함할 수 있다.
본 발명의 일 실시예에 따른 전자 장치는, 제1 데이터 경로 또는 제2 데이터 경로를 이용하는 USB(universal serial bus) 커넥터, 상기 USB 커넥터와 전기적으로 연결된 프로세서 및 상기 프로세서에 전기적으로 연결된 메모리;를 포함하며, 상기 메모리는, 실행 시에, 상기 프로세서가, 허용 가능한 외부 전자 장치 및/또는 USB 클래스들의 리스트를 사용하여 선택된 타입의 외부 전자 장치가 상기 USB 커넥터를 통해 상기 전자 장치에 액세스 하는 것을 허용하는 보안 모드(security mode)로 진입하고, 상기 보안 모드는, 디스플레이 장치 및 USB 장치를 포함하는 외부 전자 장치가 상기 USB 커넥터에 연결되는 것을 감지하고, 상기 제1 데이터 경로를 통해 USB 데이터 신호들이 송신되지 않도록 하는 동안, 상기 전자 장치의 디스플레이 포트를 상기 외부 장치의 디스플레이 포트에 연결하고, 데이터 송수신을 위하여 상기 USB 장치에 연결하고, 상기 리스트에 적어도 일부 기초하여, USB 이뉴머레이션(enumeration)을 수행하고, 상기 USB 이뉴머레이션 후에 상기 제2 데이터 경로를 통해 데이터 송수신을 수행하도록 하는 인스트럭션들할 수 있다.
본 발명의 다양한 실시예에 따르면, USB 인터페이스를 통해 연결되는 액세서리의 사용 가능 여부를 유동적으로 조절할 수 있는 전자 장치 및 그 방법을 제공할 수 있다.
본 발명의 다양한 실시예에 따르면, USB 인터페이스를 통해 전자 장치에 연결되어 사용될 수 있는 액세서리와 사용될 없는 액세서리를 구분하여 설정할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 다양한 실시예에 따른 전자 장치에서의 USB 인터페이스의 프레임워크 구조를 나타낸 블록도이다.
도 3은 다양한 실시예에 따른 전자 장치에서의 USB 인터페이스의 구성을 나타낸 블록도이다.
도 4는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 5는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 6은 다양한 실시예에 따른 전자 장치 및 상기 전자 장치에 연결 가능한 도킹 스테이션을 나타낸 블록도이다.
도 7은 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 8은 다양한 실시예에 따른 전자 장치의 USB 커넥터의 구조를 나타낸 도면이다.
도 9는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 10은 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 11은 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 12는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 13은 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 14는 다양한 실시예에 따른 전자 장치(101)의 동작 방법을 나타낸 순서도이다.
도 15는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
이하, 첨부된 도면을 참조하여 다양한 실시예에 따른 전자 장치에 대해서 살펴본다. 다양한 실시예에서 이용되는 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예를 들어, 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 및 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성 요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성 요소들이 통합되어 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성 요소(예: 하드웨어 또는 소프트웨어 구성 요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성 요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성 요소들 중 적어도 하나의 구성 요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부 구성 요소로서 구현될 수 있다.
일 실시예에 따르면, 프로세서(120)는 전자 장치(101)의 동작 모드들 각각에 따라 상기 전자 장치(101)에서 인터페이스(177) 또는 연결 단자(178)를 통해 이용될 수 있는 외부 장치(예: 액세서리)를 식별(또는 인식)할 수 있다. 일 실시예에 따르면 연결 단자(178)(예: USB 커넥터)를 통해 액세서리(예: 전자 장치(102))가 연결되고, 상기 액세서리로부터 상기 액세서리를 식별하기 위한 USB 클래스 코드가 프로세서(120)로 전달될 수 있다. 프로세서(120)는 상기 USB 클래스 코드에 기초하여 상기 액세서리의 종류를 파악하고, 상기 액세서리를 이용하기 위한 클래스 드라이버(예: 드라이버 프로그램)를 판단할 수 있다.
일 실시예에 따르면, 프로세서(120)는 전자 장치(101)가 보안 모드, 예를 들어 액세서리 제한 모드로 전환(또는 변경)되도록 상기 전자 장치(101)를 제어할 수 있다. 상기 액세서리 제한 모드는, 전자 장치(101)의 무선 또는 유선으로 연결되는 외부 장치, 예를 들어 액세서리(예: 전자 장치(102))의 사용을 제한하기 위한 동작 모드일 수 있다. 프로세서(120)는 예를 들어, 다른 전자 장치(104) 또는 서버(108)로부터의 MDM(mobile device management) 정책 적용 요청에 따라 상기 전자 장치(101)의 동작 모드를 상기 액세서리 제한 모드로 전환할 수 있다. 일 실시예에 따르면, 프로세서(120)는 입력 장치(150) 또는 표시 장치(160)를 통한 사용자 입력에 따라 상기 전자 장치(101)의 동작 모드를 보안 모드(예: 액세서리 제한 모드)로 전환할 수 있다. 또한 프로세서(120)는 전자 장치(101)의 현재 상태가 상기 보안 모드(예: 액세서리 제한 모드)로 전환하기 위한 전환 조건을 만족하는 경우에도 상기 전자 장치(101)의 동작 모드를 액세서리 제한 모드로 변경할 수 있다. 상기 전환 조건은 네트워크(199)를 통해 다른 전자 장치(104) 또는 서버(108)로부터 전자 장치(101)로 전송되어 메모리(130)에 저장된 것일 수 있으며, 입력 장치(150) 또는 표시 장치(160)를 통해 사용자로부터 입력되어 메모리(130)에 저장된 것일 수도 있다.
일 실시예에 따르면, 전자 장치(101)가 보안 모드, 예를 들어 액세서리 제한 모드로 진입하면, 프로세서(120)는 USB 호스트 API를 비활성화하고, 인터페이스(177) 또는 연결 단자(178)를 통해 연결된 외부 장치, 예를 들어 액세서리들 각각과의 연결을 종료(terminate)할 수 있다. 프로세서(120)는 상기 연결 단자(178)를 통해 연결된 액세서리들 각각과의 연결을 종료하기 위하여 전자 장치(101)와 액세서리들 각각 사이에 형성된 채널들을 제거(또는 삭제)하고, 상기 액세서리들 각각을 사용하기 위한 클래스 드라이버들(예: 드라이버 프로그램)을 비활성화(또는 제거)할 수 있다.
전자 장치(101)의 메모리(130)에는 전자 장치(101)로의 연결이 허용된 연결 허용 장치에 관한 정보로서 화이트 리스트(white list)가 저장되거나 또는 상기 전자 장치(101)로의 연결이 허용되지 않은 연결 불가 장치에 관한 정보로서 블랙 리스트(black list)가 저장될 수 있다. 전자 장치(101)가 액세서리 제한 모드로 전환되면, 프로세서(120)는 상기 화이트 리스트 또는 블랙 리스트를 이용하여 전자 장치(101)에 연결된 외부 장치, 예를 들어 액세서리가 상기 전자 장치(101)로의 연결이 허용된 장치인지 여부를 판단할 수 있다.
한 실시예에 따르면, 화이트 리스트는 상기 액세서리 제한 모드에서 사용할 수 있는 액세서리들, 즉 연결 허용 장치들에 대한 리스트로서, 연결 허용 장치들 각각에 대응하는 USB 클래스 코드들이 포함될 수 있다. 상기 블랙 리스트는 상기 액세서리 제한 모드에서 사용할 수 없는 액세서리들, 즉 연결 불가 장치들에 대한 리스트로서 상기 연결 불가 장치들 각각에 대응하는 USB 클래스 코드들이 포함될 수 있다. 상기 액세서리 제한 모드에서, 프로세서(120)는 인터페이스(177) 및 연결 단자(178)를 통해 연결된 액세서리들 중 화이트 리스트에 등록된 액세서리들 또는 상기 화이트 리스트에 포함된 USB 클래스 코드들에 대응하는 액세서리들과의 연결만을 승인할 수 있다. 또한 상기 액세서리 제한 모드에서, 프로세서(120)는 상기 블랙 리스트에 등록된 액세서리들과의 연결을 허용하지 않을 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성 요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성 요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일 실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 장치(예: 액세서리)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 외부 장치(예: 액세서리)와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는 전자 장치(101)와 외부 장치(예: 액세서리)를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다. 한 실시예에 따르면 통신 모듈(190)은 USB 인터페이스를 포함하는 형태로 구현될 수 있다.
일 실시예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 장치로 송신하거나, 외부 장치로부터 수신할 수 있다.
상기 구성 요소들 중 일부 구성 요소들은 주변 기기들 간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호 간에 교환할 수 있다.
일 실시예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104) 간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 장치에서 실행될 수 있다. 일 실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 발명의 일 실시예에 따른 전자 장치는, USB(universal serial bus) 인터페이스, 상기 USB 인터페이스에 전기적으로 연결된 프로세서 및 상기 프로세서에 전기적으로 연결된 메모리;를 포함하며, 상기 메모리는, 실행 시에, 상기 프로세서가, 보안 모드로 진입하고, 상기 보안 모드에서, 상기 USB 인터페이스를 통해 연결된 외부 장치로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신하고, 상기 보안 모드에서 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 상기 USB 클래스 코드가 포함되는지 판단하고, 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.
본 발명의 다른 실시예에 따른 전자 장치는, 제1 데이터 경로 또는 제2 데이터 경로를 이용하는 USB(universal serial bus) 커넥터, 상기 USB 커넥터와 전기적으로 연결된 프로세서 및 상기 프로세서에 전기적으로 연결된 메모리를 포함하며, 상기 메모리는, 실행 시에, 상기 프로세서가, 허용 가능한 외부 전자 장치 및/또는 USB 클래스들의 리스트를 사용하여 선택된 타입의 외부 전자 장치가 상기 USB 커넥터를 통해 상기 전자 장치에 액세스 하는 것을 허용하는 보안 모드(security mode)로 진입하고, 상기 보안 모드는, 디스플레이 장치 및 USB 장치를 포함하는 외부 전자 장치가 상기 USB 커넥터에 연결되는 것을 감지하고, 상기 제1 데이터 경로를 통해 USB 데이터 신호들이 송신되지 않도록 하는 동안, 상기 전자 장치의 디스플레이 포트를 상기 외부 장치의 디스플레이 포트에 연결하고, 데이터 송수신을 위하여 상기 USB 장치에 연결하고, 상기 리스트에 적어도 일부 기초하여, USB 이뉴머레이션(enumeration)을 수행하고, 상기 USB 이뉴머레이션 후에 상기 제2 데이터 경로를 통해 데이터 송수신을 수행하도록 하는 인스트럭션들을 저장할 수 있다.
본 발명의 일 실시예에 따른 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 보안 모드로 진입하는 동작, 상기 보안 모드에서, 상기 전자 장치의 USB 인터페이스를 통해 연결된 외부 장치로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신하는 동작, 상기 보안 모드에서 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 상기 USB 클래스 코드가 포함되는지 판단하는 동작 및 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하는 동작을 포함할 수 있다.
도 2는 다양한 실시예에 따른 전자 장치에서의 USB 인터페이스의 프레임워크 구조를 나타낸 블록도이다. 상기 USB 인터페이스의 프레임워크는 도 1의 프로그램(140)에 포함된 미들웨어(144) 및/또는 운영체제(142)에 포함될 수 있다.
도 2를 참조하면, 사용자 스페이스(201)에는 USB API(210) 및 libusbhost(212)가 포함될 수 있고, 사용자 스페이스(201)의 애플리케이션(미도시)들은 USB API(210)를 통해 USB 인터페이스의 프레임워크를 이용할 수 있다. 예를 들어, 어플리케이션(미도시)들은 적어도 하나의 외부 장치(예: 액세서리)는 Java 라이브러리 또는 JNI(Java native interface) 라이브러리를 통해 libusbhost(212)와 연결되어 USB 서비스(service) 또는 USB 기능(function)을 제공할 수 있다. 상기 libusbhost(212)는 커널/파일 시스템(220)과 연결될 수 있다. 상기 USB 인터페이스 프레임워크의 상기 사용자 스페이스(201)는 어플리케이션에 USB 호스트 API(미도시)를 더 제공할 수 있다.
커널 스페이스(202)에는 클래스 드라이버(232), USB 코어(234) 또는 호스트 컨트롤러 드라이버(230)가 포함될 수 있고, 상기 사용자 스페이스(201)와 커널 스페이스(202)는 커널/파일 시스템(220)을 통해 연결될 수 있다. 또한 상기 커널/파일 시스템(220)에는 다른 인프라(other infra)가 연결될 수 있다.
한 실시예에 따르면 외부 장치(예: 액세서리)는 사용자 스페이스(201)에서 커널/파일 시스템(220)을 통해 커널 스페이스(202)로 연결될 수 있다. 상기와 같이 외부 장치, 예를 들어 USB 커넥터를 통해 전자 장치(101)에 연결될 수 있는 액세서리, 즉 USB 액세서리가 연결되면, 상기 전자 장치(101), 예를 들어 호스트 코어(234)는 상기 USB 액세서리를 사용하기 위한 클래스 드라이버(232)(예: 드라이버 프로그램)를 활성화, 예를 들어 메모리(130)에 로드(load)할 수 있다.
도 2를 참조하면, 연결 단자(178)(예: USB 커넥터)를 통해 전자 장치(101)에 연결되는 외부 장치(예: 액세서리)는 USB 코어(234)를 통해 인식될 수 있다. 상기 외부 장치(예: 액세서리)가 전자 장치(101)의 연결 단자(178)에 물리적으로 연결되면, 상기 USB 코어(234)는 클래스 드라이버(232)를 활성화(또는 로드)할 수 있다. USB 코어(234)는 물리적으로 연결된 액세서리로부터 디스크립션 정보(description information)를 수신할 수 있다. 예를 들어, 상기 디스크립션 정보는 상기 커넥터(177)에 연결된 외부 장치의 USB 클래스 코드를 포함할 수 있다. USB 코어(234)는 상기 디스크립션 정보에 포함된 USB 클래스 코드에 해당하는 클래스 드라이버(232)를 활성화(또는 로드)할 수 있다.
일 실시예에 따르면, 상기 USB 클래스 코드는, 상기 전자 장치(101)의 인터페이스(177)(예: USB 인터페이스) 또는 연결 단자(178)(예: USB 커넥터)에 외부 장치(예: 액세서리)가 연결되었을 때, 그 외부 장치(예: 외부 장치의 USB 인터페이스 또는 USB 커넥터)로부터 상기 전자 장치(101)의 인터페이스(177)(예: USB 인터페이스) 또는 연결 단자(178)(예: USB 커넥터)로 전달될 수 있다. 도 2를 참조하면, 상기 USB 클래스 코드는 상기 전자 장치(101)의 인터페이스(177) 또는 연결 단자(178)를 통해 외부 장치(예: 액세서리)로부터 USB 코어(234)로 전달될 수 있다.
일 실시예에 따르면, USB 코어(234)는 상기 외부 장치의 USB 클래스 코드와, 전자 장치(101)에 미리 저장되어 있는 USB 클래스 코드들을 비교함으로써, 상기 외부 장치(예: 액세서리)의 종류를 파악하거나, 상기 외부 장치가 상기 전자 장치(101)에 의하여 지원되는 장치인지 여부를 판단할 수 있다. 이로써 외부 장치(예: 액세서리)는 USB 코어(234)에 의하여 인식될 수 있다.
일 실시예에 따르면, 전자 장치(101)의 메모리(130)에는 아래 표 1과 같이 전자 장치(101)에 의하여 지원되는 액세서리들에 대한 USB 클래스 코드표가 저장될 수 있다.
USB Class Code Descriptor Usage Description
00h Device Use class information in the Interface Descriptors
01h Interface Audio  
02h Both Communications and CDC Control
03h Interface HID (Human Interface Device)
05h Interface Physical
06h Interface Image
07h Interface Printer
08h Interface Mass Storage
09h Device Hub
0Ah Interface CDC-Data
0Bh Interface Smart Card
0Dh Interface Content Security
0Eh Interface Video
0Fh Interface Personal Healthcare
10h Interface Audio/Video Devices
11h Device Billboard Device Class
12h Interface USB Type-C Bridge Class
DCh Both Diagnostic Device
E0h Interface Wireless Controller
EFh Both Miscellaneous
FEh Interface Application Specific
FFh Both Vendor Specific
예를 들어, USB 코어(234)는 외부 장치(예: 액세서리)로부터 수신한 디스크립션 정보의 USB 클래스 코드가 상기 표 1의 USB 클래스 코드들 중 어느 하나와 매칭되는 경우 상기 액세서리가 전자 장치(101)에 의하여 지원되는 장치인 것으로 판단할 수 있다. 표 1의 USB 클래스 코드는, 해당 USB 클래스 코드에 대응되는 장치(액세서리)의 기능을 나타낼 수 있다. 표 1을 참조하면, 예를 들어 USB 클래스 코드가 00h, 03h, 05h, 06h, 07h, 08h, 0Ah, 0Bh, 0Dh, 0Eh, 0Fh, 10h, 11h, 12h, E0h, FEh인 장치들(액세서리)은 인터페이스 기능을 지원할 수 있다. USB 클래스 코드가 00h, 09h, 11h인 장치들(액세서리)은 전자 장치(101)와는 별도의 장치로서 인식되어 상기 전자 장치(101)와 연결될 수 있다. USB 클래스 코드가 02h, DCh, EFh, FFh인 장치들(액세서리)은 인터페이스 기능을 지원할 수 있는 동시에, 전자 장치(101)와는 별도의 장치로서 인식될 수도 있다. 예를 들어, USB 코어(234)는 외부 장치로부터 전달된 USB 클래스 코드가 01h이면 상기 외부 장치가 오디오 기능을 지원하는 인터페이스 장치(예: 스피커)인 것으로 판단할 수 있다.
한 실시예에 따르면, USB 코어(234)는 상기 USB 클래스 코드에 해당하는 클래스 드라이버(232)를 활성화(또는 로드)할 수 있다. 이와 같은 동작을 외부 장치(예: 액세서리)에 대한 USB 이뉴머레이션(enumeration) 동작이라고 한다. 즉 USB 이뉴머레이션 동작은 외부 장치(예: 액서세리)를 인식하고, 인식된 외부 장치에 적합한 클래스 드라이버(232)를 활성화하고, 상기 활성화된 클래스 드라이버(232)를 통해 전자 장치의 외부 장치 제어가 가능해지도록 상기 외부 장치를 전자 장치(101)에 등록하는 일련의 동작을 가리킬 수 있다. 상기 USB 이뉴머레이션 동작이 완료되면 전자 장치(101)와 외부 장치 사이에는 통신 채널이 형성되어 상기 전자 장치(101)와 외부 장치 사이의 통신이 가능할 수 있다.
일 실시예에 따르면, 호스트 컨트롤러 드라이버(230)는 상기 USB 이뉴머레이션 동작을 수행하고, 상기 클래스 드라이버(232)를 이용하여 전자 장치(101)와 외부 장치 간의 통신 채널을 형성할 수 있다.
일 실시예에 따르면, 전자 장치(101)가 액세서리 제한 모드로 전환되면 상기 USB 코어(232)는 연결 단자(178)를 통해 전자 장치(101)에 연결되어 있던 외부 장치들(예: 액세서리들) 각각에 대응하는 클래스 드라이버(232)를 비활성화(기능 종료 또는 제거)함으로써 해당 외부 장치들 각각과의 연결을 종료할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 USB 호스트 API를 이용하여 외부 장치(예: 액세서리_를 인식할 수 있다. 상기 USB 호스트 API는 클래스 드라이버(232)와 연결되지 않고도 상기 전자 장치(101)와 연결된 외부 장치들에 접근할 수 있다. 예를 들어 USB PTP(picture transfer protocol) 카메라와 같은 어플리케이션의 경우 별도의 클래스 드라이버(232)(예: 드라이버 프로그램)가 필요하지 않을 수 있다. USB 코어(234)는 클래스 드라이버(232)를 활성화(또는 로드)하지 않고, 상기 어플리케이션에서 요구하는 외부 장치에 대한 장치 정보를 파악하고, 상기 외부 장치를, 상기 어플리케이션 내에서 구동시킬 수 있다. 즉 전자 장치(101)와 연결된 액세서리는, 상기 USB 호스트 API를 통해서는 드라이버 프로그램을 활성화(또는 로드)하지 않아도 사용될 수 있다. 전자 장치(101)가 액세서리 제한 모드로 전환되는 경우, 프로세서(120) 또는 USB 코어(234)는 상기 USB 호스트 API를 비활성화(또는 차단)함으로써, 상기 USB 호스트 API를 통해 전자 장치(101)가 상기 외부 장치에 접근할 수 없도록 제어할 수 있다. 즉 USB 호스트 API가 비활성화된 이후, 전자 장치(101)가, 예를 들어 어플리케이션이 USB 호스트 API를 사용(호출)하더라도 상기 USB 호스트 API는 그 어떤 기능도 수행하지 않을 수 있다.
한 실시예에 따르면 상기 USB 호스트 API는 복수 개의 기능들을 지원할 수 있다. USB 코어(234)는 USB 호스트 API의 기능들 중 일부를 차단하고 나머지 일부는 차단하지 않음으로써, 액세서리 제한 모드에서의 상기 USB 호스트 API를 통한 외부 장치(예: 액세서리)로의 접근을 제한할 수 있다. 즉 액세서리 제한 모드에서, USB 코어(234)는 상기 USB 호스트 API에서 지원하는 여러 기능들 중 일부는 활성화된 상태를 유지하고, 나머지 일부는 비활성화시킬 수도 있다. 즉 USB 호스트 API가 비활성화된 이후, 전자 장치(101)가, 예를 들어 어플리케이션이, USB 호스트 API를 사용(호출)할 때, 일부 USB 호스트 API는 기능을 수행하는 한편, 다른 USB 호스트 API는 기능을 수행하지 않을 수 있다.
도 3은 다양한 실시예에 따른 전자 장치에서의 USB 인터페이스의 구성을 나타낸 블록도이다.
도 3을 참조하면, 다양한 실시예에 따른 전자 장치(예: 전자 장치(101))의 USB 인터페이스의 프레임워크(예: 도 2의 사용자 스페이스(201))는 보안 매니저(310) 및/또는 USB 매니저(320)를 포함할 수 있다.
보안 매니저(310)는 도 2의 USB API(210), USB 서비스(service), USB 기능(function) 또는 libusbhost(212) 중 적어도 하나에 해당하거나 또는 상기 구성 요소들에 의해 수행될 수 있는 적어도 하나의 기능을 수행할 수 있다.
보안 매니저(310)는 전자 장치(101)에 의해 사용될 수 있는 리소스들(예: 메모리, 액세서리, 카메라/녹음기능 등 특정 어플리케이션 기능 등)에 대한 접근 권한을 변경할 수 있다. 예를 들어, 전자 장치(101)가 특정 보안이 필요한 상태(예: MDM(mobile device management) 모드 또는 키즈(kids) 모드 등)로 진입하거나 또는 해당 상태에서 빠져나올 때, 보안 매니저(310)는 전자 장치(101)에 의해 사용되는 기능(또는 리소스들)에 대한 접근 권한을 변경할 수 있다. 예를 들어, 보안 매니저(310)는 전자 장치(101)를 액세서리 제한 모드로 진입시키거나 또는 상기 전자 장치(101)의 액세서리 제한 모드를 해제할 수 있다.
상기 보안 매니저(310)는 상기 USB 매니저(320)와 (예를 들어, 이벤트를 전달하는 방식으로) 통신할 수 있다. 상기 USB 매니저(320)는 (커널 스페이스(202)에 위치한) USB 코어(330) 및 USB 파일 시스템(340)과 통신하거나 또는 상기 USB 코어(330) 및 USB 파일 시스템(340)을 제어할 수 있다. 상기 USB 코어(330)는 연결 단자(178)(예: USB 커넥터)를 통해 전자 장치(101)에 연결되는 외부 장치(예: 액세서리)를 동작시키기 위한 USB 클래스 코드에 해당하는 클래스 드라이버(예: 드라이버 프로그램), 예를 들어 HID 클래스(351), 오디오 클래스(352), 스토리지 클래스(353) 등을 제어(예를 들어, 활성화 또는 비활성화)할 수 있다. USB 파일 시스템(340)은 USB 호스트 API에 의하여 사용될 수 있으며, 프로세서(예: 프로세서(120))는 상기 USB 호스트 API를 통해 USB 파일 시스템을 이용할 수 있게 됨으로써 전자 장치(101)에 연결된 외부 장치들(예: 액세서리)에 접근할 수 있다.
일 실시예에 따르면, 전자 장치(101)가 액세서리 제한 모드로 전환되면, 보안 매니저(310)는 상기 액세서리 제한 모드의 실행을 위한 화이트 리스트 또는 블랙 리스트를 USB 매니저(320)로 전달하고, 또한 상기 USB 매니저(320)에게 상기 전자 장치(101)가 액세서리 제한 모드로 전환되었음을 알릴 수 있다.
일 실시예에 따르면, USB 매니저(320)는 상기 보안 매니저(310)에 의하여 활성화(또는 로드)된 화이트 리스트 및/또는 블랙 리스트를 USB 코어(330)로 전달할 수 있다.
일 실시예에 따르면, USB 코어(330)는 상기 USB 매니저(320)로부터 수신한 화이트 리스트 또는 블랙 리스트를 메모리(130)에 저장하여 관리할 수 있다.
일 실시예에 따르면, USB 코어(330)는 상기 USB 매니저(320)로부터 보안 모드, 예를 들어 액세서리 제한 모드과 관련된 정보(예: 액세서리 제한 모드 진입 알림, 화이트 리스트, 블랙 리스트)를 수신하면, 현재 활성화된 상태의 클래스 드라이버들(232)(예: 드라이버 프로그램들) 중 적어도 일부 클래스 드라이버(예: 드라이버 프로그램)을 중지(비활성화 또는 언로드(unload))할 수 있다.
일 실시예에 따르면, 외부 장치(예: USB 장치)가 USB 코어(330)에 연결되면 실행되는 USB 이뉴머레이션 과정에서, 상기 USB 코어(330)는, 예를 들어 상기 화이트 리스트 또는 블랙 리스트가 포함된, 연결 허용 장치에 대한 정보에 기초하여, USB 이뉴머레이션 절차를 계속 진행하거나 중지할 수 있다. 이에 따라 전자 장치(예: 보안 매니저(310))는 연결 단자(178)를 통해 연결된 하나 이상의 외부 장치들의 연결을 제어할 수 있다.
일 실시예에 따르면, USB 매니저(320)는 보안 모드, 예를 들어 액세서리 제한 모드가 실행되면, USB 파일 시스템(340)을 비활성화(또는 차단)함으로써 USB 호스트 API를 비활성화할 수 있다. 이로써, USB 매니저(320)는 전자 장치(101)와 USB 호스트 API를 통해 전자 장치(101)가 외부 장치(예: 액세서리)에 접근(또는 통신)하지 못하도록 제어할 수 있다.
일 실시예에 따르면, USB 코어(330)는 액세서리 제한 모드가 실행되면 화이트 리스트에 등록된 외부 장치들(예: 액세서리) 외의 다른 외부 장치들 각각에 대응하는 USB 클래스 코드들에 해당하는 클래스 드라이버들(232)(예: 드라이버 프로그램)을 비활성화(또는 제거)함으로써, 상기 전자 장치(101)가 해당 클래스 드라이버들을 통해 외부 장치들에 접근할 수 없도록 제어할 수 있다. 다른 실시예에 따르면, USB 코어(330)는 액세서리 제한 모드가 실행되면 블랙 리스트에 등록된 외부 장치들 각각에 접근하기 위한 클래스 드라이버들을 비활성화(또는 제거)함으로써, 전자 장치(101)가 해당 클래스 드라이버들을 통해 액세서리들에 접근할 수 없도록 제어할 수 있다.
일 실시예에 따르면, USB 매니저(320)는 구현에서 생략될 수 있다. 예를 들어, 보안 매니저(310)가 USB 코어(330)로 액세서리 제한 모드로의 진입을 알리기 위한 알림 정보, 화이트 리스트 또는 블랙 리스트를 전달할 수도 있다.
일 실시예에 따르면, USB 매니저(320)는 USB 호스트 API(미도시)를 더 포함할 수 있다. USB 매니저(320)는 어플리케이션이, USB 호스트 API를 사용(호출)할 때, 일부 USB 호스트 API는 기능을 수행하는 한편, 다른 USB 호스트 API는 기능을 수행하지 않을 수 있다.
도 4는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 4를 참조하면, 동작 402에서 전자 장치(101)의 프로세서는 보안 모드(예: 액세서리 제한 모드)로 진입할 수 있다.
상기 보안 모드에서, 동작 404에서 프로세서(120)는 전자 장치(101)의 USB 인터페이스를 통해 연결된 외부 장치(예: 액세서리)로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신할 수 있다. 일 실시예에 따르면 상기 USB 클래스 코드는 상기 외부 장지로부터 전자 장치(101)로 전달되는 디스크립션 정보에 포함될 수 있다.
동작 406에서 프로세서(120)는 상기 외부 장치로부터 수신한 USB 클래스 코드가, 상기 보안 모드에서 전자 장치(101)에 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 포함되는지 판단할 수 있다.
동작 408에서, 프로세서(120)는 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 전자 장치(101) 사이의 통신 연결을 제어할 수 있다. 일 실시예에 따르면, 동작 408에서 프로세서(120) 또는 USB 코어(330)는 상기 외부 장치의 USB 클래스 코드가 상기 화이트 리스트에 포함된 것이면 상기 USB 클래스 코드에 대응하는 클래스 드라이버(예: 드라이버 프로그램)를 활성화할 수 있다. 이로써 전자 장치(101)는 상기 외부 장치에 접근할 수 있다.
일 실시예에 따르면 동작 408에서 프로세서(120) 또는 USB 코어(330)는 상기 외부 장치의 USB 클래스 코드가 상기 화이트 리스트에 포함된 것이 아니면 상기 USB 클래스 코드에 대응하는 클래스 드라이버(예: 드라이버 프로그램)를 활성화하지 않을 수 있다. 이로써 전자 장치(101)는 상기 외부 장치에 접근할 수 없게 된다.
본 발명의 일 실시예에 따른 전자 장치의 동작 방법은, 보안 모드로 진입하는 동작, 상기 보안 모드에서, 상기 전자 장치의 USB 인터페이스를 통해 연결된 외부 장치로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신하는 동작, 상기 보안 모드에서 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 상기 USB 클래스 코드가 포함되는지 판단하는 동작 및 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하는 동작;을 포함할 수 있다.
도 5는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다. 도 5에서 전자 장치(101)는 제1 데이터 경로 또는 제2 데이터 경로를 이용하는 USB 커넥터를 통하여 외부 장치(예: 액세서리)와 연결되는 것으로 가정한다.
일 실시예에 따르면, 상기 제1 경로는 전자 장치 디스플레이 인터페이스의 Tx/Rx단자에서 커넥터의 Tx/Rx와 연결된 단자일 수 있다. 일 실시예에 따르면, 제2 경로는 전자 장치 USB 2.0 포트의 D 단자에서 커넥터의 D 단자와 연결된 단자일 수 있다.
도 5를 참조하면, 동작 502에서 전자 장치(101)는 보안 모드(예: 액세서리 제한 모드)로 진입할 수 있다. 상기 보안 모드에서 전자 장치(101)는 USB 커넥터를 통해, 선택된 타입의 외부 장치들(예: 액세사리)이 상기 전자 장치로 액세스(access)하는 것을 허용할 수 있다. 상기 선택된 타입의 외부 장치들은, 상기 보안 모드에서 허용 가능한 외부 장치들 또는 허용 가능한 USB 클래스 코드들의 리스트(예: 화이트 리스트)에 근거하여 판단될 수 있다. 일 실시예에 따르면, 상기 보안 모드로 진입하면, 프로세서(120) 또는 USB 코어(330)는 동작 502 이전에 미리 연결되어 있던 외부 장치들과의 연결을 종료할 수 있다.
동작 504에서, 전자 장치(101)는 디스플레이 장치 및 USB 장치를 포함하는 외부 장치가 전자 장치(101)의 USB 커넥터에 연결되는 것을 감지할 수 있다. 예를 들어, 전자 장치의 프로세서(120, 611) 및/또는 CC IC(614)는 디스플레이 장치 및 USB 장치를 포함하는 외부 장치를 감지할 수 있다.
동작 506에서 전자 장치(101)는 제1 데이터 경로를 통해 USB 데이터 신호들이 송신되지 않도록 하는 동안, 제1 데이터 경로를 통해 전자 장치의 디스플레이 포트를 상기 외부 장치의 디스플레이 포트에 연결할 수 있다.
예를 들어, 전자 장치(101)의 USB 코어(330) 및/또는 Host Controller Driver(230)는 전자 장치(101) 내부의 USB 포트에서 커넥터로 연결된 경로에 데이터 통신을 막고, 전자 장치(101) 내부의 디스플레이 포트를 상기 외부 장치의 디스플레이 포트에 연결할 수 있다. 일 실시예에 따르면, 동작 506에서 USB 커넥터의 제1 데이터 경로를 통해 전자 장치(101)로부터 USB 데이터 신호들이 송신되지 않을 수 있다. 일 실시예에 따르면, 동작 506에서 프로세서(120)는 상기 제1 데이터 경로를 통해 USB 데이터 신호들을 전송하는 USB 포트의 임피던스(impedance)를 하이(high) 상태로 유지함으로써 상기 USB 데이터 신호가 송수신되지 않도록 제어할 수 있다.
동작 508에서 전자 장치(101)는 데이터 송수신을 위하여 USB 커넥터를 외부 장치의 USB 장치에 연결할 수 있다. 예를 들어, 전자 장치(101)의 USB 코어(330)는 데이터 송수신을 위하여 USB 커넥터를 외부 장치의 USB 장치에 연결할 수 있다. 일 실시예에 따르면, 상기 USB 장치는 상기 디스플레이 장치와는 다른 장치일 수 있다.
동작 510에서 전자 장치(101)는 상기 리스트를 사용하여 상기 외부 장치와 USB 이뉴머레이션 동작을 수행할 수 있다. 예를 들어, 전자 장치(101)의 USB 코어(330)는 상기 보안 모드에서 허용 가능한 외부 장치들 또는 허용 가능한 UB 클래스 코드들의 리스트(예: 화이트 리스트)에 기초하여 상기 USB 장치 또는 디스플레이 장치에 대한 USB 이뉴머레이션 동작을 수행할 수 있다. 이로써 USB 장치는 전자 장치(101)와 통신을 수행할 수 있게 된다.
동작 512에서 전자 장치(101)는 상기 USB 이뉴머레이션 동작이 완료된 외부 장치와 제2 데이터 경로를 통해 데이터를 송수신할 수 있다.
도 6은 다양한 실시예에 따른 전자 장치 및 상기 전자 장치에 연결 가능한 도킹 스테이션을 나타낸 블록도이다.
도 6을 참조하면, 전자 장치(601)는 AP(application processor)(610), CC(configuration channel) IC(614) 또는 Type-C 커넥터(615)를 포함할 수 있다.
AP(511)는 프로세서(611), 디스플레이 인터페이스 하드웨어(612), USB 컨트롤러(613)를 포함할 수 있고, 상기 USB 컨트롤러(613)는 고속 통신용의 USB 3.0 포트(621) 및 비고속 통신용의 USB 2.0 포트(622)를 포함할 수 있다.
AP(610)의 프로세서(611)는 전자 장치(701)를 제어하기 위한 소프트웨어를 구동할 수 있다. 상기 프로세서(611)는 예를 들어, USB 소프트웨어, 디스플레이 포트 소프트웨어, CC IC 드라이버 소프트웨어 등을 구동할 수 있다.
디스플레이 인터페이스(612)는 예를 들어, 디스플레이포트(displayport), HDMI(High-Definition Multimedia Interface]), MHL(Mobile High-Definition Link)등의 영상 인터페이스 일 수 있다. 디스플레이 인터페이스(612)는 (디스플레이 인터페이스(612) 내부에 포함된 디스플레이 포트(미도시)를 통해) Type-C 커넥터(615)의 Tx/Rx 단자(615-1, 615-2)와 연결될 수 있다. 상기 Type-C 커넥터(615)의 Tx/Rx 단자(615-1, 615-2)는 도킹 스테이션(603)에 포함된 Type-C 커넥터(635)의 Tx/Rx 단자(635-1, 635-2)와 연결될 수 있다. 상기 Type-C 커넥터(635)의 Tx/Rx 단자(635-1, 635-2)는 도킹 스테이션의 디스플레이 장치(632, 예를 들어, DisplayPort, HDMI, MHL 등의 디스플레이 인터페이스)와 연결되므로, 전자 장치(601)의 디스플레이 인터페이스(612)는 상기 전자 장치(601)의 Type-C 커넥터(615) 및 도킹 스테이션(603)의 Type-C 커넥터(635)를 통해 영상 데이터를 도킹 스테이션(603)으로 전달할 수 있다.
USB 컨트롤러(613)는 USB 3.0 포트(621) 또는 USB 2.0 포트(622)의 동작을 제어할 수 있다. 상기 USB 3.0 포트(621)는 Type-C 커넥터(615)의 Tx/Rx 단자(615-1, 615-2)와 연결될 수 있다. USB 2.0 포트(622)는 Type-C 커넥터(615)의 D 단자(615-3)와 연결될 수 있다. 상기 D 단자(615-3)는 도킹 스테이션(603)에 포함된 Type-C 커넥터(635)의 D 단자(635-3)와 연결될 수 있고, 상기 D 단자(635-3)는 USB 허브 디바이스(632)(예: USB 2.0 포트)에 연결될 수 있다. 이로써 전자 장치(601)의 USB 데이터 신호는 USB. 2.0 포트(622)를 통해 도킹 스테이션(603)의 USB 허브 디바이스(632)로 전달될 수 있다.
AP(610)와 연결된 CC IC(714)는, 예를 들어 전자 장치(601)와 도킹 스테이션(603)의 통신 시에, 상기 통신을 위한 채널을 구성할 수 있다. 상기 CC IC(714)는 Type-C 커넥터(615)의 CC 단자(615-4)와 연결될 수 있고, 상기 CC 단자(615-4)는 도킹 스테이션(603)에 포함된 Type-C 커넥터(635)의 CC 단자(635-4)와 연결될 수 있고, 상기 CC 단자(635-4)는 도킹 스테이션(603)의 프로세서(631)과 연결될 수 있다.
도킹 스테이션(603)은 프로세서(631), 디스플레이(632), USB 허브 디바이스(633), CC IC(634) 또는 Type C 커넥터(635)를 포함할 수 있다. 상기 프로세서(631)는 도킹 스테이션(503)의 전반적인 동작을 제어할 수 있다. 디스플레이(632)는 연결된 Type-C 커넥터(635)를 통해 전자 장치(601)로부터 영상 데이터를 수신할 수 있다. USB 허브 디바이스(633)는 연결된 Type-C 커넥터(635)를 통해 전자 장치(601)로부터 USB 데이터를 수신할 수 있다. 일 실시예에 따르면 상기 USB 허브 디바이스(633)는 USB 2.0 포트를 포함할 수 있다.
일 실시예에 따르면 AP(610)의 디스플레이 인터페이스(612)에 연결된 신호선과 AP(610)의 USB 3.0 포트(621)에 연결된 신호선은 Type-C 커넥터(615)의 Tx/Rx 단자들(615-1, 615-2)에 연결될 수 있다. 상기 Tx/Rx 단자들(615-1, 615-2)은, 예를 들어 도킹 스테이션(603)과의 고속(SuperSpeed) 통신을 수행하기 데이터 경로일 수 있다. 일 실시예에 따르면, 전자 장치(101)는 기본적으로 USB 3.0 포트(621)의 Tx/Rx 단자들이 커넥터(615)의 Tx/Rx 단자들(615-1, 615-2)과 전류가 흐르도록 설정한 상태(short)를 유지할 수 있다.
AP(610)의 디스플레이 인터페이스(612)의 포트(미도시)가 커넥터(615)의 상기 Tx/Rx 단자(615-1, 615-2)를 사용할 수 있도록 하기 위해서는, AP(601)는 USB 3.0 포트(621)에 고저항(또는 high impedance)이 인가되도록 USB 컨트롤러(613)를 제어해야 한다. 상기와 같이 고저항이 인가되어 USB 3.0 포트(621)로 전류가 흐르지 않게 되면, 상기 USB 3.0 포트(621)가 개방(open)되는 효과가 발생될 수 있으며, 상기 USB 3.0 포트(621)가 개방되면 디스플레이 인터페이스(612) 포트로 전류가 흐를 수 있다.
한편 전자 장치(예: AP(610))에 MDM 정책과 같은 보안 모드(예: 액세서리 제한 모드)가 적용되면 USB 컨트롤러(613)가 비활성화되어 AP(610)는 상기 USB 컨트롤러(613)를 제어할 수 없게 된다. 즉 USB 3.0 포트(621)를 개방할 수 없어서, AP(610)의 디스플레이 인터페이스(621)가 Type-C 커넥터(615)의 Tx/Rx 단자들(615-1, 615-2)에 신호들을 전달할 수 없게 된다. 상기에서 Type-C 커넥터 표준의 용어들을 사용하여 내용을 설명하였으나, 커넥터의 종류에 따라 명칭은 달라질 수 있다. 예를 들어, 본 발명에서 Rx, TX 단자(들)는 고속 통신용 단자, D 단자는 저속 통신용 단자로 일반화될 수 있으며, CC 단자는 ID(identification) 또는 검출(detect) 단자로 일반화 될 수 있다. CC IC는 외부 전자 장치 검출 모듈로 명칭될 수 있다.
도 7은 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 7을 참조하면, 전자 장치(101)는 동작 702에서 보안 모드, 예를 들어 액세서리 제한 모드로 진입할 수 있다. 상기 액세서리 제한 모드는, 예를 들어 MDM 정책을 실행하기 위한 모드 또는 키즈 모드일 수 있다. 동작 702에서 보안 매니저(310)는 USB 코어(330)로 화이트 리스트 또는 블랙 리스트를 전달할 수 있다.
동작 704에서 전자 장치(101)의 CC IC(614)는 커넥터, 예를 들어 USB 커넥터에 연결되는 외부 장치(예: 액세서리)를 감지할 수 있다. 동작 704에서 감지되는 외부 장치는, 예를 들어 USB Type-C 커넥터를 통해 전자 장치(101)와 연결되는 장치로서, 얼터네이트(alternate) 장치(예: 디스플레이 장치) 또는 USB 장치일 수 있다. 전자 장치(101)는 기 구비된 CC(channel configuration) 인식 단자(예: CC 단자(615-4)) 또는 CC IC(614)를 통해 외부 장치(예: 도킹 스테이션(603))의 정보를 리드(read)함으로써 상기 외부 장치를 식별할 수 있다. 상기 디스플레이 장치는 영상을 출력하기 위한 장치로서 HDMI(high definition multimedia interface), 디스플레이 포트(DisplayPort), MHL(mobile hight-definition link) 등의 디스플레이 장치일 수 있다. 상기 USB 장치는 USB 인터페이스를 통해 전자 장치(101)와 연결될 수 있는 장치로서, USB 호스트 장치 또는 USB 디바이스 장치일 수 있다.
동작 714에서 전자 장치 ()는 USB 커넥터를 통해 외부 장치와의 얼터네이트(alternate) 모드로 진입할 수 있다. 동작 716에서 프로세서(120)는 USB 3.0 포트(621)를 오픈(open)할 수 있다. 예를 들어, USB 3.0 포트(621)에 고저항(high impedence)을 부여하여 해당 포트로 전류가 흐르는 것을 차단할 수 있다. 동작 718에서 프로세서(120)는 디스플레이(예: DisplayPort) 기능을 활성화하고 외부 장치와의 통신을 수행할 수 있다.
일 실시예에 따르면, 전자 장치(101)(예: CC IC)는, CC 단자(615-4)를 통해 외부 장치(예: 도킹 스테이션(603))와 통신하여 얼티네이트 모드로 진입할 수 있다. 전자 장치(예: 프로세서(611))는 CC IC(614)로부터 외부 전자 장치가 디스플레이 장치(632)를 포함한다는 정보를 수신하고, 이에 따라 USB 커넥터(예: Type-C 커넥터(615))의 Tx/Rx 단자들(615-1, 615-2)을 디스플레이 포트가 사용할 수 있게 설정할 수 있다. 예를 들어, 프로세서(120)(예:호스트 컨트롤러 드라이버(230))는 USB 3.0 포트(621)에 고저항(High impedance)이 인가되도록 전자 장치(601)를 제어할 수 있다.
일 실시예에 따르면, AP(610)의 프로세서(611)는 디스플레이 포트 기능(예: 하드웨어, 소프트웨어)을 활성화하고, 전자 장치(601)에 연결된 외부 장치와 디스플레이 포트 통신을 수행할 수 있다.
또한 도 6에서는 디스플레이 인터페이스(612) 와 USB 컨트롤러(613)를 AP칩에 포함된 것으로 도시하였으나, 두 모듈은 AP칩 외부에 별도 칩으로 구성될 수도 있다.
도 7을 참조하면, AP(610)의 USB 컨트롤러(613)는 외부 장치, 특히 USB 장치가 연결됨을 감지할 수 있다. 동작 724에서, 전자 장치(101)의 프로세서(120)(예: 프로세서(611))는 USB 포트 2.0(622)를 활성화시킬 수 있다. 동작 726에서, 전자 장치(101)는 USB 이뉴머레이션 동작을 수행할 수 있다. USB 코어(330) 및 USB 컨트롤러(613)는 상기 USB 장치에 대한 USB 이뉴머레이션 절차를 시작하여 상기 USB 장치의 디스크립션 정보를 읽어올 수 있다. 이때 USB 코어(330)는 동작 702에서 수신한 화이트 리스트에 의거하여, 상기 USB 장치가 전자 장치(601)에 연결될 수 있는 USB 클래스 코드에 해당하는 장치인지, 아니면 전자 장치(601)에 연결될 수 없는 USB 클래스 코드에 해당하는 장치인지 여부를 판단할 수 있다
상기 이뉴머레이션 동작이 완료되면, 전자 장치(101)는 동작 728에서 상기 USB 2.0 포트(622)를 통해 USB 통신을 수행할 수 있다. 동작 726의 결과, 상기 USB 장치가 전자 장치(601)에 연결될 수 있는 USB 클래스 코드에 해당하는 장치이면, 해당 USB 클래스 코드에 대응하는 클래스 드라이버를 로드함으로써 상기 USB Enumeration 절차를 종료할 수 있다.
상기 동작 714 내지 718과 동작 724 내지 728은 동시에 병렬로 수행될 수 있다.
도 8은 다양한 실시예에 따른 전자 장치의 USB 커넥터의 구조를 나타낸 도면이다. 상기 USB 커넥터는, 예를 들어 도 6에 도시된 바와 같은 Type-C 커넥터(615, 635)일 수 있다. 도 8에서, 도 6의 전자 장치(601)의 Type-C 커넥터(615)와 도킹 스테이션(603)의 Type-C 커넥터(635)가 서로 연결된 것으로 가정한다.
전자 장치(601)의 Type-C 커넥터(615) 또는 도킹 스테이션(635)의 Type-C 커넥터(635)는 다수의 핀들(pins)을 포함할 수 있다. 도 8을 참조하면, 전자 장치(601)의 USB 커넥터(615)는, 핀들로서 그라운드(GND)(A1), 데이터 송신을 위한 TX1+(A2), TX1-(A3), 전력 공급을 위한 VBUS(A4), 채널 구성을 위한 CC1(A5), 데이터 송수신(예: 고속 통신)을 위한 D+(A6), D-(A7), 사이드밴드(side band)를 사용하기 위한 SBU1(A8), 전력 공급을 위한 VBUS(A9), 데이터 수신을 위한 RX2-(A10), RX2+(A11), 그라운드(GND)(A12)를 포함할 수 있다.
마찬가지로, 도킹 스테이션(603)의 Type-C 커넥터(635)는, 핀들로서 그라운드(GND)(B12), 데이터 수신을 위한 RX1+(B11), RX1-(B10), 전력 공급을 위한 VBUS(B9), 사이드 밴드의 이용을 위한 SBU2(B8), 데이터 송수신(예: 고속 통신)을 위한 D-(B7), D+(B6), 채널 구성을 위한 CC2(B5), 전력 공급을 위한 VBUS(B4), 데이터 송신을 위한 TX2-(B3), TX2+(B2), 그라운드(GND)(B1)를 포함할 수 있다.
도 6을 참조하면, 전자 장치(601)의 Type-C 커넥터(615)의 그라운드(A1)는 도킹 스테이션(603)의 Type-C 커넥터(635)의 그라운드(B12)와 연결될 수 있다. 마찬가지로 전자 장치(601)의 그라운드(A12)는 도킹 스테이션(603)의 그라운드(B1)와 연결될 수 있다.
전자 장치(601)의 TX+(A2)는 도킹 스테이션(603)의 RX+(B11)와 연결될 수 있고, TX-(A3)는 RX-(B10)와 연결될 수 있다. 이로써 상기 전자 장치(601)로부터 도킹 스테이션(603)으로 데이터가 전송될 수 있다. 전자 장치의 VBUS(A4) 및 VBUS(A9) 각각은 도킹 스테이션(603)의 VBUS(B9) 및 VBUS(B4)와 연결될 수 있다. 이로써 도킹 스테이션(603)은 상기 전자 장치(601)로부터 전력을 수신할 수 있다.
전자 장치(601)의 CC1(A5)는 도킹 스테이션(603)의 SBU2(B8)와 연결될 수 있고, 전자 장치(601)의 SBU1(A8)은 도킹 스테이션(603)의 CC2(B5)와 연결될 수 있다. 이로써 사이드 밴드를 이용하여 통신하는, 전자 장치(601)와 도킹 스테이션(603) 사이의 채널이 형성될 수 있다.
전자 장치(601)의 D+(A6)는 도킹 스테이션(603)의 D-(B7)와 연결되고, 전자 장치(601)의 D-(A7)은 도킹 스테이션(603)의 D+와 연결될 수 있다. 이로써 전자 장치(601)와 도킹 스테이션(603)은 고속 데이터 통신을 할 수 있다.
도 9는 다양한 실시예에 따른 전자 장치(101)의 동작 방법을 나타낸 순서도이다. 도 9에서, 전자 장치(101)에 의하여 상기 전자 장치(101)와 연결이 제어되는 외부 장치를 액세서리라 가정하기로 한다. 상기 외부 장치는, 예를 들어, 전자 장치(101)에 연결될 수 있는 액세서리로서, 키보드(keyboard), 마우스(mouse), 타블렛(tablet), 마이크, 스피커 또는 헤드셋, 등의 오디오 입출력 장치, 모니터(monitor), HMD(head mounted display), 도킹 스테이션(docking station), 프린터(printer) 또는 카메라(camera) 등 일 수 있다.
도 9를 참조하면, 동작 902에서 프로세서(120)는 전자 장치(101)의 동작 모드를 액세서리 제한 모드로 전환하는 것으로 결정할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 사용자 입력 또는 미리 저장된 전환 조건이 만족되면 상기 액세서리 제한 모드로 전환될 수 있다. 상기 전환 조건은, 예를 들어, 사용자로부터 액세서리 제한 모드로 전환하기 위한 사용자 입력이 전자 장치(101)로 입력된 경우, 현재 시간(current time)이 미리 설정된 시간(예: PM 11:00 등)인 경우, 전자 장치(101)가 미리 설정된 장소(예: 회사 등)에 위치한 경우, 또는 제1 사용자(예: 부모, 선생 등)에 의하여 전자 장치(101) 또는 상기 전자 장치(101)와 연결된 외부 장치(예: 액세서리)의 사용이 제한된 제2 사용자(예: 자녀, 학생 등)가 상기 전자 장치(101) 또는 외부 장치에 접근한 것을 감지한 경우 등이 되면 만족될 수 있다. 일 실시예에 따르면 상기 전환 조건은 전자 장치(101) 내에 미리 설정된 것이거나 또는 외부(예: 전자 장치(102, 104), 서버(108))로부터 수신한 것일 수 있다.
전자 장치(101)의 동작 모드가 액세서리 제한 모드로 전환되면, 프로세서(120)는 상기 전자 장치(101)에 액세서리(예: 전자 장치(102))의 사용을 제한하기 위한 정책을 적용할 수 있다. 예를 들어, 프로세서(120)는 MDM 모드에서 사용되는 정책 또는 키즈 모드에서 사용되는 정책을 전자 장치(101)에 적용시킬 수 있다.
동작 904에서 프로세서(120)는 메모리(130)로부터 화이트 리스트 및/또는 블랙 리스트를 로드(또는 리드(read))할 수 있다. 상기 화이트 리스트 또는 블랙 리스트는 사용자에 의하여 미리 설정되었거나 또는 네트워크(199)를 통해 연결된 다른 전자 장치(104) 또는 서버(108)로부터 수신한 것일 수 있다. 화이트 리스트는 상기 액세서리 제한 모드에서 이용 가능한 액세서리들을 나타낸 리스트이고, 블랙 리스트는 상기 액세서리 제한 모드에서 이용 불가능한 액세서리들을 나타낸 리스트일 수 있다. 예를 들어, 보안 매니저(310)는 메모리에 저장된 화이트(또는 블랙) 리스트를 로드하여, USB 매니저(320)를 통해 USB 코어(330)로 전달할 수 있다.
동작 906에서 프로세서(120)는 USB 호스트 API를 비활성화할 수 있다. 상기 USB 호스트 API가 활성화되어 있는 경우, 전자 장치(101)는 상기 전자 장치(101)에 적용된 액세서리 사용 제한 정책의 적용 여부와 상관없이, 상기 USB 호스트 API를 이용하여 전자 장치(101)의 연결 단자(178), 예를 들어 USB 커넥터를 통해 전자 장치(101)와 연결된 액세서리들에 접근할 수 있다. 상기 액세서리 사용 제한 정책이 전자 장치(101)에서 이미 실행되고 상태에서도 상기 USB 호스트 API가 활성화되어 있으면, 상기 액세서리 사용 제한 정책의 실행 효과가 나타날 수 없으므로, 상기 액세서리 사용 제한 정책의 올바른 실행을 위하여 프로세서(120)는 상기 액세서리 사용 제한 정책의 적용 시에 상기 USB 호스트 API를 차단할 수 있다. 다양한 실시예에 따르면 상기 동작 906은 생략될 수도 있다.
동작 908에서 프로세서(120)는 인터페이스(177)(예: USB 인터페이스) 또는 연결 단자(178)(예: USB 커넥터)을 통해 전자 장치(101)와 연결된 액세서리들과의 연결을 종료할 수 있다. 일 실시예에 따르면, 동작 908에서 프로세서(120)는 연결 단자(178), 예를 들어 USB 커넥터에 물리적으로 연결된 액세서리들 각각을 사용하기 위하여 USB 코어(330)에 의해 활성화(또는 로드)된 드라이버 프로그램들을 비활성화(또는 제거)할 수 있다. 일 실시예에 따르면 동작 908에서, 프로세서(120)는 액세서리들 각각에 대응하는 드라이버 프로그램들을 비활성화(또는 제거)하고, 상기 액세서리들 각각과 전자 장치(101) 사이에 형성된 채널들을 제거함으로써, 상기 전자 장치(101)와 액세서리들 간의 연결을 종료할 수 있다.
한 실시예에 따르면 동작 906 및 동작 908은 동시에 실행될 수 있다. 즉 전자 장치(101)는 USB 호스트 API를 차단함과 동시에, 연결 단자(178)를 통해 연결된 모든 액세서리들과의 연결을 종료하고, 상기 USB 코어(330)에 의하여 활성화(또는 로드)된 드라이버 프로그램들을 비활성화시킬 수 있다.
도 10은 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다. 도 10에서 전자 장치(101)는 서버(108)로부터 수신한 요청에 따라 보안 모드, 예를 들어 액세서리 제한 모드를 설정하는 것으로 가정한다.
도 10을 참조하면, 전자 장치(101)는 동작 1002에서 서버(108)로부터 액세서리 제한 모드의 설정 요청 및/또는 상기 액세서리 제한 모드를 위한 리스트를 수신할 수 있다. 일 실시예에 따르면, 동작 1002에서 서버(108)는 전자 장치(101)로 상기 액세서리 제한 모드를 위한 화이트 리스트 또는 블랙 리스트를 전송할 수 있다. 동작 1004에서 전자 장치(101)는 서버(108)로부터 수신한 리스트를 메모리(130)에 저장할 수 있다. 한 실시예에 따르면, 동작 1002에서 전자 장치(101)는 상기 화이트 리스트 또는 블랙 리스트와 함께, 상기 액세서리 제한 모드로 전환하기 위한 전환 조건에 대한 정보를 서버(108)로부터 수신할 수 있다.
동작 1006에서 프로세서(120)는 전자 장치(101)가 액세서리 제한 모드로 진입하기 위한 전환 조건을 만족하는지 여부를 판단할 수 있다. 동작 1006의 판단 결과 전자 장치(101)가 상기 전환 조건을 만족하지 않는 경우(1006: 아니오), 프로세서(120)는 상기 전환 조건을 만족할 때까지 전자 장치(101)가 현재 상태를 유지하도록 제어할 수 있다. 한 실시예에 따르면, 프로세서(120)는 전자 장치(101)의 현재 상태를 모니터링하고, 그 모니터링 결과에 기초하여 상기 전자 장치(101)가 상기 전환 조건을 만족하는지 여부를 판단할 수 있다.
동작 1006의 판단 결과 상기 전자 장치(101)가 상기 전환 조건을 만족하면(1006: 예), 프로세서(120)는 동작 1008에서 USB 호스트 API를 비활성화할 수 있다. 동작 1010에서 프로세서(120)는 USB 코어(330)에 의하여 활성화(또는 로드)되어 있던 클래스 드라이버들(예: 드라이버 프로그램들)을 비활성화할 수 있다. 이로써, 전자 장치(101)는 상기 전자 장치(101)와 연결되어 있던 액세서리들과의 연결을 종료할 수 있다.
도 11은 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다. 도 11에서 보안 모드, 예를 들어 액세서리 제한 모드에서 전자 장치(101)로의 연결이 제한되는 외부 장치는 액세서리인 것으로 가정한다.
도 11을 참조하면, 동작 1102에서 전자 장치(101)는 액세서리 제한 모드로 진입할 수 있다. 동작 1104에서 프로세서(120)는 상기 액세서리 제한 모드에서 사용 가능한 액세서리들에 대한 화이트 리스트를 활성화(또는 로드)할 수 있다. 예를 들어, 보안 매니저(310)는 메모리(130)에 저장된 화이트 리스트를 로드하여, USB 매니저(320)를 통해 USB 코어(330)로 전달할 수 있다.
동작 1106에서 프로세서(120)는 USB 호스트 API를 비활성화하고, 동작 1108에서 프로세서(120)는 인터페이스(177)(예: USB 인터페이스) 또는 연결 단자(178)(예: USB 커넥터)를 통해 전자 장치(101)에 연결되어 있는 액세서리들(예: 전자 장치(102)) 각각에 대응하는 클래스 드라이버들을 비활성화(또는 차단)할 수 있다. 동작 1106 및 동작 1108을 통해 프로세서(120)는 전자 장치(101)와 액세서리들 각각 사이에 형성되어 있던 통신 채널들을 제거할 수 있다. 다양한 실시예에서, 동작 1106은 수행되지 않을 수도 있다.
동작 1110에서 프로세서(120)는 인터페이스(177) 또는 연결 단자(178)를 통해 전자 장치(101)에 새롭게 연결된 액세서리가 감지되는지 여부를 판단할 수 있다. 동작 1110의 판단 결과 새롭게 연결된 액세서리가 감지되지 않은 경우(1110: 아니오), 프로세서(120)는 전자 장치(101)가 현재 상태를 유지하도록 제어할 수 있다. 한 실시예에 따르면, 프로세서(120)는 지속적으로 전자 장치(101)에 새로운 액세서리가 연결되는지 여부를 모니터링할 수 있다. 한 실시예에 따르면, 전자 장치(101)는 커넥터에 새로운 액세서리가 연결될 경우 프로세서(120)는 그에 대응하는 인터럽트(interrupt)를 수신하고, 새로운 액세서리가 연결된 것을 판단할 수 있다. 한 실시예에 따르면, 프로세서(120)는 동작 1108 이후, 액세서리의 USB 클래스 코드 또는 상기 USB 클래스 코드를 포함하는 디스크립션 정보가 상기 인터페이스(177) 또는 연결 단자(178)를 통해 전달되면, 상기 새로운 액세서리가 전자 장치(101)에 연결된 것으로 판단할 수 있다.
동작 1110의 판단 결과, 새롭게 연결된 액세서리가 감지되는 경우(1110: 예), 프로세서(120)는 동작 1112에서 상기 액세서리가 화이트 리스트에 등록되어 있는지 여부를 판단할 수 있다. 동작 1112의 판단 결과 상기 액세서리가 화이트 리스트에 등록되어 있지 않은 경우(1112: 아니오), 프로세서(120)는 전자 장치(101)가 현재 상태를 유지하도록 제어할 수 있다. 한 실시예에 따르면 프로세서(120)는 동작 1112에서 상기 새롭게 연결된 액세서리로부터 수신된 USB 클래스 코드가 상기 화이트 리스트에 등록된 액세서리들의 USB 클래스 코드들에 포함되는지 여부를 판단할 수 있다. 동작 1112의 판단 결과 상기 액세서리로부터 수신된 USB 클래스 코드가 상기 화이트 리스트에 포함된 USB 클래스 코드가 아닌 경우 프로세서(120)는, 해당 액세서리가 화이트 리스트에 등록되어 있지 않은 것으로 판단할 수 있다. 새롭게 연결된 액세서리가 화이트 리스트에 등록된 것이 아닌 경우, 프로세서(120)는 상기 액세서리에 대한 이뉴머레이션 동작을 수행하지 않음으로써, 상기 전자 장치(101)가 상기 액세서리에 접근할 수 없게 할 수 있다. 일 실시예에 따르면, 동작 1112의 판단 결과 상기 액세서리가 화이트 리스트에 등록되어 있지 않은 경우(1112: 아니오), 프로세서(120)는 전자 장치(101)의 디스플레이(예: 표시 장치(160))를 통해 관련한 UX(예: 팝업 및/또는 메시지, 예를 들어“현재 MDM 보안 정책에 따라 USB Camera를 지원하지 않습니다.”와 같은 메시지)를 표시할 수 있다.
동작 1112의 판단 결과 상기 새롭게 연결된 액세서리가 화이트 리스트에 등록되어 있는 경우(1112: 예), 프로세서(120)는 동작 1114에서 해당 액세서리의 클래스 드라이버(예: 드라이버 프로그램)을 활성화(또는 로드)하고 상기 액세서리에 대한 이뉴머레이션 동작을 수행함으로써, 전자 장치(101)와 액세서리 간의 통신 채널을 생성할 수 있다. 이로써 전자 장치(101)는 화이트 리스트에 등록된 액세서리에 접근하여 상기 액세서리를 이용할 수 있게 된다. 동작 1112의 판단 결과, 상기 액세서리의 USB 클래스 코드가 상기 화이트 리스트에 포함된 USB 클래스 코드인 경우 프로세서(120)는 상기 액세서리를 액세서리 제한 모드에서 이용 가능한 장치로 판단할 수 있다. 동작 1114에서 프로세서(120)는 상기 액세서리의 USB 클래스 코드에 대응하는 클래스 드라이버를 활성화할 수 있다.
한 실시예에 따르면, 프로세서(120)는 동작 1108의 실행 이후 미리 저장된 시간(예: 1분)이 경과되면, 인터페이스(177) 또는 연결 단자(178)를 통해 연결되어 있던 하나 이상의 액세서리들로부터 다시 전송된 USB 클래스 코드를 확인함으로써 상기 액세서리들에 대한 재인식 동작을 실행할 수 있다. 프로세서(120)는 동작 1108 이후 상기 액세서리들 각각으로부터 재전송된 USB 클래스 코드에 기초하여 해당 액세서리가 화이트 리스트에 등록된 장치인지 여부를 판단할 수 있다. 해당 액세서리가 화이트 리스트에 등록되어 있는 경우, 프로세서(120)는 동작 1114에서 해당 액세서리의 USB 클래스 코드에 대응하는 클래스 드라이버를 활성화(또는 로드)하여 전자 장치(101)와 액세서리 간의 통신 채널을 생성할 수 있다. 이로써 전자 장치(101)는 액세서리에 접근하여 상기 액세서리를 이용할 수 있게 된다.
도 12는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다. 도 12에서 보안 모드, 예를 들어 액세서리 제한 모드에서 전자 장치(101)로의 연결이 제한되는 외부 장치는 액세서리인 것으로 가정한다.
도 12를 참조하면, 동작 1202에서 전자 장치(101)는 액세서리 제한 모드로 진입할 수 있다. 동작 1204에서 프로세서(120)는 화이트 리스트를 활성화(또는 로드)할 수 있다. 동작 1206에서 프로세서(120)는 USB 호스트 API를 비활성화할 수 있다.
동작 1208에서 프로세서(120)는 인터페이스(177)(예: USB 인터페이스) 또는 연결 단자(178)(예: USB 커넥터)를 통해 액세서리가 연결되어 있는지 여부를 판단할 수 있다. 동작 1208의 판단 결과 액세서리가 연결되어 있지 않은 경우(1208: 아니오), 프로세서(120)는 현재 상태를 유지할 수 있다.
동작 1208의 판단 결과 액세서리가 연결되어 있는 경우(808: 예), 동작 810에서 프로세서(120)는 상기 인터페이스(177) 또는 연결 단자(178)를 통해 연결되어 있는 액세서리들을 확인할 수 있다. 다양한 실시예에 따르면 동작 1208은 수행되지 않을 수 있다. 상기 프로세서(120)는 현재 동작 중인 프로그램을 확인하여 현재 커넥터를 통해 연결되어 있는 액세서리들을 확인할 수 있다.
동작 1212에서 프로세서(120)는 상기 인터페이스(177) 또는 연결 단자(178)를 통해 연결되어 있는 액세서리가 화이트 리스트에 등록되어 있는지 여부를 판단할 수 있다. 동작 1212의 판단 결과 상기 인터페이스(177) 또는 연결 단자(178)를 통해 연결되어 있는 액세서리가 화이트 리스트에 등록되어 있지 않은 경우(1212: 아니오), 프로세서(120)는 동작 1218에서 상기 액세서리에 대응하는 클래스 드라이버를 비활성화(또는 제거)하고, 상기 전자 장치(101)와 액세서리 사이의 통신 채널을 제거할 수 있다. 상기와 같이, 프로세서(120)는 화이트 리스트에 등록되지 않은 액세서리와의 연결을 종료할 수 있다.
동작 1212의 판단 결과 상기 인터페이스(177) 또는 연결 단자(178)를 통해 연결되어 있는 액세서리가 화이트 리스트에 등록되어 있는 경우(1212: 예), 프로세서(120)는 전자 장치(101)와 상기 액세서리 사이의 통신 채널을 유지하도록 전자 장치(101)를 제어할 수 있다. 일 실시예에 따르면, 프로세서(120)는 상기 액세서리를 이용하기 위한 클래스 드라이버가 활성화(또는 로드)된 상태를 유지할 수 있도록 전자 장치(101)를 제어할 수 있다.
도 13은 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 13을 참조하면, 동작 1302에서 전자 장치(101)는 보안 모드, 예를 들어 액세서리 제한 모드로 진입할 수 있다. 동작 1304에서 프로세서(120)는 블랙 리스트를 리드(read)(또는 로드)할 수 있다. 동작 1306에서 프로세서(120)는 USB 호스트 API를 비활성화할 수 있다.
동작 1308에서 프로세서(120)는 전자 장치(101)의 인터페이스(177)(예: USB 인터페이스) 또는 연결 단자(178)(예: USB 커넥터)에 연결된 외부 장치(예: 액세서리)를 확인할 수 있다. 일 실시예에 따르면, 전자 장치(101)에 액세서리 제한 모드로 진입하기 전에, 상기 전자 장치(101)에 연결된 외부 장치에 대한 이뉴머레이션 과정에서 USB 코어(330)는 상기 외부 장치로부터 해당 USB 클래스 코드에 대한 코드 정보를 수신할 수 있다. 프로세서(120) 또는 상기 USB 코어(330)는 액세서리 제한 모드 진입 전 액세서리들로부터 수신한 USB 클래스 코드에 기초하여 상기 전자 장치(101)에 연결된 외부 장치(예: 액세서리)를 확인할 수 있다.
프로세서(120) 또는 USB 코어(330)는 동작 1310에서 상기 외부 장치(예: 액세서리)가 블랙 리스트에 등록되어 있는지 여부를 판단할 수 있다. 예를 들어, 상기 액세서리로부터 수신된 코드 정보에 포함된 USB 클래스 코드가 상기 블랙 리스트에 등록된 액세서리들의 USB 클래스 코드들 중 어느 하나와 매칭되는지에 포함되는지 여부를 판단할 수 있다. 동작 1310의 판단 결과 상기 외부 장치가 블랙 리스트에 등록되어 있지 않은 경우(1310: 아니오), 프로세서(120)는 동작 1314에서 전자 장치(101)가 상기 외부 장치에 접근할 수 있는 현재 상태를 유지하도록 제어할 수 있다. 일 실시예에 따르면, 프로세서(120)는 동작 1314에서 상기 외부 장치에 대응하는 클래스 드라이버(예: 드라이버 프로그램)가 활성화된 상태를 유지하도록 제어할 수 있으며, 전자 장치(101)와 외부 장치 간의 통신 채널 또한 유지되도록 제어할 수 있다.
동작 1310의 판단 결과 전자 장치(101)에 연결되어 있는 액세서리가 블랙 리스트에 등록되어 있는 경우(1310: 예), 프로세서(120)는 동작 1312에서 상기 액세서리와의 연결을 종료하고, 상기 액세서리에 대응하는 클래스 드라이버를 비활성화(또는 제거)할 수 있다. 한 실시예에 따르면, 동작 1312 이후에도 프로세서(120)는 상기 액세서리로부터 수신되는 USB 클래스 코드를 무시하고, 상기 액세서리에 대한 이뉴머레이션 동작을 실행하지 않음으로써, 전자 장치(101)가 상기 액세서리에 접근할 수 없도록 할 수 있다.
도 14는 다양한 실시예에 따른 전자 장치(101)의 동작 방법을 나타낸 순서도이다. 도 14에서 전자 장치(101)의 서버(102)의 요청에 따라 액세서리 제한 모드가 설정될 수 있는 것으로 가정한다.
도 14를 참조하면, 서버(108)는 동작 1402에서 화이트 리스트를 업데이트할 수 있다. 동작 1404에서 서버(108)는 상기 업데이트된 화이트 리스트를 전자 장치(101)로 전송할 수 있다. 일 실시예에 따르면 서버(108)는 전자 장치(101)에 요청에 따라 상기 화이트 리스트 또는 블랙 리스트를 업데이트할 수 있다.
동작 1406에서 전자 장치(101)는 상기 업데이트된 화이트 리스트를 메모리(130)에 저장할 수 있다. 이후, 전자 장치(101)는 동작 1408에서 보안 모드, 예를 들어 액세서리 제한 모드로 진입할 수 있다. 동작 1410에서 전자 장치(101)는 USB 호스트 API를 비활성화하고, 동작 1412에서 전자 장치(101)는 USB 코어(330)에 의하여 활성화(또는 로드)된 클래스 드라이버(예: 드라이버 프로그램)를 비활성화(또는 제거)함으로써, 인터페이스(177) 또는 연결 단자(178)를 통해 연결된 외부 장치(예: 액세서리)와의 연결을 종료(terminate)할 수 있다.
도 15는 다양한 실시예에 따른 전자 장치의 동작 방법을 나타낸 순서도이다.
도 15를 참조하면, 전자 장치(101)(예: 프로세서(120))는 동작 1502에서 보안 모드, 예를 들어 액세서리 모드에 진입된 상태일 수 있다.
동작 1504에서 프로세서(120)는 상기 액세서리 모드 해제를 위한 조건이 만족되는지 여부를 판단할 수 있다. 예를 들어, 사용자로부터 액세서리 제한 모드를 해제하기 위한 사용자 입력이 전자 장치(101)로 입력된 경우, 외부로부터 상기 액세서리 제한 모드를 해제하기 위한 요청을 수신한 경우, 현재 시간(current time)이 미리 설정된 시간(예: AM 10:00 등)인 경우 또는 전자 장치(101)가 미리 설정된 장소(예: 회사 등)를 벗어난 경우 상기 액세서리 모드 해제를 위한 조건이 만족될 수 있다. 또는 제1 사용자(예: 부모, 선생 등)에 의하여 전자 장치(101) 또는 상기 전자 장치(101)와 연결된 외부 장치(예: 액세서리)의 사용이 제한된 제2 사용자(예: 자녀, 학생 등)의 상기 전자 장치(101) 또는 외부 장치로의 접근이 감지되지 않는 경우, 상기 액세서리 제한 모드를 해제하기 위한 조건이 만족될 수 있다. 일 실시예에 따르면 상기 액세서리 제한 모드를 해제하기 위한 조건은 전자 장치(101) 내에 미리 설정된 것이거나 또는 외부(예: 전자 장치(102, 104), 서버(108))로부터 수신한 것일 수 있다.
동작 1504의 판단 결과 상기 액세서리 모드 해제를 위한 조건이 만족되지 않으면(1504: 아니오), 프로세서(120)는 동작 1502와 같이 액세서리 제한 모드를 유지할 수 있다.
동작 1504의 판단 결과 상기 액세서리 제한 모드 해제를 위한 조건이 만족되면(1504: 예), 프로세서(120)는 동작 1506에서 상기 액세서리 제한 모드 해제를 위한 요청을 USB 코어(330)로 전달할 수 있다. 동작 1506에서 USB 코어(330)는 로드되어 있는 화이트 리스트 또는 블랙 리스트를 제거할 수 있다. 이때 USB 코어(330)에 의하여 로드되어 있던 USB 클래스 코드(예: 드라이버 프로그램)는 활성화 상태를 유지할 수 있다.
동작 1506에서 USB 코어(330)는 USB 호스트 API를 활성화할 수 있다. 액세서리 제한 모드가 해제되었으므로, USB 코어(330)는 USB 호스트 API를 활성화시킴으로써, 전자 장치(101)가 USB 파일 시스템(340)을 통해 외부 장치(예: 액세서리)로 접근할 수 있도록 할 수 있다.
일 실시예에 따르면 동작 1508 및 동작 1510은 동시에 실행될 수 있다. 다른 실시예에 따르면 동작 1510은 생략될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, “A 또는 B”, “A 및/또는 B 중 적어도 하나”, “A, B 또는 C” 또는 “A, B 및/또는 C 중 적어도 하나” 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. “제1”, “제2”, “첫째” 또는 “둘째” 등의 표현들은 해당 구성 요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 어떤(예: 제1) 구성 요소가 다른(예: 제2) 구성 요소에 “(기능적으로 또는 통신적으로) 연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제3 구성 요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 “모듈”은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(140))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 활성화(또는 로드)하고, 활성화(또는 로드)된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(101))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성 요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory, CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
101: 전자 장치 102: 전자 장치
104: 전자 장치 108: 서버
120: 프로세서 121: 메인 프로세서
123: 보조 프로세서 130: 메모리
132: 휘발성 메모리 134: 비휘발성 메모리
136: 내장 메모리 138: 외장 메모리
140: 프로그램 142: 운영 체제
144: 미들웨어 146: 어플리케이션
150: 입력 장치 155: 음향 출력 장치
160: 표시 장치 170: 오디오 모듈
176: 센서 모듈 177: 인터페이스
178: 연결 단자 179: 햅틱 모듈
180: 카메라 모듈 188: 전력 관리 모듈
189: 배터리 190: 통신 모듈
192: 무선 통신 모듈 194: 유선 통신 모듈
196: 가입자 식별 모듈 197: 안테나 모듈
199: 네트워크

Claims (20)

  1. 전자 장치에 있어서,
    USB(universal serial bus) 인터페이스;
    상기 USB 인터페이스에 전기적으로 연결된 프로세서; 및
    상기 프로세서에 전기적으로 연결된 메모리;를 포함하며,
    상기 메모리는, 실행 시에, 상기 프로세서가,
    보안 모드로 진입하고,
    상기 보안 모드에서, 상기 USB 인터페이스를 통해 연결된 외부 장치로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신하고,
    상기 보안 모드에서 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 상기 USB 클래스 코드가 포함되는지 판단하고,
    상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하도록 하는 인스트럭션들(instructions)을 저장하는 전자 장치.
  2. 제1항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    상기 USB 클래스 코드가 상기 화이트 리스트에 포함되면, 상기 USB 클래스 코드에 대응하는 클래스 드라이버를 활성화하도록 하는 전자 장치.
  3. 제1항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    상기 USB 클래스 코드가 상기 화이트 리스트에 포함되지 않으면, 상기 USB 클래스 코드에 대응하는 클래스 드라이버를 활성화하지 않도록 하는 전자 장치.
  4. 제1항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    상기 보안 모드로 진입하면, 상기 USB 인터페이스를 통해 상기 보안 모드로 진입전에 연결된 적어도 하나의 제1 외부 장치와의 연결을 종료하도록 하는 전자 장치.
  5. 제4항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    상기 적어도 하나의 제1 외부 장치로 접근할 수 있는 USB 호스트 API 또는 상기 적어도 하나의 제1 외부 장치의 USB 클래스 코드에 대응하는 적어도 하나의 클래스 드라이버를 비활성화함으로써 상기 적어도 하나의 제1 외부 전자 장치와의 연결을 종료하도록 하는 전자 장치.
  6. 제4항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    상기 보안 모드로 진입 전에 연결된 상기 적어도 하나의 제1 외부 전자 장치와의 연결이 종료된 이후, 기준 시간이 경과하면 상기 적어도 하나의 제1 외부 장치로부터 상기 적어도 하나의 제1 외부 장치에 대응하는 제1 USB 클래스 코드를 수신하고,
    상기 제1 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부를 판단하도록 하는 전자 장치.
  7. 제4항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    상기 적어도 하나의 제1 외부 장치와의 연결을 종료하기 전에, 상기 적어도 하나의 제1 외부 장치에 대응하는 제1 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부를 판단하고,
    상기 제1 USB 클래스 코드가 상기 화이트 리스트에 포함되면, 상기 전자 장치와 상기 적어도 하나의 제1 외부 전자 장치 사이의 연결을 유지하도록 하는 전자 장치.
  8. 제1항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    상기 보안 모드에 진입하면, 상기 보안 모드에서 연결 불가능한 연결 불가 장치들에 대한 블랙 리스트를 리드(read)하고,
    상기 USB 인터페이스를 통해 상기 보안 모드에 진입 전에 연결된 적어도 하나의 제1 외부 장치와의 연결을 종료하고,
    제2 외부 장치가 감지되면, 상기 제2 외부 장치에 대응하는 제2 USB 클래스 코드가 상기 블랙 리스트에 포함되는지 여부를 판단하고,
    상기 제2 USB 클래스 코드가 상기 블랙 리스트에 포함되지 않으면, 상기 제2 USB 클래스 코드에 대응하는 클래스 드라이버를 활성화하도록 하는 전자 장치.
  9. 제8항에 있어서, 상기 인스트럭션들은 상기 프로세서가,
    상기 적어도 하나의 제1 외부 장치와의 연결을 종료하기 전에, 상기 적어도 하나의 제1 외부 장치에 대응하는 제1 USB 클래스 코드가 상기 블랙 리스트에 포함되지 않으면, 상기 전자 장치와 상기 적어도 하나의 제1 외부 전자 장치 사이의 연결을 유지하도록 하는 전자 장치.
  10. 제1항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    다른 외부 장치로부터 상기 보안 모드로 진입하기 위한 요청을 수신하거나, 상기 보안 모드로 진입하기 위한 사용자 입력이 상기 전자 장치로 입력되거나, 상기 메모리에 미리 저장된 시간에 도달하거나, 상기 메모리에 미리 저장된 장소에 상기 전자 장치가 위치하거나 또는 상기 전자 장치의 사용이 제한된 사용자의 접근이 감지되는 경우, 상기 보안 모드로 진입하도록 하는 전자 장치.
  11. 제1항에 있어서, 상기 인스트럭션들은, 상기 프로세서가,
    상기 전자 장치로 상기 보안 모드의 진입을 요청하는 다른 장치에 의하여 상기 화이트 리스트가 업데이트되면, 상기 다른 장치로부터 상기 업데이트된 화이트 리스트를 수신하도록 하는 전자 장치.
  12. 전자 장치의 동작 방법에 있어서,
    보안 모드로 진입하는 동작;
    상기 보안 모드에서, 상기 전자 장치의 USB 인터페이스를 통해 연결된 외부 장치로부터, 상기 외부 장치에 대응하는 USB 클래스 코드를 수신하는 동작;
    상기 보안 모드에서 연결 가능한 연결 허용 장치들에 대한 화이트 리스트에 상기 USB 클래스 코드가 포함되는지 판단하는 동작; 및
    상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하는 동작;을 포함하는 전자 장치의 동작 방법.
  13. 제12항에 있어서, 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하는 동작은,
    상기 USB 클래스 코드가 상기 화이트 리스트에 포함되면, 상기 USB 클래스 코드에 대응하는 클래스 드라이버를 활성화하는 동작;을 포함하는 전자 장치의 동작 방법.
  14. 제12항에 있어서, 상기 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부에 따라 상기 외부 장치와 상기 전자 장치 사이의 통신 연결을 제어하는 동작은,
    상기 USB 클래스 코드가 상기 화이트 리스트에 포함되지 않으면, 상기 USB 클래스에 대응하는 클래스 드라이버를 활성화하지 않는 동작;을 포함하는 전자 장치의 동작 방법.
  15. 제12항에 있어서,
    상기 보안 모드로 진입하면, 상기 USB 인터페이스를 통해 미리 연결된 적어도 하나의 제1 외부 장치와의 연결을 종료하는 동작;을 더 포함하는 전자 장치의 동작 방법.
  16. 제15항에 있어서, 상기 USB 인터페이스를 통해 연결된 적어도 하나의 제1 외부 전자 장치와의 연결을 종료하는 동작은,
    상기 적어도 하나의 제1 외부 장치로 접근할 수 있는 USB 호스트 API 또는 상기 적어도 하나의 제1 외부 장치의 USB 클래스 코드에 대응하는 적어도 하나의 클래스 드라이버를 비활성화하는 동작;을 포함하는 전자 장치의 동작 방법.
  17. 제14항에 있어서,
    상기 미리 연결된 적어도 하나의 제1 외부 장치와의 연결이 종료된 이후, 기준 시간이 경과하면 상기 적어도 하나의 제1 외부 장치로부터 상기 적어도 하나의 제1 외부 장치에 대응하는 제1 USB 클래스 코드를 수신하는 동작; 및
    상기 제1 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부를 판단하는 동작;을 더 포함하는 전자 장치의 동작 방법.
  18. 제14항에 있어서,
    상기 적어도 하나의 제1 전자 장치와의 연결을 종료하기 전에, 상기 적어도 하나의 제1 외부 장치에 대응하는 제1 USB 클래스 코드가 상기 화이트 리스트에 포함되는지 여부를 판단하는 동작; 및
    상기 제1 USB 클래스 코드가 상기 화이트 리스트에 포함되면, 상기 전자 장치와 상기 적어도 하나의 제1 외부 장치 사이의 연결을 유지하는 동작;을 더 포함하는 전자 장치의 동작 방법.
  19. 제12항에 있어서,
    상기 보안 모드에 진입하면, 상기 보안 모드에서 연결 불가능한 연결 불가 장치들에 대한 블랙 리스트를 리드(read)하는 동작;
    상기 USB 인터페이스를 통해 미리 연결된 적어도 하나의 제1 외부 장치와의 연결을 종료하는 동작;
    제2 외부 장치가 감지되면, 상기 제2 외부 장치에 대응하는 제2 USB 클래스 코드가 상기 블랙 리스트에 포함되는지 여부를 판단하는 동작; 및
    상기 제2 USB 클래스 코드가 상기 블랙 리스트에 포함되지 않으면, 상기 제2 USB 클래스 코드에 대응하는 클래스 드라이버를 활성화하는 동작;을 포함하는 전자 장치의 제어 방법.
  20. 전자 장치에 있어서,
    제1 데이터 경로 또는 제2 데이터 경로를 이용하는 USB(universal serial bus) 커넥터;
    상기 USB 커넥터와 전기적으로 연결된 프로세서; 및
    상기 프로세서에 전기적으로 연결된 메모리;를 포함하며,
    상기 메모리는, 실행 시에, 상기 프로세서가,
    허용 가능한 외부 전자 장치 및/또는 USB 클래스들의 리스트를 사용하여 선택된 타입의 외부 전자 장치가 상기 USB 커넥터를 통해 상기 전자 장치에 액세스 하는 것을 허용하는 보안 모드(security mode)로 진입하고,
    상기 보안 모드는,
    디스플레이 장치 및 USB 장치를 포함하는 외부 전자 장치가 상기 USB 커넥터에 연결되는 것을 감지하고,
    상기 제1 데이터 경로를 통해 USB 데이터 신호들이 송신되지 않도록 하는 동안, 상기 전자 장치의 디스플레이 포트를 상기 외부 장치의 디스플레이 포트에 연결하고,
    데이터 송수신을 위하여 상기 USB 장치에 연결하고,
    상기 리스트에 적어도 일부 기초하여, USB 이뉴머레이션(enumeration)을 수행하고,
    상기 USB 이뉴머레이션 후에 상기 제2 데이터 경로를 통해 데이터 송수신을 수행하도록 하는 인스트럭션들을 저장하는 전자 장치.
KR1020170106964A 2017-08-23 2017-08-23 Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치 KR102387657B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170106964A KR102387657B1 (ko) 2017-08-23 2017-08-23 Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치
PCT/KR2018/009637 WO2019039851A1 (ko) 2017-08-23 2018-08-22 Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치
US16/636,764 US11068427B2 (en) 2017-08-23 2018-08-22 Method for establishing connection to external device via USB interface, and electronic device therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170106964A KR102387657B1 (ko) 2017-08-23 2017-08-23 Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치

Publications (2)

Publication Number Publication Date
KR20190021776A true KR20190021776A (ko) 2019-03-06
KR102387657B1 KR102387657B1 (ko) 2022-04-19

Family

ID=65439522

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170106964A KR102387657B1 (ko) 2017-08-23 2017-08-23 Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치

Country Status (3)

Country Link
US (1) US11068427B2 (ko)
KR (1) KR102387657B1 (ko)
WO (1) WO2019039851A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210035969A (ko) * 2019-09-24 2021-04-02 주식회사 드림디엔에스 랜섬웨어 차단 방법 및 이를 위한 장치
US11265033B2 (en) 2019-07-25 2022-03-01 Samsung Electronics Co., Ltd. Electronic device for receiving radio broadcast using external electronic device capable of processing radio signal, the external electronic device, and method of operating the electronic device

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200028879A1 (en) 2018-07-17 2020-01-23 Microsoft Technology Licensing, Llc Queryless device configuration determination-based techniques for mobile device management
US11184223B2 (en) * 2018-07-31 2021-11-23 Microsoft Technology Licensing, Llc Implementation of compliance settings by a mobile device for compliance with a configuration scenario
US11568094B2 (en) * 2019-10-07 2023-01-31 Microsoft Technology Licensing, Llc Establishing a trusted connection with a peripheral device
US11907411B2 (en) * 2019-12-09 2024-02-20 Hewlett-Packard Development Company, L.P. Secure operating modes for computing devices
TWI719800B (zh) * 2020-01-08 2021-02-21 華碩電腦股份有限公司 可切換顯示模式的顯示裝置與方法
CN114645819B (zh) * 2022-05-19 2022-09-13 东方电气风电股份有限公司 风电变桨控制方法、装置、系统及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140215637A1 (en) * 2011-02-01 2014-07-31 Mcci Corporation Security arrangements for extended usb protocol stack of a usb host system
US20140268229A1 (en) * 2013-03-12 2014-09-18 Midnight Mosaic, Llc Methods and apparatus for usb tunneling through usb printer device class

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421625B2 (en) 2005-05-26 2008-09-02 Microsoft Corporation Indicating data connection and status conditions
KR100985076B1 (ko) * 2008-04-16 2010-10-04 주식회사 안철수연구소 Usb 디바이스 보안 장치 및 방법
WO2009138641A1 (fr) * 2008-04-21 2009-11-19 France Telecom Procede d'utilisation d'un terminal hote par un dispositif externe connecte au terminal
US9026712B2 (en) * 2012-06-25 2015-05-05 Intel Corporation USB device control using endpoint type detection during enumeration
EP2813945A1 (en) 2013-06-14 2014-12-17 Tocario GmbH Method and system for enabling access of a client device to a remote desktop
US20150365237A1 (en) 2014-06-17 2015-12-17 High Sec Labs Ltd. Usb security gateway
US9712545B2 (en) * 2014-12-23 2017-07-18 Mcafee, Inc. Detection of a malicious peripheral
US9990325B2 (en) 2015-04-10 2018-06-05 International Business Machines Corporation Universal serial bus (USB) filter hub malicious code prevention system
US9916479B2 (en) 2015-05-04 2018-03-13 Unisys Corporation USB dock system and method for securely connecting a USB device to a computing network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140215637A1 (en) * 2011-02-01 2014-07-31 Mcci Corporation Security arrangements for extended usb protocol stack of a usb host system
US20140268229A1 (en) * 2013-03-12 2014-09-18 Midnight Mosaic, Llc Methods and apparatus for usb tunneling through usb printer device class

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11265033B2 (en) 2019-07-25 2022-03-01 Samsung Electronics Co., Ltd. Electronic device for receiving radio broadcast using external electronic device capable of processing radio signal, the external electronic device, and method of operating the electronic device
KR20210035969A (ko) * 2019-09-24 2021-04-02 주식회사 드림디엔에스 랜섬웨어 차단 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
US20200167303A1 (en) 2020-05-28
KR102387657B1 (ko) 2022-04-19
US11068427B2 (en) 2021-07-20
WO2019039851A1 (ko) 2019-02-28

Similar Documents

Publication Publication Date Title
KR102387657B1 (ko) Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치
US11288407B2 (en) Method and electronic device for controlling voltage output to external electronic device according to size of voltage detected at signal terminal connected to external electronic device
KR102270129B1 (ko) 무선 제어 방법, 그 제어 장치 및 서버
KR102400580B1 (ko) 다른 전자 장치의 인증을 수행하는 전자 장치와 이의 동작 방법
WO2017191889A1 (ko) 전자 장치 및 그 제어 방법
US11567748B2 (en) Interface device having updatable firmware, mobile device, and firmware update method
EP3108398A1 (en) Method and apparatus to sandbox run-time android applications with lightweight container
KR20200045367A (ko) 블루투스 통신을 사용하는 전자 장치와 이의 동작 방법
WO2020213933A1 (ko) 근접 필드 통신 카드의 복제를 위한 방법 및 그 전자 장치
KR20190101171A (ko) 근거리 통신 회로의 멀티 모달 운영방법 및 장치
WO2019182335A1 (ko) 전자 장치 및 전자 장치의 업데이트 제어 방법
US11263160B2 (en) Apparatus and method for performing data transmission with docking device by using USB interface
KR20210034431A (ko) 외부 장치와의 연결을 지원하는 전자 장치 및 그 외부 장치와 연결하여 사용할 때 소모 전류를 감소시키는 방법
KR20210021858A (ko) 전력 관리를 위한 위한 전자 장치 및 그의 동작 방법
US20210019111A1 (en) Electronic device for outputting audio through usb port and method thereof
KR20190112406A (ko) 입력 수단에 따른 어플리케이션으로 사용자 입력을 전달하는 모바일 전자 장치 및 방법
WO2015126133A1 (en) Method and apparatus to sandbox run-time android applications with lightweight container
US20210399561A1 (en) Electronic device and method for receiving power from external electronic device
KR20210088252A (ko) 단말기의 통신 요금제를 변경하기 위한 서버 및 이의 동작 방법
KR20150089393A (ko) 배터리 충전 제어 방법 및 그 전자 장치
KR20200058157A (ko) Ivi 서비스를 제공하기 위한 전자 장치 및 방법
KR20190068844A (ko) 외부 장치에 따라 다른 서비스를 제공하는 전자 장치
EP3629428B1 (en) Method and apparatus for changing impedance of terminal included in connector
KR20210037309A (ko) 컨트롤 ic의 리셋을 제어하는 전자 장치 및 방법
KR20210046426A (ko) 어플리케이션의 최적화 방법 및 이를 지원하는 전자 장치

Legal Events

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