亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種應(yīng)用程序權(quán)限管理的方法、裝置、系統(tǒng)及移動(dòng)終端的制作方法

文檔序號(hào):7824318閱讀:280來(lái)源:國(guó)知局
一種應(yīng)用程序權(quán)限管理的方法、裝置、系統(tǒng)及移動(dòng)終端的制作方法
【專利摘要】本發(fā)明提供了一種應(yīng)用程序權(quán)限管理的方法、裝置、系統(tǒng)及移動(dòng)終端。其中,該方法包括接收第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)第二應(yīng)用程序的自啟動(dòng)請(qǐng)求;獲取應(yīng)用程序授權(quán)權(quán)限列表;根據(jù)所述自啟動(dòng)請(qǐng)求中攜帶的所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)判斷是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求,如果所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)與所述應(yīng)用程序授權(quán)權(quán)限列表中存儲(chǔ)的攔截策略一致,則攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。本發(fā)明能夠盡量減少某些無(wú)用的自啟動(dòng)應(yīng)用程序?qū)K端資源的占用。
【專利說(shuō)明】一種應(yīng)用程序權(quán)限管理的方法、裝置、系統(tǒng)及移動(dòng)終端

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)安全【技術(shù)領(lǐng)域】,具體而言,涉及一種應(yīng)用程序權(quán)限管理的方法、裝置、系統(tǒng)及移動(dòng)終端。

【背景技術(shù)】
[0002]目前,終端內(nèi)各軟件自啟動(dòng)的方式主要包括三種:第一種是通過(guò)在系統(tǒng)中注冊(cè)一些廣播(Broadcast),通過(guò)這些廣播來(lái)調(diào)起指定應(yīng)用程序的方式;第二種是通過(guò)服務(wù)(Service)來(lái)調(diào)起指定應(yīng)用程序的方式;第三種是通過(guò)內(nèi)容提供者(Content Provider)來(lái)調(diào)起指定應(yīng)用程序的方式。
[0003]通過(guò)上述三種方式自啟動(dòng)的應(yīng)用程序并非均為系統(tǒng)或其他應(yīng)用程序運(yùn)行所必須的條件,終端內(nèi)某些應(yīng)用程序的運(yùn)行并不依賴于另外一些應(yīng)用程序的運(yùn)行,而且終端內(nèi)的某些自啟動(dòng)應(yīng)用程序也并非用戶所期望啟動(dòng)的,因此,某些對(duì)其他應(yīng)用程序以及對(duì)用戶來(lái)說(shuō)無(wú)用的應(yīng)用程序的自啟動(dòng)不僅會(huì)占用多余的系統(tǒng)資源、降低系統(tǒng)的運(yùn)行速度,而且還會(huì)耗費(fèi)更多的電量。
[0004]針對(duì)上述問(wèn)題,現(xiàn)有的禁止終端內(nèi)應(yīng)用程序自啟動(dòng)的方法是通過(guò)直接調(diào)用系統(tǒng)API中的PM disable函數(shù)來(lái)禁止Broadcast方式對(duì)指定應(yīng)用程序的自啟動(dòng)。目前,調(diào)用該P(yáng)M disable函數(shù)的方法無(wú)法禁止通過(guò)Service方式和Content Provider方式自啟動(dòng)的應(yīng)用程序。


【發(fā)明內(nèi)容】

[0005]有鑒于此,本發(fā)明要解決的一個(gè)技術(shù)問(wèn)題是提供一種應(yīng)用程序權(quán)限管理的方法,以盡量減少某些無(wú)用的自啟動(dòng)應(yīng)用程序?qū)K端資源的占用。
[0006]一種應(yīng)用程序權(quán)限管理的方法,包括:
[0007]接收第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)第二應(yīng)用程序的自啟動(dòng)請(qǐng)求;
[0008]獲取應(yīng)用程序授權(quán)權(quán)限列表;
[0009]根據(jù)所述自啟動(dòng)請(qǐng)求中攜帶的所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)判斷是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求,如果所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)與所述應(yīng)用程序授權(quán)權(quán)限列表中存儲(chǔ)的攔截策略一致,則攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0010]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述獲取應(yīng)用程序授權(quán)權(quán)限列表之前,還包括:
[0011]從本地策略數(shù)據(jù)庫(kù)中檢索獲得與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略,將獲得的攔截策略存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中。
[0012]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述將獲得的攔截策略存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中之前,還包括:
[0013]通過(guò)遠(yuǎn)程策略接口向云端服務(wù)器發(fā)送請(qǐng)求并獲得反饋的與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略。
[0014]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述方法還包括:
[0015]判斷所述第二應(yīng)用程序是否為系統(tǒng)應(yīng)用程序;
[0016]如為系統(tǒng)應(yīng)用程序,并且在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0017]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述方法還包括:
[0018]如果在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0019]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述方法還包括:
[0020]在接收到所述第一應(yīng)用程序通過(guò)內(nèi)容提供者方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求后,記錄所述自啟動(dòng)請(qǐng)求、內(nèi)容提供者標(biāo)識(shí)、所述第一應(yīng)用程序的包標(biāo)識(shí)以及所述第二應(yīng)用程序的包標(biāo)識(shí);
[0021]將所記錄的所述自啟動(dòng)請(qǐng)求、所述內(nèi)容提供者標(biāo)識(shí)、所述第一應(yīng)用程序的包標(biāo)識(shí)以及所述第二應(yīng)用程序的包標(biāo)識(shí)反饋給用戶;
[0022]向用戶界面彈窗告警,接收用戶指令以獲得處理策略。
[0023]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述攔截策略包括基于所述第一應(yīng)用程序的包標(biāo)識(shí)、所述第二應(yīng)用程序的包標(biāo)識(shí)和云端服務(wù)器為各應(yīng)用程序設(shè)置的安全級(jí)別確定是否攔截。
[0024]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述方法還包括:
[0025]獲得攔截過(guò)程的通知欄條目的信息,所述通知欄條目的信息包括所述通知欄條目的顯示視圖和所述通知欄條目的操作行為響應(yīng);
[0026]展現(xiàn)所述通知欄條目的顯示視圖;
[0027]如果獲取到用戶對(duì)該通知欄條目的操作行為,根據(jù)所述通知欄條目的點(diǎn)擊響應(yīng)行為,對(duì)用戶對(duì)所述通知欄條目的操作行為,以內(nèi)存緩存或數(shù)據(jù)庫(kù)緩存的方式,進(jìn)行響應(yīng)處理。
[0028]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述方法還包括:
[0029]獲取移動(dòng)終端中已安裝應(yīng)用程序的程序列表;
[0030]針對(duì)程序列表中的每個(gè)應(yīng)用程序,在本地的省電數(shù)據(jù)庫(kù)中查找是否存儲(chǔ)有該應(yīng)用程序的省電策略;
[0031]統(tǒng)計(jì)具有省電策略的各應(yīng)用程序的耗電信息,并根據(jù)耗電信息對(duì)各應(yīng)用程序進(jìn)行排序;
[0032]當(dāng)有耗電信息超過(guò)設(shè)定耗電級(jí)別的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
[0033]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述方法還包括:
[0034]獲得所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù);
[0035]獲得所述第二應(yīng)用程序自啟動(dòng)的總次數(shù);
[0036]根據(jù)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)和所述第二應(yīng)用程序自啟動(dòng)的總次數(shù),獲得比例值;
[0037]當(dāng)有比例值達(dá)到或超過(guò)設(shè)定門限值的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
[0038]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,
[0039]所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)橄嚓P(guān)的應(yīng)用程序;或者
[0040]所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)椴幌嚓P(guān)的應(yīng)用程序。
[0041]本發(fā)明要解決的另一個(gè)技術(shù)問(wèn)題是提供一種應(yīng)用程序權(quán)限管理的裝置,以盡量減少某些無(wú)用的自啟動(dòng)應(yīng)用程序?qū)K端資源的占用。
[0042]一種應(yīng)用程序權(quán)限管理的裝置,包括:
[0043]自啟動(dòng)請(qǐng)求接收單元,用于接收第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)第二應(yīng)用程序的自啟動(dòng)請(qǐng)求;
[0044]策略獲取單元,用于獲取應(yīng)用程序授權(quán)權(quán)限列表;
[0045]攔截處理單元,用于根據(jù)所述自啟動(dòng)請(qǐng)求中攜帶的所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)判斷是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求,如果所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)與所述應(yīng)用程序授權(quán)權(quán)限列表中存儲(chǔ)的攔截策略一致,則攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0046]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述策略獲取單元,還用于
[0047]從本地策略數(shù)據(jù)庫(kù)中檢索獲得與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略,將獲得的攔截策略存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中。
[0048]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述策略獲取單元,還用于
[0049]通過(guò)遠(yuǎn)程策略接口向云端服務(wù)器發(fā)送請(qǐng)求并獲得反饋的與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略。
[0050]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述裝置還包括:
[0051]應(yīng)用程序類型判斷單元,用于判斷所述第二應(yīng)用程序是否為系統(tǒng)應(yīng)用程序,如為系統(tǒng)應(yīng)用程序,并且在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0052]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述方法還包括:
[0053]自啟動(dòng)次數(shù)判斷單元,用于如果在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0054]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述裝置還包括:
[0055]交互單元,被注冊(cè)為系統(tǒng)服務(wù),外殼應(yīng)用程序通過(guò)其內(nèi)建的交互接口與該交互單元通信,借助該交互單元向用戶界面彈窗實(shí)現(xiàn)人機(jī)交互。
[0056]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,
[0057]所述裝置還包括:
[0058]日志記錄單元,用于在接收到所述第一應(yīng)用程序通過(guò)內(nèi)容提供者方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求后,記錄所述自啟動(dòng)請(qǐng)求、內(nèi)容提供者標(biāo)識(shí)、所述第一應(yīng)用程序的包標(biāo)識(shí)以及所述第二應(yīng)用程序的包標(biāo)識(shí);
[0059]日志反饋單元,用于將所記錄的所述自啟動(dòng)請(qǐng)求、所述內(nèi)容提供者標(biāo)識(shí)、所述第一應(yīng)用程序的包標(biāo)識(shí)以及所述第二應(yīng)用程序的包標(biāo)識(shí)反饋給用戶;
[0060]所述交互單元,用于向用戶界面彈窗告警,接收用戶指令以獲得處理策略。
[0061]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述攔截策略包括基于所述第一應(yīng)用程序的包標(biāo)識(shí)、所述第二應(yīng)用程序的包標(biāo)識(shí)和云端服務(wù)器為各應(yīng)用程序設(shè)置的安全級(jí)別確定是否攔截。
[0062]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述裝置還包括:
[0063]響應(yīng)單元,用于獲得攔截過(guò)程的通知欄條目的信息,所述通知欄條目的信息包括所述通知欄條目的顯示視圖和所述通知欄條目的操作行為響應(yīng),展現(xiàn)所述通知欄條目的顯示視圖,如果獲取到用戶對(duì)該通知欄條目的操作行為,根據(jù)所述通知欄條目的點(diǎn)擊響應(yīng)行為,對(duì)用戶對(duì)所述通知欄條目的操作行為,以內(nèi)存緩存或數(shù)據(jù)庫(kù)緩存的方式,進(jìn)行響應(yīng)處理。
[0064]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述裝置還包括:
[0065]耗電統(tǒng)計(jì)單元,用于獲取移動(dòng)終端中已安裝應(yīng)用程序的程序列表,針對(duì)程序列表中的每個(gè)應(yīng)用程序,在本地的省電數(shù)據(jù)庫(kù)中查找是否存儲(chǔ)有該應(yīng)用程序的省電策略,統(tǒng)計(jì)具有省電策略的各應(yīng)用程序的耗電信息,并根據(jù)耗電信息對(duì)各應(yīng)用程序進(jìn)行排序,當(dāng)有耗電信息超過(guò)設(shè)定耗電級(jí)別的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
[0066]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,所述裝置還包括:
[0067]啟動(dòng)次數(shù)統(tǒng)計(jì)單元,用于獲得所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù),獲得所述第二應(yīng)用程序自啟動(dòng)的總次數(shù),根據(jù)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)和所述第二應(yīng)用程序自啟動(dòng)的總次數(shù),獲得比例值,當(dāng)有比例值達(dá)到或超過(guò)設(shè)定門限值的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
[0068]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步地,
[0069]所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)橄嚓P(guān)的應(yīng)用程序;或者
[0070]所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)椴幌嚓P(guān)的應(yīng)用程序。
[0071]本發(fā)明要解決的又一個(gè)技術(shù)問(wèn)題是提供一種移動(dòng)終端,以盡量減少某些無(wú)用的自啟動(dòng)應(yīng)用程序?qū)K端資源的占用。
[0072]—種移動(dòng)終端,包括:廣播接收機(jī)組件、服務(wù)組件以及前述實(shí)施例的應(yīng)用程序權(quán)限管理的裝置。
[0073]根據(jù)本發(fā)明的移動(dòng)終端的一個(gè)實(shí)施例,進(jìn)一步地,所述移動(dòng)終端還包括內(nèi)容提供者組件。
[0074]本發(fā)明要解決的又一個(gè)技術(shù)問(wèn)題是提供一種應(yīng)用程序權(quán)限管理的系統(tǒng),以盡量減少某些無(wú)用的自啟動(dòng)應(yīng)用程序?qū)K端資源的占用。
[0075]一種應(yīng)用程序權(quán)限管理的系統(tǒng),包括云端服務(wù)器和前述實(shí)施例的移動(dòng)終端。
[0076]本發(fā)明的應(yīng)用程序權(quán)限管理的方法、裝置、系統(tǒng)及移動(dòng)終端,由于可以根據(jù)調(diào)用的應(yīng)用程序的包標(biāo)識(shí)即第一應(yīng)用程序的包標(biāo)識(shí)和被調(diào)用的應(yīng)用程序的包標(biāo)識(shí)即第二應(yīng)用程序的包標(biāo)識(shí)攔截掉對(duì)用戶無(wú)用的和/或?qū)ζ渌麘?yīng)用程序的啟動(dòng)無(wú)任何幫助的應(yīng)用程序,因此,不僅可以提高終端的運(yùn)行速度、而且還可以為終端節(jié)省電量。

