自啟動應(yīng)用控制方法及裝置制造方法
【專利摘要】本發(fā)明涉及智能設(shè)備的自啟動應(yīng)用控制技術(shù),具體而言,本發(fā)明公開一種自啟動控制方法,包括如下步驟:從已安裝應(yīng)用的配置文件中獲取其廣播組件;監(jiān)控該應(yīng)用運(yùn)行時的事件行為,以確定其是否運(yùn)行組件調(diào)用指令;在該應(yīng)用未運(yùn)行組件調(diào)用指令時,其廣播組件被設(shè)置為不可用狀態(tài);當(dāng)該應(yīng)用運(yùn)行所述組件調(diào)用指令時,將其廣播組件設(shè)置為可用狀態(tài)。相應(yīng)的,本發(fā)明還公開一種用于執(zhí)行該方法的自啟動控制裝置。本發(fā)明能夠深度禁止目標(biāo)應(yīng)用的開機(jī)自啟動功能,可以加快移動終端的開機(jī)速度,節(jié)省手機(jī)電量和流量,并且確保目標(biāo)應(yīng)用的正常使用。
【專利說明】自啟動應(yīng)用控制方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及智能設(shè)備的自啟動應(yīng)用控制自啟動應(yīng)用控制技術(shù),尤其涉及一種自啟 動應(yīng)用控制方法及裝置。
【背景技術(shù)】
[0002] 出于商業(yè)利益的需要,移動終端設(shè)備上的各種功能的應(yīng)用,均喜歡搶占操作系統(tǒng) 的運(yùn)行入口,通過將自身注冊為接收開機(jī)廣播信息,使自身在系統(tǒng)完成開機(jī)啟動時即被加 載。由此,應(yīng)用便能實現(xiàn)開機(jī)自動運(yùn)行,常駐內(nèi)存。常駐內(nèi)存的應(yīng)用太多,自然會影響設(shè)備 的運(yùn)行效率,導(dǎo)致啟動變慢,耗電增加,流量偷跑,運(yùn)行效率低等。如果應(yīng)用挾帶不法目的甚 至惡意目的,進(jìn)一步還可能收集用戶信息,甚至在獲得Root權(quán)限的前提下,還能實現(xiàn)一些 類似木馬、病毒的侵害效果。因此,對操作系統(tǒng)上的自啟動應(yīng)用控制是實現(xiàn)系統(tǒng)安全所必須 關(guān)注的。
[0003]WAmlroid為例,其廣播機(jī)制的應(yīng)用,既可W采用靜態(tài)注冊的方式,也可W采用動 態(tài)注冊的方式來實現(xiàn)。靜態(tài)注冊在開機(jī)自啟目的中較為常用。具體而言,每個應(yīng)用可W在其 An化oidmanifest.xml配置文件中用〈Receiver〉標(biāo)識向系統(tǒng)注冊廣播接收器,通過在程序 中實現(xiàn)的一個例如繼承自化oacastReceiver的MyReceiver類,重寫其onReceiver方法, 在安裝后實現(xiàn)通過廣播機(jī)制來達(dá)到自啟動的目的。該應(yīng)用一旦安裝并完成廣播接收器的注 冊,當(dāng)系統(tǒng)完成開機(jī)啟動之后,其發(fā)送的開機(jī)廣播消息及其它相關(guān)消息均能被該應(yīng)用的廣 播接收器所接收,該廣播接收器過濾到自己關(guān)注的開機(jī)廣播之后,便可按照其預(yù)設(shè)的指令 完成一系列的動作執(zhí)行,達(dá)到啟動自身進(jìn)程的效果。
[0004] 為了解決開機(jī)自啟的問題,現(xiàn)有技術(shù)的一些安全軟件,直接禁止系統(tǒng)發(fā)送開機(jī)完 成的廣播消息,由此,所有應(yīng)用均不能收到開機(jī)完成的廣播,理論上切斷了消息源頭,能達(dá) 到禁止應(yīng)用開機(jī)自啟的目的。然而,事實上,不少惡意軟件不僅利用開機(jī)完成的廣播消息, 還能利用其它相關(guān)消息來識別當(dāng)前是否處于開機(jī)狀態(tài),例如,可W通過系統(tǒng)發(fā)送的SD卡加 載完成的廣播消息來觸發(fā),繼而實現(xiàn)開機(jī)自啟的目的。另一方面,有一些非常重要或者經(jīng)用 戶授意的應(yīng)用,如果接收不到開機(jī)廣播,便不能正常自啟。因此,該種方式不僅治標(biāo)不治本, 無法根本性地解決開機(jī)自啟的問題,而且,可能矯枉過正,導(dǎo)致一些應(yīng)用無法正常使用。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于解決如何根本性地防止應(yīng)用自啟的問題,而提供一種自啟動應(yīng) 用控制方法及其相應(yīng)的自啟動應(yīng)用控制裝置。
[0006] 本發(fā)明的另一目的在于提供一節(jié)具有節(jié)能效果的移動終端。
[0007] 為實現(xiàn)本發(fā)明的目的,本發(fā)明采取如下技術(shù)方案:
[0008] 本發(fā)明的一種自啟動應(yīng)用控制方法,包括W下步驟:
[0009] 從已安裝應(yīng)用的配置文件中獲取其廣播組件;
[0010] 監(jiān)控該應(yīng)用運(yùn)行時的事件行為,W確定其是否運(yùn)行組件調(diào)用指令;
[0011] 在該應(yīng)用未運(yùn)行組件調(diào)用指令時,其廣播組件被設(shè)置為不可用狀態(tài);
[0012] 當(dāng)該應(yīng)用運(yùn)行所述組件調(diào)用指令時,將其廣播組件設(shè)置為可用狀態(tài)。
[0013] 具體的,從已安裝應(yīng)用的配置文件中獲取其所述廣播組件的步驟包括如下子步 驟:
[0014] 從系統(tǒng)安裝包備份目錄中獲取已安裝應(yīng)用的安裝包;
[0015] 解析該安裝包W獲取其中的配置文件;
[0016] 解析該配置文件,通過獲取其中的廣播組件的組件名稱而實現(xiàn)其廣播組件的獲 取。
[0017] 較佳的,采用指令反編譯該安裝包W解析并獲得所述的配置文件,該配置文件特 指Androidmanifest.xml文件。
[0018] 具體的,采用鉤子函數(shù)的方式實現(xiàn)對所述應(yīng)用的運(yùn)行進(jìn)程的事件行為的監(jiān)控。
[0019] 較佳的,所述鉤子函數(shù)所掛鉤的組件調(diào)用指令為可用于激活A(yù)mlroid組件的調(diào)用 指令。
[0020] 具體的,該組件調(diào)用指令特指W可用于傳遞消息的Intent對象為傳遞參數(shù)的 startActivity或startService函數(shù)。
[0021] 可選地,所述廣播組件,包括已安裝應(yīng)用的配置文件中所包含的所有廣播組件或 其中部分特定的廣播組件。
[0022] 具體的,應(yīng)用未運(yùn)行組件調(diào)用指令,表現(xiàn)在時間上,是指包括;該應(yīng)用處于未啟動 的時間段、雖啟動但未進(jìn)入運(yùn)行該組件調(diào)用指令的入口點的進(jìn)程生命期、雖進(jìn)入運(yùn)行該組 件調(diào)用指令的入口點但未執(zhí)行該組件調(diào)用指令的生命期、完成該組件調(diào)用指令的調(diào)用執(zhí)行 后的后續(xù)生命期。
[0023] 具體的,應(yīng)用運(yùn)行所述組件調(diào)用指令,表現(xiàn)在時間上,是指該應(yīng)用的進(jìn)程已經(jīng)進(jìn)入 運(yùn)行該組件調(diào)用指令的入口點但并未執(zhí)行該組件調(diào)用指令。
[0024] 具體的,采用setComponen巧n油ledSetting函數(shù),W所獲得的廣播組件的組件名 稱為參數(shù),設(shè)置所述廣播組件的狀態(tài)。
[0025] 較佳的,每次完成所述組件調(diào)用指令的執(zhí)行后,或者當(dāng)該應(yīng)用的進(jìn)程結(jié)束其生命 周期后,重新將所述的其廣播組件設(shè)置為不可用狀態(tài)。
[0026] 進(jìn)一步,所述廣播組件中被設(shè)置為不可用狀態(tài)的依據(jù),來源于預(yù)設(shè)的外部數(shù)據(jù)表, 依照該數(shù)據(jù)表的相應(yīng)配置而決定將相應(yīng)的廣播組件設(shè)置為不可用狀態(tài)。
[0027] 本發(fā)明提供的一種自啟動應(yīng)用控制裝置,包括:
[0028] 獲取單元,用于從已安裝應(yīng)用的配置文件中獲取其廣播組件;
[0029] 監(jiān)控單元,用于監(jiān)控該應(yīng)用運(yùn)行時的事件行為,W確定其是否運(yùn)行組件調(diào)用指 令;
[0030] 執(zhí)行單元,用于在該應(yīng)用未運(yùn)行組件調(diào)用指令時,保持廣播組件被設(shè)置為不可用 狀態(tài);而當(dāng)該應(yīng)用運(yùn)行所述組件調(diào)用指令時,將其廣播組件設(shè)置為可用狀態(tài)。
[0031] 進(jìn)一步的,所述獲取單元包括:
[0032] 枚舉模塊,用于從系統(tǒng)安裝包備份目錄中獲取已安裝應(yīng)用的安裝包;
[0033] 反向模塊,用于解析該安裝包W獲取其中的配置文件;
[0034] 獲取模塊,用于解析該配置文件,通過獲取其中的廣播組件的組件名稱而實現(xiàn)其 廣播組件的獲取。
[00巧]具體的,所述配置文件特指An化oidmanifest.xml文件。
[0036] 具體的,該組件調(diào)用指令特指W可用于傳遞消息的Intent對象為傳遞參數(shù)的 startActivity或startService函數(shù)。
[0037] 可選地,所述廣播組件,包括已安裝應(yīng)用的配置文件中所包含的所有廣播組件或 其中部分特定的廣播組件。
[0038] 進(jìn)一步,所述執(zhí)行單元,采用setComponen巧n油ledSetting函數(shù),W所獲得的廣 播組件的組件名稱為參數(shù),設(shè)置所述廣播組件的狀態(tài)。
[0039] 較佳的,所述執(zhí)行單元,在每次完成所述組件調(diào)用指令的執(zhí)行后,或者當(dāng)該應(yīng)用的 進(jìn)程結(jié)束其生命周期后,重新將所述的其廣播組件設(shè)置為不可用狀態(tài)。
[0040] 較佳的,該裝置還包括預(yù)設(shè)的外部數(shù)據(jù)表,該數(shù)據(jù)表預(yù)存有若干應(yīng)用所包含的廣 播組件及其預(yù)設(shè)的是否禁用的狀態(tài)標(biāo)識,執(zhí)行單元依據(jù)該數(shù)據(jù)表的相應(yīng)配置而決定將相應(yīng) 的廣播組件設(shè)置為不可用狀態(tài)。
[0041] 本發(fā)明提供的移動終端,其配置有本發(fā)明前述的自啟動應(yīng)用控制裝置,藉由該裝 置的運(yùn)行降低該移動終端的能耗和/或流量。
[0042] 相較于現(xiàn)有技術(shù),本發(fā)明至少具有如下優(yōu)點:
[0043]1、本發(fā)明具有根本性禁止自啟的效果;本發(fā)明首先通過已安裝應(yīng)用的安裝包來獲 得其中的配置文件,從配置文件中獲得在其中注冊的廣播組件,然后利用所獲得的廣播組 件的特征信息,主要是其組件名稱,后續(xù)即可W此為基礎(chǔ),實現(xiàn)對該應(yīng)用的廣播組件的狀態(tài) 控制。該種方式顯然是治本的解決方案,從應(yīng)用程序的源頭上對廣播組件的廣播消息接受 能力進(jìn)行掌握,可W從根本上阻止應(yīng)用的頑固的開機(jī)自啟動行為,從技術(shù)上大大改善禁止 自啟動的成功率。
[0044] 2、本發(fā)明具有智能化管控自啟動的效果;具體而言,在默認(rèn)狀態(tài)下,本發(fā)明將目 標(biāo)應(yīng)用的廣播組件的狀態(tài)設(shè)置為不可用,其廣播消息接收功能全部被關(guān)閉,但是,本發(fā)明仍 在后臺監(jiān)控該應(yīng)用的運(yùn)行進(jìn)程所發(fā)生的事件行為,當(dāng)該應(yīng)用需要運(yùn)行組件調(diào)用指令(例如 StartActivity,startService等)時,可先于該組件調(diào)用指令的執(zhí)行,而將所述的廣播組 件的狀態(tài)設(shè)置為可用,從而開啟其廣播消息接收功能。因此,本發(fā)明盡管是通過控制廣播組 件的可用狀態(tài)來實現(xiàn)開機(jī)自啟控制,但并不影響應(yīng)用自身的正常運(yùn)行,具有人性化的特點。
[0045] 3、本發(fā)明實現(xiàn)了廣泛性禁止自啟的效果;由于本發(fā)明是通過直接控制應(yīng)用的廣播 組件的可用狀態(tài)而實現(xiàn)該應(yīng)用的廣播消息的接收能力控制的效果,因而,可W推知,不僅針 對開機(jī)自啟,即使該應(yīng)用企圖通過后臺自啟,或者通過借助系統(tǒng)的時間改變廣播消息來實 現(xiàn)的自啟等,該種企圖必然都會因為相應(yīng)的廣播組件已經(jīng)被關(guān)閉而無法實現(xiàn)。
[0046] 4、本發(fā)明具有節(jié)省電量和流量的效果;電池續(xù)航能力一直是本領(lǐng)域的短板,而自 啟動應(yīng)用便是消耗資源的大戶,通過在移動終端上配置本發(fā)明的裝置,可W大幅度降低該 移動終端的電量消耗,還可避免該些自啟動應(yīng)用偷跑流量,因而,具有節(jié)能節(jié)流的效果。
[0047] 由W上的分析可知,本發(fā)明解決了長期W來無法根本性解決的應(yīng)用自啟動的技術(shù) 難題,實現(xiàn)了智能化深度禁止應(yīng)用自啟動的功能。
[0048] 本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,該些將從下面的描述中變 得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】
【附圖說明】
[0049] 本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變 得明顯和容易理解,其中:
[0050] 圖1是本發(fā)明的自啟動應(yīng)用控制方法的流程原理圖;
[0051] 圖2是本發(fā)明的自啟動應(yīng)用控制方法的步驟S11的更具體的流程原理圖;
[0052] 圖3是本發(fā)明的自啟動應(yīng)用控制裝置的原理框圖;
[0053] 圖4是本發(fā)明的自啟動應(yīng)用控制裝置中獲取單元的原理框圖;
[0054] 圖5是本發(fā)明的自啟動應(yīng)用控制方法/裝置通過通知欄提示用戶有關(guān)自啟動應(yīng)用 的信息的效果示意圖;
[00巧]圖6是本發(fā)明的自啟動應(yīng)用控制方法/裝置通過息浮窗提示用戶有關(guān)自啟動應(yīng)用 的信息的效果示意圖;
[0056]圖7是本發(fā)明的依照自啟動應(yīng)用控制方法/裝置所實現(xiàn)的終端桌面軟件的用于實 現(xiàn)自啟動應(yīng)用控制配置的加勁加載頁面的效果示意圖。
【具體實施方式】
[0057] 下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0058] 本【技術(shù)領(lǐng)域】技術(shù)人員可W理解,除非特意聲明,該里使用的單數(shù)形式"一"、"一 個"、"所述"和"該"也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措 辭"包括"是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加 一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元 件被"連接"或"禪接"到另一元件時,它可W直接連接或禪接到其他元件,或者也可W存在 中間元件。此外,該里使用的"連接"或"禪接"可W包括無線連接或無線禪接。該里使用 的措辭"和/或"包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。
[0059] 本【技術(shù)領(lǐng)域】技術(shù)人員可W理解,除非另外定義,該里使用的所有術(shù)語(包括技術(shù) 術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng) 該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中 的意義一致的意義,并且除非像該里一樣被特定定義,否則不會用理想化或過于正式的含 義來解釋。
[0060] 本【技術(shù)領(lǐng)域】技術(shù)人員可W理解,該里所使用的"終端"、"終端設(shè)備"既包括無線信 號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件 的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。該種設(shè)備 可W包括;蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示 器的蜂窩或其他通信設(shè)備;PCS(PersonalCommunicationsService,個人通信系統(tǒng)),其可 W組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(PersonalDigitalAssistant,個 人數(shù)字助理),其可W包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、 日歷和/或GPS(Global化sitioningSystem,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或 掌上型計算機(jī)或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計算 機(jī)或其他設(shè)備。該里所使用的"終端"、"終端設(shè)備"可W是便攜式、可運(yùn)輸、安裝在交通工具 (航空、海運(yùn)和/或陸地)中的,或者適合于和/或配置為在本地運(yùn)行,和/或W分布形式, 運(yùn)行在地球和/或空間的任何其他位置運(yùn)行。該里所使用的"終端"、"終端設(shè)備"還可W是 通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可W是PDA、MID(Mobi1eInternetDevice, 移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可W是智能電視、機(jī)頂盒 等設(shè)備。
[0061] 本【技術(shù)領(lǐng)域】技術(shù)人員可W理解,該里所使用的服務(wù)器、云端、遠(yuǎn)端網(wǎng)絡(luò)設(shè)備等概 念,具有等同效果,其包括但不限于計算機(jī)、網(wǎng)絡(luò)主機(jī)、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集 或多個服務(wù)器構(gòu)成的云。在此,云由基于云計算(CloudComputing)的大量計算機(jī)或網(wǎng)絡(luò) 服務(wù)器構(gòu)成,其中,云計算是分布式計算的一種,由一群松散禪合的計算機(jī)集組成的一個超 級虛擬計算機(jī)。本發(fā)明的實施例中,遠(yuǎn)端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何 通信方式實現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動通信、基于TCP^P、UDP協(xié) 議的計算機(jī)網(wǎng)絡(luò)通信W及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無線傳輸方式。
[0062] 本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明所稱的"應(yīng)用"、"應(yīng)用程序"、"應(yīng)用軟件及類 似表述的概念,是業(yè)內(nèi)技術(shù)人員所公知的相同概念,是指由一系列計算機(jī)指令及相關(guān)數(shù)據(jù) 資源有機(jī)構(gòu)造的適于電子運(yùn)行的計算機(jī)軟件。除非特別指定,該種命名本身不受編程語言 種類、級別,也不受其賴W運(yùn)行的操作系統(tǒng)或平臺所限制。理所當(dāng)然地,此類概念也不受任 何形式的終端所限制。
[0063] 本發(fā)明W下即將描述的一種自啟動應(yīng)用控制方法和裝置所實施的應(yīng)用場景,是安 裝在移動終端上的基于Amlroid操作系統(tǒng)的運(yùn)行環(huán)境。
[0064] 為了說明本發(fā)明的實施,本發(fā)明試圖結(jié)合計算機(jī)程序的靜態(tài)和動態(tài)兩個方面進(jìn)行 描述,所謂靜態(tài)方面,是指程序安裝包、文件、數(shù)據(jù)庫等存儲于媒介的存儲對象;所謂動態(tài)方 面,是指被調(diào)入內(nèi)存中執(zhí)行的動態(tài)對象,包括但不局限于進(jìn)程、線程、所用到的數(shù)據(jù)等。鑒于 計算機(jī)軟件技術(shù)的該些特點,不應(yīng)將本發(fā)明所述及的各個方法、步驟、子步驟、裝置、單元、 模塊等,孤立地理解為僅靜態(tài)或僅動態(tài)的方面,本領(lǐng)域技術(shù)人員對此應(yīng)當(dāng)知曉。故而,本領(lǐng) 域技術(shù)人員應(yīng)當(dāng)能夠依據(jù)本發(fā)明有關(guān)靜態(tài)的表述而將其對應(yīng)到動態(tài)的進(jìn)程活動,或者依據(jù) 本發(fā)明有關(guān)動態(tài)的進(jìn)程活動對應(yīng)到其靜態(tài)的表現(xiàn)形式,建立起靜態(tài)與動態(tài)兩方面的必然性 關(guān)聯(lián),W此為基礎(chǔ)來理解本發(fā)明。
[0065] 本領(lǐng)域技術(shù)人員應(yīng)當(dāng)可W預(yù)見,由于本發(fā)明所掲示的技術(shù)涉及到對Amlroid系 統(tǒng)級別資源的調(diào)用,因而,在實施本發(fā)明前需要為W本發(fā)明實例化的應(yīng)用程序的運(yùn)行獲取 Root權(quán)限。
[0066] 眾所周知,Root權(quán)限是指化ix類操作系統(tǒng)(包括Linux、An化oid)的系統(tǒng)管理員 權(quán)限,類似于Windows(視窗)系統(tǒng)中的A血inistrator(管理員)權(quán)限;Root權(quán)限可W訪 問和修改用戶的移動設(shè)備中幾乎所有的文件(An化oid系統(tǒng)文件及用戶文件,不包括ROM)。 但是,由于目前移動終端系統(tǒng)對于Root權(quán)限的管理是非常嚴(yán)格的,通常情況下多數(shù)應(yīng)用或 程序都不具備Root權(quán)限,因此對于某些需要具備Root權(quán)限的操作就無法執(zhí)行,例如安裝或 卸載應(yīng)用等操作;同時,此類操作調(diào)用進(jìn)程每次執(zhí)行相應(yīng)操作時都需要向系統(tǒng)申請Root權(quán) 限,但如果此時其他應(yīng)用進(jìn)程正在使用Root權(quán)限進(jìn)行相關(guān)操作,則此調(diào)用進(jìn)程的Root權(quán)限 申請便無法成功;更甚者,如果用戶在系統(tǒng)中設(shè)置了禁用Root權(quán)限的操作,則相關(guān)調(diào)用進(jìn) 程便無法進(jìn)行相關(guān)操作。
[0067] 基于此,本發(fā)明提出只需要向系統(tǒng)發(fā)送一次Root權(quán)限獲取請求,具體可通過調(diào)用 系統(tǒng)內(nèi)置的SU(SuperUser,超級用戶)命令獲取Root權(quán)限,或者通過獲取具有Root權(quán)限 的shell獲取Root權(quán)限并在shell中啟動進(jìn)程,然后在獲取所述系統(tǒng)的Root權(quán)限授權(quán)后, 即可使后續(xù)其他調(diào)用進(jìn)程需執(zhí)行相關(guān)操作時無需重復(fù)申請Root權(quán)限;具體Root權(quán)限獲取 過程可參照現(xiàn)有技術(shù)的Root權(quán)限調(diào)用函數(shù),本發(fā)明在此不再費(fèi)述。
[0068] 可W看出,Root權(quán)限的獲取方式,從權(quán)限作用的生命周期來看,包括永久Root權(quán) 限和臨時Root權(quán)限,顧名思義,永久Root權(quán)限情況下,應(yīng)用程序一經(jīng)Root授權(quán),W后可不 必再進(jìn)行Root提權(quán)操作;而臨時Root權(quán)限情況下,權(quán)限作用的生命周期只是操作系統(tǒng)的一 次從開機(jī)到關(guān)機(jī)的過程,下次開機(jī)依然需要進(jìn)行Root。本發(fā)明的實現(xiàn)不受該種分類限制。
[0069] 當(dāng)然,本領(lǐng)域關(guān)于Root提權(quán)的技術(shù)實施方式多種多樣,因而,請注意,本發(fā)明的方 法和裝置的實施,雖有賴于已獲Root權(quán)限,但并不受限于獲取Root授權(quán)的【具體實施方式】。
[0070] 基于上述的先導(dǎo)性的說明,可W知曉,本發(fā)明所要掲示的自啟動應(yīng)用控制方法及 其裝置,是實現(xiàn)本發(fā)明的相對應(yīng)的兩個方面,并非相互孤立的兩個方案。
[0071] 請參閱圖1,其掲示了本發(fā)明的自啟動應(yīng)用控制方法的實現(xiàn)原理,該方法包括如下 步驟:
[0072]S11;從已安裝應(yīng)用的配置文件中獲取其廣播組件。
[0073] 眾所周知的,Amlroid系統(tǒng)中,第H方應(yīng)用的安裝會涉及對如下目錄做如下操作: data/app,第H方應(yīng)用安裝目錄,安裝時先把Apk文件復(fù)制到此目錄;data/dalv;Lk-cache, 將Apk解壓后的代碼文件(.dex文件)安裝到該目錄下;data/data,用于建立并存放應(yīng)用 程序所需的數(shù)據(jù)?;谏鲜鲈砜芍?,第H方應(yīng)用的Apk文件即為其安裝包,在data/a卵中 可W找到該安裝包。因此,對于已安裝的目標(biāo)應(yīng)用而言,可W從data/a卵中復(fù)制相應(yīng)的apk 文件到指定目錄中,然后卸載該目標(biāo)應(yīng)用。同理,如果是系統(tǒng)自帶的應(yīng)用程序,會在system/ app目錄中保存其相應(yīng)的Apk文件。因此,通過data/app和system/app兩個安裝包存放目 錄,可W獲取所有應(yīng)用的安裝包。
[0074] 本領(lǐng)域技術(shù)人員也必知曉由Amlroid系統(tǒng)規(guī)范的Apk文件的構(gòu)造。在一個Apk文 件中,包括有包含該應(yīng)用的源代碼的Classes,dex文件,還包括有對整個應(yīng)用進(jìn)行配置的 配置文件An化oidmanifest.xml,主要是用于配置An化oid系統(tǒng)的四大組件,W及期望獲得 系統(tǒng)資源的權(quán)限聲明等。當(dāng)一個應(yīng)用中包含有廣播組件時,會采用靜態(tài)注冊的方式,在該配 置文件中添加代碼如下例所示:
[00巧]
【權(quán)利要求】
1. 一種自啟動應(yīng)用控制方法,其特征在于,包括以下步驟: 從已安裝應(yīng)用的配置文件中獲取其廣播組件; 監(jiān)控該應(yīng)用運(yùn)行時的事件行為,以確定其是否運(yùn)行組件調(diào)用指令; 在該應(yīng)用未運(yùn)行組件調(diào)用指令時,其廣播組件被設(shè)置為不可用狀態(tài); 當(dāng)該應(yīng)用運(yùn)行所述組件調(diào)用指令時,將其廣播組件設(shè)置為可用狀態(tài)。
2. 根據(jù)權(quán)利要求1所述的自啟動應(yīng)用控制方法,其特征在于,從已安裝應(yīng)用的配置文 件中獲取其所述廣播組件的步驟包括如下子步驟: 從系統(tǒng)安裝包備份目錄中獲取已安裝應(yīng)用的安裝包; 解析該安裝包以獲取其中的配置文件; 解析該配置文件,通過獲取其中的廣播組件的組件名稱而實現(xiàn)廣播組件的獲取。
3. 根據(jù)權(quán)利要求1所述的自啟動應(yīng)用控制方法,其特征在于,采用鉤子函數(shù)的方式實 現(xiàn)對所述應(yīng)用的運(yùn)行進(jìn)程的事件行為的監(jiān)控。
4. 根據(jù)權(quán)利要求3所述的自啟動應(yīng)用控制方法,其特征在于,所述鉤子函數(shù)所掛鉤的 組件調(diào)用指令為可用于激活A(yù)ndroid組件的調(diào)用指令。
5. 根據(jù)權(quán)利要求4所述的自啟動應(yīng)用控制方法,其特征在于,該組件調(diào)用指令特指以 可用于傳遞消息的Intent對象為傳遞參數(shù)的startActivity或startService函數(shù)。
6. 根據(jù)權(quán)利要求2所述的自啟動應(yīng)用控制方法,其特征在于,采用 setComponentEnabledSetting函數(shù),以所獲得的廣播組件的組件名稱為參數(shù),設(shè)置所述廣 播組件的狀態(tài)。
7. 根據(jù)權(quán)利要求1所述的自啟動應(yīng)用控制方法,其特征在于,每次完成所述組件調(diào)用 指令的執(zhí)行后,或者當(dāng)該應(yīng)用的進(jìn)程結(jié)束其生命周期后,重新將所述的其廣播組件設(shè)置為 不可用狀態(tài)。
8. 根據(jù)權(quán)利要求1所述的自啟動應(yīng)用控制方法,其特征在于,所述廣播組件中被設(shè)置 為不可用狀態(tài)的依據(jù),來源于預(yù)設(shè)的外部數(shù)據(jù)表,依照該數(shù)據(jù)表的相應(yīng)配置而決定將相應(yīng) 的廣播組件設(shè)置為不可用狀態(tài)。
9. 一種自啟動應(yīng)用控制裝置,其特征在于,包括: 獲取單元,用于從已安裝應(yīng)用的配置文件中獲取其廣播組件; 監(jiān)控單元,用于監(jiān)控該應(yīng)用運(yùn)行時的事件行為,以確定其是否運(yùn)行組件調(diào)用指令; 執(zhí)行單元,用于在該應(yīng)用未運(yùn)行組件調(diào)用指令時,保持廣播組件被設(shè)置為不可用狀態(tài); 而當(dāng)該應(yīng)用運(yùn)行所述組件調(diào)用指令時,將其廣播組件設(shè)置為可用狀態(tài)。
10. -種移動終端,其特征在于,其包括如權(quán)利要求9所述的自啟動應(yīng)用控制裝置,該 裝置用于降低該移動終端的能耗和/或流量。
【文檔編號】G06F9/445GK104375869SQ201410714888
【公開日】2015年2月25日 申請日期:2014年11月28日 優(yōu)先權(quán)日:2014年11月28日
【發(fā)明者】楊威, 曹陽, 竇文科, 符傳堅 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司