一種攝像頭調用權限管理方法和設備的制作方法
【專利摘要】本發(fā)明提供一種攝像頭調用權限管理方法和設備,所述方法包括:在系統(tǒng)初始化過程中創(chuàng)建攝像頭調用相關的系統(tǒng)屬性并賦值;當存在應用程序調用所述攝像頭時,讀取所述攝像頭調用相關的系統(tǒng)屬性,對所述應用程序進行權限驗證并返回驗證結果;令所述應用程序根據所述驗證結果對所述攝像頭進行操作。本發(fā)明能夠從系統(tǒng)層面降低應用程序對系統(tǒng)平臺的安全威脅,并能夠對系統(tǒng)的攝像頭資源進行控制與管理,從而保證了攝像頭調用過程數據的安全性,并有效防止隱私泄露。
【專利說明】一種攝像頭調用權限管理方法和設備
【技術領域】
[0001]本發(fā)明涉及信息【技術領域】,尤其涉及一種攝像頭調用權限管理方法和設備。
【背景技術】
[0002]目前,智能手機成為用戶各種信息的載體,儲存著大量的重要信息,因此也成為了惡意攻擊的首選目標。智能手機安全威脅的很大部分來自于個人隱私的泄密及各種惡意扣費軟件,這些惡意軟件利用以往權限機制的漏洞濫用權限對手機進行攻擊,更有甚者還會在后臺調用攝像頭以窺探隱私。
[0003]現(xiàn)有技術中,解決Android攝像頭調用權限管理問題的方法有:
[0004]1.使用現(xiàn)有Android操作系統(tǒng)中自帶的Permiss1n機制,在AndroidManifest.xml文件中指定CAMERA (攝像頭)權限"android, permiss1n.CAMERA", —旦被用戶確認安裝后,即可控制調用攝像頭。
[0005]2.使用 Android 提供的設備管理(DevicePolicyManager 類)。Android 系統(tǒng)從2.2版本開始,提供了一套設備管理應用程序編程接口(Applicat1n ProgrammingInterface, API)來進行Android手機設備的管理工作。其中包含禁用啟用攝像頭(從Android系統(tǒng)4.0版本開始提供)等一系列的設備管理策略。
[0006]3.對Android權限框架代碼做出修改,實現(xiàn)一種針對不同應用程序的策略實施框架,這樣手機用戶可以有選擇性地授予權限或撤銷權限。
[0007]但是,以上各種方法雖然從不同的方面對應用程序攝像頭調用權限進行了研究,但均只局限于應用程序的權限判定,所能應對的安全威脅范圍比較窄。另外,由于對權限的判定只有全部同意或者是全部拒絕可以選擇,因此只通過判定權限的方式來選擇是否安裝應用程序,并無法對攝像頭的調用進行管理。這種傳統(tǒng)的權限策略模式存在很大的弊端,而且這種粗放式的權限管理策略在很多場景中已經無法滿足我們的需求。
【發(fā)明內容】
[0008]本發(fā)明提供一種攝像頭調用權限管理方法和設備,以解決現(xiàn)有技術中無法靈活有效地管理攝像頭調用的技術問題。
[0009]本發(fā)明首先一種攝像頭調用權限管理方法,包括:
[0010]在系統(tǒng)初始化過程中創(chuàng)建攝像頭調用相關的系統(tǒng)屬性并賦值;
[0011]當存在應用程序調用所述攝像頭時,讀取所述攝像頭調用相關的系統(tǒng)屬性,對所述應用程序進行權限驗證并返回驗證結果;
[0012]令所述應用程序根據所述驗證結果對所述攝像頭進行操作。
[0013]進一步地,所述方法還包括:
[0014]對所述攝像頭調用相關的系統(tǒng)屬性進行修改。
[0015]進一步地,所述令所述應用程序根據所述驗證結果對所述攝像頭進行操作包括:
[0016]當所述驗證結果為真時,令所述應用程序對所述攝像頭進行調用;
[0017]當所述驗證結果不為真時,不使所述應用程序對所述攝像頭進行調用。
[0018]進一步地,所述方法還包括:
[0019]設置所述攝像頭的管理策略,利用所述管理策略對所述應用程序進行權限驗證。
[0020]進一步地,所述管理策略包括:
[0021]所述攝像頭的使用時間段、所述攝像頭的使用地點、所述應用程序的黑白名單、網絡遠程管理方案中的一個或多個。
[0022]另一方面,本發(fā)明還提供一種攝像頭調用權限管理設備,所述設備包括:
[0023]系統(tǒng)屬性配置模塊,用于在系統(tǒng)初始化過程中創(chuàng)建攝像頭調用相關的系統(tǒng)屬性并賦值;
[0024]權限驗證模塊,用于在應用程序調用所述攝像頭時,讀取所述攝像頭調用相關的系統(tǒng)屬性,對所述應用程序進行權限驗證并返回驗證結果;
[0025]操作模塊,用于令所述應用程序根據所述驗證結果對所述攝像頭進行操作。
[0026]進一步地,所述設備還包括:
[0027]修改模塊,與所述系統(tǒng)屬性配置模塊相連,用于對所述攝像頭調用相關的系統(tǒng)屬性進行修改。
[0028]進一步地,所述操作模塊還用于:
[0029]在所述驗證結果為真時,令所述應用程序對所述攝像頭進行調用;
[0030]在所述驗證結果不為真時,不使所述應用程序對所述攝像頭進行調用。
[0031]進一步地,所述設備還包括:
[0032]策略設置模塊,與所述權限驗證模塊相連,用于設置所述攝像頭的管理策略,使得所述權限驗證模塊利用所述管理策略對所述應用程序進行權限驗證。
[0033]進一步地,所述策略設置模塊用于設置的所述攝像頭的管理策略包括:
[0034]所述攝像頭的使用時間段、所述攝像頭的使用地點、所述應用程序的黑白名單、網絡遠程管理方案中的一個或多個。
[0035]本發(fā)明能夠從系統(tǒng)框架層和Linux層設計出發(fā),利用控制端對Android攝像頭的調用過程控制與授權,對Android系統(tǒng)原有的攝像頭安全性進行提升,在Android攝像頭的調用過程增加了新的防護并能進行對使用攝像頭的調用權限進行控制,從系統(tǒng)層面降低應用程序對系統(tǒng)平臺的安全威脅,并能夠對系統(tǒng)的攝像頭資源進行控制與管理,從而保證了攝像頭調用過程數據的安全性,并有效防止隱私泄露。
【專利附圖】
【附圖說明】
[0036]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0037]圖1是Android系統(tǒng)的攝像頭系統(tǒng)結構示意圖;
[0038]圖2是本發(fā)明實施例一種攝像頭調用權限管理方法的步驟示意圖;
[0039]圖3是本發(fā)明實施例一種攝像頭調用權限管理方法的權限管理機制運行圖;
[0040]圖4是本發(fā)明實施例一種攝像頭調用權限管理方法的權限列表;
[0041]圖5是本發(fā)明實施例一種攝像頭調用權限管理方法的審核機制代碼;
[0042]圖6是本發(fā)明實施例一種攝像頭調用權限管理設備的結構示意圖。
【具體實施方式】
[0043]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0044]Android硬件系統(tǒng)調用模式一般如下:由應用層的程序調用框架層提供的api獲取硬件的實例,再通過JNI對C框架調用Linux內核驅動。其中,照相機系統(tǒng)下層的硬件通常是攝像頭(Camera)設備,用于向系統(tǒng)輸入視頻數據。照相機系統(tǒng)對上層的接口提供了取景器,視頻錄制,拍攝相片三個功能,還有各種控制類的接口。照相機系統(tǒng)提供了 Java層的接口和本地接口 Java中的攝像頭類。
[0045]Android中Camera系統(tǒng)包括了 Camera驅動程序層,Camera硬件抽象層,Aud1Service, Camera本地庫,Camera的Java框架類和Java應用層對Camera系統(tǒng)的調用,參見圖1。
[0046]首先,Camera系統(tǒng)屬于一個單例模式調用。程序通過Android framework提供的android, hardware.Camera類來訪問相機服務,可以用于Java應用程序層構建照相機和掃描類的程序。Camera JNI為上層的Java類提供了本地支持,包含了反向調用Java傳遞信息和數據功能,并且連接框架層與下層的Camera服務。Camera服務是一個單獨的部分,是典型的本地系統(tǒng)服務之一。
[0047]Android系統(tǒng)的攝像頭設計模式使用單例模式,以保證系統(tǒng)中一個類只有一個實例而且該實例易于外界訪問,從而方便對實例個數的控制并節(jié)約系統(tǒng)資源。若需在系統(tǒng)框架層的Camera類中增加一個新型的攝像頭調用權限審核機制,進行審核與授權,那么,由于在系統(tǒng)框架層中只有為上層提供開發(fā)的各種接口,則無法脫離應用程序創(chuàng)建一直可供使用的靜態(tài)全局變量(即只能產生在一個程序內的全局變量,并無法被其它的程序所使用)。很明顯這是無法達到存儲數據的需要的,而且從安全性的角度來講全局靜態(tài)變量就是不安全的。因此可以選擇使用Android的系統(tǒng)屬性來保存數據。當在系統(tǒng)初始化的時候進行系統(tǒng)屬性的賦值,同時系統(tǒng)屬性的修改與讀取對應用層是不可見的,這樣也具有較強的安全性。同時,還需要一個管理程序來對攝像頭調用過程進行管理,出于機制的安全性的保護,還必須考慮程序到需要對系統(tǒng)的隱藏接口進行調用,在此需要將應用程序設置為“android, uid.system”,成為系統(tǒng)級應用。
[0048]因此,本發(fā)明實施例首先提供一種攝像頭調用權限管理方法,參見圖2,本實施例方法的具體步驟包括:
[0049]步驟201:在系統(tǒng)初始化過程中創(chuàng)建攝像頭調用相關的系統(tǒng)屬性并賦值。
[0050]參見圖3的攝像頭權限管理機制運行圖,在本實施例的一個應用場景中,首先可以在Android系統(tǒng)啟動初始化init.c的過程中使用setprop創(chuàng)建屬性并讀取系統(tǒng)屬性“persist, sys.camera_prop,,。
[0051]另外,還可以對保存權限的系統(tǒng)屬性做出修改。當需要修改系統(tǒng)攝像頭調用權限時,由其調用setSystemPropertyO函數設置特定系統(tǒng)屬性。該系統(tǒng)屬性前綴一定要為persist.sys。
[0052]步驟202:當存在應用程序調用所述攝像頭時,讀取所述攝像頭調用相關的系統(tǒng)屬性,對所述應用程序進行權限驗證并返回驗證結果。
[0053]可舉例的是,本實施例可以在框架層里面添加了一層攝像頭的調用審核機制,在每當有應用程序請求獲得攝像頭實例的時候,都需要進行審核,有效地防護非法調用攝像頭防止隱私泄露。同時還可以設置多種攝像頭調用規(guī)則來管理攝像頭以防止非法調用。
[0054]其中,可以由應用層的應用程序調用由框架層android, hardware.Camera提供的接口來獲取一個攝像頭的實例變量。Android系統(tǒng)的攝像頭類都屬于單例設計模式。框架層的攝像頭類open O函數用作返回實例并且在其中包含操作硬件的函數。
[0055]當應用程序請求調用框架層獲取實例的函數openO時,并不直接返回實例,轉而向圖3中的系統(tǒng)管理程序Permiss1nManager發(fā)送請求,在未獲得管理程序反饋的權限時,函數處于等待狀態(tài)。
[0056]當系統(tǒng)級應用攝像頭權限管理端CamManager收到權限驗證的請求時,可以打開Permiss1nCHK這個類,調用其中的getSystemProperty O函數讀取系統(tǒng)屬性的值,獲得權限值,返回給框架層攝像頭類。
[0057]另外,在本實施例的一個應用場景中,還需要對系統(tǒng)的硬件管理策略進行設置,并利用硬件管理策略對應用程序進行權限驗證,利用各種適當的攝像頭調用規(guī)則來管理攝像頭以防止非法調用。例如,可以根據攝像頭的使用時間段來設置攝像頭的權限的開關,或者根據攝像頭的使用地點作為設置點,又或者通過應用程序的包名構建的黑白名單或網絡遠程管理方案作為標準等。Permiss1nChkHelper的權限列表參見圖4,它可以連接應用層與系統(tǒng)運行庫,并且提供權限反饋給android, hardware.Camera。
[0058]當Android系統(tǒng)啟動的時候,啟動過程中的init.c中的setprop可以對系統(tǒng)的攝像頭權限列表進行初始化,以后再次啟動系統(tǒng)后將自動導入設置,非常的便捷。系統(tǒng)屬性的文件放置位置對于應用程序層是不可見的,系統(tǒng)屬性的讀取與修改過程對于應用程序層同樣是不可見的。這樣就能保證系統(tǒng)的攝像頭調用過程的安全性,尤其是數據安全性。不能采用像SQLite數據庫或文件,通過可以被應用程序修改sharedPreference來存儲數據,無法保證系統(tǒng)的安全性。
[0059]步驟203:令所述應用程序根據所述驗證結果對所述攝像頭進行操作。
[0060]當等待權限驗證結果時,若等待時間超時或者所得到的驗證結果為false時,獲取實例的函數將返回空,說明應用程序無法對攝像頭進行調用;而只有在指定時間范圍內得到true的驗證結果時,應用程序才會獲取返回的攝像頭的實例,并通過可用的攝像頭實例利用JNI調用系統(tǒng)的攝像頭驅動,進行攝像頭調用。所使用的代碼實例參見圖5。
[0061]具體地,應用層的應用程序獲得可供使用的攝像頭的實例,再通過JNI對C框架調用Linux內核驅動,對上層的應用可提供取景器,視頻錄制,拍攝相片三個功能,還可以包括各種控制類的接口。
[0062]參見圖6,本發(fā)明實施例還提供一種攝像頭調用權限管理設備,包括:
[0063]系統(tǒng)屬性配置模塊301,用于在系統(tǒng)初始化過程中創(chuàng)建攝像頭調用相關的系統(tǒng)屬性并賦值;
[0064]權限驗證模塊302,用于在應用程序調用所述攝像頭時,讀取所述攝像頭調用相關的系統(tǒng)屬性,對所述應用程序進行權限驗證并返回驗證結果;
[0065]操作模塊303,用于令所述應用程序根據所述驗證結果對所述攝像頭進行操作。
[0066]可選地,設備還可以包括:修改模塊(圖中未不出),與系統(tǒng)屬性配置模塊301相連,用于對攝像頭調用相關的系統(tǒng)屬性進行修改。
[0067]可選地,操作模塊303還可以用于:在所述驗證結果為真時,令所述應用程序對所述攝像頭進行調用;在所述驗證結果不為真時,不使所述應用程序對所述攝像頭進行調用。
[0068]可選地,設備還可以包括:策略設置模塊(圖中未示出),與權限驗證模塊302相連,用于設置所述攝像頭的管理策略,使得所述權限驗證模塊302利用所述管理策略對所述應用程序進行權限驗證。
[0069]可選地,所述策略設置模塊用于設置的所述攝像頭的管理策略可以包括:所述攝像頭的使用時間段、所述攝像頭的使用地點、所述應用程序的黑白名單、網絡遠程管理方案中的一個或多個。
[0070]可見,在本發(fā)明實施例提供的攝像頭調用權限管理方法和設備中,能夠從系統(tǒng)框架層和Linux層設計出發(fā),利用控制端對Android攝像頭的調用過程控制與授權,對Android系統(tǒng)原有的攝像頭安全性進行提升,在Android攝像頭的調用過程增加了新的防護并能進行對使用攝像頭的調用權限進行控制,從系統(tǒng)層面降低應用程序對系統(tǒng)平臺的安全威脅,并能夠對系統(tǒng)的攝像頭資源進行控制與管理,從而保證了攝像頭調用過程數據的安全性,并有效防止隱私泄露。
[0071]最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。
【權利要求】
1.一種攝像頭調用權限管理方法,其特征在于,包括: 在系統(tǒng)初始化過程中創(chuàng)建攝像頭調用相關的系統(tǒng)屬性并賦值; 當存在應用程序調用所述攝像頭時,讀取所述攝像頭調用相關的系統(tǒng)屬性,對所述應用程序進行權限驗證并返回驗證結果; 令所述應用程序根據所述驗證結果對所述攝像頭進行操作。
2.根據權利要求1所述的攝像頭調用權限管理方法,其特征在于,所述方法還包括: 對所述攝像頭調用相關的系統(tǒng)屬性進行修改。
3.根據權利要求1所述的攝像頭調用權限管理方法,其特征在于,所述令所述應用程序根據所述驗證結果對所述攝像頭進行操作包括: 當所述驗證結果為真時,令所述應用程序對所述攝像頭進行調用; 當所述驗證結果不為真時,不使所述應用程序對所述攝像頭進行調用。
4.根據權利要求1至3中任一項所述的攝像頭調用權限管理方法,其特征在于,所述方法還包括: 設置所述攝像頭的管理策略,利用所述管理策略對所述應用程序進行權限驗證。
5.根據權利要求4所述的攝像頭調用權限管理方法,其特征在于,所述管理策略包括: 所述攝像頭的使用時間段、所述攝像頭的使用地點、所述應用程序的黑白名單、網絡遠程管理方案中的一個或多個。
6.一種攝像頭調用權限管理設備,其特征在于,所述設備包括: 系統(tǒng)屬性配置模塊,用于在系統(tǒng)初始化過程中創(chuàng)建攝像頭調用相關的系統(tǒng)屬性并賦值; 權限驗證模塊,用于在應用程序調用所述攝像頭時,讀取所述攝像頭調用相關的系統(tǒng)屬性,對所述應用程序進行權限驗證并返回驗證結果; 操作模塊,用于令所述應用程序根據所述驗證結果對所述攝像頭進行操作。
7.根據權利要求6所述的攝像頭調用權限管理設備,其特征在于,所述設備還包括: 修改模塊,與所述系統(tǒng)屬性配置模塊相連,用于對所述攝像頭調用相關的系統(tǒng)屬性進行修改。
8.根據權利要求6所述的攝像頭調用權限管理設備,其特征在于,所述操作模塊還用于: 在所述驗證結果為真時,令所述應用程序對所述攝像頭進行調用; 在所述驗證結果不為真時,不使所述應用程序對所述攝像頭進行調用。
9.根據權利要求6至8中任一項所述的攝像頭調用權限管理設備,其特征在于,所述設備還包括: 策略設置模塊,與所述權限驗證模塊相連,用于設置所述攝像頭的管理策略,使得所述權限驗證模塊利用所述管理策略對所述應用程序進行權限驗證。
10.根據權利要求9所述的攝像頭調用權限管理設備,其特征在于,所述策略設置模塊用于設置的所述攝像頭的管理策略包括: 所述攝像頭的使用時間段、所述攝像頭的使用地點、所述應用程序的黑白名單、網絡遠程管理方案中的一個或多個。
【文檔編號】G06F21/51GK104268463SQ201410471699
【公開日】2015年1月7日 申請日期:2014年9月16日 優(yōu)先權日:2014年9月16日
【發(fā)明者】朱大立, 范哲銘, 龐娜 申請人:中國科學院信息工程研究所