【專利附圖】

【附圖說(shuō)明】
[0077]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0078]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用程序權(quán)限管理的方法的流程示意圖。
[0079]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用程序權(quán)限管理的裝置的結(jié)構(gòu)示意圖。
[0080]圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的移動(dòng)終端的結(jié)構(gòu)示意圖。
[0081]圖4是根據(jù)本發(fā)明另一實(shí)施例的移動(dòng)終端的結(jié)構(gòu)示意圖。
[0082]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用程序權(quán)限管理的系統(tǒng)的結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0083]下面參照附圖對(duì)本發(fā)明進(jìn)行更全面的描述,其中說(shuō)明本發(fā)明的示例性實(shí)施例。下面將結(jié)合本發(fā)明實(shí)施例中的附圖對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例都屬于本發(fā)明保護(hù)的范圍。
[0084]Android 系統(tǒng)有四大組件:Activity 組件、Service 組件、Broadcast Receiver 組件和Content Provider組件,這四大組件均可以被ActivityManagerService所管理。在應(yīng)用程序被自啟動(dòng)時(shí)會(huì)通過(guò)ActivityManagerService執(zhí)行。
[0085]本發(fā)明的方法所應(yīng)用程序的環(huán)境包括可與遠(yuǎn)程服務(wù)器或云端通信的移動(dòng)終端,該移動(dòng)終端可以安裝有Android操作系統(tǒng),該系統(tǒng)處于未經(jīng)ROOT授權(quán)或者已經(jīng)獲取ROOT權(quán)限的狀態(tài)。
[0086]眾所周知,Root權(quán)限是指Unix類操作系統(tǒng)(包括Linux、Android)的系統(tǒng)管理員權(quán)限,類似于Windows (視窗)系統(tǒng)中的Administrator (管理員)權(quán)限;Root權(quán)限可以訪問(wèn)和修改用戶的移動(dòng)設(shè)備中幾乎所有的文件(Android系統(tǒng)文件及用戶文件,不包括ROM)。但是,由于目前移動(dòng)終端系統(tǒng)對(duì)于Root權(quán)限的管理是非常嚴(yán)格的,通常情況下多數(shù)應(yīng)用程序或程序都不具備Root權(quán)限,因此對(duì)于某些需要具備Root權(quán)限的操作就無(wú)法執(zhí)行,例如安裝或卸載應(yīng)用程序等操作;同時(shí),此類操作調(diào)用進(jìn)程每次執(zhí)行相應(yīng)操作時(shí)都需要向系統(tǒng)申請(qǐng)Root權(quán)限,但如果此時(shí)其他應(yīng)用程序進(jìn)程正在使用Root權(quán)限進(jìn)行相關(guān)操作,則此調(diào)用進(jìn)程的Root權(quán)限申請(qǐng)便無(wú)法成功;更甚者,如果用戶在系統(tǒng)中設(shè)置了禁用Root權(quán)限的操作,則相關(guān)調(diào)用進(jìn)程便無(wú)法進(jìn)行相關(guān)操作。
[0087]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用程序權(quán)限管理的方法的流程示意圖。
[0088]如圖1所示,該實(shí)施例可以包括以下步驟:
[0089]102,接收第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)第二應(yīng)用程序的自啟動(dòng)請(qǐng)求;
[0090]104,獲取應(yīng)用程序授權(quán)權(quán)限列表;
[0091]106,根據(jù)所述自啟動(dòng)請(qǐng)求中攜帶的所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)判斷是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求,如果所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)與所述應(yīng)用程序授權(quán)權(quán)限列表中存儲(chǔ)的攔截策略一致,則攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0092]可選地,所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)橄嚓P(guān)的應(yīng)用程序。例如,第一應(yīng)用程序與第二應(yīng)用程序可以為淘寶與支付寶這兩個(gè)阿里系的應(yīng)用程序;或者,再例如,第一應(yīng)用程序與第二應(yīng)用程序可以為百度影音與百度搜索這兩個(gè)百度系的應(yīng)用程序;或者,再例如,第一應(yīng)用程序與第二應(yīng)用程序可以為360殺毒與360助手這兩個(gè)360系的應(yīng)用程序,等等,本實(shí)施例對(duì)此不進(jìn)行特別限定。
[0093]可選地,所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)椴幌嚓P(guān)的應(yīng)用程序。例如,第一應(yīng)用程序與第二應(yīng)用程序可以為阿里系的淘寶與百度系的百度影音這兩個(gè)不同系的應(yīng)用程序;或者,再例如,第一應(yīng)用程序與第二應(yīng)用程序可以為360系的手機(jī)助手與阿里系的支付寶這兩個(gè)不同系的應(yīng)用程序,等等,本實(shí)施例對(duì)此不進(jìn)行特別限定。
[0094]通常,操作系統(tǒng)可以包括應(yīng)用程序?qū)?app層)和系統(tǒng)框架層(framework層)。本發(fā)明一種優(yōu)選實(shí)現(xiàn)方式是,對(duì)app層和framework層進(jìn)行改進(jìn),從而利用這兩層的協(xié)同配合實(shí)現(xiàn)在智能終端上快速啟動(dòng)通信。具體的,可以在app層增加一個(gè)監(jiān)聽單元,用于監(jiān)聽framework層喚醒組件從而實(shí)現(xiàn)應(yīng)用程序自啟的操作,從而可以在應(yīng)用程序自啟之前,獲取到負(fù)責(zé)應(yīng)用程序自啟的組件的相關(guān)信息,并分析該組件的類型和相關(guān)應(yīng)用程序的包標(biāo)識(shí),根據(jù)所獲得的攔截策略,確定是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0095]以Android系統(tǒng)為例,在啟動(dòng)一個(gè)應(yīng)用程序之前,會(huì)首先在framework層分析出需要啟動(dòng)的組件名稱,同時(shí)framework層會(huì)記錄與該應(yīng)用程序啟動(dòng)相關(guān)的信息,比如被啟動(dòng)的組件名稱,該組件的類型(是Activity組件、Service組件、Broadcast Receiver組件還是Content Provider組件)等。通過(guò)注入和java hook,就能對(duì)framework層記錄該信息的接口進(jìn)行監(jiān)聽,并將該信息返回給app層的監(jiān)聽單元(例如,手機(jī)殺毒客戶端),再由該殺毒客戶端決定是否允許該應(yīng)用程序的啟動(dòng)行為。因此,實(shí)際上監(jiān)聽行為是app層通過(guò)監(jiān)聽framework層的接口調(diào)用實(shí)現(xiàn)的。因?yàn)檫@個(gè)接口本身就提供了被喚醒組件的相關(guān)信息,所以只需要對(duì)從framework層獲取的數(shù)據(jù)進(jìn)行少量解析即可得到。
[0096]具體地,可以采用中斷機(jī)制實(shí)現(xiàn)對(duì)調(diào)取組件的接口進(jìn)行監(jiān)聽。具體的,可采用hook (掛鉤或鉤子)機(jī)制實(shí)現(xiàn)對(duì)framework層中的用于調(diào)取組件的接口進(jìn)行監(jiān)聽。本領(lǐng)域技術(shù)人員了解,hook機(jī)制允許應(yīng)用程序截獲處理操作系統(tǒng)的消息或特定事件。鉤子實(shí)際上是一個(gè)處理消息的程序段,通過(guò)系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒(méi)有到達(dá)目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。這時(shí)鉤子函數(shù)即可以加工處理(改變)該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。在本發(fā)明實(shí)施例中,采用hook機(jī)制中斷調(diào)取應(yīng)用程序?qū)?yīng)的組件的過(guò)程,實(shí)現(xiàn)在應(yīng)用程序自啟之前獲取其組件信息。
[0097]下面對(duì)這四種組件類型作簡(jiǎn)單介紹。
[0098](I) Activity 組件
[0099]應(yīng)用程序中,一個(gè)activity組件通常就是一個(gè)單獨(dú)的屏幕,它上面可以顯示一些控件也可以監(jiān)聽并處理用戶的事件做出響應(yīng)。
[0100](2) Broadcast Receiver 組件
[0101]應(yīng)用程序可以使用Broadcast Receiver組件對(duì)外部事件進(jìn)行過(guò)濾,從而只對(duì)感興趣的外部事件如當(dāng)電話呼入時(shí),或者數(shù)據(jù)網(wǎng)絡(luò)可用時(shí),進(jìn)行接收并做出響應(yīng)。BroadcastReceiver組件沒(méi)有用戶界面。然而,它們可以啟動(dòng)一個(gè)Activity組件或Service組件來(lái)響應(yīng)它們收到的信息,或者用狀態(tài)欄管理器(Notificat1nManager)來(lái)通知用戶。通知可以用很多種方式來(lái)吸引用戶的注意力,如閃動(dòng)背燈、震動(dòng)、播放聲音等。一般來(lái)說(shuō)是在狀態(tài)欄上放一個(gè)持久的圖標(biāo),用戶可以打開它并獲取消息。
[0102](3) Service 組件
[0103]一個(gè)Service組件是一段長(zhǎng)生命周期的沒(méi)有用戶界面的程序,可以用來(lái)開發(fā)如監(jiān)控類程序。例如,一個(gè)正在從播放列表中播放歌曲的媒體播放器。舉例來(lái)說(shuō),在一個(gè)媒體播放器的應(yīng)用程序中,應(yīng)該會(huì)有多個(gè)activity組件,讓使用者可以選擇歌曲并播放歌曲。然而,音樂(lè)重放這個(gè)功能并沒(méi)有對(duì)應(yīng)的activity組件,因?yàn)槭褂谜弋?dāng)然會(huì)認(rèn)為在導(dǎo)航到其它屏幕時(shí)音樂(lè)應(yīng)該還在播放的。在這個(gè)例子中,媒體播放器這個(gè)activity組件會(huì)使用Context.startService O來(lái)啟動(dòng)一個(gè)service組件,從而可以在后臺(tái)保持音樂(lè)的播放。同時(shí),系統(tǒng)也將保持這個(gè)service組件一直執(zhí)行,直到這個(gè)service組件運(yùn)行結(jié)束。另外,還可以通過(guò)使用Context.bindService O方法,連接到一個(gè)service組件上(如果這個(gè)service組件還沒(méi)有運(yùn)行將啟動(dòng)它)。當(dāng)連接到一個(gè)service組件之后,還可以service組件提供的接口與它進(jìn)行通信。以媒體播放器這個(gè)例子來(lái)說(shuō),還可以進(jìn)行暫停、重播等操作。
[0104](4) Content Provider 組件
[0105]Android系統(tǒng)平臺(tái)提供了 Content Provider組件,使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序。這些數(shù)據(jù)可以存儲(chǔ)在文件系統(tǒng)中、在一個(gè)SQLite數(shù)據(jù)庫(kù)、或以任何其他合理的方式,其他應(yīng)用程序可以通過(guò)ContentResolver類從該內(nèi)容提供者中獲取或存入數(shù)據(jù),只有需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù)時(shí)才需要內(nèi)容提供者。例如,通信錄數(shù)據(jù)被多個(gè)應(yīng)用程序使用,且必須存儲(chǔ)在一個(gè)內(nèi)容提供者中。它的好處在于統(tǒng)一了數(shù)據(jù)的訪問(wèn)方式。
[0106]具體地,在104之前,還可以預(yù)先從本地策略數(shù)據(jù)庫(kù)中檢索獲得與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略,將獲得的攔截策略存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中。
[0107]進(jìn)一步地,在將獲得的攔截策略存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中之前,還可以進(jìn)一步通過(guò)遠(yuǎn)程策略接口向云端服務(wù)器發(fā)送請(qǐng)求并獲得反饋的與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略。這樣,則可以將從本地策略數(shù)據(jù)庫(kù)中所獲得的攔截策略和從云端服務(wù)器所獲得的攔截策略,一并存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中。
[0108]所述攔截策略在設(shè)置的時(shí)候,針對(duì)每個(gè)組件可以遵循以下規(guī)則中的至少一項(xiàng)規(guī)則:
[0109]Activity組件是可視化組件,其引發(fā)的啟動(dòng)行為不能被攔截,因?yàn)檫@種行為大多由用戶觸發(fā),并非嚴(yán)格意義上的應(yīng)用程序的自啟動(dòng);
[0110]Broadcast Receiver組件的喚醒是操作系統(tǒng)的行為,因此,對(duì)該組件所引發(fā)的自啟動(dòng)請(qǐng)求一般不進(jìn)行攔截;以及
[0111]Content Provider組件所引發(fā)的自啟動(dòng)請(qǐng)求,可以將將權(quán)限交給用戶,因此,每個(gè)用戶可以根據(jù)自身需求設(shè)置個(gè)性化的過(guò)濾或攔截策略。
[0112]這樣,通過(guò)對(duì)以上這些規(guī)則的應(yīng)用,可以較準(zhǔn)確的判定第一應(yīng)用程序?qū)Φ诙?yīng)用程序的自啟動(dòng)請(qǐng)求,是否應(yīng)該被攔截,同時(shí)又不對(duì)用戶的正常使用造成困擾。
[0113]需要指出的是,在應(yīng)用程序授權(quán)權(quán)限列表中可以針對(duì)Service組件設(shè)置將被攔截的第二應(yīng)用程序的黑名單,即,如果該第二應(yīng)用程序通過(guò)Service方式自啟動(dòng),只要第一應(yīng)用程序的包標(biāo)識(shí)和第二應(yīng)用程序的包標(biāo)識(shí)存在于應(yīng)用程序授權(quán)權(quán)限列表中,均被攔截。例如,某些第二應(yīng)用程序僅禁止通過(guò)Service方式自啟動(dòng),如果該第二應(yīng)用程序通過(guò)Broadcast方式等其他方式自啟動(dòng),貝U不禁止。
[0114]同樣,某些應(yīng)用程序僅禁止通過(guò)Service方式自啟動(dòng),如果該應(yīng)用程序通過(guò)Broadcast方式自啟動(dòng),則不禁止。上述不同的設(shè)置方式可以應(yīng)用程序于不同的應(yīng)用程序場(chǎng)旦
-5^ O
[0115]此外,在預(yù)先設(shè)置的應(yīng)用程序授權(quán)權(quán)限列表庫(kù)中,某些應(yīng)用程序?qū)?yīng)有一應(yīng)用程序授權(quán)權(quán)限列表,應(yīng)用程序授權(quán)權(quán)限列表以應(yīng)用程序標(biāo)識(shí)(即,前述的包標(biāo)識(shí))為標(biāo)記。在每一應(yīng)用程序授權(quán)權(quán)限列表中,存儲(chǔ)有用戶預(yù)先為該應(yīng)用程序授權(quán)的行為權(quán)限。如果該列表中沒(méi)有對(duì)應(yīng)于該應(yīng)用程序的行為權(quán)限,則沒(méi)有具體權(quán)限建議,但用戶仍可對(duì)所有權(quán)限授權(quán)或禁止。
[0116]應(yīng)用程序的行為權(quán)限在AndroidManifest.xml文件中的聲明形式如下:
[0117]文件名:AndroidManifest.xml
[0118]〈uses-permiss1n android:name = “使用權(quán)限,,/>
[0119]可以使用Java中的可擴(kuò)展標(biāo)記語(yǔ)言(XML,Extensible Markup Language)文件解析器,解析AndroidManifest.xml文件中的權(quán)限描述部分,以獲取應(yīng)用程序申請(qǐng)的行為權(quán)限列表。當(dāng)然,也可以使用其他XML解析器,或者,使用其他編程語(yǔ)言,例如,C/C++, python等編程語(yǔ)言開發(fā)XML解析器,對(duì)AndroidManifest.xml文件進(jìn)行解析,以獲得相應(yīng)的應(yīng)用程序所申請(qǐng)的行為權(quán)限列表。
[0120]其中,AndroidManifest.xml文件是安裝包中較為重要的全局配置文件,其負(fù)責(zé)向系統(tǒng)注冊(cè)Android系統(tǒng)的四大組件以及向系統(tǒng)申請(qǐng)權(quán)限等。在加殼安裝包中,將其作為需要加入加殼安裝包的重要內(nèi)部文件進(jìn)行考慮,以與原安裝包完全一致的副本被包含到加殼安裝包中。由于加殼安裝包中的AndroidManifest.xml文件即為原安裝包的同名文件,其包名相同,故加殼安裝包在系統(tǒng)中安裝運(yùn)行宿主應(yīng)用程序之后,以AndroidManifest.xml向系統(tǒng)注冊(cè)各個(gè)組件和申請(qǐng)系統(tǒng)權(quán)限,以此便建立了各個(gè)組件的入口,使經(jīng)反射調(diào)用的目標(biāo)應(yīng)用程序的各個(gè)組件均可以被ActivityManagerService調(diào)用,而不必為所述各個(gè)組件構(gòu)造ActivityThread和提供相應(yīng)的LoadedApk對(duì)象,省去運(yùn)行上下文環(huán)境的程序?qū)崿F(xiàn)環(huán)節(jié)。同理,反射調(diào)用所導(dǎo)致的PackageManagerService對(duì)各大組件是否合法注冊(cè)的問(wèn)題,也將因AndroidManifest.xml的注冊(cè)而被克服。
[0121]具體地,在接收到Service第一應(yīng)用程序?qū)Φ诙?yīng)用程序的自啟動(dòng)請(qǐng)求后,ActivityManagerService獲悉該自啟動(dòng)請(qǐng)求來(lái)自Service,在執(zhí)行對(duì)第二應(yīng)用程序的調(diào)用之前,首先根據(jù)自啟動(dòng)請(qǐng)求中攜帶的第一應(yīng)用程序的包標(biāo)識(shí)和第二應(yīng)用程序的包標(biāo)識(shí)進(jìn)行判斷。例如,可以將接收到的第一應(yīng)用程序的包標(biāo)識(shí)和第二應(yīng)用程序的包標(biāo)識(shí)與預(yù)先存儲(chǔ)的應(yīng)用程序授權(quán)權(quán)限列表中的包標(biāo)識(shí)進(jìn)行比較,如果應(yīng)用程序授權(quán)權(quán)限列表中存在與第一應(yīng)用程序的包標(biāo)識(shí)和第二應(yīng)用程序的包標(biāo)識(shí)相同的包標(biāo)識(shí),則ActiVityManagerService攔截通過(guò)Broadcast方式對(duì)應(yīng)用程序的調(diào)用。
[0122]在該實(shí)施例中,由于可以根據(jù)調(diào)用的應(yīng)用程序的包標(biāo)識(shí)即第一應(yīng)用程序的包標(biāo)識(shí)和被調(diào)用的應(yīng)用程序的包標(biāo)識(shí)即第二應(yīng)用程序的包標(biāo)識(shí)攔截掉對(duì)用戶無(wú)用的和/或?qū)ζ渌麘?yīng)用程序的啟動(dòng)無(wú)任何幫助的應(yīng)用程序,因此,不僅可以提高終端的運(yùn)行速度、而且還可以為終端節(jié)省電量。
[0123]在本發(fā)明方法的一實(shí)施例中,可以統(tǒng)計(jì)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù),進(jìn)而,則可以根據(jù)所獲得的所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù),確定是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0124]進(jìn)一步地,如果在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0125]這樣可以防止陷入頻繁地殺掉第二應(yīng)用程序,然后第一應(yīng)用程序掉起第二應(yīng)用程序再頻繁地自啟動(dòng)這個(gè)惡性循環(huán),不僅耗費(fèi)了大量的系統(tǒng)資源、浪費(fèi)了電量,而且還降低了終端的運(yùn)行速度。
[0126]在本發(fā)明方法的另一實(shí)施例中,可以調(diào)用AS的cleanUpRemovedTaskLocked函數(shù),以獲取當(dāng)前所有的進(jìn)程并且根據(jù)攔截策略遍歷判斷可疑進(jìn)程的WD以及進(jìn)程包列表中包含請(qǐng)求自啟動(dòng)的應(yīng)用程序的包名的進(jìn)程,將該進(jìn)程加入可殺進(jìn)程列表。
[0127]進(jìn)一步地,由于應(yīng)用程序至少包括系統(tǒng)應(yīng)用程序和用戶應(yīng)用程序,針對(duì)系統(tǒng)應(yīng)用程序,如果通過(guò)Service方式自啟動(dòng)時(shí),可以按如下方式處理:
[0128]判斷第二應(yīng)用程序是否為系統(tǒng)應(yīng)用程序;
[0129]如為系統(tǒng)應(yīng)用程序,并且在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0130]這樣可以防止陷入頻繁地殺掉系統(tǒng)應(yīng)用程序,然后系統(tǒng)應(yīng)用程序再頻繁地自啟動(dòng)這個(gè)惡性循環(huán),不僅耗費(fèi)了大量的系統(tǒng)資源、浪費(fèi)了電量,而且還降低了終端的運(yùn)行速度。
[0131]在實(shí)際應(yīng)用程序中,一個(gè)應(yīng)用程序的自啟動(dòng)方式并不僅限于上述的Service方式,還可以通過(guò)Content Provider方式實(shí)現(xiàn)應(yīng)用程序的自啟動(dòng)。由于有大量的通過(guò)ContentProvider方式調(diào)用的應(yīng)用程序,并且Content Provider的數(shù)目也非常多,因此,不便于預(yù)先在應(yīng)用程序授權(quán)權(quán)限列表中設(shè)置好針對(duì)Content Provider方式的攔截策略。在此情況下,可以將通過(guò)Content Provider方式禁止應(yīng)用程序自啟動(dòng)的權(quán)限交給用戶,因此,每個(gè)用戶可以根據(jù)自身需求設(shè)置個(gè)性化的過(guò)濾或攔截策略。
[0132]具體地,在接收到所述第一應(yīng)用程序通過(guò)內(nèi)容提供者方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求后,記錄所述自啟動(dòng)請(qǐng)求、內(nèi)容提供者標(biāo)識(shí)、所述第一應(yīng)用程序的包標(biāo)識(shí)以及所述第二應(yīng)用程序的包標(biāo)識(shí),可以將這些記錄信息存儲(chǔ)到頑固自啟日志中。
[0133]即,ActivityManagerService在接收到第一應(yīng)用程序通過(guò) Content Provider 方式對(duì)第二應(yīng)用程序的調(diào)用請(qǐng)求后,首先判斷該調(diào)用請(qǐng)求是通過(guò)何種方式發(fā)起的,如果是通過(guò)Content Provider方式發(fā)起的,則先對(duì)自啟動(dòng)請(qǐng)求的相關(guān)信息進(jìn)行記錄,以便于用戶根據(jù)這些記錄的信息確定相應(yīng)的攔截策略。
[0134]進(jìn)一步地,在ActivityManagerService記錄相關(guān)信息的同時(shí),可以通過(guò)向用戶彈出界面的方式將所記錄的所述自啟動(dòng)請(qǐng)求、所述內(nèi)容提供者標(biāo)識(shí)、所述第一應(yīng)用程序的包標(biāo)識(shí)以及所述第二應(yīng)用程序的包標(biāo)識(shí)反饋給用戶;并向用戶界面彈窗告警。在用戶接收到這些信息后,根據(jù)自身需求輸入攔截策略,例如,對(duì)某些第一應(yīng)用程序調(diào)起某些第二應(yīng)用程序的自啟動(dòng)進(jìn)行攔截、允許某些第一應(yīng)用程序調(diào)起某些第二應(yīng)用程序的自啟動(dòng)等。然后,則可以接收用戶指令以獲得處理策略,例如,對(duì)相應(yīng)的自啟動(dòng)進(jìn)行攔截或執(zhí)行對(duì)第二應(yīng)用程序的自啟動(dòng)。這樣就可以把第一應(yīng)用程序與第二應(yīng)用程序這兩個(gè)應(yīng)用程序之間的調(diào)用關(guān)系給切斷。其中,應(yīng)用程序的常見自啟動(dòng)方式包括Bind Service方式或Content Provider方式。
[0135]例如,可以通過(guò)預(yù)先注入到系統(tǒng)服務(wù)進(jìn)程中的攔截模塊攔截到第二應(yīng)用程序的危險(xiǎn)操作信息后,向第二應(yīng)用程序發(fā)送相應(yīng)的詢問(wèn)信息;第二應(yīng)用程序根據(jù)詢問(wèn)信息彈出相應(yīng)的提示框,并接收用戶輸入的是否進(jìn)行相應(yīng)操作的確認(rèn)信息后向攔截模塊返回;攔截模塊根據(jù)接收的確認(rèn)信息,允許或阻斷系統(tǒng)服務(wù)進(jìn)程對(duì)第二應(yīng)用程序的危險(xiǎn)操作;這樣能夠做到對(duì)第二應(yīng)用程序行為進(jìn)行有效地?cái)r截,攔截后,暫停相應(yīng)的操作,并通知用戶該操作,只有得到用戶的確認(rèn)信息后才執(zhí)行相應(yīng)的操作。
[0136]此外,如果用戶允許某個(gè)第一應(yīng)用程序通過(guò)Content Provider方式對(duì)某個(gè)第二應(yīng)用程序進(jìn)行自啟動(dòng),也可以將該策略存儲(chǔ)在應(yīng)用程序授權(quán)權(quán)限列表中,一旦接收到該第一應(yīng)用程序通過(guò)Content Provider方式對(duì)該第二應(yīng)用程序的自啟動(dòng)請(qǐng)求,則不再記錄且不向用戶反饋該信息,而是直接對(duì)該第二應(yīng)用程序進(jìn)行自啟動(dòng)。
[0137]同樣地,如果用戶禁止某個(gè)第一應(yīng)用程序通過(guò)Content Provider方式對(duì)某個(gè)第二應(yīng)用程序進(jìn)行自啟動(dòng),也可以將該策略存儲(chǔ)在應(yīng)用程序授權(quán)權(quán)限列表中,一旦接收到該第一應(yīng)用程序通過(guò)Content Provider方式對(duì)該第二應(yīng)用程序的自啟動(dòng),也不再記錄且不向用戶反饋該信息,而是直接殺掉對(duì)該第二應(yīng)用程序自啟動(dòng)的進(jìn)程。
[0138]換句話說(shuō),ActivityManagerService將記錄那些用戶未明確指示是否禁止或允許第一應(yīng)用程序通過(guò)Content Provider方式調(diào)起自啟動(dòng)的第二應(yīng)用程序,這樣不僅可以提高處理效率,同時(shí)還可以提升用戶的使用體驗(yàn),避免頻繁地向用戶彈出確認(rèn)窗口。
[0139]在上述實(shí)施例中,攔截策略可以包括但不限于基于第一應(yīng)用程序的包標(biāo)識(shí)和第二應(yīng)用程序的包標(biāo)識(shí)和云端服務(wù)器為各應(yīng)用程序設(shè)置的安全級(jí)別確定是否攔截。
[0140]進(jìn)一步地,所述云端服務(wù)器為各應(yīng)用程序設(shè)置的安全級(jí)別包括黑、灰和白三個(gè)級(jí)另O,分別對(duì)應(yīng)禁止安裝、由用戶選擇是否安裝以及徑行安裝。
[0141]對(duì)于準(zhǔn)備或者正在進(jìn)行安裝的應(yīng)用程序而言,本發(fā)明可以通過(guò)將自身注冊(cè)為默認(rèn)安裝器的形式,獲取該應(yīng)用程序的安裝廣播信息。繼而,將這個(gè)新裝應(yīng)用程序作為目標(biāo)應(yīng)用程序,將其安裝包或簽名之類的特征信息通過(guò)遠(yuǎn)程規(guī)則庫(kù)接口發(fā)送到云端服務(wù)器中,由云端服務(wù)器對(duì)其做出安全性判斷。一種實(shí)施例中,云端服務(wù)器為應(yīng)用程序的安全級(jí)別設(shè)定黑、灰、白三種級(jí)別,分別代表不同危險(xiǎn)程度,并設(shè)定對(duì)應(yīng)的處理規(guī)則。例如,黑應(yīng)用程序禁止安裝,灰應(yīng)用程序由用戶自行選擇,白應(yīng)用程序則可徑行安裝。當(dāng)然,可以進(jìn)一步簡(jiǎn)化為灰、白兩種,或者簡(jiǎn)化為黑、白兩種。本領(lǐng)域技術(shù)人員熟悉服務(wù)器的這種云端控制技術(shù),將在后續(xù)進(jìn)一步概要揭示。無(wú)論如何,本發(fā)明將從本機(jī)遠(yuǎn)程規(guī)則庫(kù)接口中獲得云端服務(wù)器有關(guān)這些應(yīng)用程序的處理規(guī)則的反饋,利用反饋結(jié)果做出相應(yīng)的后續(xù)處理。具體而言,當(dāng)針對(duì)當(dāng)前目標(biāo)應(yīng)用程序返回黑應(yīng)用程序標(biāo)識(shí)時(shí),可以隨即停止該目標(biāo)應(yīng)用程序的安裝;當(dāng)標(biāo)識(shí)為白應(yīng)用程序標(biāo)識(shí)或灰應(yīng)用程序標(biāo)識(shí)時(shí),則可放行安裝。出于交互性的考慮,當(dāng)完成遠(yuǎn)程判斷后,本發(fā)明將向用戶界面彈窗提醒用戶有關(guān)判斷結(jié)果,并顯示相應(yīng)的處理建議,詢問(wèn)用戶是否確定對(duì)當(dāng)前新裝應(yīng)用程序建構(gòu)主動(dòng)防御環(huán)境,用戶從中確定對(duì)當(dāng)前新裝目標(biāo)應(yīng)用程序進(jìn)行主動(dòng)防御的標(biāo)識(shí)后,即確定了該目標(biāo)應(yīng)用程序。
[0142]同理,用戶確定該目標(biāo)應(yīng)用程序之后,本發(fā)明會(huì)將該目標(biāo)應(yīng)用程序的安裝包存放至所述的指定目錄中。另外,出于本發(fā)明后續(xù)將為該已確定的目標(biāo)應(yīng)用程序建構(gòu)主動(dòng)防御環(huán)境的考慮,本發(fā)明會(huì)立即停止該目標(biāo)應(yīng)用程序的安裝,停止安裝的操作既可以發(fā)生在用戶確定該目標(biāo)應(yīng)用程序之前也可以發(fā)生在之后。
[0143]此外,可以將主防程序駐入到系統(tǒng)中的多個(gè)點(diǎn),以協(xié)助實(shí)現(xiàn)上述禁止應(yīng)用程序的自啟動(dòng)。
[0144]具體地,可以將未知應(yīng)用程序安裝包或簽名之類的特征信息、或請(qǐng)求自啟動(dòng)應(yīng)用程序的特征信息通過(guò)遠(yuǎn)程規(guī)則庫(kù)接口發(fā)送到云端服務(wù)器中,由云端服務(wù)器對(duì)其做出安全性判斷。
[0145]如前所述,由客戶端通過(guò)遠(yuǎn)程規(guī)則庫(kù)接口發(fā)送到云端服務(wù)器的特征信息,包括:Android安裝包的包名,和/或,版本號(hào),和/或,數(shù)字簽名,和/或,Android組件receiver的特征,和/或,Android組件service的特征,和/或,Android組件activity的特征,和/或,可執(zhí)行文件中的指令或字符串,和/或,Android安裝包目錄下各文件的MD5值(簽名)。
[0146]實(shí)現(xiàn)了本發(fā)明的方法或裝置的客戶端,將指定的特征信息上傳到云端服務(wù)器,在云端服務(wù)器預(yù)置的規(guī)則庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,云端服務(wù)器預(yù)置的規(guī)則庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合;
[0147]云端服務(wù)器規(guī)則庫(kù)中預(yù)置了數(shù)千條特征記錄,其中,第一條特征記錄中列出了某種病毒的Android安裝包包名,第二條特征記錄中列出了某個(gè)正常應(yīng)用程序的Android安裝包版本號(hào)及其數(shù)字簽名的MD5值,第三條特征記錄中列出了某個(gè)正常應(yīng)用程序的Android安裝包包名及其receiver特征,第四條特征記錄中列出了某種木馬的Android安裝包包名、版本號(hào)及其ELF文件中的特定字符串,等等。
[0148]關(guān)于安全等級(jí)的標(biāo)識(shí),即黑,白(安全)或者灰(未知,可疑)三種標(biāo)識(shí),可以進(jìn)一步的表不為:
[0149]安全:該應(yīng)用程序是一個(gè)正常的應(yīng)用程序,沒(méi)有任何威脅用戶手機(jī)安全的行為;
[0150]危險(xiǎn):該應(yīng)用程序存在安全風(fēng)險(xiǎn),有可能該應(yīng)用程序本身就是惡意軟件;也有可能該應(yīng)用程序本來(lái)是正規(guī)公司發(fā)布的正常軟件,但是因?yàn)榇嬖诎踩┒矗瑢?dǎo)致用戶的隱私、手機(jī)安全受到威脅;
[0151]謹(jǐn)慎:該應(yīng)用程序是一個(gè)正常的應(yīng)用程序,但是存在一些問(wèn)題,例如會(huì)讓用戶不小心被扣費(fèi),或者有不友好的廣告遭到投訴等;當(dāng)發(fā)現(xiàn)這類應(yīng)用程序之后,會(huì)提示用戶謹(jǐn)慎使用并告知該應(yīng)用程序可能的行為,但是由用戶自行決定是否清除該應(yīng)用程序;
[0152]木馬:該應(yīng)用程序是病毒、木馬或者其他惡意軟件,此處為了簡(jiǎn)單統(tǒng)稱為木馬,但并不表示該應(yīng)用程序僅僅是木馬。
[0153]在本發(fā)明方法的一實(shí)施例中,還可以進(jìn)一步獲得攔截過(guò)程的通知欄條目的信息,所述通知欄條目的信息包括所述通知欄條目的顯示視圖和所述通知欄條目的操作行為響應(yīng)。進(jìn)而,則可以展現(xiàn)所述通知欄條目的顯示視圖。如果獲取到用戶對(duì)該通知欄條目的操作行為,則可以根據(jù)所述通知欄條目的點(diǎn)擊響應(yīng)行為,對(duì)用戶對(duì)所述通知欄條目的操作行為,以內(nèi)存緩存或數(shù)據(jù)庫(kù)緩存的方式,進(jìn)行響應(yīng)處理。
[0154]具體地,在第二應(yīng)用程序發(fā)送通知欄條目的時(shí)候,會(huì)構(gòu)造一個(gè)Notificat1n實(shí)體類,用于表示一條即將顯示的通知欄條目。Notificat1n實(shí)體類中會(huì)包含該通知欄條目的所有信息,比較重要的是,所述通知欄條目的顯示視圖和所述通知欄條目的操作行為響應(yīng)。
[0155]所述通知欄條目的顯示視圖,具體可以是通過(guò)RemoteViews對(duì)象實(shí)現(xiàn)。其中,RemoteViews對(duì)象是一個(gè)可序列化的對(duì)象,可以將RemoteViews對(duì)象序列化為字節(jié)流存儲(chǔ)在磁盤等物理文件中。當(dāng)需要查看通知欄條目時(shí),可以從磁盤等物理文件中讀取出來(lái)所對(duì)應(yīng)的字節(jié)流,然后,在反序列化為RemoteViews對(duì)象,在通過(guò)apply方法即可構(gòu)造出View對(duì)象來(lái),這樣,就能夠?qū)崿F(xiàn)展現(xiàn)所述通知欄條目的顯示視圖的目的了。
[0156]需要說(shuō)明的是,所述物理文件,可以以內(nèi)存緩存的方式進(jìn)行存儲(chǔ),具有快速響應(yīng)的特點(diǎn),移動(dòng)終端重啟之后會(huì)消失,或者還可以以數(shù)據(jù)庫(kù)緩存的方式進(jìn)行存儲(chǔ),具有持久化的特點(diǎn),移動(dòng)終端重啟之后不會(huì)消失,可以重新加載到內(nèi)存中,等等,本實(shí)施例對(duì)此不進(jìn)行特別限定。
[0157]所述通知欄條目的操作行為響應(yīng),是指通知欄條目的操作行為如單擊后的響應(yīng)行為。響應(yīng)行為,具體可以是通過(guò)PendingIntent來(lái)實(shí)現(xiàn)。而PendingIntent是一個(gè)不可序列化的,其是用android ActvityManagerService來(lái)維護(hù)的事件句柄。該事件句柄實(shí)際上對(duì)應(yīng)了一個(gè)Intent對(duì)象,該Intent對(duì)象是一個(gè)可序列化的對(duì)象,可以將Intent對(duì)象序列化為字節(jié)流存儲(chǔ)在磁盤等物理文件中。當(dāng)需要對(duì)用戶對(duì)所述通知欄條目的操作行為進(jìn)行響應(yīng)時(shí),可以從磁盤等物理文件中讀取出來(lái)所對(duì)應(yīng)的字節(jié)流,然后,在反序列化為Intent對(duì)象。這樣,通過(guò)Intent對(duì)象,可以代替PendingIntent來(lái)實(shí)現(xiàn)操作行為事件如單擊事件。
[0158]需要說(shuō)明的是,所述物理文件,可以以內(nèi)存緩存的方式進(jìn)行存儲(chǔ),具有快速響應(yīng)的特點(diǎn),移動(dòng)終端重啟之后會(huì)消失,或者還可以以數(shù)據(jù)庫(kù)緩存的方式進(jìn)行存儲(chǔ),具有持久化的特點(diǎn),移動(dòng)終端重啟之后不會(huì)消失,可以重新加載到內(nèi)存中,等等,本實(shí)施例對(duì)此不進(jìn)行特別限定。
[0159]具體地,具體可以通過(guò)代碼注入方式,檢測(cè)到第二應(yīng)用程序發(fā)送通知欄條目所采用的應(yīng)用程序接口(Applicat1n Programming Interface,API)調(diào)用,進(jìn)而,從中取出通知欄條目的對(duì)象參數(shù)。
[0160]在本發(fā)明方法的再一實(shí)施例中,還可以根據(jù)應(yīng)用程序的包名設(shè)置省電策略;云端服務(wù)器根據(jù)設(shè)置有省電策略的程序生成省電數(shù)據(jù)庫(kù)。云端服務(wù)器若接收到新增的程序及該應(yīng)用程序的省電策略,則更新到省電數(shù)據(jù)庫(kù)中。也就是說(shuō),省電數(shù)據(jù)庫(kù)中對(duì)應(yīng)記載有程序以及該應(yīng)用程序的省電策略。
[0161]省電數(shù)據(jù)庫(kù)中記載的省電策略可以包括:卸載、禁止自啟;省電策略還可以包括:結(jié)束運(yùn)行、保持現(xiàn)狀或適合長(zhǎng)期運(yùn)行等。
[0162]例如,技術(shù)人員可以為健康類程序、或時(shí)鐘天氣類程序設(shè)置保持現(xiàn)狀省電策略;而為賬號(hào)同步等程序設(shè)置禁止自啟省電策略。
[0163]較佳地,為了移動(dòng)終端可以獲取更有針對(duì)性的省電數(shù)據(jù)庫(kù),并減少獲取的省電數(shù)據(jù)庫(kù)所占用的空間,云端服務(wù)器為不同機(jī)型的移動(dòng)終端分別定制省電數(shù)據(jù)庫(kù)的一種具體方法包括:多個(gè)安裝有監(jiān)控軟件的移動(dòng)終端,若監(jiān)控軟件發(fā)現(xiàn)本移動(dòng)終端中安裝了不認(rèn)識(shí)的程序,可以將該應(yīng)用程序的程序信息與本移動(dòng)終端的機(jī)型信息一并通過(guò)互聯(lián)網(wǎng)等網(wǎng)絡(luò)上傳到云端的服務(wù)器;由專業(yè)的技術(shù)人員為云端服務(wù)器接收的程序設(shè)置省電策略,例如根據(jù)機(jī)型信息model設(shè)置省電策略;云端服務(wù)器針對(duì)每個(gè)機(jī)型信息,根據(jù)該機(jī)型信息名下設(shè)置有省電策略的程序,生成對(duì)應(yīng)該機(jī)型信息的省電數(shù)據(jù)庫(kù)。
[0164]云端服務(wù)器生成并維護(hù)省電數(shù)據(jù)庫(kù),移動(dòng)終端可以從服務(wù)器下載省電數(shù)據(jù)庫(kù)并存儲(chǔ)于本地,用于向用戶進(jìn)行省電建議。
[0165]移動(dòng)終端從服務(wù)器下載得到省電數(shù)據(jù)庫(kù)的一種具體方法可以是,移動(dòng)終端將本移動(dòng)終端的機(jī)型信息通過(guò)網(wǎng)絡(luò)向服務(wù)器上報(bào);例如,2G內(nèi)存的聯(lián)通版華為榮耀3C智能手機(jī),當(dāng)判斷出本手機(jī)連通網(wǎng)絡(luò)后,從預(yù)存的系統(tǒng)信息中提取出本手機(jī)的型號(hào)U30-H10,作為機(jī)型信息通過(guò)網(wǎng)絡(luò)向服務(wù)器上報(bào)。
[0166]服務(wù)器接收到移動(dòng)終端上報(bào)的機(jī)型信息后,從與各機(jī)型信息所分別對(duì)應(yīng)的省電數(shù)據(jù)庫(kù)中,查找到與接收的機(jī)型信息相對(duì)應(yīng)的省電數(shù)據(jù)庫(kù),并通過(guò)網(wǎng)絡(luò)返回到上報(bào)機(jī)型信息的移動(dòng)終端。
[0167]移動(dòng)終端接收服務(wù)器返回的省電數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。
[0168]本發(fā)明實(shí)施例的移動(dòng)終端基于下載的省電數(shù)據(jù)庫(kù),依照下述流程進(jìn)行省電建議,具體可以包括如下步驟:
[0169]步驟一,獲取移動(dòng)終端中已安裝應(yīng)用程序的程序列表。
[0170]具體地,移動(dòng)終端從本移動(dòng)終端的操作系統(tǒng)所記錄的系統(tǒng)信息中,獲取已安裝的應(yīng)用程序的程序列表。程序列表可以包括:應(yīng)用程序的名稱和安裝路徑;程序列表還可以包括:應(yīng)用程序的所占空間大小、當(dāng)前運(yùn)行的進(jìn)程和服務(wù)數(shù)量,以及累計(jì)運(yùn)行時(shí)長(zhǎng)等等。
[0171]步驟二,針對(duì)程序列表中的每個(gè)應(yīng)用程序,在本地的省電數(shù)據(jù)庫(kù)中查找是否存儲(chǔ)有該應(yīng)用程序的省電策略。
[0172]具體地,移動(dòng)終端針對(duì)程序列表中的每個(gè)應(yīng)用程序,判斷是否可以在下載的省電數(shù)據(jù)庫(kù)中查找到該應(yīng)用程序:若是,則在省電數(shù)據(jù)庫(kù)中查找出的該應(yīng)用程序的省電策略;否則,不查找該應(yīng)用程序的省電策略。
[0173]步驟三,統(tǒng)計(jì)具有省電策略的各應(yīng)用程序的耗電信息,并根據(jù)耗電信息對(duì)各應(yīng)用程序進(jìn)行排序。
[0174]具體地,移動(dòng)終端對(duì)于每個(gè)查找出省電策略的應(yīng)用程序,檢測(cè)該應(yīng)用程序的耗電信息;根據(jù)檢測(cè)得到的耗電信息,統(tǒng)計(jì)出該應(yīng)用程序的單位時(shí)間耗電量;進(jìn)而統(tǒng)計(jì)出每個(gè)查找出省電策略的應(yīng)用程序的單位時(shí)間耗電量占比;根據(jù)統(tǒng)計(jì)出的單位時(shí)間耗電量占比對(duì)各應(yīng)用程序進(jìn)行排序。應(yīng)用程序的耗電信息包括:該應(yīng)用程序的喚醒次數(shù)和運(yùn)行時(shí)間等。
[0175]較佳地,移動(dòng)終端針對(duì)每個(gè)查找出省電策略的應(yīng)用程序,可以根據(jù)該應(yīng)用程序的單位時(shí)間耗電量占比,確定該應(yīng)用程序的耗電級(jí)別;若判斷出存在耗電級(jí)別超過(guò)設(shè)定級(jí)別的應(yīng)用程序,則提示存在耗電程序,并顯示耗電級(jí)別超過(guò)設(shè)定級(jí)別的程序的個(gè)數(shù)。
[0176]步驟四,當(dāng)有耗電信息超過(guò)設(shè)定耗電級(jí)別的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
[0177]在本發(fā)明方法的再一實(shí)施例中,還可以統(tǒng)計(jì)所述第二應(yīng)用程序自啟動(dòng)的次數(shù),進(jìn)而,則可以根據(jù)所統(tǒng)計(jì)的第二應(yīng)用程序自啟動(dòng)的次數(shù),依照下述流程進(jìn)行省電建議,具體可以包括如下步驟:
[0178]步驟一,獲得所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù);
[0179]步驟二,獲得所述第二應(yīng)用程序自啟動(dòng)的總次數(shù);
[0180]步驟三,根據(jù)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)和所述第二應(yīng)用程序自啟動(dòng)的總次數(shù),獲得比例值;
[0181]步驟四,當(dāng)有比例值達(dá)到或超過(guò)設(shè)定門限值的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
[0182]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用程序權(quán)限管理的裝置的結(jié)構(gòu)示意圖。
[0183]如圖2所示,該實(shí)施例中的裝置20可以包括攔自啟動(dòng)請(qǐng)求接收單元202、策略獲取單元204以及攔截處理單元206。其中,
[0184]自啟動(dòng)請(qǐng)求接收單元202,用于接收第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)第二應(yīng)用程序的自啟動(dòng)請(qǐng)求;
[0185]策略獲取單元204,用于獲取應(yīng)用程序授權(quán)權(quán)限列表;
[0186]攔截處理單元206,用于根據(jù)所述自啟動(dòng)請(qǐng)求中攜帶的所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)判斷是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求,如果所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)與所述應(yīng)用程序授權(quán)權(quán)限列表中存儲(chǔ)的攔截策略一致,則攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0187]在該實(shí)施例中,由于可以根據(jù)被調(diào)用的第一應(yīng)用程序的包標(biāo)識(shí)和第二應(yīng)用程序的包標(biāo)識(shí)攔截掉對(duì)用戶無(wú)用的和/或?qū)ζ渌麘?yīng)用程序的啟動(dòng)無(wú)任何幫助的應(yīng)用程序,因此,不僅可以提高終端的運(yùn)行速度、而且還可以為終端節(jié)省電量。
[0188]進(jìn)一步地,在本發(fā)明裝置的另一實(shí)施例中,所述策略獲取單元204,還用于從本地策略數(shù)據(jù)庫(kù)中檢索獲得與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略,將獲得的攔截策略存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中。
[0189]進(jìn)一步地,所述策略獲取單元204,還用于通過(guò)遠(yuǎn)程策略接口向云端服務(wù)器發(fā)送請(qǐng)求并獲得反饋的與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略。
[0190]進(jìn)一步地,在本發(fā)明裝置的又一實(shí)施例中,該裝置還可以包括:
[0191]應(yīng)用程序類型判斷單元,用于判斷所述第二應(yīng)用程序是否為系統(tǒng)應(yīng)用程序,如為系統(tǒng)應(yīng)用程序,并且在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0192]進(jìn)一步地,在本發(fā)明裝置的再一實(shí)施例中,該裝置還可以包括:
[0193]自啟動(dòng)次數(shù)判斷單元,用于如果在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
[0194]進(jìn)一步地,在本發(fā)明裝置的再一實(shí)施例中,該裝置還可以包括:
[0195]交互單元,被注冊(cè)為系統(tǒng)服務(wù),外殼應(yīng)用程序通過(guò)其內(nèi)建的交互接口與該交互單元通信,借助該交互單元向用戶界面彈窗實(shí)現(xiàn)人機(jī)交互。
[0196]進(jìn)一步地,在本發(fā)明裝置的再一實(shí)施例中,該裝置還可以包括:
[0197]日志記錄單元,用于在接收到所述第一應(yīng)用程序通過(guò)內(nèi)容提供者方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求后,記錄所述自啟動(dòng)請(qǐng)求、內(nèi)容提供者標(biāo)識(shí)、所述第一應(yīng)用程序的包標(biāo)識(shí)以及所述第二應(yīng)用程序的包標(biāo)識(shí);
[0198]日志反饋單元,用于將所記錄的所述自啟動(dòng)請(qǐng)求、所述內(nèi)容提供者標(biāo)識(shí)、所述第一應(yīng)用程序的包標(biāo)識(shí)以及所述第二應(yīng)用程序的包標(biāo)識(shí)反饋給用戶;
[0199]交互單元,用于向用戶界面彈窗告警,接收用戶指令以獲得處理策略。
[0200]此外,上述實(shí)施例中的攔截策略可以包括但不限于基于應(yīng)用程序的包標(biāo)識(shí)和云端服務(wù)器為各應(yīng)用程序設(shè)置的安全級(jí)別確定是否攔截。
[0201]進(jìn)一步地,所述云端服務(wù)器為各應(yīng)用程序設(shè)置的安全級(jí)別包括黑、灰和白三個(gè)級(jí)另O,分別對(duì)應(yīng)禁止、由用戶選擇以及直接執(zhí)行。
[0202]在本發(fā)明裝置的再一實(shí)施例中,該裝置還可以包括:
[0203]響應(yīng)單元,用于獲得攔截過(guò)程的通知欄條目的信息,所述通知欄條目的信息包括所述通知欄條目的顯示視圖和所述通知欄條目的操作行為響應(yīng),展現(xiàn)所述通知欄條目的顯示視圖,如果獲取到用戶對(duì)該通知欄條目的操作行為,根據(jù)所述通知欄條目的點(diǎn)擊響應(yīng)行為,對(duì)用戶對(duì)所述通知欄條目的操作行為,以內(nèi)存緩存或數(shù)據(jù)庫(kù)緩存的方式,進(jìn)行響應(yīng)處理。
[0204]在本發(fā)明裝置的再一實(shí)施例中,該裝置還可以包括:
[0205]耗電統(tǒng)計(jì)單元,用于獲取移動(dòng)終端中已安裝應(yīng)用程序的程序列表,針對(duì)程序列表中的每個(gè)應(yīng)用程序,在本地的省電數(shù)據(jù)庫(kù)中查找是否存儲(chǔ)有該應(yīng)用程序的省電策略,統(tǒng)計(jì)具有省電策略的各應(yīng)用程序的耗電信息,并根據(jù)耗電信息對(duì)各應(yīng)用程序進(jìn)行排序,當(dāng)有耗電信息超過(guò)設(shè)定耗電級(jí)別的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
[0206]在本發(fā)明裝置的再一實(shí)施例中,該裝置還可以包括:
[0207]啟動(dòng)次數(shù)統(tǒng)計(jì)單元,用于獲得所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù),獲得所述第二應(yīng)用程序自啟動(dòng)的總次數(shù),根據(jù)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)和所述第二應(yīng)用程序自啟動(dòng)的總次數(shù),獲得比例值,當(dāng)有比例值達(dá)到或超過(guò)設(shè)定門限值的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
[0208]在本發(fā)明裝置的再一實(shí)施例中,
[0209]所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)橄嚓P(guān)的應(yīng)用程序;或者
[0210]所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)椴幌嚓P(guān)的應(yīng)用程序。
[0211]需要指出的是,上述應(yīng)用程序權(quán)限管理的裝置可以單獨(dú)設(shè)置或設(shè)置在Activity組件內(nèi)。
[0212]圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的移動(dòng)終端的結(jié)構(gòu)示意圖。
[0213]如圖3所示,該實(shí)施例中的移動(dòng)終端30可以包括:廣播接收機(jī)組件302、服務(wù)組件304以及應(yīng)用程序權(quán)限管理的裝置306。其中,應(yīng)用程序權(quán)限管理的裝置306可以通過(guò)前述實(shí)施例實(shí)現(xiàn)。并且,廣播接收機(jī)組件302和服務(wù)組件304分別與應(yīng)用程序權(quán)限管理的裝置306交互自啟動(dòng)信息。
[0214]圖4是根據(jù)本發(fā)明另一實(shí)施例的移動(dòng)終端的結(jié)構(gòu)示意圖。
[0215]如圖4所示,與圖3中的實(shí)施例相比,該實(shí)施例中的移動(dòng)終端40還可以包括:內(nèi)容提供者組件402。其中,內(nèi)容提供者組件402與應(yīng)用程序權(quán)限管理的裝置306交互通過(guò)Content Provider方式發(fā)起的自啟動(dòng)信息。
[0216]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用程序權(quán)限管理的系統(tǒng)的結(jié)構(gòu)示意圖。
[0217]如圖5所示,該實(shí)施例中的系統(tǒng)50可以包括云端服務(wù)器502和移動(dòng)終端504,其中,移動(dòng)終端504可以通過(guò)前述實(shí)施例實(shí)現(xiàn)。云端服務(wù)器502中存儲(chǔ)了為各應(yīng)用程序設(shè)置的安全級(jí)別,可以包括但不限于黑、灰和白三個(gè)級(jí)別,這三個(gè)級(jí)別分別對(duì)應(yīng)禁止、由用戶選擇以及直接執(zhí)行。
[0218]進(jìn)一步地,云端服務(wù)器502還可以生產(chǎn)、存儲(chǔ)并維護(hù)省電數(shù)據(jù)庫(kù)。
[0219]在實(shí)際應(yīng)用程序中,當(dāng)同一家產(chǎn)品內(nèi)部的各應(yīng)用程序之間進(jìn)行無(wú)用的相互調(diào)用時(shí),例如,騰訊系或阿里系內(nèi)部的產(chǎn)品之間互相調(diào)用時(shí),可以利用本發(fā)明的方法禁止某些無(wú)用的應(yīng)用程序的自啟動(dòng),以節(jié)省終端的系統(tǒng)資源。同樣,本發(fā)明也能夠阻斷對(duì)某些應(yīng)用程序的流氓喚醒。
[0220]需要說(shuō)明的是,本發(fā)明已經(jīng)將HOOK框架做成了服務(wù)平臺(tái),以掛鉤插件的方式為終端配置監(jiān)控,因此,其加載僅需依賴于相應(yīng)的配置文件,管理高效且易于實(shí)現(xiàn),對(duì)技術(shù)人員而言,一些簡(jiǎn)單的函數(shù)調(diào)用僅需編寫配置文件即可實(shí)現(xiàn)掛鉤插件的配置,HOOK重入、并發(fā)性會(huì)泛1?。
[0221]采用外殼應(yīng)用程序先后實(shí)現(xiàn)對(duì)程序行為的監(jiān)控和目標(biāo)應(yīng)用程序的加載,繼而借助監(jiān)控對(duì)目標(biāo)應(yīng)用程序的事件行為建立監(jiān)控,可以實(shí)現(xiàn)對(duì)Java函數(shù)、Native函數(shù)的掛鉤。
[0222]本發(fā)明不僅適用于Dalvik模式,也適用于ART模式,功能表現(xiàn)上兩者無(wú)異,使用者不需適應(yīng)不同模式編寫不同的代碼,簡(jiǎn)化開發(fā)工作(小范圍內(nèi)測(cè)試Android版本號(hào)4.4.2、4.4.3、4.4.4) ο
[0223]經(jīng)實(shí)測(cè),有如下數(shù)據(jù)佐證本發(fā)明的實(shí)例的優(yōu)越性:
[0224](I)本發(fā)明的開發(fā)實(shí)例,在16部手機(jī)上對(duì)107款主流應(yīng)用程序軟件(如QQ、微信,微博,手機(jī)衛(wèi)士,支付類、多種團(tuán)購(gòu)app,各視頻播放軟件等)進(jìn)行了穩(wěn)定性深度測(cè)試,均能正常運(yùn)行。
[0225](2)本發(fā)明的開發(fā)實(shí)例,測(cè)試涵蓋手機(jī)Android操作系統(tǒng)版本號(hào)從2.3到4.4.3。機(jī)型包括neXUS4/5、7,三星,小米,華為,聯(lián)想,索尼,HTC及部分山寨手機(jī),均獲得較為優(yōu)異的表現(xiàn)。
[0226]可能以許多方式來(lái)實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。例如,可通過(guò)軟件、硬件、固件或者軟件、硬件、固件的任何組合來(lái)實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。用于方法的步驟的上述順序僅是為了進(jìn)行說(shuō)明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說(shuō)明。此外,在一些實(shí)施例中,還可將本發(fā)明實(shí)施例為記錄在記錄介質(zhì)中的程序,這些程序包括用于實(shí)現(xiàn)根據(jù)本發(fā)明的方法的機(jī)器可讀指令。因而,本發(fā)明還覆蓋存儲(chǔ)用于執(zhí)行根據(jù)本發(fā)明的方法的程序的記錄介質(zhì)。
[0227]本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無(wú)遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對(duì)于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說(shuō)明本發(fā)明的原理和實(shí)際應(yīng)用程序,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。
【權(quán)利要求】
1.一種應(yīng)用程序權(quán)限管理的方法,其特征在于,包括: 接收第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)第二應(yīng)用程序的自啟動(dòng)請(qǐng)求; 獲取應(yīng)用程序授權(quán)權(quán)限列表; 根據(jù)所述自啟動(dòng)請(qǐng)求中攜帶的所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)判斷是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求,如果所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)與所述應(yīng)用程序授權(quán)權(quán)限列表中存儲(chǔ)的攔截策略一致,則攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的應(yīng)用程序權(quán)限管理的方法,其特征在于,所述獲取應(yīng)用程序授權(quán)權(quán)限列表之前,還包括: 從本地策略數(shù)據(jù)庫(kù)中檢索獲得與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略,將獲得的攔截策略存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中。
3.根據(jù)權(quán)利要求2所述的應(yīng)用程序權(quán)限管理的方法,其特征在于,所述將獲得的攔截策略存儲(chǔ)在所述應(yīng)用程序授權(quán)權(quán)限列表中之前,還包括: 通過(guò)遠(yuǎn)程策略接口向云端服務(wù)器發(fā)送請(qǐng)求并獲得反饋的與所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)對(duì)應(yīng)的攔截策略。
4.根據(jù)權(quán)利要求1所述的應(yīng)用程序權(quán)限管理的方法,其特征在于,所述方法還包括: 如果在設(shè)定時(shí)間內(nèi)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)達(dá)到或超過(guò)設(shè)定門限值,則不攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
5.根據(jù)權(quán)利要求1所述的應(yīng)用程序權(quán)限管理的方法,其特征在于,所述方法還包括: 獲得攔截過(guò)程的通知欄條目的信息,所述通知欄條目的信息包括所述通知欄條目的顯示視圖和所述通知欄條目的操作行為響應(yīng); 展現(xiàn)所述通知欄條目的顯示視圖; 如果獲取到用戶對(duì)該通知欄條目的操作行為,根據(jù)所述通知欄條目的點(diǎn)擊響應(yīng)行為,對(duì)用戶對(duì)所述通知欄條目的操作行為,以內(nèi)存緩存或數(shù)據(jù)庫(kù)緩存的方式,進(jìn)行響應(yīng)處理。
6.根據(jù)權(quán)利要求1?5任一權(quán)利要求所述的應(yīng)用程序權(quán)限管理的方法,其特征在于,所述方法還包括: 獲得所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù); 獲得所述第二應(yīng)用程序自啟動(dòng)的總次數(shù); 根據(jù)所述第一應(yīng)用程序?qū)λ龅诙?yīng)用程序自啟動(dòng)的次數(shù)和所述第二應(yīng)用程序自啟動(dòng)的總次數(shù),獲得比例值; 當(dāng)有比例值達(dá)到或超過(guò)設(shè)定門限值的應(yīng)用程序請(qǐng)求自啟動(dòng)時(shí),觸發(fā)攔截過(guò)程。
7.根據(jù)權(quán)利要求1?5任一權(quán)利要求所述的應(yīng)用程序權(quán)限管理的方法, 所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)橄嚓P(guān)的應(yīng)用程序;或者 所述第一應(yīng)用程序與所述第二應(yīng)用程序?yàn)椴幌嚓P(guān)的應(yīng)用程序。
8.一種應(yīng)用程序權(quán)限管理的裝置,其特征在于,包括: 自啟動(dòng)請(qǐng)求接收單元,用于接收第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)第二應(yīng)用程序的自啟動(dòng)請(qǐng)求; 策略獲取單元,用于獲取應(yīng)用程序授權(quán)權(quán)限列表; 攔截處理單元,用于根據(jù)所述自啟動(dòng)請(qǐng)求中攜帶的所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)判斷是否攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求,如果所述第一應(yīng)用程序的包標(biāo)識(shí)和所述第二應(yīng)用程序的包標(biāo)識(shí)與所述應(yīng)用程序授權(quán)權(quán)限列表中存儲(chǔ)的攔截策略一致,則攔截所述第一應(yīng)用程序通過(guò)服務(wù)方式對(duì)所述第二應(yīng)用程序的自啟動(dòng)請(qǐng)求。
9.一種移動(dòng)終端,其特征在于,包括廣播接收機(jī)組件、服務(wù)組件以及權(quán)利要求8所述的應(yīng)用程序權(quán)限管理的裝置。
10.一種應(yīng)用程序權(quán)限管理的系統(tǒng),其特征在于,包括云端服務(wù)器和權(quán)利要求9所述的移動(dòng)終端。
【文檔編號(hào)】H04L29/08GK104462980SQ201410843695
【公開日】2015年3月25日 申請(qǐng)日期:2014年12月30日 優(yōu)先權(quán)日:2014年12月30日
【發(fā)明者】劉新, 張?jiān)? 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1