KR20150123879A - 고급 운영 시스템(hlos) 부팅 전에 스마트폰에 연결된 주변기기 디바이스들을 위한 디바이스 드라이버들을 프리페칭하기 위한 방법 및 장치 - Google Patents

고급 운영 시스템(hlos) 부팅 전에 스마트폰에 연결된 주변기기 디바이스들을 위한 디바이스 드라이버들을 프리페칭하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20150123879A
KR20150123879A KR1020157026502A KR20157026502A KR20150123879A KR 20150123879 A KR20150123879 A KR 20150123879A KR 1020157026502 A KR1020157026502 A KR 1020157026502A KR 20157026502 A KR20157026502 A KR 20157026502A KR 20150123879 A KR20150123879 A KR 20150123879A
Authority
KR
South Korea
Prior art keywords
user equipment
drivers
peripherals
profile
peripheral
Prior art date
Application number
KR1020157026502A
Other languages
English (en)
Other versions
KR101632288B1 (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 퀄컴 인코포레이티드
Publication of KR20150123879A publication Critical patent/KR20150123879A/ko
Application granted granted Critical
Publication of KR101632288B1 publication Critical patent/KR101632288B1/ko

Links

Images

Classifications

    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)
  • Quality & Reliability (AREA)

Abstract

사용자 장비를 부팅하기 위한 장치 및 방법들이 설명된다. 사용자 장비의 디바이스 부팅이 수행될 수 있다. 사용자 장비를 위한 주변기기들 및 연관된 드라이버들이 구성될 수 있다. 고급 운영 시스템(HLOS)이 부팅될 수 있다. 구성하는 것은 HLOS의 부팅 전에 발생할 수 있다. 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치 및 방법들이 또한 설명된다. 사용자 장비와 연관될 수 있는 주변기기들이 결정될 수 있다. 결정된 주변기기들에 대한 드라이버들이 로딩될 수 있다. 로딩된 드라이버들은, 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관될 수 있다.

Description

