配置應(yīng)用程序的權(quán)限的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種配置應(yīng)用程序的權(quán)限的方法及裝置。其中的方法包括:應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊,對框架層中安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽通過所述監(jiān)聽確定正在安裝或待安裝的應(yīng)用程序,獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息;通過所述安裝類型確定為升級安裝或覆蓋時,利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置。本發(fā)明能夠免除用戶升級軟件后需重新配置軟件權(quán)限的困擾。
【專利說明】配置應(yīng)用程序的權(quán)限的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動終端【技術(shù)領(lǐng)域】,具體涉及一種配置應(yīng)用程序的權(quán)限的方法及裝置。
【背景技術(shù)】
[0002]作為全球最流行的移動操作系統(tǒng),安卓(Android)已經(jīng)具有了數(shù)以億計的用戶。Android系統(tǒng)中的應(yīng)用程序(軟件)要執(zhí)行某些關(guān)鍵操作時,都必須申請相應(yīng)的權(quán)限。鑒于很多Android系統(tǒng)的應(yīng)用程序會申請許多非必要的權(quán)限,例如發(fā)送短信、讀取聯(lián)系人等重要隱私權(quán)限,這有可能給用戶帶來隱私泄露和財產(chǎn)丟失的風(fēng)險。所以當(dāng)今某些Android平臺的安全軟件提供了應(yīng)用程序權(quán)限管理功能,用戶可根據(jù)自己的使用需要,自行配置應(yīng)用程序的權(quán)限,避免隱私泄露。
[0003]然而,當(dāng)用戶配置好權(quán)限的應(yīng)用程序升級之后,應(yīng)用程序的權(quán)限將恢復(fù)成為默認(rèn)配置,用戶需要重新配置該應(yīng)用程序的所有權(quán)限,這對于用戶來說十分麻煩而且不人性化。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的配置應(yīng)用程序的權(quán)限的方法及裝置。
[0005]依據(jù)本發(fā)明的一個方面,提供一種配置應(yīng)用程序的權(quán)限的方法,包括:應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊,對框架層中安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽;通過所述監(jiān)聽確定正在安裝或待安裝的應(yīng)用程序,獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息;通過所述安裝類型確定安裝行為為升級安裝或覆蓋安裝時,利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0006]優(yōu)選的,所述應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊對框架層中安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽包括:所述應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊調(diào)用框架層中的API,實現(xiàn)對框架層安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽。
[0007]優(yōu)選的,所述通過所述監(jiān)聽獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息包括:通過調(diào)用框架層中的API,得到包含安裝包信息的APK文件;通過調(diào)用框架層中的API消息函數(shù),得到所述應(yīng)用程序的安裝類型;解析所述APK文件,得到操作系統(tǒng)的功能清單文件,從該功能清單文件中獲取到所述應(yīng)用程序的權(quán)限信息。
[0008]優(yōu)選的,所述權(quán)限信息包括:讀取短信記錄的權(quán)限,讀取聯(lián)系人信息的權(quán)限、讀取通話記錄的權(quán)限、獲取位置信息的權(quán)限,和/或,獲取設(shè)備信息的權(quán)限。
[0009]優(yōu)選的,所述利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置包括:在確定所述安裝行為為升級安裝或者覆蓋安裝時,讀取上一次安裝保存的權(quán)限文件;根據(jù)所述權(quán)限文件對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0010]優(yōu)選的,所述利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置包括:直接利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置,或者,將所述權(quán)限信息展示給用戶,使得用戶在所述權(quán)限信息基礎(chǔ)上對權(quán)限進(jìn)行選擇配置。
[0011]優(yōu)選的,所述用于對所述應(yīng)用程序的權(quán)限進(jìn)行配置的權(quán)限信息是上次安裝所述應(yīng)用程序之后保存的。
[0012]優(yōu)選的,所述方法還包括:預(yù)先設(shè)置應(yīng)用程序列表,所述列表中包括需要執(zhí)行所述權(quán)限配置方案的應(yīng)用程序名單;根據(jù)所述應(yīng)用程序的標(biāo)識與所述列表進(jìn)行匹配,如果匹配成功,則針對所述應(yīng)用程序執(zhí)行所述權(quán)限配置方案。
[0013]優(yōu)選的,在安裝完所述應(yīng)用程序之后,還包括:框架層向應(yīng)用程序?qū)臃祷匕惭b狀態(tài)代碼;所述應(yīng)用程序?qū)油ㄟ^所述安裝狀態(tài)代碼,判斷此次安裝是否成功,如果安裝成功,將此次安裝的權(quán)限配置保存為APK文件,用于下次安裝使用。
[0014]優(yōu)選的,所述方法還包括:通過所述應(yīng)用程序?qū)拥谋O(jiān)聽模塊,監(jiān)聽所述框架層是否對所述應(yīng)用程序進(jìn)行卸載操作;如果監(jiān)聽到對所述應(yīng)用程序進(jìn)行卸載操作,則將保存的與所述應(yīng)用程序相關(guān)的權(quán)限信息文件刪除。
[0015]依據(jù)本發(fā)明的另一個方面,提供一種配置應(yīng)用程序的權(quán)限的裝置,包括:監(jiān)聽單元,用于利用應(yīng)用程序?qū)訉蚣軐又邪惭b所述應(yīng)用程序的行為進(jìn)行監(jiān)聽;信息獲取單元,用于通過所述監(jiān)聽單元確定正在安裝或待安裝的應(yīng)用程序,獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息;權(quán)限配置單元,用于通過所述安裝類型確定安裝行為為升級安裝或覆蓋安裝時,利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0016]優(yōu)選的,所述監(jiān)聽單元具體用于:通過所述應(yīng)用程序?qū)诱{(diào)用框架層中的API,實現(xiàn)對框架層安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽。
[0017]優(yōu)選的,所述信息獲取單元具體用于:通過調(diào)用框架層中的API,得到包含安裝包信息的APK文件;通過調(diào)用框架層中的API消息函數(shù),得到所述應(yīng)用程序的安裝類型;并且,解析所述APK文件,得到操作系統(tǒng)的功能清單文件,從該功能清單文件中獲取到所述應(yīng)用程序的權(quán)限信息。
[0018]優(yōu)選的,所述權(quán)限信息包括:讀取短信記錄的權(quán)限,讀取聯(lián)系人信息的權(quán)限、讀取通話記錄的權(quán)限、獲取位置信息的權(quán)限,和/或,獲取設(shè)備信息的權(quán)限。
[0019]優(yōu)選的,所述權(quán)限配置單元具體用于:在確定所述安裝行為為升級安裝或者覆蓋安裝時,讀取上一次安裝保存的權(quán)限文件;根據(jù)所述權(quán)限文件對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0020]優(yōu)選的,權(quán)限配置單元具體用于:直接利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置,或者,將所述權(quán)限信息展示給用戶,使得用戶在所述權(quán)限信息基礎(chǔ)上對權(quán)限進(jìn)行選擇配置。
[0021]優(yōu)選的,所述權(quán)限配置單元利用上次安裝所述應(yīng)用程序之后保存的權(quán)限信息對本次安裝進(jìn)行權(quán)限配置。
[0022]優(yōu)選的,所述權(quán)限配置單元根據(jù)所述應(yīng)用程序的標(biāo)識與預(yù)先設(shè)置的應(yīng)用程序列表進(jìn)行匹配,如果匹配成功,則針對所述應(yīng)用程序執(zhí)行所述權(quán)限配置方案,其中,所述應(yīng)用程序列表包括需要執(zhí)行所述權(quán)限配置方案的應(yīng)用程序名單。
[0023]優(yōu)選的,還包括:安裝狀態(tài)確定單元,用于從框架層獲取安裝狀態(tài)代碼,所述應(yīng)用程序?qū)油ㄟ^所述安裝狀態(tài)代碼,判斷此次安裝是否成功;權(quán)限文件保存單元,如果此次安裝成功,將此次安裝的權(quán)限配置保存為APK文件,用于下次安裝使用。
[0024]優(yōu)選的,還包括:卸載監(jiān)聽單元,通過所述應(yīng)用程序?qū)颖O(jiān)聽所述框架層是否對所述應(yīng)用程序進(jìn)行卸載操作;權(quán)限刪除單元,如果監(jiān)聽到對所述應(yīng)用程序進(jìn)行卸載操作,用于將保存的與所述應(yīng)用程序相關(guān)的權(quán)限信息文件刪除。
[0025]可見,在本發(fā)明提供的技術(shù)方案中,通過監(jiān)聽安裝應(yīng)用程序的行為,在非首次安裝情況下,將獲取到的之前安裝所保存的權(quán)限信息展示給用戶,用戶不必要對每項權(quán)限進(jìn)行重新勾選,而是可方便地采取上次安裝時的配置。
[0026]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】
[0027]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0028]圖1示出了根據(jù)本發(fā)明一個實施例的配置應(yīng)用程序的權(quán)限的方法流程圖;以及
[0029]圖2示出了根據(jù)本發(fā)明一個實施例的配置應(yīng)用程序的權(quán)限的方法示意圖。
【具體實施方式】
[0030]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0031]本發(fā)明公開了一種對應(yīng)用程序的權(quán)限信息進(jìn)行管理的方法,能夠免除用戶升級軟件后需重新配置軟件權(quán)限的困擾。
[0032]參見圖1,為本發(fā)明一個實施例提供的配置應(yīng)用程序的權(quán)限的方法流程圖。
[0033]該方法包括以下步驟:
[0034]SlOl:應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊,對框架層中安裝應(yīng)用程序的行為進(jìn)行監(jiān)聽;
[0035]S102:通過監(jiān)聽確定正在安裝或待安裝的應(yīng)用程序,獲取到包含應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息;
[0036]S103:通過安裝類型確定安裝行為為非首次安裝(例如升級安裝或覆蓋安裝)時,利用權(quán)限信息對應(yīng)用程序的權(quán)限進(jìn)行配置。
[0037]本領(lǐng)域技術(shù)人員理解,操作系統(tǒng)包括應(yīng)用程序?qū)?app層)和系統(tǒng)框架層(framework層)。本發(fā)明一種優(yōu)選實現(xiàn)方式是,對app層和framework層進(jìn)行改進(jìn),從而利用這兩層的協(xié)同配合實現(xiàn)對應(yīng)用程序的權(quán)限信息進(jìn)行管理。具體的,可以在app層增加一個監(jiān)聽模塊,用于監(jiān)聽framework層安裝應(yīng)用程序的行為,從而可以在安裝應(yīng)用程序時,獲取到應(yīng)用程序的安裝包信息以及安裝類型,從而在非首次安裝(例如升級安裝或者覆蓋安裝)時,利用解析到的權(quán)限信息對應(yīng)用程序的權(quán)限進(jìn)行配置。
[0038]參見圖2,為本發(fā)明實施例的配置應(yīng)用程序的權(quán)限的方法實施例示意圖。App層的監(jiān)聽模塊對framework層中安裝某一個特定的應(yīng)用程序的行為進(jìn)行監(jiān)聽,并將監(jiān)聽到的安裝包信息進(jìn)行解析獲得到權(quán)限信息,當(dāng)安裝類型為非首次安裝時,直接根據(jù)權(quán)限信息進(jìn)行應(yīng)用程序權(quán)限的配置。
[0039]可通過操作系統(tǒng)的API,實現(xiàn)對框架層安裝應(yīng)用程序的行為進(jìn)行監(jiān)聽。API (Applicat1n Programming Interface,應(yīng)用程序編程接口)是操作系統(tǒng)留給應(yīng)用程序的一個調(diào)用接口,應(yīng)用程序通過調(diào)用操作系統(tǒng)的API而使操作系統(tǒng)去執(zhí)行應(yīng)用程序的命令(動作)??刹捎弥袛鄼C(jī)制實現(xiàn)對API監(jiān)聽。具體的,可采用hook(掛鉤或鉤子)機(jī)制實現(xiàn)對framework層中的用于實現(xiàn)安裝應(yīng)用程序的接口進(jìn)行監(jiān)聽。本領(lǐng)域技術(shù)人員了解,hook機(jī)制允許應(yīng)用程序截獲處理操作系統(tǒng)的消息或特定事件。鉤子實際上是一個處理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達(dá)目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。這時鉤子函數(shù)即可以加工處理(改變)該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。在本發(fā)明實施例中,采用hook機(jī)制中斷安裝應(yīng)用程序的過程,實現(xiàn)在應(yīng)用程序安裝之前獲取相關(guān)信息。
[0040]下面從應(yīng)用程序安裝時、安裝之后以及卸載時三種情況對本發(fā)明實施例進(jìn)行介紹。
[0041](I)應(yīng)用程序安裝時權(quán)限信息的讀取、存儲與設(shè)置
[0042]新應(yīng)用程序在安裝時需要申請很多權(quán)限。應(yīng)用程序的權(quán)限是指應(yīng)用程序具有行使某個/些操作的權(quán)利。比如,某款輸入法提供了一個智能通訊錄的功能,用戶可以在輸入聯(lián)系人拼音的前幾個字符或首字母時,輸入法就能自動呈現(xiàn)相關(guān)聯(lián)系人的名字,為了實現(xiàn)這個功能,輸入法必須聲明它需要具有讀取手機(jī)中聯(lián)系人的權(quán)限。
[0043]本發(fā)明實施例會將安裝包信息進(jìn)行解析,將安裝包的權(quán)限列舉出來,配合應(yīng)用程序的安裝監(jiān)控展示給用戶。
[0044]例如,在android系統(tǒng)的手機(jī)上安裝一款軟件,通過調(diào)用API,可以將APK(安裝包)文件進(jìn)行解析,打開android的功能清單文件AndroidManifest.xml,得到注冊的軟件功能權(quán)限。在將這個權(quán)限的id代表的文字含義通過安裝前監(jiān)控的Π展示給用戶,用戶可以進(jìn)行允許、禁止等操作。例如,列舉出的權(quán)限包括:讀取短信記錄(默認(rèn)允許),讀取聯(lián)系人信息(默認(rèn)允許)、讀取通話記錄(默認(rèn)允許)、獲取位置信息(默認(rèn)禁止)、獲取設(shè)備信息(默認(rèn)禁止)等等,用戶可在此基礎(chǔ)上進(jìn)行操作,例如用戶直接采取默認(rèn)設(shè)置,或者對部分選項進(jìn)行變更等。除了這種將權(quán)限信息展示給用戶,使得用戶在權(quán)限信息基礎(chǔ)上對權(quán)限進(jìn)行選擇配置之外,還可以直接利用權(quán)限信息對應(yīng)用程序的權(quán)限進(jìn)行配置。本領(lǐng)域技術(shù)人員可以理解,當(dāng)前安裝過程中用于權(quán)限配置的權(quán)限信息是上次安裝應(yīng)用程序之后保存的,例如本次安裝為更新安裝,則直接利用上次首次安裝之后保存的APK文件進(jìn)行權(quán)限配置。
[0045]另外,在軟件安裝時,通過調(diào)用API得知軟件的安裝行為,比如、覆蓋安裝、升級安裝等。針對不同的情況,將保存好的權(quán)限進(jìn)行配置保存。
[0046]具體的,通過調(diào)用框架層中的API消息函數(shù),得到應(yīng)用程序的安裝類型。例如,通過API PackageManager.getPackagelnfo O來獲取當(dāng)前安裝包是否已經(jīng)安裝過。如果已經(jīng)安裝過,則進(jìn)一步通過該方法獲取已經(jīng)安裝軟件的版本號等信息。
[0047]通過版本號等相關(guān)信息的驗證,來判斷當(dāng)前的行為。如果判斷的行為為升級安裝或者覆蓋安裝,那么通過上一次安裝保存的權(quán)限文件,讀取到用戶上次安裝這個APK保存的權(quán)限狀態(tài),如發(fā)送短信-禁止、獲取位置信息-允許等等。讀取到權(quán)限后,將權(quán)限設(shè)置展示給用戶。
[0048](2)應(yīng)用程序安裝后的權(quán)限保存
[0049]軟件安裝之后,操作系統(tǒng)是對當(dāng)前安裝的包是否成功返回相關(guān)代碼(code),得到code后通過反射機(jī)制,得到這個code代表的相關(guān)信息。如安裝成功、安裝失敗、簽名不同、空間不足等等。
[0050]軟件安裝失敗,是不對當(dāng)前APK權(quán)限進(jìn)行保存的。
[0051]軟件安裝成功后,需要把權(quán)限的數(shù)據(jù)進(jìn)行保存。以便下次安裝時,進(jìn)行權(quán)限數(shù)據(jù)的設(shè)置。
[0052](3)應(yīng)用程序卸載后的權(quán)限處理
[0053]通過應(yīng)用程序?qū)拥谋O(jiān)聽模塊,監(jiān)聽框架層是否對應(yīng)用程序進(jìn)行卸載操作;如果監(jiān)聽到對應(yīng)用程序進(jìn)行卸載操作,則將保存的與應(yīng)用程序相關(guān)的權(quán)限信息文件刪除。例如,軟件卸載后,根據(jù)API獲取到卸載行為,并將保存的權(quán)限數(shù)據(jù)清除。
[0054]可見,本發(fā)明實施例至少包括兩個關(guān)鍵技術(shù)點:
[0055]1、通過API對安裝包進(jìn)行解析,分析出安裝包的權(quán)限;并通過篩選,匹配用戶設(shè)置,將最終權(quán)限設(shè)置展示給用戶。
[0056]2、對操作系統(tǒng)的安裝行為的接管,通過底層注入,將系統(tǒng)的安裝行為,映射到安裝前監(jiān)控中;并對安裝狀態(tài)的code進(jìn)行接管,以及對code的狀態(tài)分析;最終將選擇正確的結(jié)果展示。
[0057]本發(fā)明提供的技術(shù)方案中,通過監(jiān)聽安裝應(yīng)用程序的行為,在非首次安裝情況下,將獲取到的之前安裝所保存的權(quán)限信息展示給用戶,用戶不必要對每項權(quán)限進(jìn)行重新勾選,而是可方便地采取上次安裝時的配置。
[0058]需要說明的是,可以在終端中通過預(yù)先設(shè)定應(yīng)用程序名單而僅對特定的應(yīng)用程序?qū)嵤┍景l(fā)明方案。例如,手機(jī)中安裝有10個app,通過選擇設(shè)定用戶希望其中5個app可實施本發(fā)明提供的權(quán)限配置方案,而對于沒有選擇設(shè)定的app則不希望實施本發(fā)明的權(quán)限配置方案。因此,本發(fā)明實施例還可以包括:預(yù)先設(shè)置應(yīng)用程序列表,所述列表中包括需要執(zhí)行所述權(quán)限配置方案的應(yīng)用程序名單;根據(jù)所述應(yīng)用程序的標(biāo)識與所述列表進(jìn)行匹配,如果匹配成功,則針對所述應(yīng)用程序執(zhí)行所述權(quán)限配置方案。
[0059]與上述方法相對應(yīng),本發(fā)明還提供一種配置應(yīng)用程序的權(quán)限的裝置。該裝置可以通過硬件、軟件或軟硬件結(jié)合方式實現(xiàn)。該裝置可以是指終端內(nèi)部的功能模塊,也可以是指終端本身,只要終端包括實現(xiàn)該裝置的功能即可。其中,終端的操作系統(tǒng)包括框架層和應(yīng)用程序?qū)?。該裝置包括:
[0060]監(jiān)聽單元,用于利用應(yīng)用程序?qū)訉蚣軐又邪惭b所述應(yīng)用程序的行為進(jìn)行監(jiān)聽;
[0061]信息獲取單元,用于通過所述監(jiān)聽單元確定正在安裝或待安裝的應(yīng)用程序,獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息;
[0062]權(quán)限配置單元,用于通過所述安裝類型確定為升級安裝或覆蓋安裝時,利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0063]優(yōu)選的,所述監(jiān)聽單元具體用于:通過所述應(yīng)用程序?qū)诱{(diào)用框架層中的API,實現(xiàn)對框架層安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽。
[0064]優(yōu)選的,所述信息獲取單元具體用于:通過調(diào)用框架層中的API,得到包含安裝包信息的APK文件;并且,通過調(diào)用框架層中的API消息函數(shù),得到所述應(yīng)用程序的安裝類型;解析所述APK文件,得到操作系統(tǒng)的功能清單文件,從該功能清單文件中獲取到所述應(yīng)用程序的權(quán)限信息。
[0065]優(yōu)選的,所述權(quán)限信息包括:讀取短信記錄的權(quán)限,讀取聯(lián)系人信息的權(quán)限、讀取通話記錄的權(quán)限、獲取位置信息的權(quán)限,和/或,獲取設(shè)備信息的權(quán)限。
[0066]優(yōu)選的,所述權(quán)限配置單元具體用于:在確定所述安裝行為為升級安裝或者覆蓋安裝時,讀取上一次安裝保存的權(quán)限文件;根據(jù)所述權(quán)限文件對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0067]優(yōu)選的,所述權(quán)限配置單元具體用于:直接利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置,或者,將所述權(quán)限信息展示給用戶,使得用戶在所述權(quán)限信息基礎(chǔ)上對權(quán)限進(jìn)行選擇配置。
[0068]優(yōu)選的,所述權(quán)限配置單元利用上次安裝所述應(yīng)用程序之后保存的權(quán)限信息對本次安裝進(jìn)行權(quán)限配置。
[0069]優(yōu)選的,所述權(quán)限配置單元根據(jù)所述應(yīng)用程序的標(biāo)識與預(yù)先設(shè)置的應(yīng)用程序列表進(jìn)行匹配,如果匹配成功,則針對所述應(yīng)用程序執(zhí)行所述權(quán)限配置方案,其中,所述應(yīng)用程序列表包括需要執(zhí)行所述權(quán)限配置方案的應(yīng)用程序名單。
[0070]優(yōu)選的,所述裝置還包括:
[0071]安裝狀態(tài)確定單元,用于從框架層獲取安裝狀態(tài)代碼,所述應(yīng)用程序?qū)油ㄟ^所述安裝狀態(tài)代碼,判斷此次安裝是否成功;
[0072]權(quán)限文件保存單元,如果此次安裝成功,將此次安裝的權(quán)限配置保存為APK文件,用于下次安裝使用。
[0073]優(yōu)選的,所述裝置還包括:
[0074]卸載監(jiān)聽單元,通過所述應(yīng)用程序?qū)颖O(jiān)聽所述框架層是否對所述應(yīng)用程序進(jìn)行卸載操作;
[0075]權(quán)限刪除單元,如果監(jiān)聽到對所述應(yīng)用程序進(jìn)行卸載操作,用于將保存的與所述應(yīng)用程序相關(guān)的權(quán)限信息文件刪除。
[0076]在此提供的算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0077]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0078]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
[0079]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0080]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。
[0081 ] 本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的配置應(yīng)用程序的權(quán)限的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機(jī)程序和計算機(jī)程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0082]應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機(jī)來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0083]本發(fā)明提供以下方案:
[0084]Al、一種配置應(yīng)用程序的權(quán)限的方法,包括:
[0085]應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊,對框架層中安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽;
[0086]通過所述監(jiān)聽確定正在安裝或待安裝的應(yīng)用程序,獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息;
[0087]通過所述安裝類型確定安裝行為為升級安裝或覆蓋安裝時,利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0088]A2、如Al所述的方法,所述應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊對框架層中安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽包括:
[0089]所述應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊調(diào)用框架層中的API,實現(xiàn)對框架層安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽。
[0090]A3、如A2所述的方法,所述通過所述監(jiān)聽獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息包括:
[0091]通過調(diào)用框架層中的API,得到包含安裝包信息的APK文件;
[0092]通過調(diào)用框架層中的API消息函數(shù),得到所述應(yīng)用程序的安裝類型;
[0093]解析所述APK文件,得到操作系統(tǒng)的功能清單文件,從該功能清單文件中獲取到所述應(yīng)用程序的權(quán)限信息。
[0094]A4、如Al所述的方法,所述權(quán)限信息包括:讀取短信記錄的權(quán)限,讀取聯(lián)系人信息的權(quán)限、讀取通話記錄的權(quán)限、獲取位置信息的權(quán)限,和/或,獲取設(shè)備信息的權(quán)限。
[0095]A5、如Al所述的方法,所述利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置包括:
[0096]在確定所述安裝行為為升級安裝或者覆蓋安裝時,讀取上一次安裝保存的權(quán)限文件;
[0097]根據(jù)所述權(quán)限文件對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0098]A6、如Al所述的方法,所述利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置包括:
[0099]直接利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置,或者,將所述權(quán)限信息展示給用戶,使得用戶在所述權(quán)限信息基礎(chǔ)上對權(quán)限進(jìn)行選擇配置。
[0100]A7、如Al所述的方法,所述用于對所述應(yīng)用程序的權(quán)限進(jìn)行配置的權(quán)限信息是上次安裝所述應(yīng)用程序之后保存的。
[0101]A8、如Al所述的方法,所述方法還包括:
[0102]預(yù)先設(shè)置應(yīng)用程序列表,所述列表中包括需要執(zhí)行所述權(quán)限配置方案的應(yīng)用程序名單;
[0103]根據(jù)所述應(yīng)用程序的標(biāo)識與所述列表進(jìn)行匹配,如果匹配成功,則針對所述應(yīng)用程序執(zhí)行所述權(quán)限配置方案。
[0104]A9、如Al所述的方法,在安裝完所述應(yīng)用程序之后,還包括:
[0105]框架層向應(yīng)用程序?qū)臃祷匕惭b狀態(tài)代碼;
[0106]所述應(yīng)用程序?qū)油ㄟ^所述安裝狀態(tài)代碼,判斷此次安裝是否成功,如果安裝成功,將此次安裝的權(quán)限配置保存為APK文件,用于下次安裝使用。
[0107]AlO^n Al所述的方法,所述方法還包括:
[0108]通過所述應(yīng)用程序?qū)拥谋O(jiān)聽模塊,監(jiān)聽所述框架層是否對所述應(yīng)用程序進(jìn)行卸載操作;
[0109]如果監(jiān)聽到對所述應(yīng)用程序進(jìn)行卸載操作,則將保存的與所述應(yīng)用程序相關(guān)的權(quán)限信息文件刪除。
[0110]B11、一種配置應(yīng)用程序的權(quán)限的裝置,包括:
[0111]監(jiān)聽單元,用于利用應(yīng)用程序?qū)訉蚣軐又邪惭b所述應(yīng)用程序的行為進(jìn)行監(jiān)聽;
[0112]信息獲取單元,用于通過所述監(jiān)聽單元確定正在安裝或待安裝的應(yīng)用程序,獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息;
[0113]權(quán)限配置單元,用于通過所述安裝類型確定安裝行為為升級安裝或覆蓋安裝時,利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0114]B12、如Bll所述的裝置,所述監(jiān)聽單元具體用于:通過所述應(yīng)用程序?qū)诱{(diào)用框架層中的API,實現(xiàn)對框架層安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽。
[0115]B13、如BlO所述的裝置,所述信息獲取單元具體用于:通過調(diào)用框架層中的API,得到包含安裝包信息的APK文件;通過調(diào)用框架層中的API消息函數(shù),得到所述應(yīng)用程序的安裝類型;并且,解析所述APK文件,得到操作系統(tǒng)的功能清單文件,從該功能清單文件中獲取到所述應(yīng)用程序的權(quán)限信息。
[0116]B14、如Bll所述的裝置,所述權(quán)限信息包括:讀取短信記錄的權(quán)限,讀取聯(lián)系人信息的權(quán)限、讀取通話記錄的權(quán)限、獲取位置信息的權(quán)限,和/或,獲取設(shè)備信息的權(quán)限。
[0117]B15、如Bll所述的裝置,所述權(quán)限配置單元具體用于:在確定所述安裝行為為升級安裝或者覆蓋安裝時,讀取上一次安裝保存的權(quán)限文件;根據(jù)所述權(quán)限文件對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
[0118]B16dn Bll所述的裝置,權(quán)限配置單元具體用于:直接利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置,或者,將所述權(quán)限信息展示給用戶,使得用戶在所述權(quán)限信息基礎(chǔ)上對權(quán)限進(jìn)行選擇配置。
[0119]B17、如Bll所述的裝置,所述權(quán)限配置單元利用上次安裝所述應(yīng)用程序之后保存的權(quán)限信息對本次安裝進(jìn)行權(quán)限配置。
[0120]BlS^n Bll所述的裝置,所述權(quán)限配置單元根據(jù)所述應(yīng)用程序的標(biāo)識與預(yù)先設(shè)置的應(yīng)用程序列表進(jìn)行匹配,如果匹配成功,則針對所述應(yīng)用程序執(zhí)行所述權(quán)限配置方案,其中,所述應(yīng)用程序列表包括需要執(zhí)行所述權(quán)限配置方案的應(yīng)用程序名單。
[0121]B19、如Bll所述的裝置,還包括:
[0122]安裝狀態(tài)確定單元,用于從框架層獲取安裝狀態(tài)代碼,所述應(yīng)用程序?qū)油ㄟ^所述安裝狀態(tài)代碼,判斷此次安裝是否成功;
[0123]權(quán)限文件保存單元,如果此次安裝成功,將此次安裝的權(quán)限配置保存為APK文件,用于下次安裝使用。
[0124]B20、如Bll所述的裝置,還包括:
[0125]卸載監(jiān)聽單元,通過所述應(yīng)用程序?qū)颖O(jiān)聽所述框架層是否對所述應(yīng)用程序進(jìn)行卸載操作;
[0126]權(quán)限刪除單元,如果監(jiān)聽到對所述應(yīng)用程序進(jìn)行卸載操作,用于將保存的與所述應(yīng)用程序相關(guān)的權(quán)限信息文件刪除。
【權(quán)利要求】
1.一種配置應(yīng)用程序的權(quán)限的方法,其特征在于,包括: 應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊,對框架層中安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽; 通過所述監(jiān)聽確定正在安裝或待安裝的應(yīng)用程序,獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息; 通過所述安裝類型確定安裝行為為升級安裝或覆蓋安裝時,利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
2.如權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊對框架層中安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽包括: 所述應(yīng)用程序?qū)油ㄟ^監(jiān)聽模塊調(diào)用框架層中的API,實現(xiàn)對框架層安裝所述應(yīng)用程序的行為進(jìn)行監(jiān)聽。
3.如權(quán)利要求2所述的方法,其特征在于,所述通過所述監(jiān)聽獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息包括: 通過調(diào)用框架層中的API,得到包含安裝包信息的APK文件; 通過調(diào)用框架層中的API消息函數(shù),得到所述應(yīng)用程序的安裝類型; 解析所述APK文件,得到操作系統(tǒng)的功能清單文件,從該功能清單文件中獲取到所述應(yīng)用程序的權(quán)限信息。
4.如權(quán)利要求1所述的方法,其特征在于,所述權(quán)限信息包括:讀取短信記錄的權(quán)限,讀取聯(lián)系人信息的權(quán)限、讀取通話記錄的權(quán)限、獲取位置信息的權(quán)限,和/或,獲取設(shè)備信息的權(quán)限。
5.如權(quán)利要求1所述的方法,其特征在于,所述利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置包括: 在確定所述安裝行為為升級安裝或者覆蓋安裝時,讀取上一次安裝保存的權(quán)限文件; 根據(jù)所述權(quán)限文件對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
6.如權(quán)利要求1所述的方法,其特征在于,所述利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置包括: 直接利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置,或者,將所述權(quán)限信息展示給用戶,使得用戶在所述權(quán)限信息基礎(chǔ)上對權(quán)限進(jìn)行選擇配置。
7.如權(quán)利要求1所述的方法,其特征在于,所述用于對所述應(yīng)用程序的權(quán)限進(jìn)行配置的權(quán)限信息是上次安裝所述應(yīng)用程序之后保存的。
8.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 預(yù)先設(shè)置應(yīng)用程序列表,所述列表中包括需要執(zhí)行所述權(quán)限配置方案的應(yīng)用程序名單; 根據(jù)所述應(yīng)用程序的標(biāo)識與所述列表進(jìn)行匹配,如果匹配成功,則針對所述應(yīng)用程序執(zhí)行所述權(quán)限配置方案。
9.如權(quán)利要求1所述的方法,其特征在于,在安裝完所述應(yīng)用程序之后,還包括: 框架層向應(yīng)用程序?qū)臃祷匕惭b狀態(tài)代碼; 所述應(yīng)用程序?qū)油ㄟ^所述安裝狀態(tài)代碼,判斷此次安裝是否成功,如果安裝成功,將此次安裝的權(quán)限配置保存為APK文件,用于下次安裝使用。
10.一種配置應(yīng)用程序的權(quán)限的裝置,其特征在于,包括: 監(jiān)聽單元,用于利用應(yīng)用程序?qū)訉蚣軐又邪惭b所述應(yīng)用程序的行為進(jìn)行監(jiān)聽;信息獲取單元,用于通過所述監(jiān)聽單元確定正在安裝或待安裝的應(yīng)用程序,獲取到包含所述應(yīng)用程序的安裝類型以及權(quán)限信息的安裝包信息; 權(quán)限配置單元,用于通過所述安裝類型確定安裝行為為升級安裝或覆蓋安裝時,利用所述權(quán)限信息對所述應(yīng)用程序的權(quán)限進(jìn)行配置。
【文檔編號】G06F21/51GK104200159SQ201410453132
【公開日】2014年12月10日 申請日期:2014年9月5日 優(yōu)先權(quán)日:2014年9月5日
【發(fā)明者】莊慶, 宋爽 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司