本發(fā)明實施例屬于安卓系統(tǒng)領域,尤其涉及一種系統(tǒng)權限管理方法、裝置及相應的設備。
背景技術:
在Android系統(tǒng)中應用模塊執(zhí)行各種操作,比如設備中有些應用模塊需要控制寄存器、GPIO的操作,具體如控制電源燈、網(wǎng)絡燈、IR燈、攝像頭、揚聲器等,這些分散在不同模塊的操作如果涉及到系統(tǒng)安全性或者穩(wěn)定性,一般需要獲得系統(tǒng)授權。
在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在下述問題:
在Android系統(tǒng)應用模塊執(zhí)行的具體操作涉及對系統(tǒng)中的相關文件的讀寫操作,由于Android系統(tǒng)引入SElinux安全機制,使得各應用模塊的一些操作因為權限問題而不能執(zhí)行,比如Kernel 3.18.20默認/sys/devices/virtual/下各個設備文件不允許other用戶擁有寫權限,導致應用模塊對/sys/devices/virtual/下的文件進行寫操作。如果對SElinux進行修改可能會改動很大,費時費力,且在不同的硬件平臺上的寄存器和GPIO等硬件有可能不同,將進一步增加的代碼維護的復雜度。
技術實現(xiàn)要素:
為了解決上述問題,本發(fā)明實施例提供一種系統(tǒng)權限管理方法、裝置及相應的設備,以解決現(xiàn)有技術中應用模塊操作分散,以及權限受限的操作需要通過修改代碼才能獲取相應的權限時,修改代碼工作量大、維護不方便的問題。
第一方面,本發(fā)明實施例提供一種系統(tǒng)權限管理方法,應用于終端設備,具體包括:
獲取操作請求,其中,所述操作的執(zhí)行需要系統(tǒng)權限;
根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service;
通過所述Service提供的接口執(zhí)行所述需要系統(tǒng)權限的操作。
進一步的,還包括創(chuàng)建所述Service,并將所述Service添加到Service管理器中,所述根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service具體為:從Service管理器中獲取具有所述系統(tǒng)權限的Service。
進一步的,還包括對所述Service進行初始化,所述初始化過程包括:通過所述Service動態(tài)解析所述終端設備至少一個硬件的配置文件。
進一步的,獲取具有所述系統(tǒng)權限的Service后,向操作請求發(fā)起方返回所述Service的唯一標識符。
第二方面,本發(fā)明實施例提供一種系統(tǒng)權限管理裝置,包括:
請求獲取模塊,用于獲取操作請求,其中,所述操作的執(zhí)行需要系統(tǒng)權限;
Service獲取模塊,用于根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service;
操作執(zhí)行模塊,用于通過所述Service提供的接口執(zhí)行所述需要系統(tǒng)權限的操作。
進一步的,所述裝置還包括Service創(chuàng)建模塊,用于創(chuàng)建所述Service,并將所述Service添加到Service管理器中,Service獲取模塊根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service具體為:從Service管理器中獲取具有所述系統(tǒng)權限的Service。
進一步的,所述裝置還包括初始化模塊,用于對所述Service進行初始化,所述初始化過程包括:通過所述Service動態(tài)解析所述終端設備至少一個硬件的配置文件。
進一步的,所述裝置還包括反饋模塊,用于在Service獲取模塊獲取具有所述系統(tǒng)權限的Service后,向操作請求發(fā)起方返回所述Service的唯一標識符。
第三方面,本發(fā)明實施例提供一種終端設備,所述終端設備包括上述的系統(tǒng)權限管理裝置。
第四方面,本發(fā)明實施例提供一種服務器,所述服務器包括至少一個上述的系統(tǒng)權限管理裝置。
第五方面,本發(fā)明實施例提供一種權限管理系統(tǒng),包括服務器和至少一個終端設備,其中所述服務器包括至少一個上述的系統(tǒng)權限管理裝置。
通過本發(fā)明實施例提供的系統(tǒng)權限管理方法、裝置及相應的設備,通過提供具有系統(tǒng)權限的Service,對于需要系統(tǒng)權限但又沒有系統(tǒng)權限的操作,可以通過Service為這些操作提供系統(tǒng)權限代理,繼而執(zhí)行這些操作,根據(jù)本發(fā)明實施例的方案,可以將不同操作所需的各種系統(tǒng)權限集中到Service中進行統(tǒng)一管理,避免大量修改代碼,降低代碼維護的復雜度。
附圖說明
為了更清楚地說明本發(fā)明或現(xiàn)有技術中的方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一個簡單介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一中提供的系統(tǒng)權限管理方法的流程圖。
圖2為本發(fā)明實施例二中提供的系統(tǒng)權限管理方法的流程圖。
圖3為本發(fā)明實施例三中提供的系統(tǒng)權限管理裝置的結構框圖。
圖4為本發(fā)明實施例四中提供的系統(tǒng)權限管理裝置的結構框圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例,附圖中給出了本發(fā)明的較佳實施例。本發(fā)明可以以許多不同的形式來實現(xiàn),并不限于本文所描述的實施例,相反地,提供這些實施例的目的是使對本發(fā)明的公開內(nèi)容的理解更加透徹全面?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。除非另有定義,本文所使用的所有的技術和科學術語與屬于本發(fā)明的技術領域的技術人員通常理解的含義相同。本文中在本發(fā)明的說明書中所使用的術語只是為了描述具體的實施例的目的,不是旨在于限制本發(fā)明。本發(fā)明的說明書和權利要求書及上述附圖中的術語“包括”和“具有”以及它們?nèi)魏巫冃?,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對于這些過程、方法、產(chǎn)品或設備固有的其他步驟或單元。在本文中提及“實施例”意味著,結合實施例描述的特定特征、結構或特性可以包含在本發(fā)明的至少一個實施例中。在說明書中的各個位置出現(xiàn)該短語并不一定均是指相同的實施例,也不是與其它實施例互斥的獨立的或備選的實施例。本領域技術人員顯式地和隱式地理解的是,本文所描述的實施例可以與其它實施例相結合。
實施例一
本發(fā)明實施例提供一種系統(tǒng)權限管理方法,所述方法具體應用于終端設備,在本發(fā)明實施例中,所述終端設備尤其指采用Android系統(tǒng)的終端設備,比如采用Android系統(tǒng)的手機、平板電腦、電視等,便于描述,在本實施例及后續(xù)實施例中,必要的時候均以采用Android系統(tǒng)的手機為例進行相關說明。下面對本實施例中所提供的只讀屬性修改方法的實現(xiàn)流程進行詳細說明,具體請參閱圖1所述的流程圖,所述方法具體包括以下步驟:
S101、獲取操作請求,其中,所述操作的執(zhí)行需要系統(tǒng)權限;
S102、根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service;
S103、通過所述Service提供的接口執(zhí)行所述需要系統(tǒng)權限的操作。
下面對上述步驟進行詳細說明,在終端設備上的操作來源于終端設備的各個應用模塊,比如設備中有些應用需要控制寄存器、GPIO的操作,具體如控制電源燈、網(wǎng)絡燈、IR燈、攝像頭、揚聲器等。這些分散在不同模塊的操作如果涉及到系統(tǒng)安全性或者穩(wěn)定性,一般需要獲得系統(tǒng)授權。本實施例提供的方法對這些分散、且需要系統(tǒng)授權的操作進行集中管理,統(tǒng)一獲取不同應用模塊的操作請求。在安卓手機中,由于Android系統(tǒng)引入SElinux安全機制,使得手機上各模塊或者應用的一些操作因為權限問題而不能執(zhí)行,比如Kernel 3.18.20默認/sys/devices/virtual/下各個設備文件不允許other用戶擁有寫權限,相應的,應用模塊對/sys/devices/virtual/下的文件的寫操作將不能成功。在本實施例中,所述Service可為這些權限受限的操作提供了高系統(tǒng)權限的代理服務,通過獲取所述Service來執(zhí)行原本系統(tǒng)權限受限的操作。在Service中,Service提供了控制寄存器、GPIO等硬件相關性強的接口,同時也提供了需要系統(tǒng)權限的操作的訪問接口。通過Service提供的接口來執(zhí)行所述需要系統(tǒng)權限的操作。比如手機上某個游戲應用需要調(diào)用攝像頭,根據(jù)SElinux安全機制,這種操作是受限的,此時可根據(jù)調(diào)用攝像頭的請求獲取Service,通過Service提供的接口來調(diào)用攝像頭。
通過本發(fā)明實施例提供的系統(tǒng)權限管理方法,對于不同應用模塊的權限受限的操作,通過獲取具有系統(tǒng)權限的Service,可以通過Service為這些操作提供系統(tǒng)權限代理,從而可執(zhí)行這些權限受限的操作,根據(jù)本發(fā)明實施例的方案,可以將權限受限的不同操作集中到Service中進行統(tǒng)一管理,避免大量修改代碼,降低代碼維護的復雜度。
實施例二
在本發(fā)明實施例中,所述系統(tǒng)權限管理方法還包括創(chuàng)建所述Service,并將所述Service注冊添加到Service管理器中,具體地,所述應用模塊通過binder通信機制與所述Service進行交互,在Android系統(tǒng)中,binder通信是一種client-server的通信結構,在所述應用模塊與所述Service進行交互的過程中,所述應用模塊作為client端存在,而所述Service作為server端存在,即所述Service為所述應用模塊提供系統(tǒng)權限代理服務,所述應用模塊通過獲得所述Service的代理接口對所述Service進行直接調(diào)用。
相應的,在本發(fā)明實施例中,所述根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service具體為:從ServiceManager(即Service管理器)中查詢并獲取具有所述系統(tǒng)權限的Service。當從ServiceManager中獲得具有所述系統(tǒng)權限的Service后,由ServiceManager向作為操作請求發(fā)起方的所述應用模塊返回所述Service的唯一標識符,從而建立所述應用模塊與所述Service直接的交互通信。
在本實施例中,所述方法還包括對所述Service進行初始化,在本實施例中,終端設備的寄存器和GPIO等硬件信息匯總成一個配置文件跟隨Android系統(tǒng)的升級包進行發(fā)布,由Service對所述配置文件進行動態(tài)解析,這樣的操作提供了一個跨不同硬件平臺的處理框架。相應的,所述初始化過程包括:通過所述Service動態(tài)解析所述終端設備至少一個硬件的配置文件;在執(zhí)行所述需要系統(tǒng)權限的操作過程中,所述Service調(diào)用相應的硬件進行操作處理。
參閱圖2,可選的,本發(fā)明實施例提供另一種系統(tǒng)權限管理方法的具體步驟如下:
S201、Android系統(tǒng)啟動時啟動Service。
S202、Service進行初始化,完成配置文件的解析。
S203、獲取操作請求,其中,所述操作的執(zhí)行需要系統(tǒng)權限;
S204、根據(jù)所述操作請求從ServiceManager中獲取具有所述系統(tǒng)權限的Service;
S205、通過所述Service提供的接口執(zhí)行所述需要系統(tǒng)權限的操作。
上述步驟的相關內(nèi)容可參閱前述實施例中的相關描述,在此不再贅述。
通過本發(fā)明實施例提供的系統(tǒng)權限管理方法,通過創(chuàng)建具有系統(tǒng)權限的Service,對于需要系統(tǒng)權限但又沒有系統(tǒng)權限的操作,可以通過Service為這些操作提供系統(tǒng)權限代理,從而在不對這些操作進行權限修改的情況下即可執(zhí)行這些操作。通過把硬件相關性強的操作集中在一起,通過提供高權限的Service集中進行操作,易于維護,便于對一些現(xiàn)有方案快速改進以滿足SElinux安全機制的要求。
實施例三
參閱圖3,圖示為本發(fā)明實施例提供的一種系統(tǒng)權限管理裝置的結構框圖,所述裝置包括請求獲取模塊301、Service獲取模塊302和操作執(zhí)行模塊303,其中,所述請求獲取模塊301用于獲取操作請求,其中,所述操作的執(zhí)行需要系統(tǒng)權限;所述Service獲取模塊302用于根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service;所述操作執(zhí)行模塊303用于通過所述Service提供的接口執(zhí)行所述需要系統(tǒng)權限的操作。
下面對各模塊之間的處理交互過程進行詳細說明,在終端設備上的眾多操作來源于終端設備的各個應用模塊,這些分散在不同模塊的操作如果涉及到系統(tǒng)安全性或者穩(wěn)定性,一般需要獲得系統(tǒng)授權。本實施例提供的系統(tǒng)權限管理裝置可對這些分散、且需要系統(tǒng)授權的操作進行集中管理,通過請求獲取模塊301獲取不同應用模塊的操作請求。本實施例提供Service為這些權限受限的操作提供了高系統(tǒng)權限的代理服務,具體通過Service獲取模塊302獲取所述Service,并由操作執(zhí)行模塊303來執(zhí)行原本系統(tǒng)權限受限的操作。在Service中,Service提供了控制寄存器、GPIO等硬件相關性強的接口,同時也提供了需要系統(tǒng)權限的操作的訪問接口。通過Service提供的接口來執(zhí)行所述需要系統(tǒng)權限的操作。比如手機上某個游戲應用需要調(diào)用攝像頭,根據(jù)SElinux安全機制,這種操作是受限的,此時可根據(jù)調(diào)用攝像頭的請求獲取Service,通過Service提供的接口來調(diào)用攝像頭。
通過本發(fā)明實施例提供的系統(tǒng)權限管理方法裝置,通過提供具有系統(tǒng)權限的Service,對于需要系統(tǒng)權限但又沒有系統(tǒng)權限的操作,可以通過Service為這些操作提供系統(tǒng)權限代理,繼而執(zhí)行這些操作,根據(jù)本發(fā)明實施例的方案,可以將不同操作所需的各種系統(tǒng)權限集中到Service中進行統(tǒng)一管理,避免大量修改代碼,降低代碼維護的復雜度。
實施例四
在本發(fā)明實施例中,參閱圖4,所述裝置還包括Service創(chuàng)建模塊401,用于創(chuàng)建所述Service,并將所述Service添加到Service管理器中,在Android系統(tǒng)中,binder通信是一種client-server的通信結構,在本實施例中,應用模塊通過binder通信機制與所述Service進行交互,在所述應用模塊與所述Service進行交互的過程中,所述應用模塊作為client端存在,而所述Service作為server端存在,即所述Service為所述應用模塊提供系統(tǒng)權限代理服務,所述應用模塊通過獲得所述Service的代理接口對所述Service進行直接調(diào)用。Service獲取模塊302根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service具體為:從Service管理器中獲取具有所述系統(tǒng)權限的Service。相應的,在本發(fā)明實施例中,所述Service獲取模塊302根據(jù)所述操作請求獲取具有所述系統(tǒng)權限的Service具體為:從ServiceManager(即Service管理器)中查詢并獲取具有所述系統(tǒng)權限的Service。進一步的,參閱圖4,所述裝置還包括反饋模塊402,用于在Service獲取模塊獲取具有所述系統(tǒng)權限的Service后,將向操作請求發(fā)起方返回所述Service的唯一標識符,當Service獲取模塊302從ServiceManager中獲得具有所述系統(tǒng)權限的Service后,通過反饋模塊402向作為操作請求發(fā)起方的所述應用模塊返回所述Service的唯一標識符,從而建立所述應用模塊與所述Service直接的交互通信。
進一步的,參閱圖4,所述裝置還包括初始化模塊403,用于對所述Service進行初始化,所述初始化過程包括:通過所述Service動態(tài)解析所述終端設備至少一個硬件的配置文件。在本實施例中,終端設備的寄存器和GPIO等硬件信息匯總成一個配置文件跟隨Android系統(tǒng)的升級包進行發(fā)布,由Service對所述配置文件進行動態(tài)解析,這樣的操作提供了一個跨不同硬件平臺的處理框架。相應的,初始化模塊403進行初始化過程包括:通過所述Service動態(tài)解析所述終端設備至少一個硬件的配置文件;在操作執(zhí)行模塊303執(zhí)行所述需要系統(tǒng)權限的操作過程中,所述Service調(diào)用相應的硬件進行操作處理。
通過本發(fā)明實施例提供的系統(tǒng)權限管理裝置,通過創(chuàng)建具有系統(tǒng)權限的Service,對于需要系統(tǒng)權限但又沒有系統(tǒng)權限的操作,可以通過Service為這些操作提供系統(tǒng)權限代理,從而在不對這些操作進行權限修改的情況下即可執(zhí)行這些操作。通過把硬件相關性強的操作集中在一起,通過提供高權限的Service集中進行操作,易于維護,便于對一些現(xiàn)有方案快速改進以滿足SElinux安全機制的要求。
實施例五
本發(fā)明實施例提供一種終端設備,所述終端設備上述的系統(tǒng)權限管理裝置。所述系統(tǒng)權限管理裝置的結構參閱前述實施例中相關技術內(nèi)容,在此不再贅述。
實施例六
本發(fā)明實施例提供一種服務器,所述服務器包括至少一個上述的系統(tǒng)權限管理裝置。所述系統(tǒng)權限管理裝置的結構參閱前述實施例中相關技術內(nèi)容,在此不再贅述。
實施例七
本發(fā)明實施例提供一種權限管理系統(tǒng),包括服務器和至少一個終端設備,其中所述服務器包括至少一個上述的系統(tǒng)權限管理裝置。所述系統(tǒng)權限管理裝置的結構參閱前述實施例中相關技術內(nèi)容,在此不再贅述。
需要說明的是,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個非易失性計算機可讀取存儲介質中。實現(xiàn)上述各軟件功能單元的功能的相關程序指令存儲在所述非易失性計算機可讀取存儲介質中,所述程序指令用以使得一臺計算機裝置(可以是個人計算機,服務器,或者網(wǎng)絡裝置、智能終端設備等)或處理器(Processor)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上僅為本發(fā)明的實施例,但并不限制本發(fā)明的專利范圍,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的技術人員來而言,其依然可以對前述各具體實施方式所記載的技術方案進行修改,或者對其中部分技術特征進行等效替換。凡是利用本發(fā)明說明書及附圖內(nèi)容所做的等效結構,直接或間接運用在其他相關的技術領域,均同理在本發(fā)明專利保護范圍之內(nèi)。