고급 운영 시스템(HLOS) 부팅 전에 스마트폰에 연결된 주변기기 디바이스들을 위한 디바이스 드라이버들을 프리페칭하기 위한 방법 및 장치{METHOD AND APPARATUS FOR PREFETCHING DEVICE DRIVERS FOR PERIPHERAL DEVICES CONNECTED TO A SMARTPHONE PRIOR TO HIGH-LEVEL OPERATING SYSTEM(HLOS) BOOT}
[0001]다음 설명은 일반적으로 주변 디바이스 드라이버들에 관한 것이며, 보다 구체적으로, 고급 운영 시스템(HLOS) 부팅 전에 스마트폰들 및 다른 연결 디바이스들을 위한 주변 디바이스 드라이버들을 프리페칭하는 것에 관한 것이다.
[0002]현재 스마트폰들, 및 다른 무선 디바이스들은, 각각의 스마트폰 제조업자에 의해 제조된 각각의 상이한 스마트폰 모델이 상이한 소프트웨어 환경을 사용할 수 있고, 스마트폰들 모두가 ANDROID와 같은 동일한 고급 운영 시스템(HLOS)을 이용하는 것일 수 있더라도, 상이한 주변기기들 ―온-보드 및 유선 또는 무선 인터페이스를 통해 연결된 것 둘 모두― 과 연관될 수 있도록 구성될 수 있다. 이와 같이, 스마트폰들에 대한 최초 소프트웨어 프로비저닝은, 제조 과정에서 나중의 어떤 시점에서 전화기와 연관될 수 있는 모든 각각의 가능한 주변기기를 위한 드라이버들을 식별하고, 이를 다수의 주변 카테고리들로 로딩할 필요가 있을 수 있다. 그 결과, 그러한 스마트폰들에 대한 최초 소프트웨어 프로비저닝은 광범위하게 축적된 공학 전문지식, 많은 양의 근로 생산량, 및 상당한 하드웨어 및 소프트웨어 리소스들을 필요로 한다.
[0003]HLOS의 부팅업 전에 주변기들의 가능한 유니버스(universe) 중 어느 것이 스마트폰과 실제로 연관되는지 알려지지 않았기 때문에, 드라이버들을 "즉석에서" 식별하고 로딩하는 것은, HLOS 부팅업이 더 복잡해지고 바람직한 속도보다 더 느려지게 할 수 있다.
[0004]더욱이, 드라이버들의 전체 유니버스가 스마트폰에 로딩될 수 있고, 로딩된 드라이버들 중 어느 것이 HLOS에 의해 사용될 수 있는지가 불분명하기 때문에, 이해 관계자, 이를 테면, 예를 들어, (전화기 제조업자들 및 전화기들이 가입되어 있는 네트워크와 무관하게 특정 HLOS을 실행하는 전화기들 모두에게 예를 들어, 보안 패치와 같은 업데이트를 제공하기 원하는) HLOS와 연관된 소프트웨어 회사, 스마트폰 제조업자, 또는 네트워크 통신사에 의해 HLOS의 집중화된 관리를 제공받는 것이 매우 곤란하다.
[0005]이와 같이, 단순화된 최초 소프트웨어 프로비저닝 프로세스를 제공할 것이 희망된다. 또한, 낮은 전력을 소모하면서 더 빠르게 HOLS 부팅업을 제공할 것이 희망된다. 또한, 상이한 통신사 네트워크들일지라도, 동일한 HLOS를 이용하여 매우 다양한 스마트폰들에 걸쳐서 하나의 HLOS의 중앙 관리 및 업데이트들을 제공할 것이 희망된다.
[0006]이하에서는 이런 양상들의 기본적인 이해를 제공하기 위하여 하나 또는 그보다 많은 양상들의 간략화된 개요를 제시한다. 이 개요는 모든 고찰된 양상들의 광범위한 개관은 아니고, 모든 양상들의 핵심 또는 중요한 요소들을 식별하거나 임의의 또는 모든 양상들의 범위를 상세히 기술할 의도는 아니다. 그것의 유일한 목적은 이후에 제시되는 더욱 상세한 설명에 대한 도입부로서 간략화된 형태로 하나 또는 그보다 많은 양상들의 일부 개념들을 제시하는 것이다.
[0007]일 양상에서, 사용자 장비를 부팅하기 위한 방법이 설명된다. 방법은 사용자 장비의 디바이스 부팅을 수행하는 단계를 포함할 수 있다. 방법은 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하는 단계를 포함할 수 있다. 방법은 고급 운영 시스템(HLOS; high-level operating system)을 부팅하는 단계를 포함할 수 있다. 구성하는 단계는 HLOS의 부팅 전에 발생할 수 있다.
[0008]일 양상에서, 사용자 장비를 부팅하기 위한 장치가 설명된다. 장치는 사용자 장비의 디바이스 부팅을 수행하기 위한 수단을 포함할 수 있다. 장치는 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하기 위한 수단을 포함할 수 있다. 장치는 고급 운영 시스템(HLOS)을 부팅하기 위한 수단을 포함할 수 있다. 구성하는 것은 HLOS의 부팅 전에 발생할 수 있다.
[0009]일 양상에서, 사용자 장비를 부팅하기 위한 컴퓨터 프로그램 물건이 설명된다. 컴퓨터 프로그램 물건은 코드를 포함하는 컴퓨터 판독가능 매체를 포함할 수 있다. 코드는, 컴퓨터로 하여금, 사용자 장비의 디바이스 부팅을 수행하게 할 수 있다. 코드는, 컴퓨터로 하여금, 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하게 할 수 있다. 코드는, 컴퓨터로 하여금, 고급 운영 시스템(HLOS)을 부팅하게 할 수 있다. 구성하는 것은 HLOS의 부팅 전에 발생할 수 있다.
[0010]일 양상에서, 사용자 장비를 부팅하기 위한 장치가 설명된다. 장치는 메모리, 트랜시버, 및 프로세서를 포함할 수 있다. 프로세서는 사용자 장비의 디바이스 부팅을 수행하게 하도록 구성될 수 있다. 프로세서는 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하게 하도록 구성될 수 있다. 프로세서는 고급 운영 시스템(HLOS)을 부팅하게 하도록 구성될 수 있다. 구성하는 것은 HLOS의 부팅 전에 발생할 수 있다.
[0011]일 양상에서, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 방법이 설명된다. 방법은 사용자 장비와 연관될 수 있는 주변기기들을 결정하는 단계를 포함할 수 있다. 방법은 결정된 주변기기들에 대한 드라이버들을 로딩하는 단계를 포함할 수 있다. 로딩된 드라이버는 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관될 수 있다.
[0012]일 양상에서, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치가 설명된다. 장치는 사용자 장비와 연관될 수 있는 주변기기들을 결정하기 위한 수단을 포함할 수 있다. 장치는 결정된 주변기기들에 대한 드라이버들을 로딩하기 위한 수단을 포함할 수 있다. 로딩된 드라이버들은, 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관될 수 있다.
[0013]일 양상에서, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 컴퓨터 프로그램 물건이 설명된다. 컴퓨터 프로그램 물건은 코드를 포함하는 컴퓨터 판독가능 매체를 포함할 수 있다. 코드는, 컴퓨터로 하여금, 사용자 장비와 연관될 수 있는 주변기기들을 결정하게 한다. 코드는, 컴퓨터로 하여금, 결정된 주변기기들에 대한 드라이버들을 로딩하게 할 수 있다. 로딩된 드라이버들은, 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관될 수 있다.
[0014]일 양상에서, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치가 설명된다. 장치는 메모리, 트랜시버, 및 프로세서를 포함할 수 있다. 프로세서는 사용자 장비와 연관될 수 있는 주변기기들을 결정하도록 구성될 수 있다. 프로세서는 결정된 주변기기들에 대한 드라이버들을 로딩하도록 구성될 수 있다. 로딩된 드라이버들은, 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관될 수 있다.
[0015]전술한 및 관련된 목적들의 달성을 위해, 하나 또는 그보다 많은 양상들은 이하에 충분히 설명되고 특히 청구항들에서 지적되는 특징들을 포함한다. 다음의 설명 및 첨부의 도면들은 하나 또는 그보다 많은 양상들의 소정의 예시적인 특징들을 상세히 언급한다. 그러나, 이들 특징들은, 각종 양상들의 원리들이 채용될 수 있는 다양한 방식들 중 몇몇만을 나타내며, 이 설명은 모든 그러한 양상들 및 그것들의 동등물들을 포함하도록 의도된다.
[0016]이하, 개시된 양상들이 개시된 양상들을 제한하는 것이 아닌 예시하기 위해 제공되는 첨부의 도면들과 연계하여 설명될 것이며, 그 도면들 중에서 동일한 표기들은 동일한 엘리먼트들을 지시하고, 도면들 중에서:
[0017]도 1은 사용자 장비를 부팅하기 위한 예시적인 방법의 도시이다.
[0018]도 2는 사용자 장비와 연관된 주변기기들을 결정하고 각각의 결정된 주변기기에 대한 프로파일을 주변기기 프로파일 테이블에 업데이트하기 위한 예시적인 방법의 도시이다.
[0019]도 3은 예시적인 주변기기 프로파일 테이블의 도시이다.
[0020]도 4는 예시적인 고급 운영 시스템 아키텍처의 도시이다.
[0021]도 5는 리눅스 커넬(Linux kernel) 계층 내의 예시적인 디스플레이 디바이스 드라이버들의 도시이다.
[0022]도 6은 모노리식 접근법을 이용한 사용자 장비에 대한 주변기기 디바이스 드라이버들을 로딩하기 위한 예시적인 방법의 도시이다.
[0023]도 7은 동적 접근법을 이용한 사용자 장비에 대한 주변기기 디바이스 드라이버들을 로딩하기 위한 예시적인 방법의 도시이다.
[0024]도 8은 예시적인 사용자 장비의 도시이다.
[0025]다양한 양상들이 도면들을 참조하여 이제 설명된다. 다음의 설명에서, 설명의 목적을 위해, 다수의 특정 세부사항들이 하나 또는 그보다 많은 양상들의 완전한 이해를 제공하기 위해 언급된다. 그러나, 그런 양상(들)은 이러한 구체적인 세부사항들 없이도 실용화될 수 있다는 것이 명백할 수 있다.
[0026]설명된 양상들은 스마트 폰과 같은 사용자 장비, 또는 단말을 부팅하기 위한 방법 및 장치에 관한 것이다. 특히, 설명된 양상들은 사용자 장비(UE)로 하여금 UE 고급 운영 시스템(HLOS)을 부팅하기 전에 UE와 연관된 주변기기들을 구성하게 할 수 있다. 주변기기들을 구성하는 것은, UE와 연관된 주변기기들 각각을 위한 드라이버들과 관련된 정보를 자동으로 또는 수동으로 프리로딩하거나 또는 프리페칭하는 것 그리고 드라이버 정보를, 예를 들어, 플래시 메모리에 저장함으로써 드라이버 정보가 HLOS에 이용가능해지게 하는 것을 포함할 수 있다. HLOS를 부팅하기 전에, 주변기기들을 구성하는 것과, 주변기기들과 연관된 드라이버들에 대한 정보를 프리로딩하는 것은, HLOS가 단순해지고 보다 신속하게 부팅되게 할 수 있다. 주변기기들의 구성을 분리시키고 HLOS로부터의 드라이버 정보의 프리페칭하는 것은 또한, 동일한 HLOS를 이용하는, 임의의 수의 네트워크들 상의 광범위한 UE들에 걸쳐서 HLOS의 업데이트들과 중앙 관리를 가능하게 할 수 있다. 이러한 양상들은 또한 단순화된 최초 소프트웨어 프로비저닝 프로세스를 제공할 수 있다.
[0027]도 1은, 예를 들어, 도 8의 UE(800)와 같은 사용자 장비의 부팅을 위한 예시적인 방법(100)의 도시이다. 일 예로, 방법(100)은, 도 8의 메모리(826) 및 트랜시버(825)와 결합하여 도 8의 프로세서(824)에 의해 수행될 수 있다.
[0028]110에서, 방법(100)은 사용자 장비(UE)의 디바이스 부팅을 수행하는 단계를 포함한다. 예를 들어, 방법(100)은 스마트폰과 같은 UE의 디바이스 부팅을 수행할 수 있다. 몇몇 예시들에서, 디바이스 부팅은, 고급 운영 시스템(HLOS)이 UE 부팅들과 연관되기 전에, 나중 동작들을 수행하기 위해서 사전-HLOS 운영 환경이 로딩되게 할 수 있다.
[0029]120에서, 방법(100)은 UE에 대한 주변기기들 및 연관된 드라이버들을 구성하는 단계를 포함한다. 일 양상에서, 주변기기들 및 연관된 드라이버들이 자동으로 구성될 수 있다. 다른 양상에서, 주변기기들 및 연관된 드라이버들이 수동으로 구성될 수 있다. 일 예로, UE의 주변기기들은 스마트 폰 온 칩(SPOC)-기반 주변기기(예를 들어, 주변기기, 이를 테면, SPOC 상에 통합된 프로세서 또는 모뎀), 이를 테면, 도 8의 주변기기들(821, 822 및 823), 온-보드 주변기기(예를 들어, 주변기기, 이를 테면, UE에 통합되지만 SPOC의 일부는 아닌 터치 스크린 또는 카메라), 이를 테면, 도 8의 주변기기들(811, 812, 813, 814 및 815), 및/또는 오프-보드 주변기기(예를 들어, 주변기기, 이를 테면, 유선 또는 무선 인터페이스를 통해 UE에 연결된 프린터 또는 카드 스캐너), 이를 테면, 도 8의 주변기기들(831 및 823)일 수 있다. 일 양상에서, 주변기기 구성(120)은 이전에, 예를 들어, HLOS 부팅-업에 앞서 한번에 발생할 수 있다.
[0030]일 양상에서, 그리고 예를 들어, 구성된 주변기기들과 연관된 드라이버들은 HLOS의 부팅 이전에 프리페칭될 수 있다. 일 예로, 드라이버들이 사전-HLOS 운영 환경에 의해 프리페칭될 수 있다. 다른 양상에서, 드라이버들은 HLOS의 부팅 전에 활성화될 수 있다. 일 예로, 드라이버들은 사전-HLOS 운영 환경에 의해 활성화될 수 있다. 다른 양상에서, 구성된 주변기기들과 연관된 중간 드라이버들이 UE에 의해 식별되고 로딩될 수 있다. 일 예로, 구성된 주변기기들과 연관된 중간 드라이버들을 로딩하는 것은 UE로 하여금, HLOS 부팅 전에, 구성된 주변기기들을 사용할 수 있게 한다. 다른 예로, 사전-HLOS 운영 환경은 중간 드라이버들을 식별하고 로딩할 수 있다. 다른 예로, 중간 드라이버들은, 구성된 주변기기들과 연관된 드라이버들과 동일하거나 또는 상이할 수 있다.
[0031]주변기기 구성(120)은 주변기기 결정(122), 주변기기 프로파일 업데이트(124), 및 주변기기 드라이버 준비(126)를 포함할 수 있다. 122에서, 방법(100)은 UE와 연관된 주변기기들을 결정하는 단계를 포함할 수 있다. 보다 구체적으로, UE와 연관된 각각의 주변기기에 대한 주변기기 프로파일이 UE에서 이용가능한지 여부가 결정될 수 있다. 일 예로, 특정 주변기기가 온-SPOC, 온-보드, 또는 오프-보드 주변기기인지 여부와 관계없이, 특정 주변기기에 대한 프로파일이 도 3의 주변기기 프로파일 테이블(300)과 같은 주변기기 프로파일 테이블로 사전-로딩되었었는지 여부가 결정될 수 있다. 특정 주변기기에 대한 프로파일이 주변기기 프로파일 테이블(300) 내 (그 특정 주변기기에 대한) 엔트리로서 저장될 수 있다. 일 예로, 도 3의 주변기기 프로파일 테이블(300)과 같은 주변기기 프로파일 테이블이, UE, 이를 테면, 도 8의 UE(800)에서, 메모리, 이를 테면, 도 8의 메모리(826) 내부에 저장될 수 있다.
[0032]UE와 연관된 프로파일들을 결정하는 것은 또한, 몇몇 경우들에서, 각각의 주변기기에 대한 프로파일이 완전한 것인지 여부를 검출하는 것을 포함할 수 있다. 완전 프로파일은 주변기기에 대한 모든 관련 정보를 포함할 수 있다. 예를 들어, 완전 프로파일은, 주변기기 프로파일 테이블의 각각의 필드 내에 정보가 있는 테이블 엔트리에 의해 나타내어질 수 있다. 불완전 프로파일은 주변기기에 대한 모든 관련 정보를 포함하지 않을 수 있다. 예를 들어, 불완전 프로파일은, 주변기기 프로파일 테이블의 하나 또는 그보다 많은 필드들에서 정보가 누락되어 있는 테이블 엔트리에 의해 나타내어질 수 있다.
[0033]UE와 연관된 프로파일들을 결정하는 것은 또한, 몇몇 경우들에서, 각각의 주변기기에 대한 프로파일의 에러-체크하는 단계를 포함할 수 있다. 예를 들어, 주변기기 프로파일 테이블 내 모든 엔트리들은, 엔트리들이 HLOS에 의해 이용가능하다는 것을 확실하게 하기 위해서 에러-체크될 수 있다. 식별될 수 있고, 해결될 수 있는 에러들은, 예를 들어, 무결성-기반 에러들, 정상 범위 밖에 있는 프로파일 엔트리들, 또는 수동으로 입력되었을 수 있는 엔트리 내 실수(이를 테면, 타이핑 에러)를 포함할 수 있다.
[0034]124에서, 방법(100)은 각각의 결정된 주변기기에 대한 프로파일을 주변기기 프로파일 테이블에 업데이트하는 것을 포함한다. 완전 프로파일의 경우, 연관된 엔트리가 주변기기 프로파일 테이블에 업데이트되지 않을 수 있는데, 예를 들어, 엔트리 내에 정보 누락이 없었다는 것이 사용자에 의해 결정되었던 경우이기 때문이다. 불완전 프로파일의 경우, 주변기기 프로파일 테이블 내 연관된 엔트리가, 결정된 주변기기에 대한 정보에 기초하여 UE에 의해 업데이트될 수 있다.
[0035]126에서, 방법(100)은, HLOS에 의한 사용을 위해 각각의 주변기기 프로파일과 연관된 드라이버들을 준비하는 단계를 포함한다. 일 예로, 드라이버 준비는, 지금 완전한, 업데이트된 그리고 에러-체크된 주변기기 프로파일 테이블을 플래시 메모리 또는 HLOS에 이용가능할 수 있는 다른 저장 매체로 로딩하는 것을 포함할 수 있다. 일 예로, 주변기기 프로파일 테이블이 메모리, 이를 테면, 도 8의 메모리(826)로 로딩될 수 있다. 126의 완료 및 주변기기 프로파일 테이블의 HLOS에 의한 액세스 시, HLOS는, UE와 연관된 것으로 결정된 주변기기들 각각과 연관된 드라이버들에 대하여 필요로 될 수 있는 정보 모두를 수신했었을 수 있다.
[0036]130에서, 방법(100)은 HLOS를 부팅하는 단계를 포함한다. 일 예로, UE와 연관된 HLOS가 부팅업된다. 일 예로, HLOS는 120의 주변기기 구성의 결과들, 이를 테면, 상술된 바와 같이 저장되었던 도 3의 완전한 주변기기 프로파일 테이블(300)을 사용하여, 각각의 주변기기와 연관된 드라이버들을 로딩할 수 있다. 드라이버들의 이러한 사전-로딩, 또는 사전-페칭은 HLOS 부팅업 프로세스를 신속하고 단순화하게 할 수 있다.
[0037]방법(100)이 일련의 동작들로서 도시되고 설명되었고, 이 방법들이 이 동작들의 순서로 제한되지 않는다는 것이 이해되고 인식되는데, 일부 동작들은, 하나 또는 그보다 많은 양상들에 따라서, 본원에 나타내어지고 설명된 것과는 상이한 순서들로 그리고/또는 다른 동작들과 동시에 발생할 수 있기 때문이다. 예를 들어, 방법은, 이를 테면, 상태도에서, 일련의 상관된 상태들 또는 이벤트들로서 대안적으로 나타내어질 수 있다는 것을 인식하게 된다. 더욱이, 모든 예시된 동작들이 하나 또는 그보다 많은 양상들에 따라서 방법을 구현할 필요가 있는 것은 아닐 수 있다.
[0038]도 2는 사용자 장비와 연관된 주변기기들을 결정하고 각각의 결정된 주변기기에 대한 프로파일을 주변기기 프로파일 테이블에 업데이트하기 위한 예시적인 방법론의 도시이다. 보다 구체적으로, 도 2는 도 1의 122 및 124에 대한 추가적인 방법 상의 상세들을 제공한다. 일 예로, 도 2에 대하여 본원에 설명된 양상들은 도 8의 메모리(826) 및 트랜시버(825)와 결합하여 도 8의 프로세서(824)에 의해 수행될 수 있다.
[0039]UE, 이를 테면, 예를 들어, 122에서 도시된 바와 같은 도 8의 UE(800)와 연관된 주변기기들을 결정하는 것은, 도 2에 도시된 바와 같은 추가적인 양상들(210, 220, 230, 240, 250 및 260)을 포함할 수 있다. 210에서, 방법(122)은, 각각의 주변기기에 대한 프로파일이 UE에서 이용가능한지 여부를 결정하는 단계를 포함한다. 일 예로, 주변기기들은 도 8의 주변기기들(811, 812, 813, 814, 815, 821, 823, 831, 및 832)일 수 있다. 특정 주변기기에 대한 프로파일은, 도 3의 주변기기 프로파일 테이블(300)과 같은 주변기기 프로파일 테이블 내에 특정 주변기기에 대한 엔트리(예를 들어, 프로파일)가 존재하는 경우, UE에서 이용가능하게 된 것으로 결정될 수 있다. 주변기기 프로파일 테이블 내의 각각의 엔트리는 특정 주변기기에 대한 프로파일일 수 있다.
[0040]특정 주변기기에 대한 프로파일이 UE에서 이용가능하지 않은 것으로 결정되는 경우, 방법(122)은, 특정 주변기기에 대한 프로파일이, 220에 도시된 바와 같이, 외부 로케이션에서 이용가능한지 여부를 결정하는 단계를 포함한다. 일 예로, UE는, 주변기기와 연관되는, 제조업자, 또는 OEM에 의해 생성되고 그리고/또는 관리된 데이터베이스, 웹사이트, 또는 다른 저장 매체에서 프로파일을 탐색할 수 있다. 예를 들어, UE는, 클라우드, 예를 들어, 인터넷과 같은 네트워크를 통해 이용가능한 서버, 디스플레이 컴퍼니 A에 의해 제어된 데이터베이스에 저장된 디스플레이 컴퍼니 A의 디스플레이들에 대한 정보(예를 들어, 드라이버들)의 데이터베이스로부터 디스플레이 컴퍼니 A에 의해 제조된 디스플레이에 대한 프로파일을 구할(seek) 수 있다. UE가, 프로파일이 외부 로케이션에서 이용가능하다는 것을 결정하면, 방법(122)은, 240에 나타내어진 바와 같이 외부 로케이션으로부터 특정 주변기기에 대한 프로파일을 리트리브하는 단계를 포함한다.
[0041]특정 주변기기에 대한 프로파일이, UE에서 이용가능하지 않고 외부 로케이션에서 이용가능하지 않은 것으로 결정되는 경우, 230에 도시된 바와 같이, UE는 몇 가지 방법들 중 하나로 그 상황을 해결할 수 있다. 일 예로, UE는, 230에 도시된 바와 같이, 특정 프로파일과 연관된 에러를 생성할 수 있다. 다른 예에서, UE는 다른 정보(미도시)에 기초하여 주변기기에 대한 프로파일을 처음부터 생성하거나, 또는 만들 수 있다.
[0042]250에서, 방법(122)은 각각의 주변기기에 대한 프로파일이 완전한 것인지 여부를 검출하는 단계를 포함한다. 예를 들어, UE에서 이미 이용가능했었을 수 있거나 또는 외부 로케이션으로부터 리트리빙되었을 수 있는 각각의 주변기기의 경우, 프로파일이 완전한 것인지 여부가 검출될 수 있다. 프로파일은, 주변기기 프로파일 테이블 내 엔트리에 의해 엔트리의 각각의 필드에 정보가 존재하는 것으로 나타내어진다면 완전한 것으로 검출될 수 있다. 즉, 프로파일에 어떠한 정보도 누락되어 있지 않다. 엔트리의 각각의 필드에 정보가 존재하지 않는다면, 프로파일이 불완전한 것으로 검출될 수 있다. 즉, 프로파일에 정보가 누락되어 있다.
[0043]특정 주변기기에 대한 프로파일이 불완전하고, 프로파일이 UE에서 이용가능했다면, 라인(252)에 의해 도시된 바와 같이, 특정 주변기기에 대한 완전한 프로파일이 외부 로케이션에서 구해질 수 있다. 즉, 불완전 프로파일이 UE에서 이용가능했다면 방법은 220으로 이동할 수 있다. 특정 주변기기에 대한 프로파일이 불완전하고, 프로파일이 외부 로케이션으로부터의 리트리브에 대해 이용가능하지 않았다면, 라인(254)으로 나타내어진 바와 같이 에러 메시지가 생성될 수 있다. 즉, 불완전 프로파일, 또는 프로파일 없이 외부 로케이션으로부터 리트리빙되었다면, 방법은 230으로 이동할 수 있다. 다른 예에서, 특정 주변기기에 대한 불완전 프로파일이 외부 로케이션으로부터 리트리빙되었다면, 불완전 프로파일이 리트리빙되었던 외부 로케이션과는 상이할 수 있는 외부 로케이션으로부터 특정 주변기기에 대한 완전 프로파일을 리트리빙하도록 시도하기 위해서, 라인(252)에 의해 도시된 바와 같이 방법이 220으로 이동할 수 있다. 또 다른 예(미도시)에서, 불완전 프로파일이 검출되고 프로파일이 완전해질 수 없다면, 주변기기에 대한 정보에 기초하여, 주변기기에 대한 새로운 프로파일이 처음부터 생성되거나 또는 만들어질 수 있고, 주변기기에 대한 새로운 엔트리가 주변기기 프로파일 테이블에 추가될 수 있다.
[0044]260에서, 방법(122)은 각각의 주변기기에 대한 프로파일을 에러-체크하는 단계를 포함한다. 예를 들어, 주변기기 프로파일 테이블의 모든 엔트리들은, 엔트리들이 HLOS에 의해 이용가능하게 존재한다는 것을 확실하게 하기 위해서 에러-체크될 수 있다. 식별되고 해결될 수 있는 에러들은, 예를 들어, 무결성-기반 에러들, 정상 범위 밖에 있는 프로파일 엔트리들, 또는 수동적으로 입력되었을 수 있는 엔트리 내 실수(이를 테면, 타이핑 에러)를 포함할 수 있다.
[0045]주변기기 프로파일 테이블, 이를 테면, 124에서 도시된 바와 같은, 도 3의 주변기기 프로파일(300)에서 각각 결정된 주변기기에 대한 프로파일을 업데이트하는 단계는 도 2에 도시된 바와 같이 추가 양상들(270 및 280)을 포함할 수 있다. 270에 도시된 바와 같이, 방법(124)은, 각각의 결정된 주변기기에 대한 프로파일을 주변기기 프로파일 테이블에 업데이트하는 단계를 포함한다. 일 예로, 프로파일이 완전해졌는지 여부를 검출하는 것, 필요하다면 프로파일을 완성하는 것, 및 프로파일의 에러-체크를 하고, 해결하는 단계에 기초하여 UE에서 이용가능했던 프로파일이 조정되었다면, UE는 주변기기 프로파일 테이블 내 프로파일에 대한 원래 엔트리에 액세스하고, 그 조정된 프로파일에 기초하여 엔트리를 업데이트할 수 있다. 다른 예로, 특정 주변기기에 대한 프로파일이 외부 로케이션으로부터 리트리브되었다면, UE는 그 특정 주변기기와 연관된 주변기기 프로파일 테이블에 있는 엔트리에 액세스하고, 그러한 엔트리가 존재한다면, 리트리브된 프로파일에 기초하여 엔트리를 업데이트할 수 있다. 프로파일이 외부 로케이션으로부터 리트리브되었던 그 특정 주변기기와 연관된 엔트리가 주변기기 프로파일 테이블에 사전에 존재하지 않았다면, 엔트리가 생성될 것이고 리트리브된 프로파일에 기초하여 그 엔트리에 정보가 추가될 것이다.
[0046]일 예로, 특정 주변기기에 대한 프로파일이 UE에서 이용가능하지도 않거나 또는 외부 로케이션에서 이용가능하지도 않았다면, 방법(124)은, 230에서 도시된 바와 같이, 특정 주변기기에 대한 에러 메시지를 주변기기 프로파일 테이블에 저장하는 단계를 포함한다. 이 경우에서, 그리고, 예를 들어, 280에서 도시된 바와 같이, 에러 메시지가 생성된 후 주변기기 프로파일 테이블, 또는 다른 곳에 저장될 수 있고, 특정 주변기기와 연관될 수 있다. 에러 메시지가 특정 주변기기와 연관되어 생성되고 저장되는 경우, 일 예로, HLOS가, 130에서 그의 부팅업 프로세스로 진입할 때 에러로 변경될 수 있다.
[0047]다른 예에서, UE는 주변기기에 대한 정보에 기초하여 그러한 주변기기에 대한 새로운 프로파일을 처음부터 생성하거나 또는 만들도록 시도할 수 있다. 이 경우에서, 그리고 예를 들어, 방법은, 특정 주변기기에 대한 새롭게 생성된 프로파일을 추가함으로써 주변기기 프로파일 테이블을 업데이트하기 위해서 230으로부터 270으로 이동할 수 있다(미도시).
[0048]방법(200)이 일련의 동작들로서 나타내어지고 설명되었지만, 이 방법들이 이 동작들의 순서로 제한되지 않는다는 것이 이해되고 인식되는데, 일부 동작들은, 하나 또는 그보다 많은 양상들에 따라서, 본원에 나타내어지고 설명된 것과는 상이한 순서들로 그리고/또는 다른 동작들과 동시에 발생할 수 있기 때문이다. 예를 들어, 방법은, 이를 테면, 상태도에서, 일련의 상관된 상태들 또는 이벤트들로서 대안적으로 나타내어질 수 있다는 것을 인식하게 된다. 더욱이, 모든 예시된 동작들이 하나 또는 그보다 많은 양상들에 따라서 방법을 구현할 필요가 있는 것은 아닐 수 있다.
[0049]도 3은 예시적인 주변기기 프로파일 테이블(300)의 도시이다. 주변기기 프로파일 테이블(300)은, 섹션(310), 주변기기 타입(312), 주변기기 번호(314), 주변기기 디바이스 드라이버 식별자(316), 및 주변기기 식별자(318)를 포함하는 필드들을 갖는 것으로 도시된다. 일 예로, 주변기기 프로파일 테이블(300) 내의 각각의 프로파일, 또는 엔트리, 이를 테면 엔트리들(320 및 330)은, 엔트리가 사전에 채워지도록 수동으로 입력될 수 있고, 따라서 UE가 그 엔트리와 연관된 주변기기를 결정할 때 완전해진다. 다른 예로, 주변기기 프로파일 테이블(300) 내 엔트리는, 도 1 및 도 2에 대하여 상술된 주변기기 자동-구성 프로세스에 기초하여 자동으로-채워지거나 또는 생성될 수 있다. 섹션(310)은, 특정 주변기기가 SPOC 상에 위치되는지, 온-보드로 UE에 위치되는지, 또는 오프-보드에 위치되는지 여부와 관련될 수 있다. 주변기기 타입(312)은 엔트리와 연관된 주변기기의 타입, 이를 테면, 예를 들어, 모뎀, Wi-Fi, 블루투스 디바이스, 스크린, 카메라, 마이크로폰, 스피커, 또는 카드 스캐너를 나타낼 수 있다. 주변기기 번호(314)는 특정 주변기기 구성에 기초한 식별자이다. 주변기기 디바이스 드라이버 식별자(316)는 주변기기 식별자(318) 상에 기초하여 자동으로 채워지거나 또는 수동으로 입력될 수 있다. 일 예로, 주변기기 식별자(318)는, 사용될 대응하는 주변기기 디바이스 드라이버를 결정하기 위해서 자동-구성될 그러한 주변기기들을 위해 사용될 수(예를 들어, 엔트리에 포함될 수) 있을 뿐이다. 다른 예로, 주변기기 식별자(318)는, 그 주변기기 디바이스 드라이버 식별자(316) 필드가 이미 채워졌었더라도 사용될 수 있다.
[0050]완전 프로파일은 주변기기에 대한 모든 관련 정보를 포함할 수 있다. 예를 들어, 완전 프로파일은, 정보가 주변기기 프로파일 테이블의 각각의 필드에 존재하는 테이블 엔트리로 나타내어질 수 있다. 예를 들어, 도 3의 엔트리(320)는 모뎀을 위한 프로파일을 포함한다. 엔트리(320)는, 주변기기 타입이 모뎀이고(321), 모뎀이 SPOC 상에 있고(322), 주변기기 번호 1을 갖고(323), 드라이버 ID A를 갖고(324), 그리고 주변기기 ID A를 갖는다(325)는 것을 나타낸다. 불완전 프로파일은 주변기기에 대한 모든 관련 정보를 포함하지 않을 수 있다. 예를 들어, 불완전 프로파일은, 주변기기 프로파일 테이블(300)의 하나 또는 그보다 많은 필드들에 정보가 누락되어 있는 테이블 엔트리로 나타내어질 수 있다. 예를 들어, 도 3의 엔트리(330)는 스크린에 대한 프로파일을 포함한다. 엔트리(330)는, 주변기기 타입이 스크린이고(331), 스크린이 온-보드ㄹ UE에 위치되어 있고(332)(예를 들어, UE에 통합되어 있지만 SPOC 상에 있지는 않음), 주변기기 번호 1을 갖고(333), 그리고 주변기기 ID D를 갖는다(335)는 것을 나타낸다. 그러나, 엔트리(330)에는 스크린을 위한 드라이버 ID(334)와 관련된 정보가 누락되어 있다. 이와 같이, 엔트리(330)는 불완전하다, 따라서, UE는 스크린에 대한 프로파일이 UE에서 이용가능하지 않다는 것을 결정할 수 있다.
[0051]일 양상에서, UE는, HLOS의 부팅 전에 결정된 주변기기들과 연관된 중간 드라이버들을 로딩하도록 구성될 수 있다. 일 예로, 중간 드라이버들은, 사전-HLOS 운영 환경에 의해서 로딩될 수 있고, 사용될 수 있다. 다른 예에서, 중간 드라이버들은 UE로 하여금 (사전-HLOS 운영 환경을 실행하면서) HLOS의 부팅 전에, 결정된 주변기기들을 사용하게 할 수 있다. 이 경우, 중간 드라이버가 프로파일에 대해 이용가능한지 여부, 중간 드라이버가 UE에서 또는 다른 곳에서 이용가능한지 여부, 중간 드라이버가 HLOS 부팅 이전에 UE에 의해 로딩되어야 하는지 여부, 그리고/또는 중간 드라이버와 관련된 임의의 다른 정보를 나타내는 추가 필드가 주변기기 프로파일 테이블(300) 내 각각의 프로파일(또는 엔트리)에 대해 포함될 수 있다(미도시).
[0052]도 4는 예시적인 고급 운영 시스템 아키텍처(400)의 예시이다. HLOS가 임의의 타입의 운영 시스템일 수 있다는 것이 이해되어야 하지만, HLOS는, 일 예로, ANDROID 운영 시스템일 수 있지만, 이것으로 제한되지 않는다. HLOS는 UE, 이를 테면 도 8의 UE(800)에서 실행될 수 있으며, 여기서 프로세서, 도 8의 프로세서(824)는 HLOS와 연관된 실행 명령들일 수 있으며, 여기서 명령들은 메모리, 이를 테면, 도 8의 메모리(826)에 저장될 수 있다. HLOS 아키텍처(400)에 대한 아키텍처는 애플리케이션 계층(410), 애플리케이션 프레임워크 계층(420), 라이브러리들 계층(430), HLOS 런타임 계층(440)을 포함하고, 이는, 예를 들어, ANDROID 런타임 계층, 및 커넬 계층(450), 이를 테면, LINUX 커넬 계층(이것으로 제한되지 않음)일 수 있다. 도 1, 2, 및 3에 대하여 상술된 양상들은, UE 주변기기들과 연관된 드라이버들에 대한 지원이 LINUX 커넬 계층(450)에 제공된다는 점에서 HLOS 아키텍처(400)의 최하위 계층, 이를 테면, 예를 들어, LINUX 커넬 계층(450)과 관련될 수 있다.
[0053]스마트폰 HLOS에 대한 일 접근법에서, 디바이스 드라이버들은, 특정한, 타겟이 되는 전화 구성을 위한 지원을 갖는 모노리식 LINUX 커넬을 제공하는 LINUX 커넬에 직접 내장될 수 있다. 이러한 일 접근법에서, 각각의 스마트폰 모델은 그 자신의 특수 LINUX 커넬을 가질 수 있고, 그에 따라, 특정 HLOS의 그 자신의 버전을 가질 수 있다. 이와 같이, 통신사 네트워크, 또는 다른 관심있는 엔티티는, 이용가능한 스마트폰 모델들 각각에서 실행되는 HLOS 버전들에 대하여 거의 제어를 하지 않을 수 있다. 이러한 시나리오는, 업데이트된 HOLS 정보 또는 소프트웨어, 이를 테면, 버그 픽스들, 보안 패치들 및 운영 시스템 업데이트들의 조정된 룰아웃들을 제공하는 데에 있어서 곤란한 점들을 제공할 수 있다.
[0054]상술된 문제들 중 일부를 완화하는 것을 돕고, HOLS 업데이트들의 조정된 룰아웃들을 제공하기 위해서, LINUX 커넬의 하나의 버전이, 통신사 네트워크들 및 전화기 제조업자들에 걸쳐 많은 수의 스마트폰들에서의 사용을 위해 제공될 수 있다. 이와 같이, 통신사 네트워크 또는 다른 관심있는 엔티티에 의한 HOLS 제어가 조정될 수 있다. LINUX 커넬의 하나의 버전이 모노리식 접근법 및/또는 동적 접근법을 이용하여 제공될 수 있다. 설명된 양상들의 HOLS는 임의의 타입의 운영 시스템일 수 있다. ANDROID 운영 시스템, 및 그의 연관된 LINUX 속성들은 설명을 위해서 사용된 일 예일 뿐이다. 본 설명은 ANDROID 또는 LINUX 구현으로 제한되지 않는다.
[0055]도 5는 LINUX 커넬 계층 내의 예시적인 디스플레이 디바이스 드라이버들의 도시이다. 보다 구체적으로, 도 5는 모노리식 LINUX 커넬 계층(510) 내의 예시적인 디스플레이 디바이스 드라이버 그리고 동적 LINUX 커넬 계층(550) 내의 예시적인 디스플레이 드라이버의 도시이다. LINUX 커넬 계층(510 및 550)은, 예를 들어, 도 4의 LINUX 커넬 계층(450)일 수 있다.
[0056]510으로 돌아가면, 하나 또는 그보다 많은 알려진 디스플레이 주변기기들, 이를 테면, 예를 들어, 드라이버 1(511), 드라이버 2(512) 내지 드라이버 N(513)과 연관된 하나 또는 그보다 많은 드라이버들을 포함할 수 있는 모노리식 커넬이 제공되며, 여기서 N은 양의 정수이다. 예를 들어, 드라이버들(511, 512, 및 513)이 사전-로딩될 수 있고, 모노리식, 즉 단일의 릴리즈(release)의 커넬에 내장될 수 있다.
[0057]550을 참고하면, 하나의 드라이버, 이를 테면, 예를 들어, 디스플레이 주변기기와 연관된 드라이버 1(551)을 포함할 수 있는 동적 커넬이 제공된다. 드라이버 1(551)이 플레이스홀더(placeholder), 이를 테면, 로딩가능한 커넬 모듈(LKM)로서 로딩될 수 있다. 일 예로, LKM들로서 로딩된 드라이버들은, 나중 시점에 전화기 제조업자에 의해 스마트폰 상에 제공될 수 있는 타겟 HLOS와 연관되는 그러한 드라이버들만을 포함할 수 있다. LKM은, 복수의 주변기기 카테고리들 각각의 주변기기를 위한 드라이버에 대한 플레이스홀더로서 로딩될 수 있다. 예를 들어, LKM이, 모뎀, 디스플레이, 카메라, 마이크로폰, 그리고 UE와 연관될 가능성일 있을 수 있는 다른 주변기기들을 위한 드라이버에 대한 플레이스홀더로서 로딩될 수 있다. 드라이버 1(551)이 LKM일 수 있기 때문에, 이것이 기본 커넬 릴리즈의 일부로서 로딩되지 않을 수 있다. 오히려, LINUX 커넬은, UE와 연관되는 것으로 결정된 특정 디스플레이 주변기기에 대해, 예를 들어, 주변기기 프로파일 테이블(300)에 저장된 주변기기 프로파일에 기초하여 드라이버 1(551)을 동적으로 로딩할 수 있다. 일 예로, 동적 접근법은, LINUX 커넬 및 디바이스 드라이버 릴리즈들로 하여금 개별적으로 릴리즈되고 지원되게 할 수 있다. 설명된 양상들의 HLOS는 임의의 타입의 운영 시스템일 수 있다. ANDROID 운영 시스템과 그의 연관된 LINUX 속성들은, 설명을 위해 사용된 하나의 예일 뿐이다. 본 설명은 ANDROID 또는 LINUX 구현으로 제한되지 않는다.
[0058]도 6은 모노리식 접근법을 이용하여 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 예시적인 방법(600)의 도시이다. 일 예로, 방법(600)은 도 8의 UE(800)에 대한 주변기기 디바이스 드라이버들을 로딩하는 것에 대한 것일 수 있다. 일 예로, 방법(600)은 도 8의 메모리(826) 및 트랜시버(825)와 결합하여 도 8의 프로세서(824)에 의해 수행될 수 있다.
[0059]610에서, 방법(600)은 UE와 연관될 수 있는 주변기기들을 결정하는 단계를 포함한다. 결정된 주변기기들 각각은, 예를 들어, SPOC 상에 위치될 수도, 온-보드로 UE에 위치될 수도, 또는 오프-보드에 위치될 수도 있으며, 이를 테면, 예를 들어, 도 8의 주변기기들(811, 812, 813, 814, 815, 821, 822, 823, 831 및 832)에 위치될 수도 있다.
[0060]620에서, 방법(600)은, 로딩된 드라이버들이 HLOS가 제공되는 UE의 타입과 관계없이 HLOS 아키텍처와 연관되도록, 결정된 주변기기들을 위한 드라이버들을 로딩하는 단계를 포함한다. 결정된 주변기기들을 위한 드라이버들은, 예를 들어, LINUX 커넬, 이를 테면, 도 4의 LINUX 커넬(450) 또는 도 5의 LINUX 커넬(510)로 로딩될 수 있다. 일 예로, 선택적으로, 그리고 621에 도시된 바와 같이, 방법(600)은 주변기기들의 알려진 세트를 위한 드라이버들의 세트를 복수의 주변기기 카테고리들 각각으로 로딩하는 단계를 포함한다. 일 예로, UE와 연관될 수 있는, 모든 알려진 모뎀들 각각 또는 모든 알려진 모뎀들의 일부 대규모 서브셋에 대한 하나 또는 그보다 많은 드라이버들이 로딩될 수 있고, UE와 연관될 수 있는, 모든 알려진 디스플레이들 각각 또는 모든 알려진 디스플레이들의 일부 대규모 서브셋에 대한 하나 또는 그보다 많은 드라이버들이 로딩될 수 있는 식이다. 드라이버들의 세트가 사전-로딩될 수 있고 모노리식, 즉 단일의 릴리즈 내의 커넬에 내장될 수 있다.
[0061]설명된 양상들의 HLOS는 임의의 타입의 운영 시스템일 수 있다. ANDROID 운영 시스템과 그의 연관된 LINUX 속성들은 설명을 위해서 사용된 일 예일 뿐이다. 본 설명은 ANDROID 또는 LINUX 구현으로 제한되지 않는다.
[0062]방법(600)이 일련의 동작들로서 도시되고 설명되었고, 이 방법들이 이 동작들의 순서로 제한되지 않는다는 것이 이해되고 인식되는데, 일부 동작들은, 하나 또는 그보다 많은 양상들에 따라서, 본원에 나타내어지고 설명된 것과는 상이한 순서들로 그리고/또는 다른 동작들과 동시에 발생할 수 있기 때문이다. 예를 들어, 방법은, 이를 테면, 상태도에서, 일련의 상관된 상태들 또는 이벤트들로서 대안적으로 나타내어질 수 있다는 것을 인식하게 된다. 더욱이, 모든 예시된 동작들이 하나 또는 그보다 많은 양상들에 따라서 방법을 구현할 필요가 있는 것은 아닐 수 있다.
[0063]도 7은 동적 접근법을 이용하여 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 예시적인 방법(700)의 도시이다. 일 예로, 방법(700)은 도 8의 UE(800)를 위한 주변기기 디바이스 드라이버를 로딩하기 위한 것일 수 있다. 일 예로, 방법(800)은 도 8의 메모리(826) 및 트랜시버(825)와 결합하여 도 8의 프로세서(824)에 의해 수행될 수 있다.
[0064]710에서, 방법(700)은 사용자 장비와 연관될 수 있는 주변기기들을 결정하는 단계를 포함한다. 결정된 주변기기들 각각은, 예를 들어, SPOC 상에 위치될 수도, 온-보드로 UE에 위치될 수도, 또는 오프-보드에 위치될 수도 있으며, 이를 테면, 예를 들어, 도 8의 주변기기들(811, 812, 813, 814, 815, 821, 822, 823, 831 및 832)에 위치될 수도 있다.
[0065]720에서, 방법(700)은, HLOS가 제공되는 UE의 타입과 관계없이 로딩된 드라이버들이 HLOS 아키텍처와 연관되도록, 결정된 주변기기들을 위한 드라이버들을 로딩하는 단계를 포함한다. 일 예로, 결정된 주변기기들을 위한 드라이버들은, LINUX 커넬, 이를 테면, 도 4의 LINUX 커넬(450) 또는 도 5의 LINUX 커넬(550)로 로딩될 수 있다. 720에서, 방법(700)은 아래에 설명된 바와 같이 721, 722, 723 및 724를 선택적으로 포함한다.
[0066]721에서, 방법(700)은 주변기기를 위한 드라이버를 위한 플레이스홀더를 복수의 주변기기 카테고리들 각각으로 로딩하는 단계를 포함한다. 일 예로, 로딩가능한 커넬 모듈(LKM)은, 주변기기를 위한 드라이버에 대한 플레이스홀더로서 복수의 주변기기 카테고리들 각각으로 로딩될 수 있다. 예를 들어, LKM이, 모뎀, 디스플레이, 카메라, 마이크로폰, 그리고 UE와 연관될 가능성일 있을 수 있는 다른 주변기기들을 위한 드라이버에 대한 플레이스홀더로서 로딩될 수 있다. 일 양상에서, LMS들은, 나중 시점에 전화기 제조업자에 의해 스마트폰 상에 제공될 수 있는 타겟 HLOS와 연관되는 그러한 드라이버들만을 포함할 수 있다.
[0067]722에서, 방법(700)은 UE와 연관된 주변기기들을 결정하는 단계를 포함한다. 예를 들어, UE는, 예를 들어, 도 1, 2, 및 3에 대하여, 상술된 바와 같이, UE와 현재 연관되는 복수의 주변기기 카테고리들 각각으로 특정 주변기기들을 결정할 수 있다. 예를 들어, UE는, 디스플레이 컴퍼니 A에 의해 제조된 디스플레이가 UE와 연관된다는 것을 결정할 수 있다.
[0068]723에서, 방법(700)은 결정된 주변기기들과 연관된 드라이버들을 식별하는 단계를 포함한다. 현재 예에서, 디스플레이 컴퍼니 A 디스플레이와 연관된 드라이버들이 식별될 수 있다.
[0069]724에서, 방법은 식별된 드라이버들을 동적으로 로딩하는 단계를 포함한다. 현재 예에서, 디스플레이 컴퍼니 A 디스플레이 드라이버는, LINUX 커넬, 이를 테면, 도 4의 LINUX 커넬(450) 또는 도 5의 LINUX 커넬(550) 내의 플레이스홀더 LKM으로 동적으로 로딩될 수 있다. 또한, 그리고 다른 예에서, 결정된 주변기기들과 연관된 드라이버들은, 예를 들어, UE와 연관되는 것으로 결정된 특정 주변기기를 위한 주변기기 프로파일 테이블, 이를 테면, 도 3의 주변기기 프로파일 테이블(300)에 저장된 주변기기 프로파일들에 기초하여 로딩될 수 있다. 일 예로, 동적 접근법은 LINUX 커넬과 디바이스 드라이버 릴리즈들로 하여금 개별적으로 릴리즈되고 지원되게 할 수 있다.
[0070]설명된 양상들의 HLOS는 임의의 타입의 운영 시스템일 수 있다. ANDROID 운영 시스템, 및 그의 연관된 LINUX 속성들은 설명을 위해서 사용된 일 예일 뿐이다. 본 설명은 ANDROID 또는 LINUX 구현으로 제한되지 않는다.
[0071]방법(700)이 일련의 동작들로서 도시되고 설명되었고, 이 방법들이 이 동작들의 순서로 제한되지 않는다는 것이 이해되고 인식되는데, 일부 동작들은, 하나 또는 그보다 많은 양상들에 따라서, 본원에 나타내어지고 설명된 것과는 상이한 순서들로 그리고/또는 다른 동작들과 동시에 발생할 수 있기 때문이다. 예를 들어, 방법은, 이를 테면, 상태도에서, 일련의 상관된 상태들 또는 이벤트들로서 대안적으로 나타내어질 수 있다는 것을 인식하게 된다. 더욱이, 모든 예시된 동작들이 하나 또는 그보다 많은 양상들에 따라서 방법을 구현할 필요가 있는 것은 아닐 수 있다.
[0072]도 8은 예시적인 사용자 장비(UE)(800)의 도시이다. UE(800)는, 스마트폰 온 칩(SPOC) 상의 주변기기들, 이를 테면, 예를 들어, 블루투스 로우 에너지(BLE) 모듈(821), WiFi 모듈(822), 및 모뎀(823)을 포함할 수 있는 SPOC(820)를 포함할 수 있다.
[0073]SPOC(820)는 또한, 프로세서(824), 트랜시버(825), 및 메모리(826)를 포함할 수 있다. 프로세서(824)는 본원에 설명된 컴포넌트들 및 기능들 중 하나 또는 그보다 많은 것과 연관된 프로세싱 기능들을 실행하도록 구성될 수 있다. 프로세서(824)는 프로세서들 또는 멀티-코어 프로세서들의 하나의 또는 다수의 세트를 포함할 수 있다. 또한, 프로세서(824)는 통합된 프로세싱 시스템 및/또는 분산된 프로세싱 시스템으로서 구현될 수 있다. 특히, 프로세서(824)는 상술된 그리고 도 1 내지 3, 6 및 7에 도시된 방법들의 양상들을 수행하도록 구성될 수 있다.
[0074]일 예로, 프로세서(824)는, 도 2의 210에서 도시된 바와 같이, 특정 주변기기에 대한 프로파일이 UE(820)에서 이용가능한지 여부를 결정하도록 구성될 수 있다. 프로세서(824)는 또한, 도 2의 220에서 도시된 바와 같이, 특정 주변기기에 대한 프로파일이 외부 로케이션에서 이용가능한지 여부를 결정하도록 구성될 수 있다. 프로파일들은 상술된 바와 같이, 주변기기와 연관된 제조업자 또는 OEM에 의해 제조되고 그리고/또는 관리되는 외부 로케이션들, 이를 테면, 예를 들어, 데이터베이스, 웹사이트, 또는 다른 저장 매체에서 이용가능할 수 있다. 프로파일이 외부 로케이션에서 이용가능하다면, 프로세서(824)는, 트랜시버(825)와 통신하도록 그리고 트랜시버(825)가 외부 로케이션(840)과 접속할 것을 요청하도록 구성될 수 있다.
[0075]트랜시버(825)는 본원에 설명된 바와 같은 하드웨어, 소프트웨어, 및 서비스들을 활용하는 하나 또는 그보다 많은 엔티티들과의 통신들을 확립하고 유지도록 구성될 수 있다. 트랜시버(825)는, UE(800)에 연속적으로 또는 국부적으로 연결된 통신 네트워크 및/또는 디바이스들에 걸쳐 위치된 디바이스들과 같은 외부 디바이스들과 UE(800) 사이에서 통신을 반송할 수 있다. 예를 들어, 트랜시버(825)는 외부 디바이스들과 인터페이싱하기 위해 동작가능한 송신 체인 컴포넌트들 및 수신 체인 컴포넌트들을 포함할 수 있다.
[0076]특히, 트랜시버(825)는, 특정 주변기기에 대한 프로파일이 외부 로케이션(840)에 저장된 프로파일들(841) 중 하나 중에서 외부 로케이션(840)에서 이용가능한지를 결정하기 위해 외부 로케이션(840)과 통신할 수 있다. 그러하다면, 트랜시버(825)는 외부 로케이션(840)으로부터 프로파일을 리트리브할 수 있다. 트랜시버(825)는 리트리브된 프로파일을 프로세서(824)로 제공할 수 있다. 프로세서(824)는, 리트리빙된 프로파일에 기초하여 특정 주변기기에 대한 프로파일을 주변기기 프로파일 테이블에 업데이트하기 위해서, 개별 프로파일들(827)과 주변기기 프로파일 테이블, 이를 테면, 도 3의 주변기기 프로파일 테이블(300)을 저장할 수 있는 메모리(826)에 액세스하도록 구성될 수 있다.
[0077]상술된 바와 같이, 메모리(826)는, 본원에 사용된 데이터 및/또는 프로세서(824)에 의해 실행되는 애플리케이션들의 로컬 버전들을 저장하도록 구성될 수 있다. 예를 들어, 메모리(826)는, 예를 들어, 주변기기 프로파일 테이블, 이를 테면, 도 3의 주변기기 프로파일 테이블(300)에 주변기기 프로파일을 저장하도록 구성될 수 있다. 추가적으로, 그리고 일 예로, 메모리(826)는 컴퓨터에 의해 사용가능한 임의의 타입의 메모리, 이를 테면, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 테이프들, 자기 디스크들, 광학 디스크들, 휘발성 메모리, 비휘발성 메모리, 및 이들의 임의의 조합을 포함할 수 있다. 일 예로, 메모리(826)는 플래시 메모리일 수 있다. 메모리(826)는 또한, 데이터 저장소(미도시)를 포함할 수 있으며, 그 데이터 저장소는, 본원에서 설명되는 양상들에 관련하여 채용된 정보, 데이터베이스들, 및 프로그램들의 대량 저장을 제공하는 하드웨어 및/또는 소프트웨어의 임의의 적합한 조합일 수 있다. 예를 들어, 데이터 저장소는 현재 프로세서(824)에 의해 실행 중이 아닌 애플리케이션들을 위한 데이터 리포지터리일 수 있다.
[0078]프로세서(824), 트랜시버(825), 및 메모리(826)는 서로 통신하도록 구성될 수 있다.
[0079]UE(800)는 또한 온-보드 주변기기들, 이를 테면, 스크린(811), 터치 모듈(812), 카메라(813), 마이크로폰(814), 및 스피커(815)를 포함할 수 있다. 도 8은 또한 오프-보드 주변기기들, 이를 테면, 유선 또는 무선 인터페이스를 통해 UE(800)에 연결될 수 있는 카드 스캐너(831) 및 프린터(832)를 나타낸다.
[0080]본 출원에서 사용된 바와 같이, 용어들 "컴포넌트", "모듈", "시스템" 등은 컴퓨터 관련된 엔티티, 이를테면 하드웨어, 펌웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어(software in execution)를 포함하지만 그것들로 제한되지 않는 것으로 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행중인 프로세스, 프로세서, 오브젝트, 실행가능물(executable), 실행 스레드(thread of execution), 프로그램, 및/또는 컴퓨터일 수 있지만 그것들로 제한되지 않는다. 예시로서, 컴퓨팅 디바이스 상에서 실행중인 애플리케이션 및 컴퓨팅 디바이스 둘 다가 하나의 컴포넌트일 수 있다. 하나 또는 그보다 많은 컴포넌트들이 프로세스 및/또는 실행 스레드 내에 상주할 수 있고 컴포넌트가 하나의 컴퓨터 상에 국소화될 수 있고 및/또는 둘 이상의 컴퓨터들 상에 분산될 수 있다. 이외에도, 이들 컴포넌트들은 다양한 데이터 구조들을 저장하고 있는 다양한 컴퓨터 판독가능 매체들로부터 실행될 수 있다. 컴포넌트들은, 로컬 및/또는 원격 프로세스들에 의해 이를테면 하나 또는 그보다 많은 데이터 패킷들을 갖는 신호, 이를테면 로컬 시스템, 분산형 시스템에서의 다른 컴포넌트들과 상호작용하며 및/또는 다른 시스템들과는 인터넷과 같은 네트워크에 걸쳐서 신호에 의해 상호작용하는 하나의 컴포넌트로부터의 데이터에 따라 통신할 수 있다.
[0081]더욱이, 다양한 양상들은 유선 단말 또는 무선 단말일 수 있는 단말에 관련하여 본원에서 설명되어 있다. 단말은 또한 시스템, 디바이스, 가입자 유닛, 가입자국, 이동국, 모바일, 모바일 디바이스, 원격지국(remote station), 원격 단말, 액세스 단말, 사용자 단말, 단말(terminal), 통신 디바이스, 사용자 에이전트, 사용자 디바이스, 또는 사용자 장비(UE)로 지칭될 수 있다. 무선 단말은 셀룰러 전화기, 위성 폰, 코드리스 전화기, 세션 개시 프로토콜(SIP) 폰, 무선 로컬 루프(WLL) 스테이션, 개인휴대 정보단말(PDA), 무선 접속 능력을 갖는 핸드헬드 디바이스, 컴퓨팅 디바이스, 또는 무선 모뎀에 접속된 다른 프로세싱 디바이스들일 수 있다. 더구나, 다양한 양상들은 기지국에 관련하여 본원에서 설명되고 있다. 기지국은 무선 단말(들)과 통신하기 위해 이용될 수 있고 또한 액세스 포인트, 노드 B, 또는 일부 다른 용어들로서 지칭될 수 있다.
[0082]또한, 용어 "또는"은 배타적인 "또는" 보다는 포괄적인 "또는"을 의미하는 것으로 의도된다. 다시 말하면, 달리 특정되지 않거나, 또는 문맥으로부터 명확하지 않으면, 어구 "X는 A 또는 B를 채용한다"는 임의의 자연 포괄적 순열(natural inclusive permutation)을 의미하는 것으로 의도된다. 다시 말하면, 어구 "X는 A 또는 B를 채용한다"는 다음의 인스턴스들 중 임의의 것에 의해 만족된다: X는 A를 채용한다; X는 B를 채용한다; 또는 X는 A 및 B 양쪽 모두를 채용한다. 또한, 본 출원 및 첨부된 청구항에서 사용되는 바와 같은 단수형 표현은 달리 규정되지 않거나 또는 문맥으로부터 단수형을 지시하는 것으로 명확하지 않다면, 일반적으로 "하나 또는 그보다 많은"을 의미하는 것으로 해석되어야 한다.
[0083]본원에서 설명되는 기법들은 CDMA, TDMA, FDMA, OFDMA, SC-FDMA 및 다른 시스템들과 같은 다양한 무선 통신 시스템들에 이용될 수 있다. 용어들인 "시스템" 및 "네트워크"는 종종 상호교환가능하게 사용된다. CDMA 시스템은 유니버셜 지상파 무선 액세스(Universal Terrestrial Radio Access; UTRA), cdma2000 등과 같은 무선 기술을 구현할 수 있다. UTRA는 광대역-CDMA (W-CDMA) 와 CDMA의 다른 변종들을 포함한다. 게다가, cdma2000은 IS-2000, IS-95 및 IS-856 표준들을 커버한다. TDMA 시스템은 GSM(Global System for Mobile Communications)과 같은 무선 기술을 구현할 수 있다. OFDMA 시스템은 E-UTRA(Evolved UTRA), 울트라 모바일 브로드밴드(UMB), IEEE 802.11(Wi-Fi), IEEE 802.16(WiMAX), IEEE 802.20, Flash-OFDM® 등과 같은 무선 기술을 구현할 수 있다. UTRA 및 E-UTRA는 유니버셜 모바일 전기통신 시스템(UMTS)의 부분이다. 3GPP 롱 텀 에볼루션(LTE)은 OFDMA를 다운링크 상에 그리고 SC-FDMA를 업링크 상에 채용하는, E-UTRA를 이용하는 UMTS의 릴리스이다. UTRA, E-UTRA, UMTS, LTE 및 GSM은 "3세대 파트너십 프로젝트"(3GPP)라는 이름의 조직으로부터의 문서들에 기재되어 있다. 추가적으로, cdma2000 및 UMB는 "3세대 파트너십 프로젝트 2"(3GPP2)라는 이름의 조직로부터의 문서들에 기재되어 있다. 또한, 이러한 무선 통신 시스템들은 언페어드 무허가 스펙트럼들 (unpaired unlicensed spectrums), 802.xx 무선 LAN, 블루투스 및 임의의 다른 단거리 또는 장거리 무선 통신 기법들을 종종 이용하는 피어-투-피어 (예컨대, 모바일-대-모바일) 애드 혹 네트워크 시스템들을 부가적으로 포함할 수 있다.
[0084]다양한 양상들 또는 특징들이 다수의 디바이스들, 컴포넌트들, 모듈들 등을 포함할 수 있는 시스템들의 측면에서 제시될 것이다. 다양한 시스템들이 부가적인 디바이스들, 컴포넌트들, 모듈들 등을 구비할 수 있으며 및/또는 도면들에 관련하여 논의되는 디바이스들, 컴포넌트들, 모듈들 등의 모두를 포함하지 않을 수 있다는 것이 이해되고 인정될 것이다. 이들 접근법들의 조합이 또한 이용될 수 있다.
[0085]본원에서 개시된 양상들에 관련하여 설명된 갖가지 예시적인 로직들, 논리 블록들, 모듈들, 및 회로들은 본원에서 설명된 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA) 또는 다른 프로그램가능 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 그것들의 임의의 조합으로 구현되거나 실시될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로, 이 프로세서는 임의의 기존 프로세서, 제어기, 마이크로제어기, 또는 상태 머신(state machine)일 수 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예컨대, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 협력하는 하나 또는 그보다 많은 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로 구현될 수 있다. 덧붙여, 적어도 하나의 프로세서는 위에서 설명된 단계들 및/또는 액션들 중의 하나 이상을 수행하도록 동작가능한 하나 또는 그보다 많은 모듈들을 포함할 수 있다.
[0086]또한, 본 명세서에서 개시된 양상들과 관련하여 설명된 방법 또는 알고리즘의 단계들 및/또는 액션들은 하드웨어로 직접적으로 구현되거나, 프로세서에 의하여 실행되는 소프트웨어 모듈로 구현되거나, 이들 두 가지의 조합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체 내에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 그 저장 매체로부터 정보를 판독할 수 있고 그 저장 매체에 정보를 기록할 수 있도록 프로세서에 연결될 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다. 추가로, 일부 양상들에서, 프로세서 및 저장 매체는 ASIC 내에 상주할 수 있다. 부가적으로, ASIC은 사용자 단말 내에 상주할 수 있다. 대안으로, 프로세서와 저장 매체는 사용자 단말에 개별 컴포넌트들로서 상주할 수 있다. 덧붙여, 일부 양상들에서, 방법 또는 알고리즘의 단계들 및/또는 액션들은 코드들 및/또는 명령들 중의 하나 또는 임의의 조합 또는 세트로서 컴퓨터 프로그램 제품에 통합될 수 있는 머신 판독가능 매체 및/또는 컴퓨터 판독가능 매체 상에 상주할 수 있다.
[0087]하나 또는 그보다 많은 양상들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 기능들은 하나 또는 그보다 많은 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 송신될 수 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체들 및 통신 매체들 양쪽 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체들일 수 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 운반하거나 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 관련된 것이라도 컴퓨터 판독가능 매체라고 할 수 있다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들을 이용하여 송신된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 디스크(disk 및 disc)는 여기서 사용되는 바와 같이, 콤팩트 디스크(compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크(floppy disk) 및 블루레이 디스크를 포함하는데, 디스크(disk)들은 보통 데이터를 자기적으로 재생하지만, 디스크(disc)들은 레이저들를 이용하여 데이터를 광학적으로 재생한다. 상기한 것들의 조합들은 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
[0088]전술한 개시물이 구체적인 양상들 및/또는 실시형태들을 논의하지만, 갖가지 변경들 및 변형들이 첨부의 청구항들에 의해 정의된 바와 같이 설명된 양상들 및/또는 실시형태들의 범위로부터 벗어남 없이 여기에 행해질 수 있다는 것에 주목해야 한다. 더욱이, 설명된 양상들 및/또는 실시형태들의 엘리먼트들이 단수형으로 설명되거나 또는 청구되었지만, 단수형에 대한 제한이 명시적으로 언급되지 않는 한 복수형이 예상된다. 덧붙여, 임의의 양상 및/또는 실시형태의 모든 또는 일 부분은 달리 언급되지 않는 한 임의의 다른 양상 및/또는 실시형태의 모든 또는 일 부분과 함께 이용될 수 있다.

Claims (32)

  1. 사용자 장비를 부팅하기 위한 방법으로서,
    상기 사용자 장비의 디바이스 부팅을 수행하는 단계;
    상기 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하는 단계; 및
    고급 운영 시스템(HLOS; high-level operating system)을 부팅하는 단계를 포함하고,
    상기 구성하는 단계는 상기 HLOS의 상기 부팅 전에 발생하는, 사용자 장비를 부팅하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 사용자 장비를 위한 상기 연관된 드라이버들을 프리페칭하는 단계를 더 포함하고,
    상기 프리페칭하는 단계는 상기 HLOS의 상기 부팅 전에 발생하는, 사용자 장비를 부팅하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하는 단계는 상기 연관된 드라이버들을 활성화시키는 단계를 포함하고, 상기 활성화시키는 단계는 상기 HLOS의 상기 부팅 전에 발생하는, 사용자 장비를 부팅하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 구성된 주변기기들과 연관된 중간 드라이버들을 식별하는 단계; 및
    사전-HLOS 운영 환경에 의한 사용을 위해 상기 중간 드라이버들을 로딩하는 단계를 더 포함하고,
    상기 로딩하는 단계는, 상기 사용자 장비로 하여금 상기 HLOS의 상기 부팅 전에 상기 주변기기들을 사용하게 하는, 사용자 장비를 부팅하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 주변기기들 및 연관된 드라이버들을 구성하는 단계는 주변기기들 및 연관된 드라이버들을 자동으로 구성하는 단계를 포함하는, 사용자 장비를 부팅하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 주변기기들 및 연관된 드라이버들을 구성하는 단계는 주변기기들 및 연관된 드라이버들을 수동으로 구성하는 단계를 포함하는, 사용자 장비를 부팅하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 구성하는 단계는,
    상기 사용자 장비와 연관된 주변기기들을 결정하는 단계;
    각각의 결정된 주변기기에 대한 프로파일을 주변기기 프로파일 테이블에 업데이트하는 단계; 및
    상기 HLOS에 의한 사용을 위해 각각의 주변기기 프로파일과 연관된 드라이버들을 준비하는 단계를 더 포함하는, 사용자 장비를 부팅하기 위한 방법.
  8. 제 7 항에 있어서,
    상기 사용자 장비와 연관된 주변기기들을 결정하는 단계는,
    각각의 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능한지 여부를 결정하는 단계;
    상기 각각의 주변기기에 대한 프로파일이 완전한지 여부를 검출하는 단계; 및
    상기 각각의 주변기기에 대한 프로파일을 에러-체크하는 단계를 더 포함하는, 사용자 장비를 부팅하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 각각의 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능한지 여부를 결정하는 단계는,
    특정 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능하지 않다고 결정하는 단계;
    상기 특정 주변기기에 대한 프로파일이 상기 사용자 장비 외부에 있는 로케이션에서 이용가능하다고 결정하는 단계 ―외부 로케이션은 상기 특정 주변기기와 연관된 제조업자에 의해 관리됨―; 및
    외부 로케이션으로부터 상기 특정 주변기기에 대한 프로파일을 리트리빙하는 단계를 더 포함하고,
    상기 특정 주변기기에 대한 프로파일을 업데이트하는 단계는 리트리빙된 프로파일에 기초하여 업데이트하는 단계를 포함하는, 사용자 장비를 부팅하기 위한 방법.
  10. 제 8 항에 있어서,
    상기 각각의 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능한지 여부를 결정하는 단계는,
    특정 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능하지 않다고 결정하는 단계; 및
    상기 특정 주변기기에 대한 프로파일이 상기 사용자 장비 외부에 있는 로케이션에서 이용가능하지 않다고 결정하는 단계를 더 포함하고,
    외부 로케이션은 상기 특정 주변기기와 연관된 제조업자에 의해 관리되고,
    상기 특정 주변기기에 대한 프로파일을 업데이트하는 단계는 상기 특정 주변기기에 대한 에러 메시지를 상기 주변기기 프로파일 테이블에 저장하는 단계를 포함하는, 사용자 장비를 부팅하기 위한 방법.
  11. 사용자 장비를 부팅하기 위한 장치로서,
    상기 사용자 장비의 디바이스 부팅을 수행하기 위한 수단;
    상기 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하기 위한 수단; 및
    고급 운영 시스템(HLOS)을 부팅하기 위한 수단을 포함하고,
    상기 구성하는 것은 상기 HLOS의 상기 부팅 전에 발생하는, 사용자 장비를 부팅하기 위한 장치.
  12. 사용자 장비를 부팅하기 위한 컴퓨터 프로그램 물건으로서,
    컴퓨터 판독가능 매체를 포함하고,
    상기 컴퓨터 판독가능 매체는, 컴퓨터로 하여금,
    상기 사용자 장비의 디바이스 부팅을 수행하게 하고;
    상기 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하게 하고; 그리고
    고급 운영 시스템(HLOS)을 부팅하게 하기 위한 코드를 포함하고,
    상기 구성하는 것은 상기 HLOS의 상기 부팅 전에 발생하는, 사용자 장비를 부팅하기 위한 컴퓨터 프로그램 물건.
  13. 사용자 장비를 부팅하기 위한 장치로서,
    메모리;
    트랜시버; 및
    프로세서를 포함하고,
    상기 프로세서는,
    상기 사용자 장비의 디바이스 부팅을 수행하게 하고;
    상기 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하게 하고; 그리고
    고급 운영 시스템(HLOS)을 부팅하게 하도록 구성되고,
    상기 구성하는 것은 상기 HLOS의 상기 부팅 전에 발생하는, 사용자 장비를 부팅하기 위한 장치.
  14. 제 13 항에 있어서,
    상기 프로세서는 추가로, 상기 HLOS의 상기 부팅 전에 상기 사용자 장비를 위한 상기 연관된 드라이버들을 프리페칭하도록 구성되는, 사용자 장비를 부팅하기 위한 장치.
  15. 제 13 항에 있어서,
    상기 사용자 장비를 위한 주변기기들 및 연관된 드라이버들을 구성하도록 구성되는 상기 프로세서는 상기 HLOS의 상기 부팅 전에 상기 연관된 드라이버들을 활성화시키도록 구성되는 프로세서를 포함하는, 사용자 장비를 부팅하기 위한 장치.
  16. 제 13 항에 있어서,
    상기 프로세서는 추가로,
    상기 구성된 주변기기들과 연관된 중간 드라이버들을 식별하고; 그리고
    사전-HLOS 운영 환경에 의한 사용을 위해 상기 중간 드라이버들을 로딩하게 하도록 구성되고,
    상기 로딩하는 것은, 상기 사용자 장비로 하여금 상기 HLOS의 상기 부팅 전에 상기 주변기기들을 사용하게 하는, 사용자 장비를 부팅하기 위한 장치.
  17. 제 13 항에 있어서,
    주변기기들 및 연관된 드라이버들을 구성하도록 구성되는 상기 프로세서는 주변기기들 및 연관된 드라이버들을 자동으로 구성하도록 구성되는 프로세서를 포함하는, 사용자 장비를 부팅하기 위한 장치.
  18. 제 13 항에 있어서,
    주변기기들 및 연관된 드라이버들을 구성하도록 구성되는 상기 프로세서는 주변기기들 및 연관된 드라이버들을 수동으로 구성하도록 구성되는 프로세서를 포함하는, 사용자 장비를 부팅하기 위한 장치.
  19. 제 13 항에 있어서,
    주변기기들 및 연관된 드라이버들을 구성하도록 구성되는 상기 프로세서는,
    상기 사용자 장비와 연관된 주변기기들을 결정하고;
    각각의 결정된 주변기기에 대한 프로파일을 주변기기 프로파일 테이블에 업데이트하고; 그리고
    상기 HLOS에 의한 사용을 위해 각각의 주변기기 프로파일과 연관된 드라이버들을 준비하도록
    구성되는 프로세서를 더 포함하는, 사용자 장비를 부팅하기 위한 장치.
  20. 제 19 항에 있어서,
    상기 사용자 장비와 연관된 주변기기들을 결정하도록 구성되는 상기 프로세서는,
    각각의 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능한지 여부를 결정하고;
    상기 각각의 주변기기에 대한 프로파일이 완전한지 여부를 검출하고; 그리고
    상기 각각의 주변기기에 대한 프로파일을 에러-체크하도록
    구성되는 프로세서를 더 포함하는, 사용자 장비를 부팅하기 위한 장치.
  21. 제 20 항에 있어서,
    상기 각각의 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능한지 여부를 결정하도록 구성되는 상기 프로세서는,
    특정 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능하지 않다고 결정하고; 그리고
    상기 특정 주변기기에 대한 프로파일이 상기 사용자 장비 외부에 있는 로케이션에서 이용가능하다고 결정하도록 ―외부 로케이션은 상기 특정 주변기기와 연관된 제조업자에 의해 관리됨―
    구성되는 상기 프로세서; 및
    외부 로케이션으로부터 상기 특정 주변기기에 대한 프로파일을 리트리빙하도록 구성되는 트랜시버를 더 포함하고,
    상기 특정 주변기기에 대한 프로파일을 업데이트하는 것은 리트리빙된 프로파일에 기초하여 상기 특정 주변기기에 대한 프로파일을 업데이트하는 것을 포함하는, 사용자 장비를 부팅하기 위한 장치.
  22. 제 20 항에 있어서,
    상기 각각의 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능한지 여부를 결정하도록 구성되는 상기 프로세서는,
    특정 주변기기에 대한 프로파일이 상기 사용자 장비에서 이용가능하지 않다고 결정하고; 그리고
    상기 특정 주변기기에 대한 프로파일이 상기 사용자 장비 외부에 있는 로케이션에서 이용가능하지 않다고 결정하도록 구성되는 프로세서를 더 포함하고,
    외부 로케이션은 상기 특정 주변기기와 연관된 제조업자에 의해 관리되고,
    상기 특정 주변기기에 대한 프로파일을 업데이트하는 것은 상기 특정 주변기기에 대한 에러 메시지를 상기 주변기기 프로파일 테이블에 저장하는 것을 포함하는, 사용자 장비를 부팅하기 위한 장치.
  23. 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 방법으로서,
    사용자 장비와 연관될 수 있는 주변기기들을 결정하는 단계; 및
    결정된 주변기기들에 대한 드라이버들을 로딩하는 단계를 포함하고,
    드라이버들을 로딩하는 단계는, 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관되는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 방법.
  24. 제 23 항에 있어서,
    드라이버들을 로딩하는 단계는 주변기기들의 알려진 세트를 위한 드라이버들의 세트를 복수의 주변기기 카테고리들 각각으로 로딩하는 단계를 포함하는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 방법.
  25. 제 24 항에 있어서,
    상기 드라이버들의 세트가 모노리식 릴리즈에 로딩되는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 방법.
  26. 제 23 항에 있어서,
    상기 드라이버들을 로딩하는 단계는,
    주변기기를 위한 드라이버에 대한 플레이스홀더(placeholder)를 복수의 주변기기 카테고리들 각각으로 로딩하는 단계;
    상기 사용자 장비와 연관된 주변기기들을 결정하는 단계;
    결정된 주변기기들과 연관된 드라이버들을 식별하는 단계; 및
    식별된 드라이버들을 플레이스홀더들로 동적으로 로딩하는 단계를 포함하는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 방법.
  27. 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치는,
    사용자 장비와 연관될 수 있는 주변기기들을 결정하기 위한 수단; 및
    결정된 주변기기들에 대한 드라이버들을 로딩하기 위한 수단을 포함하고,
    로딩된 드라이버들은, 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관되는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치.
  28. 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 컴퓨터 프로그램 물건으로서,
    컴퓨터 판독가능 매체를 포함하고,
    상기 컴퓨터 판독가능 매체는, 컴퓨터로 하여금,
    사용자 장비와 연관될 수 있는 주변기기들을 결정하게 하고; 그리고
    결정된 주변기기들에 대한 드라이버들을 로딩하게 하기 위한 코드를 포함하고,
    로딩된 드라이버들은, 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관되는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 컴퓨터 프로그램 물건.
  29. 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치로서,
    메모리;
    트랜시버; 및
    프로세서를 포함하고,
    상기 프로세서는,
    사용자 장비와 연관될 수 있는 주변기기들을 결정하고; 그리고
    결정된 주변기기들에 대한 드라이버들을 로딩하도록 구성되고,
    로딩된 드라이버들은, 고급 운영 시스템(HLOS)이 제공되는 사용자 장비의 타입과 무관하게 HLOS 아키텍처와 연관되는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치.
  30. 제 29 항에 있어서,
    드라이버들을 로딩하도록 구성되는 상기 프로세서는 주변기기들의 알려진 세트를 위한 드라이버들의 세트를 복수의 주변기기 카테고리들 각각으로 로딩하도록 구성되는 프로세서를 포함하는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치.
  31. 제 30 항에 있어서,
    상기 드라이버들의 세트가 모노리식 릴리즈에 로딩되는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치.
  32. 제 29 항에 있어서,
    드라이버들을 로딩하도록 구성되는 상기 프로세서는,
    주변기기를 위한 드라이버에 대한 플레이스홀더를 복수의 주변기기 카테고리들 각각으로 로딩하고;
    상기 사용자 장비와 연관된 주변기기들을 결정하고;
    결정된 주변기기들과 연관된 드라이버들을 식별하고; 그리고
    식별된 드라이버들을 플레이스홀더들로 동적으로 로딩하도록
    구성되는 프로세서를 포함하는, 사용자 장비를 위한 주변기기 디바이스 드라이버들을 로딩하기 위한 장치.
KR1020157026502A 2013-02-28 2014-02-14 고급 운영 시스템(hlos) 부팅 전에 스마트폰에 연결된 주변기기 디바이스들을 위한 디바이스 드라이버들을 프리페칭하기 위한 방법 및 장치 KR101632288B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/780,353 US9250922B2 (en) 2013-02-28 2013-02-28 Method and apparatus for prefetching peripheral device drivers for smart phones and other connected devices prior to HLOS boot
US13/780,353 2013-02-28
PCT/US2014/016530 WO2014133795A1 (en) 2013-02-28 2014-02-14 Method and apparatus for prefetching device drivers for peripheral devices connected to a smartphone prior to high-level operating system (hlos) boot

Publications (2)

Publication Number Publication Date
KR20150123879A true KR20150123879A (ko) 2015-11-04
KR101632288B1 KR101632288B1 (ko) 2016-06-21

Family

ID=50272704

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157026502A KR101632288B1 (ko) 2013-02-28 2014-02-14 고급 운영 시스템(hlos) 부팅 전에 스마트폰에 연결된 주변기기 디바이스들을 위한 디바이스 드라이버들을 프리페칭하기 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US9250922B2 (ko)
EP (1) EP2962189A1 (ko)
JP (1) JP5996812B2 (ko)
KR (1) KR101632288B1 (ko)
CN (1) CN105144090A (ko)
TW (1) TWI521433B (ko)
WO (1) WO2014133795A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459735B2 (en) * 2015-11-04 2019-10-29 Texas Instruments Incorporated Scalable boot options for a processor/controller
CN106790739B (zh) * 2016-11-22 2020-05-08 合一智能科技(深圳)有限公司 一种dns服务的预加载启动方法、预加载系统及管理系统
CN109426625A (zh) * 2017-08-30 2019-03-05 深圳市道通科技股份有限公司 一种多驱动兼容的控制装置和实现方法
US20240095002A1 (en) 2022-09-21 2024-03-21 Ncr Corporation Updated driver installation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149713A1 (en) * 2003-12-29 2005-07-07 Rothman Michael A. Pushing capabilities into firmware by an operating system
US20060116208A1 (en) * 2004-12-01 2006-06-01 Igt Universal operating system to hardware platform interface for gaming machines
EP1736971A1 (en) * 2004-04-15 2006-12-27 Matsushita Electric Industries Co., Ltd. Information processing device
US20120302346A1 (en) * 2011-05-27 2012-11-29 Ami Entertainment Network, Inc. Method of selecting a device profile for provisioning an amusement device

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173417B1 (en) 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
TW515937B (en) 2001-08-08 2003-01-01 Inventec Corp Method and system for booting personal digital assistant (PDA) system directly by hardware elements on portable personal computer (PC)
US7849301B2 (en) 2001-12-12 2010-12-07 Intel Corporation Providing a user input interface prior to initiation of an operating system
US7103914B2 (en) 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
TW588284B (en) 2002-11-12 2004-05-21 Mitac Technology Corp Computer real-time power-on system and method
US7698552B2 (en) 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
JP4826077B2 (ja) 2004-08-31 2011-11-30 株式会社日立製作所 ブートディスク管理方法
US7600105B2 (en) 2004-09-22 2009-10-06 Cyberlink Corp. Systems, methods, and apparatus for providing efficient startup to computers with peripheral devices
US7461247B2 (en) 2005-06-03 2008-12-02 Qnx Software Systems Gmbh & Co. Kg Method for transitioning control of a peripheral device from a first device driver to a second device driver during operating system initialization
US7409537B2 (en) 2005-10-06 2008-08-05 Microsoft Corporation Fast booting an operating system from an off state
US7721080B2 (en) 2006-06-30 2010-05-18 Intel Corporation Management of option ROM
US20080209198A1 (en) 2007-02-26 2008-08-28 Majni Timothy W Boot Acceleration For Computer Systems
FR2938946B1 (fr) 2008-11-26 2012-08-10 Valeo Equip Electr Moteur Procede de configuration d'un systeme comportant une machine electrique tournante dans un vehicule automobile
US8516236B2 (en) * 2009-09-30 2013-08-20 Imation Corp. Portable desktop device and method of host computer system hardware recognition and configuration
CN101699415B (zh) * 2009-10-29 2011-05-11 威盛电子股份有限公司 核心逻辑电路、计算机系统及外围设备初始化方法
TW201118733A (en) 2009-11-30 2011-06-01 Inventec Corp An automatically executing method for operation system kernel
CN102023882A (zh) 2010-12-22 2011-04-20 福建天晴在线互动科技有限公司 计算机自动识别手机并安装手机驱动程序的系统及方法
US20120278796A1 (en) 2011-04-26 2012-11-01 Microsoft Corporation Automatically installing device drivers
EP2625598A4 (en) * 2011-11-28 2014-01-15 Lg Electronics Inc METHOD, RECORDING MEDIUM, AND ELECTRONIC DEVICE FOR REDUCING THE BOOT TIME
CN102446120A (zh) 2011-12-23 2012-05-09 广东步步高电子工业有限公司 一种不同手机显示屏驱动程序自动切换的方法以及对应的显示系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149713A1 (en) * 2003-12-29 2005-07-07 Rothman Michael A. Pushing capabilities into firmware by an operating system
EP1736971A1 (en) * 2004-04-15 2006-12-27 Matsushita Electric Industries Co., Ltd. Information processing device
US20060116208A1 (en) * 2004-12-01 2006-06-01 Igt Universal operating system to hardware platform interface for gaming machines
US20120302346A1 (en) * 2011-05-27 2012-11-29 Ami Entertainment Network, Inc. Method of selecting a device profile for provisioning an amusement device

Also Published As

Publication number Publication date
KR101632288B1 (ko) 2016-06-21
JP2016508653A (ja) 2016-03-22
EP2962189A1 (en) 2016-01-06
TWI521433B (zh) 2016-02-11
TW201447756A (zh) 2014-12-16
CN105144090A (zh) 2015-12-09
US20140244990A1 (en) 2014-08-28
JP5996812B2 (ja) 2016-09-21
US9250922B2 (en) 2016-02-02
WO2014133795A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
US9439025B1 (en) Multi-step mobile device initiation with intermediate partial reset
EP2966566B1 (en) Driver program loading method and embedded device
US9042877B1 (en) System and method for retrofitting a branding framework into a mobile communication device
JP6288654B2 (ja) モバイル通信デバイスのためのアイデンティティ情報を受信する方法、モバイル通信デバイスのためのアイデンティティ情報を提供する方法およびモバイル通信デバイス
WO2017185253A1 (zh) 基于补丁升级的文件处理方法、装置、终端以及存储介质
US20150026330A1 (en) Generating unique identifiers for mobile devices
US9071627B2 (en) Method and system for cloning applications from an electronic source device to an electronic target device
WO2021135584A1 (zh) 前端项目框架的构建方法、装置、计算机设备及存储介质
US8978027B2 (en) Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor
EP3001309A1 (en) Application migration method, device and system for mobile terminal
US11310654B1 (en) Electronic subscriber identity module (eSIM) profile delivery and activation system and methods
KR20130054325A (ko) 테이블 이름에 스키마 버전 인코딩
KR101632288B1 (ko) 고급 운영 시스템(hlos) 부팅 전에 스마트폰에 연결된 주변기기 디바이스들을 위한 디바이스 드라이버들을 프리페칭하기 위한 방법 및 장치
CN111316230B (zh) 一种补丁包生成方法及设备
US20130039241A1 (en) Method and apparatus for power management of uicc
CN104461621A (zh) 一种更新属性信息的方法及装置
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
US11733974B2 (en) Method and system for automatically creating instances of containerized servers
US9730038B2 (en) Techniques to manage platform migrations
WO2016206437A1 (zh) Rom包生成方法及装置
CN111008037A (zh) 一种代码迁移方法、设备以及存储介质
US20160117164A1 (en) System and method for customizing mobile technology platforms respective of personas
US9680914B1 (en) Seamless service migration updates
KR101924175B1 (ko) 스마트폰 어플리케이션팩 생성 방법
CN117235017A (zh) 数据升级方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant