TWI506555B - 傳播更新的驅動程式給行動計算裝置的方法及其傳播系統 - Google Patents

傳播更新的驅動程式給行動計算裝置的方法及其傳播系統 Download PDF

Info

Publication number
TWI506555B
TWI506555B TW102128610A TW102128610A TWI506555B TW I506555 B TWI506555 B TW I506555B TW 102128610 A TW102128610 A TW 102128610A TW 102128610 A TW102128610 A TW 102128610A TW I506555 B TWI506555 B TW I506555B
Authority
TW
Taiwan
Prior art keywords
driver
operating system
mobile computing
updated
computing device
Prior art date
Application number
TW102128610A
Other languages
English (en)
Other versions
TW201421363A (zh
Inventor
Nicholas Haemel
Cathy Donovan
Narayanan Swaminathan
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW201421363A publication Critical patent/TW201421363A/zh
Application granted granted Critical
Publication of TWI506555B publication Critical patent/TWI506555B/zh

Links

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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

傳播更新的驅動程式給行動計算裝置的方法及其傳播系統 【相關申請案交叉參照】
本申請案主張由Nicholas Haemel等人於2012年11月8日提出,標題為「METHOD FOR DETERMINING DRIVER LIBRARY COMPATIBILITY AND DELIVERING UPDATES」的第61/724,088號美國臨時申請案之權益,與本申請案共同受讓且在此併入當成參考。
本申請案一般係關於行動計算裝置的驅動程式,尤其係關於與行動平台相容的驅動程式。
除了提供語音通訊以外,行動電話通常執行許多功能。許多行動電話,例如智慧型手機,以及其他行動計算裝置也提供額外服務,包括文字通訊、連接網路、觀看視訊、拍攝視訊、拍照、玩遊戲等等之能力。該等許多計算裝置使用許多種應用程式,執行這些不同功能。
該等應用程式在該等不同行動計算裝置的作業系統內運 作。一作業系統管理並協調該行動計算裝置的資源以及活動,並且提供使用者與硬體之間一介面。使用者啟動應用程式時,則呼叫該行動計算裝置的許多裝置或模組之驅動程式,並且用於在該應用程式與該等裝置之間傳達命令與資料。
在一態樣中,揭示一種決定不同版本的裝置驅動程式與一行動計算裝置作業系統之間相容性之方法。在一具體實施例內,該方法包括:(1)運用一行動計算裝置的當前作業系統建立一測試環境;(2)將一已更新的驅動程式套用至該測試環境;以及(3)決定該已更新驅動程式與運用該測試環境之該當前作業系統的系統相容性,其中該決定係根據該已更新驅動程式與該當前作業系統的直接和隱含相容性。
在另一態樣中,提供一種將裝置驅動程式傳播至行動計算裝置的方法。在一個具體實施例內,該傳播方法包括:(1)接收具有一作業系統的一行動計算裝置之特定裝置資料;(2)根據該特定裝置資料決定該行動計算裝置的該作業系統;以及(3)決定一已更新的驅動程式是否可用於與該作業系統相容的該行動計算裝置。
尚且在另一態樣中,提供一種將已更新驅動程式提供給行動計算裝置的傳播系統。在一個具體實施例內,該傳播系統包括:(1)一介面,配置成與行動計算裝置通訊;以及(2)一驅動程式匹配器,其配置成決定不同版本的驅動程式與一計算裝置作業系統之間的系統相容性,包括根據一已更新驅動程式與一當前作業系統的直接相容性與隱含相容性,決定該已 更新驅動程式與一行動計算裝置的該當前作業系統之相容性。
仍舊在另一態樣中,提供一種電腦程式產品,其具有儲存在一非暫態電腦可讀取媒體內的一系列操作指令,其在開始執行一方法時指引一行動計算裝置的一處理器之該操作。在一個具體實施例內,該電腦程式產品的方法包括:(1)傳送一查詢以詢問是否至少一個與一當前作業系統相容的已更新驅動程式可用,其中該查詢包括指出該行動計算裝置的該當前作業系統之特定裝置資料;(2)相容時,將已更新驅動程式儲存在該行動計算裝置的一記憶體內;以及(3)運用一驅動程式來執行該行動計算裝置的一應用程式,其中該運用包括決定該等已更新驅動程式之一者是否用於該應用程式,以及是否可從該記憶體中選擇該等已更新驅動程式之該一者。
100‧‧‧傳播系統
110‧‧‧介面
120‧‧‧驅動程式匹配器
130‧‧‧驅動程式映射
132‧‧‧私密映射區段
134‧‧‧公開映射區段
140‧‧‧驅動程式遞送器
160‧‧‧網路
170‧‧‧行動計算裝置
175‧‧‧行動計算裝置
176‧‧‧驅動程式選擇器
177‧‧‧驅動程式庫
此時結合附圖進行以下說明,其中:圖1例示根據本發明原理建構用於已更新驅動程式的一傳播系統之具體實施例系統圖;圖2例示根據本發明原理來執行,決定不同版本的驅動程式與一行動計算裝置作業系統之間相容性的方法之具體實施例流程圖;以及圖3例示根據本發明原理來執行,將驅動程式傳播至行動計算裝置的方法之具體實施例流程圖。
一般而言,行動計算裝置的使用者要享受應用程式的最新功能,例如:使用者想要在開發之後,立即獲得最好的圖片、最快的反應、 最新的功能等等。如此,使用者將應用程式最新版本下載到行動計算裝置來體驗最新功能。
為了充分了解該已更新的功能,通常也需要一或多個已更新版本的驅動程式。不過,行動計算裝置的驅動程式專用於一特定作業系統並且無法單獨更新,因為一行動計算裝置的裝置影像建構成單一步驟,具有該驅動程式與該裝置的其他組件之複雜依存度,例如內部程式編輯介面、隱含的組件相依性以及其他架構限制,之間複雜相互依存關係。如此,與個人電腦的設計不同,行動計算裝置的作業系統都在單一行動平台影像內。因此,更新行動作業系統的裝置驅動程式通常需要該行動計算裝置整個行動平台之完整裝置空中(OTA,over-the-air)更新。因為驅動程式錯誤或效能問題通常在裝置出貨之後才發現,所以裝置OTA昂貴、耗時並且令人沮喪。
因此,本發明提供用於傳播驅動程式更新至行動計算裝置的系統及方法。此處所使用的驅動程式為一行動計算裝置的模組驅動程式或裝置驅動程式。該等系統及方法偵測裝置驅動程式與作業系統建構(或版本)的相容性,並且傳遞相容的驅動程式更新版本。與一作業系統相關的一相容驅動程式為在該作業系統內運作、正確支援內部與外部API以及如預期在不產生錯誤下,回應測試與查詢。為了將驅動程式相容性映射至作業系統建構上,使用目前版本的作業系統並且疊加已知模組或裝置的更新驅動程式建構來建立一測試環境。在使用該測試環境的新作業系統版本上也可測試特定驅動程式模組建構。在一個具體實施例內,該測試環境包括一回歸系統,其供應一組測試給該作業系統以及已更新的驅動程式。該回歸測 試可使用一測試器具。來自該進行中回歸測試的資料建立與作業系統建構(已更新或目前的作業系統建構)相容的驅動程式模組之映射。在一個具體實施例內,該回歸系統提供具有裝置驅動程式的作業系統之完整功能測試。
本說明書內揭示的一傳播系統可使用該回歸映射搭配特定裝置資料,決定已知模組的一已更新與相容驅動程式是否可用。在一個具體實施例內,該特定裝置資料包括當前作業系統版本、模組驅動程式版本、核心版本、硬體版本、API版本等等,這些足夠辨識一行動計算裝置的特定作業平台。一旦識別該當前作業系統建構,便決定已更新、相容驅動程式的可用性。然後可利用例如提供讓該行動計算裝置擷取的連結,將該更新的驅動程式提供給該行動計算裝置。在某些具體實施例內,該更新的驅動程式可由該傳播系統傳送給該行動計算裝置。該傳播系統可提供更新驅動程式的存取路徑,以回應來自一或多個行動計算裝置的查詢。在某些具體實施例內,行動計算裝置配置成定期產生一查詢,搜尋更新的驅動程式版本。在其他具體實施例內,更新的驅動程式廣播至行動計算裝置。例如:針對可用的更新驅動程式識別行動計算裝置之一清單。該等行動計算裝置可根據裝置分析來識別。從該已識別裝置產生一清單,然後將該可用的更新驅動程式推送至該已識別之行動計算裝置。本發明也考量到驅動程式相容性的用戶端。在一個具體實施例內,當一驅動程式必須載入至一行動計算裝置上時,例如該OpenGL驅動程式,則載入相容性修正驅動程式(Shim Driver)取代之。該載入的相容性修正驅動程式檢查最新後端實施驅動程式(例如透過連結載入或用OTA運送),然後使用內部派遣表載入程式庫。該表可儲存在該行動計算裝置的一驅動程式庫內。該行動計算裝置的驅動程 式選擇器可運用該相容性修正驅動程式來選擇用於執行的驅動程式。
此時請參閱圖式,圖1例示一傳播系統100的一具體實施例之系統圖。傳播系統100配置成根據本發明原理,提供更新的驅動程式給行動計算裝置。如此,傳播系統100配置成偵測已更新驅動程式與行動計算裝置作業系統的相容性,也提供將相容驅動程式傳遞至行動計算裝置的機制。在一具體實施例內,傳播系統100實施於一伺服器上。如此,該伺服器包括該必要處理器、記憶體、邏輯、電路以及通訊介面,以執行傳播系統100的功能。傳播系統100包括一介面110、一驅動程式匹配器120、一驅動程式映射130以及一驅動程式遞送器140。圖1也例示一網路160和行動計算裝置170,來例示傳播系統100的傳播操作。選擇行動計算裝置170之一者當成代表,並且標示為行動計算裝置175。
介面110為一通訊介面,配置成與行動計算裝置通訊。介面133包括該必要電路,其透過例如網路160通訊網路來傳送與接收資料。如此,介面110配置成透過通訊協定,例如像是乙太網路、Wi-Fi或網際網路協定這類網路協定來通訊。介面110配置成透過無線或有線連接通訊。
介面110配置成接收行動計算裝置170產生的查詢,其查詢與該現有作業系統相容的已更新驅動程式之可用性。該等查詢可為符合傳統協定標準的格式。一查詢可包括指出該行動計算裝置的該作業系統傳送該查詢之特定裝置資料。
介面110也可提供與行動計算裝置170相容的已更新驅動程式。在一具體實施例內,介面110可從驅動程式遞送器140傳遞一連結至要求的行動計算裝置170,以用於下載相容的已更新驅動程式。在其他具體 實施例內,介面110可傳遞相容的已更新驅動程式至行動計算裝置170。如此,傳播系統100可儲存該已更新驅動程式。在這些具體實施例內,驅動程式映射器130可用來儲存該等已更新版本。在其他具體實施例內,可使用記憶體的其他區段或傳播系統100的另一個記憶體來儲存該等已更新驅動程式。介面110也可配置成接收來自程式開發公司或廠商已更新之驅動程式及作業系統的上載。裝置驅動程式映射器130可使用該等已更新驅動程式及作業系統,決定驅動程式與作業系統建構之間的相容性。裝置驅動程式映射器130也可用於直接將所接收的上載儲存在傳播系統100的記憶體內。
驅動程式匹配器120配置成決定不同版本的裝置驅動程式與行動計算裝置作業系統間之系統相容性。驅動程式匹配器120可建立一用於決定相容性的測試環境。此時可運用一測試器具以及回歸測試。在一具體實施例內,驅動程式匹配器120配置成根據一已更新驅動程式與一當前作業系統之直接和隱含相容性,決定該已更新驅動程式與一行動計算裝置中該當前作業系統的相容性。直接相容性係根據該已更新驅動程式的二進位檢查,隱含相容性係根據該相依性檢查以及與該已更新驅動程式相關聯的規則;該檢查便是決定假設是否已經改變。
在一個具體實施例內,驅動程式匹配器120配置成利用偵測與該已更新驅動程式與該當前作業系統相關聯的一應用程式編輯介面(API,application programming interface)或多個API之入口點變化,來決定直接相容性。API用於定義一應用程式或系統模組向一行動計算裝置的該等程式庫、作業系統或其他組件要求服務之方式或程序。利用試驗該等API 的入口點,驅動程式匹配器120可決定該已更新驅動程式是否包括已經變更成支援匯出的功能。若偵測不到每一該等API的匯出變更(空集合),則驅動程式匹配器120確認直接相容性。若偵測到API入口點變化,則驅動程式匹配器120決定該已更新驅動程式並未與該當前作業系統直接相容。在一具體實施例內,除非先確認直接相容性,否則驅動程式匹配器120不決定隱含相容性。如此,直接不相容性的決定導致系統不相容性的決定。在這種具體實施例內,若已經決定直接相容性,則驅動程式匹配器120決定隱含相容性;若並未決定直接相容性,則驅動程式匹配器120指出不相容。
驅動程式匹配器120也配置成決定一已更新驅動程式與一當前作業系統建構的隱含相容性。針對該直接相容性,裝置驅動程式映射器130利用試驗該二進位程式或程式庫決定API變更是否存在,好以程式方式試驗該已更新驅動程式。針對隱含相容性,裝置驅動程式映射器130試驗該已更新驅動程式與該當前作業系統的隱含依存性。該隱含相容性檢查,偵測即使該等API並未改變,規則或假設是否已經改變。在一個具體實施例內,驅動程式匹配器120透過該當前作業系統與該已更新驅動程式的回歸測試,決定隱含相容性。針對該回歸測試,套用一組測試來決定與該已更新驅動程式相關聯的該等隱含規則是否相容於該當前作業系統。該組測試可包括品質、效能以及功率測試。在某些具體實施例內,使用原來該OEM用來決定驅動程式相容於該作業系統之相同測試組。若結果與該原始裝置驅動程式的結果相同,則驅動程式匹配器120決定該已更新驅動程式具有隱含相容性。
驅動程式映射130包括認為相容於特定作業系統的裝置驅 動程式之清單。驅動程式匹配器120根據驅動程式匹配器120決定的系統相容性,填寫驅動程式映射130。驅動程式映射130可實施為一清單,包括目前行動計算裝置上使用的許多作業系統版本,以及與之相容的該等已更新驅動程式。在一個具體實施例內,驅動程式映射130實施為一可搜尋資料庫,其儲存於伺服器記憶體上或伺服器相關聯記憶體上。
在一具體實施例內,驅動程式匹配器120每天操作多次。在某些具體實施例內,驅動程式匹配器120在每次裝置驅動程式或作業系統變更時運行。如此,驅動程式匹配器120會一天運行數百次。這些結果都儲存在驅動程式映射130內。
在某些具體實施例內,驅動程式映射130分成兩個區段,第一區段為一私密映射區段132,其配置成儲存來自驅動程式匹配器120的所有資料,第二區段為一公開映射區段134,其配置成包括私密映射區段132上所儲存該內容的子集,例如裝置驅動程式。在一個具體實施例內,審查該私密映射區段132的內容,並且選擇一部分放入該公開映射區段。該審查程序由決定要更新的裝置或裝置等級開始,然後執行該選取裝置或裝置等級的品質分析。根據此分析,更新公開映射區段134上的該等裝置驅動程式。在某些具體實施例內,該審查程序為手動執行。
驅動程式遞送器140配置成決定驅動程式映射130是否包括與一當前作業系統相容的一已更新驅動程式,以及一行動計算裝置的硬體配置。在一具體實施例內,驅動程式遞送器140另配置成提供指令給該行動計算裝置,以便在可用時獲得該已更新驅動程式。驅動程式遞送器140可傳輸一連結至行動計算裝置170,用來下載該相容已更新驅動程式。在某 些具體實施例內,驅動程式遞送器140可將該相容的已更新驅動程式傳輸至合適的行動計算裝置。
驅動程式遞送器140配置成根據來自一行動計算裝置的查詢,以搜尋該驅動程式映射130。該查詢包括指出該行動計算裝置的該當前作業系統以及硬體配置之特定裝置資料。驅動程式遞送器140使用該當前作業系統來搜尋驅動程式映射130,以決定是否有與該特定當前作業系統相容的任何已更新驅動程式。若有,驅動程式遞送器140提供該行動計算裝置存取該已更新驅動程式的權力。
通訊網路160為一傳統網路,傳播系統100用其來傳輸與接收資料,包括上載、下載、查詢等等。如圖1內所示,行動計算裝置170可透過通訊網路160與傳播系統100通訊。介面110和行動計算裝置170包括運用適當網路協定,在通訊網路160通訊的該必要電路。
行動計算裝置170為專為可攜帶式行動架構所建構的計算裝置,行動計算裝置170包括行動硬體與軟體,配置成執行許多功能,包括與傳播系統100通訊。行動計算裝置170可為智慧型手機、平板電腦、掀蓋式電腦、遊戲裝置等等。每一行動計算裝置170都包括至少一個處理器與記憶體。精通此技術人士將了解,每一行動計算裝置170都包括其他組件,這些通常都含在像是顯示器、使用者介面、電源供應器、通訊介面等等裝置內。
除了傳統組件以外,行動計算裝置175包括一驅動程式選擇器176以及一驅動程式庫177。在一個具體實施例內,驅動程式選擇器176在行動計算裝置175的一處理器上實施,並且驅動程式庫177在行動計算 裝置175的記憶體之資料庫上實施。驅動程式選擇器176配置成決定用於一特定應用程式的該或該等驅動程式。在一具體實施例內,驅動程式選擇器176可運用將應用程式與驅動程式配對的清單。該清單可為白名單,包括例如將使用行動計算裝置175上安裝的原始驅動程式之應用程式。若不在清單上,則驅動程式選擇器176可選擇或自動預設至與未列應用程式相容的一已更新驅動程式。該清單可由該OEM載入,確定特定應用程式總是使用原始驅動程式。
在其他具體實施例內,該清單可包括只搭配已更新驅動程式的應用程式。如此,裝置選擇器176可利用選擇哪個應用程式搭配哪個驅動程式,將應用程式的操作最佳化。傳播系統100可產生該清單(例如來自驅動程式映射130的清單),並且將該清單傳送至行動計算裝置175。行動計算裝置175可使用接收的清單以及提供的已更新驅動程式來執行應用程式。
在一具體實施例內,驅動程式選擇器176將相容性修正驅動程式用於每一應用程式。該相容性修正驅動程式或相容性修正層偵測應用程式啟動,並且利用查詢該清單獲得該應用程式的驅動程式、決定一已更新驅動程式是否適用,並且解析驅動程式庫177的目錄來擷取要用於執行的選取驅動程式。該選取的驅動程式可為一已更新驅動程式。在一具體實施例內,驅動程式選擇器176讀取指出要搜尋的目錄之文字檔案。該相容性修正驅動程式可在OTA期間載到行動計算裝置175上。在另一具體實施例內,該相容性修正驅動程式可儲存在一資料庫內,其可由該行動計算裝置175存取。
驅動程式庫177配置成儲存該等原始驅動程式以及該等已更新驅動程式。驅動程式選擇器176可決定哪個驅動程式要用於一應用程式,並且從驅動程式庫177內選擇該選取的驅動程式。然後執行一應用程式時,該相容性修正驅動程式可喚起該選取的驅動程式。在其他具體實施例內,行動計算裝置175的另一個組件配置成利用調整動態連結,或在作業系統內移動檔案,來交換驅動程式。
圖2例示根據本發明原理來執行,決定不同版本的驅動程式與一行動計算裝置作業系統之間相容性的方法200之具體實施例流程圖。在一個具體實施例內,方法200可由一傳播系統執行,如本說明書內所述。例如:傳播系統100或至少其一部分可包括該必要電路、操作指令或這些的組合,來執行方法200的步驟。一部分來說,方法200稱為單一驅動程式。精通此技術人士將了解,方法200可用於決定多個已更新驅動程式與當前作業系統的相容性,並且決定多個目前驅動程式與已更新作業系統的相容性。方法200從步驟205開始。
在步驟210內,運用一行動計算裝置的當前作業系統建立一測試環境。該測試環境以一當前的作業系統建構為準。在某些具體實施例內,該測試環境為根據當前作業系統建構的測試器具。該測試器具可運用測試來執行並測試該當前作業系統與一已更新驅動程式的完整功能特性集合。
在步驟215內,建立該當前作業系統的一基準線。在測試環境內利用運行與該當前作業系統配對的該原始裝置驅動程式,建立該當前作業系統的基準線。在步驟220內,將一已更新的驅動程式供應至該測試 環境。該已更新的驅動程式可疊加在該測試環境內該當前作業系統上。
在步驟230內,決定該已更新驅動程式與該當前作業系統的相容性。運用該測試環境決定該相容性,並且該相容性係根據該已更新驅動程式與該當前作業系統的直接與隱含相容性。在一具體實施例內,根據偵測與該已更新驅動程式和該當前作業系統相關聯的應用程式編輯介面之入口點變化,來決定系統相容性。在某些具體實施例內,除非先確認直接相容性,否則不會決定隱含相容性。在某些具體實施例內,決定隱含相容性包括該當前作業系統與該已更新驅動程式的回歸測試。
在步驟240內,建立運用一行動計算裝置的已更新作業系統之另一個測試環境。除了此測試環境係根據一已更新作業系統取代一當前作業系統以外,其可具有與步驟210的測試環境相同之格式。
在步驟250內運用此其他測試環境決定一目前驅動程式與該已更新作業系統的相容性。使用該已更新的作業系統可測試多個驅動程式,來決定與該已更新作業系統的相容性。
在步驟260內,產生與行動計算裝置的目前與已更新作業系統相容之驅動程式清單。該清單可儲存為傳播系統的一驅動程式映射。該清單也可傳送至行動計算裝置,在執行應用程式時使用。方法200結束於步驟270。
圖3例示根據本發明原理來執行,將裝置驅動程式傳播至行動計算裝置的方法300之具體實施例流程圖。本說明書內揭示的傳播系統可執行方法300或至少其一部分。如此,一傳播系統,例如傳播系統100或至少其一部分可包括該必要電路、操作指令或這些的組合,來執行方法 300的步驟。方法300從步驟305開始。
在步驟310內,接收一行動計算裝置的特定裝置資料。該特定裝置資料指出該行動計算裝置的該當前作業系統。從該行動計算裝置所產生並傳輸的一查詢中可接收該裝置資料。
在步驟320內決定該行動計算裝置的該當前作業系統。該決定可根據該接收的特定裝置資料。
在步驟330內,做出一決定,其為已更新的驅動程式是否可用於與已決定的該當前作業系統相容之該行動計算裝置。在一具體實施例內,決定已更新驅動程式的可用性與相容性包括檢查一驅動程式映射,其中列出特定作業系統的可相容驅動程式。該清單包括可用於該已決定作業系統的驅動程式相容版本之範圍。在一具體實施例內,利用決定該已更新驅動程式與該當前作業系統的直接與隱含相容性,產生該清單或該清單的一部分。
若一相容的已更新驅動程式可用,則在步驟340內提供對該已更新驅動程式的存取路徑給該行動計算裝置。利用傳輸位置資訊可提供存取路徑,例如一連結,用於下載該已更新驅動程式或利用傳輸該已更新驅動程式。在一具體實施例內,若該行動計算裝置已經包括該已更新驅動程式,則不提供至一已更新驅動程式的存取路徑。這可利用在該傳播系統與該行動計算裝置之間通訊查詢來決定。方法300結束於步驟350。
上述設備、系統或方法的一部分可具體實施於或由許多處理器或電腦執行,其中該等電腦程式編輯或儲存軟體指令的可執行程式順序,以執行一或多個該等方法步驟。這種程式的軟體指令可呈現演算法, 並且以非暫態數位資料儲存媒體上機器可執行的形式編碼,其中媒體例如磁碟或光碟、隨機存取記憶體(RAM,random-access memory)、硬碟、快閃記憶體及/或唯讀記憶體(ROM,read-only memory),可讓許多種數位資料處理器或電腦執行上述方法之一或多者的一、多個或所有步驟,或本說明書所述設備或系統的功能。
所揭示具體實施例的一部分係關於電腦儲存產品,其具有非暫態電腦可讀取媒體,其上具有程式碼用於執行許多電腦實施操作,具體實施本說明書所揭示設備、系統的一部分或執行該等步驟。本說明書中用的非暫態代表用於暫態、傳播信號以外的所有電腦可讀取媒體。非暫態電腦可讀取媒體的範例包括但不受限於:像是硬碟、軟碟和磁帶的磁性媒體;像是CD-ROM的光學媒體;像是可光讀光碟的磁性光學媒體以及特別配置成儲存並執行程式碼的硬體裝置,像是ROM、RAM裝置。程式碼的範例包括像是由編譯器產生的機器碼,以及內含可由電腦使用解譯器執行的高階程式碼之檔案。
精通本發明相關技術人士將了解,可對所描述的具體實施例進行其他或進一步追加、刪減、替代以及修改。
100‧‧‧傳播系統
110‧‧‧介面
120‧‧‧驅動程式匹配器
130‧‧‧驅動程式映射
132‧‧‧私密映射區段
134‧‧‧公開映射區段
140‧‧‧驅動程式遞送器
160‧‧‧網路
170‧‧‧行動計算裝置
175‧‧‧行動計算裝置
176‧‧‧驅動程式選擇器
177‧‧‧驅動程式庫

Claims (10)

  1. 一種決定不同版本的裝置驅動程式與一行動計算裝置作業系統之間相容性之方法,該方法包括:運用一行動計算裝置的當前作業系統建立一測試環境;將一已更新的驅動程式套用至該測試環境;以及決定該已更新驅動程式與運用該測試環境之當前作業系統的系統相容性,其中該決定係根據該已更新驅動程式與該當前作業系統的直接和隱含相容性。
  2. 如申請專利範圍第1項之方法,其中決定該直接相容性包括偵測與該已更新驅動程式和該當前作業系統相關聯的一應用程式編輯介面之入口點變化。
  3. 如申請專利範圍第1項之方法,其中除非先確認直接相容性,否則不會決定隱含相容性。
  4. 如申請專利範圍第1項之方法,其中決定該隱含相容性包括該當前作業系統與該已更新驅動程式的功能測試。
  5. 如申請專利範圍第1項之方法,另包括運用行動計算裝置的一已更新操作系統建立另一個測試環境,並且運用該另一個測試環境,決定一當前裝置驅動程式與該已更新作業系統的相容性。
  6. 如申請專利範圍第5項之方法,另包括決定多個已更新驅動程式與該 當前作業系統的系統相容性,並且決定多個目前驅動程式與該已更新作業系統的相容性。
  7. 如申請專利範圍第1項之方法,另包括傳送位置資訊至該行動計算裝置,用於在與該當前作業系統相容時存取該已更新驅動程式。
  8. 一種將裝置驅動程式傳播至行動計算裝置的方法,該方法包括:接收具有一作業系統的一行動計算裝置之特定裝置資料;根據該特定裝置資料決定該行動計算裝置的該作業系統;以及決定一已更新的驅動程式是否可用於與該作業系統相容的該行動計算裝置;其中該決定該可用性係基於該裝置驅動程式與該作業系統的直接和隱含相容性兩者。
  9. 一種提供已更新驅動程式給行動計算裝置的傳播系統,該系統包括:一介面,配置成與行動計算裝置通訊;以及一驅動程式匹配器,其配置成決定不同版本的驅動程式與一計算裝置作業系統之間的系統相容性,包括根據一已更新驅動程式與一當前作業系統的直接相容性與隱含相容性,決定該已更新驅動程式與一行動計算裝置的該當前作業系統之相容性。
  10. 如申請專利範圍第9項之傳播系統,另包括一驅動程式映射,其具有相容於特定作業系統的驅動程式清單,其中該驅動程式匹配器根據該驅動程式匹配器所決定的該系統相容性來填寫該驅動程式映射。
TW102128610A 2012-11-08 2013-08-09 傳播更新的驅動程式給行動計算裝置的方法及其傳播系統 TWI506555B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261724088P 2012-11-08 2012-11-08
US13/895,166 US8978027B2 (en) 2012-11-08 2013-05-15 Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor

Publications (2)

Publication Number Publication Date
TW201421363A TW201421363A (zh) 2014-06-01
TWI506555B true TWI506555B (zh) 2015-11-01

Family

ID=50623436

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102128610A TWI506555B (zh) 2012-11-08 2013-08-09 傳播更新的驅動程式給行動計算裝置的方法及其傳播系統

Country Status (3)

Country Link
US (3) US20140129686A1 (zh)
CN (1) CN103809996B (zh)
TW (1) TWI506555B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3940533A1 (en) 2009-09-08 2022-01-19 Abbott Diabetes Care, Inc. Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device
US20140129686A1 (en) 2012-11-08 2014-05-08 Nvidia Corporation Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices
US9542172B2 (en) * 2013-02-05 2017-01-10 Apple Inc. Automatic updating of applications
US10019569B2 (en) * 2014-06-27 2018-07-10 Qualcomm Incorporated Dynamic patching for diversity-based software security
CN104168160B (zh) * 2014-08-18 2017-11-24 浪潮(北京)电子信息产业有限公司 服务器兼容性测试方法和系统
US9893938B1 (en) * 2014-10-31 2018-02-13 Sorenson Ip Holdings, Llc Apparatuses and methods for distributed configuration management of communication devices
JP2016177554A (ja) * 2015-03-20 2016-10-06 セイコーエプソン株式会社 電子部品搬送装置および電子部品検査装置
US10333778B2 (en) * 2015-03-25 2019-06-25 Airwatch, Llc Multiuser device staging
US10862747B2 (en) 2015-03-25 2020-12-08 Airwatch Llc Single user device staging
US9876875B2 (en) * 2015-07-24 2018-01-23 Nvidia Corporation System, method and device for providing crowd-sourced, cloud-based custom tuning for applications
KR102360178B1 (ko) 2015-08-25 2022-02-08 삼성전자주식회사 애플리케이션 리스트를 제공하는 시스템 및 그 방법
CN107479482B (zh) * 2017-08-21 2023-02-28 上海博泰悦臻网络技术服务有限公司 一种应用于汽车电子的操作系统和实现方法
US11232372B2 (en) * 2018-11-09 2022-01-25 Cisco Technology, Inc. Merging and optimizing heterogeneous rulesets for device classification
WO2020159548A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Upgrades based on analytics from multiple sources
KR20210004288A (ko) 2019-07-04 2021-01-13 삼성전자주식회사 전자장치 및 그 제어방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200531469A (en) * 2004-01-13 2005-09-16 Qualcomm Inc Automated over the air plug-in device recognition and software driver download
US20050210459A1 (en) * 2004-03-12 2005-09-22 Henderson Gary S Controlling installation update behaviors on a client computer
TW200620005A (en) * 2004-12-07 2006-06-16 Quanta Comp Inc Test system and method
TW201208275A (en) * 2010-06-21 2012-02-16 Litepoint Corp System and method of providing driver software to test controller to facilitate testing by wireless transceiver tester of a device under test

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356569B1 (en) * 1999-04-26 2008-04-08 Mainstream Scientific, Llc Apparatus and method for tracing the distribution of diversely sourced internet content
US7065769B1 (en) * 2000-06-30 2006-06-20 Intel Corporation Method for automatically installing and updating drivers
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
US20050234727A1 (en) * 2001-07-03 2005-10-20 Leo Chiu Method and apparatus for adapting a voice extensible markup language-enabled voice system for natural speech recognition and system response
US20030037325A1 (en) * 2001-08-17 2003-02-20 Hargrove David C. System and methods for automatically installing a correct software version from media containing multiple software versions
US7392527B2 (en) * 2003-12-10 2008-06-24 Microsoft Corporation Driver-specific context for kernel-mode shimming
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US8549166B2 (en) * 2004-03-01 2013-10-01 Qualcomm Incorporated Execution of unverified programs in a wireless, device operating environment
EP1603036A1 (en) * 2004-06-02 2005-12-07 Research In Motion Limited Auto-configuration of hardware on a portable computing device
US20060274869A1 (en) * 2005-06-07 2006-12-07 Yahoo! Inc. Dynamically generating content based on capabilities of a mobile device
US7657871B2 (en) * 2005-07-22 2010-02-02 Sbc Knowledge Ventures, L.P. Method and system of managing configuration profiles of a plurality of deployed network elements
US9329897B2 (en) * 2005-11-10 2016-05-03 The Mathworks, Inc. Use of dynamic profiles for creating and using a distributed computing environment
US7689205B2 (en) * 2005-12-23 2010-03-30 Morgan Stanley Systems and methods for configuration of mobile computing devices
US7779427B2 (en) * 2006-01-18 2010-08-17 Microsoft Corporation Automated application configuration using device-provided data
US20070180445A1 (en) * 2006-01-30 2007-08-02 Microsoft Corporation Download Service For Device Drivers
US20070239722A1 (en) * 2006-03-30 2007-10-11 Phillips Mark E Distributed user-profile data structure
US8584115B2 (en) * 2006-10-05 2013-11-12 International Business Machines Corporation Automated operating system device driver updating system
JP2008203930A (ja) * 2007-02-16 2008-09-04 Canon Inc サーバ装置、ドライバ処理方法、記憶媒体、プログラム
WO2009021208A1 (en) * 2007-08-08 2009-02-12 Innopath Software, Inc. Workflow-based user interface system for mobile devices management
US8281298B2 (en) * 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
US9313108B2 (en) * 2007-12-14 2016-04-12 Ericsson Ab Flexible and scalable method and apparatus for dynamic subscriber services configuration and management
JP4998314B2 (ja) * 2008-02-19 2012-08-15 コニカミノルタホールディングス株式会社 通信制御方法および通信制御プログラム
US20090260004A1 (en) * 2008-04-10 2009-10-15 Palm, Inc. Computer program updates for mobile computing device
US8332825B2 (en) * 2008-06-26 2012-12-11 Microsoft Corporation Dynamically monitoring application behavior
US20100011380A1 (en) * 2008-07-10 2010-01-14 Reimage System and method for replacing device drivers
US20120017208A1 (en) * 2010-07-14 2012-01-19 Mark Lussier System and method for updating device drivers
US9450825B2 (en) * 2010-10-19 2016-09-20 Hewlett Packard Enterprise Development Lp Managing settings of computing devices
US8478306B2 (en) * 2010-11-10 2013-07-02 Google Inc. Self-aware profile switching on a mobile computing device
US8813167B2 (en) * 2010-12-30 2014-08-19 Apple Inc. Dynamic device configuration using predicates
CN102055625A (zh) * 2010-12-31 2011-05-11 深圳市普联技术有限公司 一种网络驱动测试方法
US9134996B2 (en) 2011-04-28 2015-09-15 F-Secure Corporation Updating anti-virus software
US20120302346A1 (en) * 2011-05-27 2012-11-29 Ami Entertainment Network, Inc. Method of selecting a device profile for provisioning an amusement device
US9389845B2 (en) * 2011-10-24 2016-07-12 Infosys Limited System and method for dynamically generating a user personalized downloadable executable file
US20130173885A1 (en) * 2011-12-30 2013-07-04 Advanced Micro Devices, Inc. Processor and Methods of Adjusting a Branch Misprediction Recovery Mode
US8930917B2 (en) * 2012-05-22 2015-01-06 Adobe Systems Incorporated Method and apparatus for mobile application development and testing that avoids repackaging and reinstallation
US20140129686A1 (en) 2012-11-08 2014-05-08 Nvidia Corporation Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200531469A (en) * 2004-01-13 2005-09-16 Qualcomm Inc Automated over the air plug-in device recognition and software driver download
US20050210459A1 (en) * 2004-03-12 2005-09-22 Henderson Gary S Controlling installation update behaviors on a client computer
TW200620005A (en) * 2004-12-07 2006-06-16 Quanta Comp Inc Test system and method
TW201208275A (en) * 2010-06-21 2012-02-16 Litepoint Corp System and method of providing driver software to test controller to facilitate testing by wireless transceiver tester of a device under test

Also Published As

Publication number Publication date
CN103809996A (zh) 2014-05-21
US20140130064A1 (en) 2014-05-08
CN103809996B (zh) 2017-09-26
US8978027B2 (en) 2015-03-10
US9569197B2 (en) 2017-02-14
TW201421363A (zh) 2014-06-01
US20150154036A1 (en) 2015-06-04
US20140129686A1 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
TWI506555B (zh) 傳播更新的驅動程式給行動計算裝置的方法及其傳播系統
KR101654957B1 (ko) 모바일 애플리케이션의 디바이스 의존적인 온 디맨드 컴파일링 및 설치 기법
JP6972191B2 (ja) モバイルアプリケーションアクティビティ検出器
US8543998B2 (en) System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US20190196805A1 (en) Controlled rollout of updates for applications installed on client devices
US9071627B2 (en) Method and system for cloning applications from an electronic source device to an electronic target device
JP7297769B2 (ja) プリキャシュのためのクライアント・マシン間でのシェーダの配布
US9928059B1 (en) Automated deployment of a multi-version application in a network-based computing environment
US20230297369A1 (en) Software pipeline configuration
US20160087855A1 (en) Remote management of application settings
US20110191764A1 (en) Systems, methods, and apparatuses for facilitating distribution of firmware updates
CN104991793A (zh) 一种用于应用程序分包的方法、装置以及系统
EP3398063B1 (en) Controlled deployment of application feature
US20220261333A1 (en) Continuous development and delivery system
CN104685471B (zh) 软件平台到设备生态系统的自动配设
JP2013517578A (ja) アプリケーションの稼働方法、装置及びシステム
US8793535B2 (en) Optimizing system usage when running quality tests in a virtual machine environment
US11726800B2 (en) Remote component loader
WO2020014926A1 (zh) 一种补丁包生成方法及设备
US20120204162A1 (en) Methods and apparatuses for facilitating execution of applications requiring runtime compilation
US12019538B2 (en) Software application build testing
US20140304683A1 (en) Method, server and computer-readable recording media for managing metastore
CN103354927A (zh) 用于管理处理设备中的内容的方法和装置
KR101632288B1 (ko) 고급 운영 시스템(hlos) 부팅 전에 스마트폰에 연결된 주변기기 디바이스들을 위한 디바이스 드라이버들을 프리페칭하기 위한 방법 및 장치
CN110321132B (zh) 一种代码发布方法和装置