本發(fā)明涉及電子設(shè)備連接與安全驗(yàn)證、通信、通信監(jiān)測(cè)方法及裝置。
背景技術(shù):
微型電子計(jì)算機(jī)、移動(dòng)終端等電子設(shè)備在日常生活中發(fā)揮著越來(lái)越重要的作用,越來(lái)越多的人擁有兩個(gè)或兩個(gè)以上的電子設(shè)備。在不同的電子設(shè)備之間進(jìn)行高速通信,具有非常重要的意義。然而,電子設(shè)備之間實(shí)現(xiàn)高速通信,會(huì)受到電子設(shè)備操作系統(tǒng)的制約。例如,目前移動(dòng)終端使用的操作系統(tǒng)主要有兩種,美國(guó)蘋果公司開(kāi)發(fā)的IOS系統(tǒng)和開(kāi)源的安卓(Android)系統(tǒng)。IOS系統(tǒng)電子設(shè)備和Android系統(tǒng)電子設(shè)備之間進(jìn)行高速通信,就是一個(gè)比較困難的問(wèn)題。
從技術(shù)角度分析,IOS系統(tǒng)電子設(shè)備和Android系統(tǒng)電子設(shè)備之間的通信可以采取無(wú)線和有線兩種方式。無(wú)線通信可以通過(guò)wifi芯片、藍(lán)牙芯片等硬件基于對(duì)應(yīng)的協(xié)議實(shí)現(xiàn),但其缺點(diǎn)非常明顯。通過(guò)wifi芯片通信,理論上帶寬足夠,但連接不穩(wěn)定,容易受到無(wú)線信號(hào)的干擾,同時(shí)wifi芯片長(zhǎng)時(shí)間工作功耗很大。通過(guò)藍(lán)牙芯片通信,功耗較低(已有低功耗藍(lán)牙技術(shù)),但數(shù)據(jù)帶寬非常小,不適合大數(shù)據(jù)量傳輸?shù)那樾巍?/p>
有線通信,IOS系統(tǒng)電子設(shè)備往往采用Lighting接口(蘋果公司自行開(kāi)發(fā)的具備充電、高速數(shù)據(jù)傳輸、音頻輸出、控制臺(tái)等功能的接口),而Android系統(tǒng)電子設(shè)備最常采用的是USB接口,同時(shí)IOS系統(tǒng)又是一個(gè)封閉的系統(tǒng)。如何在IOS系統(tǒng)電子設(shè)備和Android系統(tǒng)電子設(shè)備之間實(shí)現(xiàn)高速、高帶寬通信,尚未見(jiàn)報(bào)道。
在說(shuō)明書(shū)“背景技術(shù)”部分公開(kāi)的內(nèi)容,有助于本領(lǐng)域技術(shù)人員理解本發(fā)明的技術(shù)方案,但不應(yīng)據(jù)此認(rèn)為這些內(nèi)容一定屬于現(xiàn)有技術(shù)或公知常識(shí)。
技術(shù)實(shí)現(xiàn)要素:
為了克服“背景技術(shù)”部分所反映的缺陷,在不同操作系統(tǒng)電子設(shè)備之間實(shí)現(xiàn)高速、高帶寬通信,本發(fā)明提供電子設(shè)備連接與安全驗(yàn)證、通信、通信監(jiān)測(cè)方法及裝置。
電子設(shè)備連接與安全驗(yàn)證方法,包括:
第一操作系統(tǒng)檢測(cè)第一操作系統(tǒng)電子設(shè)備的接口是否有電子設(shè)備接入。
若第一操作系統(tǒng)電子設(shè)備的接口有電子設(shè)備接入,第一操作系統(tǒng)判別接入的設(shè)備的類型。若接入的設(shè)備為第二操作系統(tǒng)電子設(shè)備,則向第二操作系統(tǒng)發(fā)起數(shù)據(jù)信任請(qǐng)求。
第一操作系統(tǒng)本地存儲(chǔ)第二操作系統(tǒng)信任后的公鑰和私鑰。
第一操作系統(tǒng)與第二操作系統(tǒng)進(jìn)行握手協(xié)議驗(yàn)證,取得第二操作系統(tǒng)的相關(guān)信息。
進(jìn)一步的,第一操作系統(tǒng)為Android系統(tǒng),第二操作系統(tǒng)為IOS系統(tǒng)。第一操作系統(tǒng)電子設(shè)備的接口為USB接口。
電子設(shè)備通信方法,包括:
第一操作系統(tǒng)電子設(shè)備和第二操作系統(tǒng)電子設(shè)備按照電子設(shè)備連接與安全驗(yàn)證方法進(jìn)行連接及安全驗(yàn)證。
第一操作系統(tǒng)的應(yīng)用(所述的應(yīng)用指操作系統(tǒng)中的軟件或程序)使用本地socket作為代理,將自身使用的端口作為傳輸協(xié)議的一部分,封包并進(jìn)行數(shù)據(jù)封裝,通過(guò)第一操作系統(tǒng)電子設(shè)備的接口傳輸數(shù)據(jù)。
進(jìn)一步的,封包為使用TCP方式封包,數(shù)據(jù)封裝為使用USB協(xié)議進(jìn)行數(shù)據(jù)封裝。
電子設(shè)備通信監(jiān)測(cè)方法,包括:
第一操作系統(tǒng)循環(huán)監(jiān)測(cè)相關(guān)的文件描述符,根據(jù)文件描述符的屬性決定處理的事件。處理的事件包括:電子設(shè)備接入或電子設(shè)備的刪除,第一操作系統(tǒng)的應(yīng)用訪問(wèn)第二操作系統(tǒng),本地socket(當(dāng)兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)交換時(shí),這個(gè)連接的一端稱為一個(gè)socket)管理。
進(jìn)一步的,不同屬性的文件描述符使用不同的鏈表管理。
電子設(shè)備通信監(jiān)測(cè)裝置,包括高速通信模塊,高速通信模塊用于循環(huán)監(jiān)測(cè)相關(guān)的文件描述符,根據(jù)文件描述符的屬性決定處理的事件。處理的事件包括:電子設(shè)備接入或電子設(shè)備的刪除,第一操作系統(tǒng)的應(yīng)用訪問(wèn)第二操作系統(tǒng),本地socket管理。
進(jìn)一步的,高速通信模塊用于實(shí)施電子設(shè)備連接與安全驗(yàn)證方法。
由于電子設(shè)備通信方法和電子設(shè)備通信監(jiān)測(cè)方法,與之前所述的電子設(shè)備連接與安全驗(yàn)證方法具有關(guān)聯(lián)性,為了避免不必要的重復(fù),電子設(shè)備通信方法和電子設(shè)備通信監(jiān)測(cè)方法中的一些描述進(jìn)行了省略。本領(lǐng)域技術(shù)人員通過(guò)對(duì)照,能夠?qū)﹄娮釉O(shè)備通信方法和電子設(shè)備通信監(jiān)測(cè)方法有清晰、完整的認(rèn)識(shí)。同理,電子設(shè)備通信監(jiān)測(cè)裝置和電子設(shè)備通信監(jiān)測(cè)方法具有明確的關(guān)聯(lián)性,電子設(shè)備通信監(jiān)測(cè)裝置中的一些描述也進(jìn)行了省略。
本發(fā)明技術(shù)方案中,“包括”、“用于”等詞語(yǔ)應(yīng)按照開(kāi)放式表達(dá)方式理解。本領(lǐng)域技術(shù)人員通過(guò)閱讀本說(shuō)明書(shū)并結(jié)合現(xiàn)有技術(shù)或公知常識(shí)能夠獲知的內(nèi)容,本說(shuō)明書(shū)中不再贅述。
本發(fā)明提供的電子設(shè)備連接與安全驗(yàn)證、通信、通信監(jiān)測(cè)方法及裝置,能夠在安裝不同操作系統(tǒng)的電子設(shè)備之間建立高速、高帶寬通信,特別適用于在IOS系統(tǒng)電子設(shè)備和Android系統(tǒng)電子設(shè)備之間建立高速、高帶寬的通信。
附圖說(shuō)明
圖1為具體實(shí)施方式中Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備連接方式的示意圖。
圖2為具體實(shí)施方式中電子設(shè)備連接與安全驗(yàn)證方法的流程圖。
圖3為具體實(shí)施方式中電子設(shè)備通信方法的流程圖。
具體實(shí)施方式
下面對(duì)本發(fā)明的實(shí)施方式進(jìn)行進(jìn)一步的具體說(shuō)明。但應(yīng)注意,本發(fā)明的范圍并不局限于所描述的具體技術(shù)方案。任何對(duì)所描述的具體技術(shù)方案中的技術(shù)要素進(jìn)行相同或等同替換獲得的技術(shù)方案或本領(lǐng)域技術(shù)人員在所描述的具體技術(shù)方案的基礎(chǔ)上不經(jīng)過(guò)創(chuàng)造性勞動(dòng)就可以獲得的技術(shù)方案,都應(yīng)當(dāng)視為落入本發(fā)明的保護(hù)范圍。
本發(fā)明技術(shù)方案用于在第一操作系統(tǒng)電子設(shè)備和第二操作系統(tǒng)電子設(shè)備之間建立高速、高帶寬的通信。第一操作系統(tǒng)選取為Android系統(tǒng),相應(yīng)的第一操作系統(tǒng)電子設(shè)備(由第一操作系統(tǒng)管理的電子設(shè)備)為Android系統(tǒng)電子設(shè)備(例如安裝了Android系統(tǒng)的手機(jī))。第二操作系統(tǒng)選取為IOS系統(tǒng),相應(yīng)的第二操作系統(tǒng)電子設(shè)備為IOS系統(tǒng)電子設(shè)備(例如Iphone手機(jī))。
實(shí)現(xiàn)本發(fā)明技術(shù)方案,首先需要將Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備通過(guò)某種方式連接起來(lái)??梢圆捎萌鐖D1所示的有線連接方式,其中Android系統(tǒng)電子設(shè)備的接口為USB接口,IOS系統(tǒng)電子設(shè)備的接口為L(zhǎng)ighting接口,USB接口和Lighting接口之間通過(guò)OTG(On-The-Go)連線進(jìn)行連接。這樣Android系統(tǒng)電子設(shè)備可以作為USB協(xié)議中定義的主設(shè)備(Host端),而IOS系統(tǒng)電子設(shè)備作為USB協(xié)議中定義的從設(shè)備(Device端)。
如圖1所示的連接方式,只是把Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備在硬件上簡(jiǎn)單連接起來(lái)。要實(shí)現(xiàn)Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備真正連接,兩種操作系統(tǒng)能夠相互取得對(duì)方的信息(由于Android系統(tǒng)是開(kāi)源系統(tǒng),而IOS系統(tǒng)是封閉系統(tǒng),主要難點(diǎn)是Android系統(tǒng)獲取IOS系統(tǒng)的信息),還需要實(shí)施“電子設(shè)備連接與安全驗(yàn)證方法”。
為了實(shí)施“電子設(shè)備連接與安全驗(yàn)證方法”及與之有關(guān)的“電子設(shè)備通信方法”和“電子設(shè)備通信監(jiān)測(cè)方法”,可以在Android系統(tǒng)內(nèi)設(shè)置一個(gè)專用的程序,用于實(shí)施或管理以上所述的方法(該專用程序可以視為Android系統(tǒng)中的一個(gè)服務(wù))。本發(fā)明技術(shù)方案中將這個(gè)專用的程序稱為高速通信模塊,對(duì)應(yīng)的服務(wù)稱為高速通信服務(wù)。高速通信模塊在Android系統(tǒng)啟動(dòng)的時(shí)候即被加載運(yùn)行。
電子設(shè)備連接與安全驗(yàn)證方法的流程如圖2所示,包括:
S201:Android系統(tǒng)檢測(cè)Android系統(tǒng)電子設(shè)備的接口是否有電子設(shè)備接入。
具體的,本步驟中可以采用的檢測(cè)方法包括兩種。檢測(cè)方法一:利用Android系統(tǒng)提供的第三方開(kāi)源庫(kù)Libusb中提供的方法,通過(guò)被動(dòng)接收通知或者主動(dòng)使用poll函數(shù)(poll函數(shù)用于監(jiān)測(cè)多個(gè)等待事件。若事件未發(fā)生,則進(jìn)程睡眠;若監(jiān)測(cè)的任何一個(gè)事件發(fā)生,則將喚醒睡眠的進(jìn)程,并判斷是什么等待事件發(fā)生,執(zhí)行相應(yīng)的操作。)的方式檢測(cè)Android系統(tǒng)電子設(shè)備的USB接口是否接入了其他的電子設(shè)備。檢測(cè)方法二:使用由hall(霍爾傳感器,用于控制線路通斷的器件)硬件設(shè)備的驅(qū)動(dòng)層提供的方法,以回調(diào)的方式,異步獲取USB接口接入其他電子設(shè)備的消息。
以上兩種檢測(cè)方法,可以只采用其中一種,也可以將兩者結(jié)合使用。
S202:若Android系統(tǒng)電子設(shè)備的接口有電子設(shè)備接入,Android系統(tǒng)判別接入的設(shè)備的類型。若接入的設(shè)備為IOS系統(tǒng)電子設(shè)備,則向IOS系統(tǒng)發(fā)起數(shù)據(jù)信任請(qǐng)求。
具體的,本步驟中,Android系統(tǒng)發(fā)現(xiàn)Android系統(tǒng)電子設(shè)備的USB接口有其他的電子設(shè)備接入,則通過(guò)讀取該設(shè)備的VID(vendor ID,廠商標(biāo)識(shí))和PID(product ID,產(chǎn)品標(biāo)識(shí))來(lái)判斷接入的是否為IOS系統(tǒng)電子設(shè)備。如果接入的是IOS系統(tǒng)電子設(shè)備,則高速通信模塊或者高速通信模塊可以管理的其他專用模塊向IOS系統(tǒng)發(fā)起數(shù)據(jù)信任請(qǐng)求。IOS系統(tǒng)可以響應(yīng)Android系統(tǒng)電子設(shè)備發(fā)起的數(shù)據(jù)信任請(qǐng)求,常見(jiàn)的響應(yīng)方法是IOS系統(tǒng)在其操作界面上彈出對(duì)話框,由用戶選擇“信任”選項(xiàng),進(jìn)行信任授權(quán)。
S203:Android系統(tǒng)本地存儲(chǔ)IOS系統(tǒng)信任后的公鑰和私鑰。
具體的,本步驟中,Android系統(tǒng)電子設(shè)備已經(jīng)被IOS系統(tǒng)信任,Android系統(tǒng)通過(guò)握手協(xié)議和加密算法,把IOS系統(tǒng)信任后的公鑰和私鑰轉(zhuǎn)換成XML格式,存儲(chǔ)在本地(Android系統(tǒng)電子設(shè)備存儲(chǔ)器上的指定位置)。需要存儲(chǔ)的公鑰和私鑰,一般包括四個(gè)重要的Key——DeviceCertificate、HostCertificate、RootCertificate、HostPrivateKey,前三個(gè)Key可以視為公鑰,最后一個(gè)Key可以視為私鑰。
Android系統(tǒng)電子設(shè)備存儲(chǔ)了IOS系統(tǒng)信任后的公鑰和私鑰后,如果后續(xù)同一臺(tái)IOS系統(tǒng)電子設(shè)備接入,可以直接將已經(jīng)存儲(chǔ)在本地的秘鑰轉(zhuǎn)化成plist(IOS系統(tǒng)的數(shù)據(jù)存儲(chǔ)格式)傳給IOS系統(tǒng)完成信任授權(quán)。
S204:Android系統(tǒng)與IOS系統(tǒng)進(jìn)行握手協(xié)議驗(yàn)證,取得IOS系統(tǒng)的相關(guān)信息。
具體的,本步驟中,Android系統(tǒng)電子設(shè)備已經(jīng)獲得了IOS系統(tǒng)的信任授權(quán),則高速通信模塊封裝過(guò)的函數(shù)可以與IOS系統(tǒng)的Lockdownd服務(wù)進(jìn)行握手協(xié)議驗(yàn)證,通過(guò)訪問(wèn)IOS系統(tǒng)的Domain的方式取得IOS系統(tǒng)的相關(guān)信息。
在電子設(shè)備連接與安全驗(yàn)證方法的基礎(chǔ)上,可以實(shí)施“電子設(shè)備通信方法”。電子設(shè)備通信方法的流程如圖3所示,包括:
S301:Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備按照電子設(shè)備連接與安全驗(yàn)證方法進(jìn)行連接及安全驗(yàn)證。
Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備連接并進(jìn)行安全驗(yàn)證后,才能實(shí)施數(shù)據(jù)通信。
S302:Android系統(tǒng)的應(yīng)用使用本地socket作為代理,將自身使用的端口作為傳輸協(xié)議的一部分,封包并進(jìn)行數(shù)據(jù)封裝,通過(guò)Android系統(tǒng)電子設(shè)備的接口傳輸數(shù)據(jù)。
具體的,本步驟中,Android系統(tǒng)中的應(yīng)用使用一個(gè)本地socket作為代理,連接到高速通信服務(wù),同時(shí)把該應(yīng)用自身使用的端口作為傳輸協(xié)議的一部分,使用TCP(Transmission Control Protocol,傳輸控制協(xié)議)的方式進(jìn)行封包,利用Android系統(tǒng)提供的第三方開(kāi)源庫(kù)Libusb的接口并使用USB協(xié)議進(jìn)行數(shù)據(jù)封裝,最終通過(guò)Android系統(tǒng)電子設(shè)備的USB接口傳輸數(shù)據(jù)。通常TCP傳輸都是通過(guò)網(wǎng)卡、WIFI芯片等網(wǎng)絡(luò)設(shè)備,而在本方法中,使用USB協(xié)議封裝TCP數(shù)據(jù)包,從而達(dá)到了高速高帶寬的效果。
由于Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備的連接和通信是一個(gè)動(dòng)態(tài)的過(guò)程,高速通信模塊需要實(shí)施“電子設(shè)備通信監(jiān)測(cè)方法”進(jìn)行管理,相應(yīng)的,高速通信模塊可以視為電子設(shè)備通信監(jiān)測(cè)裝置。
電子設(shè)備通信監(jiān)測(cè)方法包括:
Android系統(tǒng)的高速通信模塊循環(huán)監(jiān)測(cè)相關(guān)的文件描述符,根據(jù)文件描述符的屬性決定處理的事件。文件描述符的屬性,指文件描述符為USB、應(yīng)用或者其他。不同屬性的文件描述符使用不同的鏈表管理。高速通信模塊監(jiān)測(cè)文件描述符的屬性,就可以知道需要處理哪些事件。需要處理的事件主要包括:
1)電子設(shè)備接入或電子設(shè)備的刪除。在“電子設(shè)備連接與安全驗(yàn)證方法”的步驟S201中,檢測(cè)到有電子設(shè)備接入U(xiǎn)SB接口后,會(huì)調(diào)用相應(yīng)的USB添加刪除函數(shù)操作USB鏈表。同理,如果電子設(shè)備從USB接口拔出,也會(huì)調(diào)用相應(yīng)的USB添加刪除函數(shù)操作USB鏈表。
2)Android系統(tǒng)的應(yīng)用訪問(wèn)IOS系統(tǒng)。Android系統(tǒng)的任何應(yīng)用需要訪問(wèn)IOS系統(tǒng),可以通過(guò)封裝的接口(本地socket封裝后的接口)連接到高速通信服務(wù)上來(lái),調(diào)用相應(yīng)的應(yīng)用添加刪除函數(shù)去操作應(yīng)用鏈表。同時(shí),高速通信模塊可以處理應(yīng)用對(duì)IOS系統(tǒng)的訪問(wèn)請(qǐng)求。
3)本地socket管理。主要是管理本地socket的狀態(tài)。
高速通信模塊可以采用多線程的方式。例如,“電子設(shè)備連接與安全驗(yàn)證方法”可以全部由高速通信模塊一個(gè)程序?qū)嵤@時(shí)步驟S201可以設(shè)置為子線程,兩種不同的檢測(cè)方法可以分別設(shè)置兩個(gè)子線程,其中任何一個(gè)子線程發(fā)現(xiàn)USB接口有電子設(shè)備接入,都可以調(diào)用相應(yīng)的USB添加刪除函數(shù)操作USB鏈表。高速通信模塊的主線程循環(huán)監(jiān)測(cè)文件描述符時(shí)發(fā)現(xiàn)USB鏈表的變化,則主線程執(zhí)行步驟S202—S204。
本發(fā)明技術(shù)方案可以通過(guò)多線程的方式去發(fā)現(xiàn)Android系統(tǒng)電子設(shè)備的USB接口是否接入了其他電子設(shè)備,利用封裝TCP數(shù)據(jù)包和端口轉(zhuǎn)發(fā)的方式最終通過(guò)USB接口建立和IOS系統(tǒng)電子設(shè)備的高速數(shù)據(jù)通道。這樣的設(shè)計(jì)可以保證如果發(fā)生硬件問(wèn)題(例如USB接口接入的電子設(shè)備頻繁斷開(kāi)連接等),能較高效的進(jìn)行設(shè)備的識(shí)別和刪除。主線程采用主動(dòng)循環(huán)監(jiān)測(cè)的方式,能使Android系統(tǒng)的應(yīng)用在進(jìn)行數(shù)據(jù)傳輸時(shí),及時(shí)觸發(fā)libusb的讀寫數(shù)據(jù)傳輸。
本領(lǐng)域技術(shù)人員在以上所描述的具體技術(shù)方案的基礎(chǔ)上,完全可以構(gòu)造出其他方案。例如,第一操作系統(tǒng)和第二操作系統(tǒng),可以采用Android系統(tǒng)和IOS系統(tǒng)之外的其他操作系統(tǒng),電子設(shè)備連接與安全驗(yàn)證、通信、通信監(jiān)測(cè)方法進(jìn)行相應(yīng)的改變。在此不一一列舉。