基于架構(gòu)改變的程序管控方法及裝置制造方法
【專利摘要】本發(fā)明提供一種基于架構(gòu)改變的程序管控方法,包括以下步驟:獲取程序管控命令;根據(jù)管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口;服務(wù)包作用于其所在的應(yīng)用程序,執(zhí)行管控操作。本發(fā)明還提供一種基于架構(gòu)改變的程序管控裝置。通過上述方法,能夠動態(tài)改變應(yīng)用程序的行為并進(jìn)行管控,以確保客戶端或服務(wù)器端的安全和增強(qiáng)用戶體驗(yàn)。
【專利說明】基于架構(gòu)改變的程序管控方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,本發(fā)明涉及一種基于架構(gòu)改變的程序管控方 法及裝置。
【背景技術(shù)】
[0002] 對于應(yīng)用程序的管控,通常依賴其所運(yùn)行的系統(tǒng),利用系統(tǒng)中設(shè)定的功能對應(yīng)用 程序進(jìn)行管控。目前,應(yīng)用程序管控的主要目的是確保用戶操作安全和提升用戶體驗(yàn),一般 通過人工操作來實(shí)現(xiàn)應(yīng)用程序的管控。
[0003] 以Android系統(tǒng)為例,該系統(tǒng)具有較為嚴(yán)密的用戶權(quán)限管理機(jī)制,其中,管理員擁 有系統(tǒng)的最高權(quán)限。當(dāng)以用戶的權(quán)限無法對應(yīng)用程序進(jìn)行管控時,可通過提權(quán)的方式提高 權(quán)限,而提權(quán)需要通過root授權(quán)的方式才能實(shí)現(xiàn)。但在提取過程中,會存在失敗的情況,且 系統(tǒng)被root,也會影響系統(tǒng)的安全。
[0004] 另外,對每個應(yīng)用程序進(jìn)行管控所實(shí)現(xiàn)的目的不盡相同,系統(tǒng)不可能針對每個應(yīng) 用程序設(shè)定相應(yīng)的功能進(jìn)行管控,何況應(yīng)用程序的安裝權(quán)還取決于用戶。
[0005] 對應(yīng)用程序進(jìn)行管控,尤其是應(yīng)用程序所在的終端不在用戶可控的范圍內(nèi)時,如 何管控,是目前應(yīng)用程序管控亟待解決的問題之一。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的旨在至少解決上述技術(shù)缺陷之一,特別是利用應(yīng)用程序的架構(gòu)改 變,對應(yīng)用程序進(jìn)行管控。
[0007] 本發(fā)明提供一種基于架構(gòu)改變的程序管控方法,包括以下步驟:獲取程序管控命 令;根據(jù)管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口;服務(wù)包作用于其所在的應(yīng)用 程序,執(zhí)行管控操作。
[0008] 本發(fā)明還提供一種基于架構(gòu)改變的程序管控方法,包括以下步驟:下發(fā)應(yīng)用程序 至客戶端,應(yīng)用程序架構(gòu)中設(shè)有服務(wù)包;根據(jù)客戶端的狀態(tài),發(fā)送程序管控命令至客戶端以 使客戶端中相應(yīng)的服務(wù)包作用于其所在的應(yīng)用程序,實(shí)現(xiàn)應(yīng)用程序的管控。
[0009] 本發(fā)明提供一種基于架構(gòu)改變的程序管控裝置,包括:獲取模塊,用于獲取程序 管控命令;調(diào)用模塊,用于根據(jù)管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口;管控模 塊,用于管控服務(wù)包所在的應(yīng)用程序。
[0010] 本發(fā)明還提供一種基于架構(gòu)改變的程序管控裝置,包括:下發(fā)模塊,用于下發(fā)應(yīng)用 程序至客戶端,應(yīng)用程序架構(gòu)中設(shè)有服務(wù)包;發(fā)送模塊,用于根據(jù)客戶端的狀態(tài),發(fā)送程序 管控命令至客戶端以使客戶端中相應(yīng)的服務(wù)包作用于其所在的應(yīng)用程序,實(shí)現(xiàn)應(yīng)用程序的 管控。
[0011] 本發(fā)明中,基于架構(gòu)改變的程序管控方法具體為:客戶端首先獲取程序管控命令, 再根據(jù)管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口,使得服務(wù)包作用于其所在的應(yīng) 用程序,執(zhí)行管控操作。其中,應(yīng)用程序由服務(wù)器端下發(fā),其內(nèi)插入有相應(yīng)的服務(wù)包。
[0012]本發(fā)明提出的上述方案,利用插包改變應(yīng)用程序的原架構(gòu),可動態(tài)改變應(yīng)用程序 的行為,并且對改變的行為進(jìn)行管控,以確??蛻舳嘶蚍?wù)器端的安全和增強(qiáng)用戶體驗(yàn)。 [0013] 本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說明】
[0014] 本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變 得明顯和容易理解,其中:
[0015] 圖1為本發(fā)明基于架構(gòu)改變的程序管控方法一實(shí)施例的流程示意圖;
[0016] 圖2為本發(fā)明基于架構(gòu)改變的程序管控方法另一實(shí)施例的流程示意圖;
[0017] 圖3為本發(fā)明基于架構(gòu)改變的程序管控系統(tǒng)一實(shí)施例的流程示意圖;
[0018] 圖4為本發(fā)明基于架構(gòu)改變的程序管控裝置一實(shí)施例的結(jié)構(gòu)示意圖;
[0019] 圖5為本發(fā)明基于架構(gòu)改變的程序管控裝置另一實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020] 下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0021] 本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式"一"、"一 個"、"所述"和"該"也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措 辭"包括"是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加 一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元 件被"連接"或"耦接"到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在 中間元件。此外,這里使用的"連接"或"耦接"可以包括無線連接或無線耦接。這里使用 的措辭"和/或"包括一個或更多個相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
[0022] 本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù) 術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng) 該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中 的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含 義來解釋。
[0023] 本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,這里所使用的"終端"、"終端設(shè)備"既包括無線信 號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件 的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備 可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示 器的蜂窩或其他通信設(shè)備;PCS(Personal Communications Service,個人通信系統(tǒng)),其可 以組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個 人數(shù)字助理),其可以包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、 曰歷和/或GPS (Global Positioning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或 掌上型計(jì)算機(jī)或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計(jì)算 機(jī)或其他設(shè)備。這里所使用的"終端"、"終端設(shè)備"可以是便攜式、可運(yùn)輸、安裝在交通工具 (航空、海運(yùn)和/或陸地)中的,或者適合于和/或配置為在本地運(yùn)行,和/或以分布形式: 運(yùn)行在地球和/或空間的任何其他位置運(yùn)行。這里所使用的"終端"、"終端設(shè)備"還可以是 通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是PDA、MID (Mobile Internet Deviee, 移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可以是智能電視、機(jī)頂盒 等設(shè)備。
[0024] 本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,這里所使用的遠(yuǎn)端網(wǎng)絡(luò)設(shè)備,其包括但不限于計(jì) 算機(jī)、網(wǎng)絡(luò)主機(jī)、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云。在此,云由基 于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算 的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個超級虛擬計(jì)算機(jī)。本發(fā)明的實(shí)施例中,遠(yuǎn)端 網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于 3GPP、LTE、WIMAX的移動通信、基于TCP/IP、UDP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外 傳輸標(biāo)準(zhǔn)的近距無線傳輸方式。
[0025] 請參閱圖1,圖1為本發(fā)明基于架構(gòu)改變的程序管控方法一實(shí)施例的流程示意圖, 該方法在客戶端實(shí)施,如圖1所示,包括以下步驟:
[0026] S11,獲取程序管控命令。
[0027] 客戶端中的應(yīng)用程序來自服務(wù)器端,服務(wù)器端的應(yīng)用程序插入有服務(wù)包。由于服 務(wù)包的插入,使得應(yīng)用程序的架構(gòu)發(fā)生改變,進(jìn)而動態(tài)改變應(yīng)用程序的行為,使其具備原來 不支持的功能。本實(shí)施例正是基于服務(wù)包來實(shí)現(xiàn)應(yīng)用程序的管控。
[0028] 服務(wù)包以插包的方式置于應(yīng)用程序中,使應(yīng)用程序的架構(gòu)改變,其插入方法如 下:
[0029] A.將應(yīng)用程序解壓,并進(jìn)行反編譯。
[0030] 利用apktool對應(yīng)用程序進(jìn)行解壓,解壓成原來的文件,然后對其中的代碼文件、 配置文件等進(jìn)行反編譯。
[0031] B.對反編譯后的文件進(jìn)行處理,包括在反編譯后的代碼中插入服務(wù)包對應(yīng)的代碼 和在反編譯后的Androidmanifest. xml文件中加入此服務(wù)包的服務(wù)聲明。
[0032] 服務(wù)包需編譯成smali文件,再插入應(yīng)用程序解壓后的原文件。
[0033] 通過腳本對解壓后的Androidmanifest. xml文件進(jìn)行解析,寫入服務(wù)包的相關(guān)的 服務(wù)聲明,其中,服務(wù)聲明中包括服務(wù)包的名稱、用途及路徑等。
[0034] 具體為,在AndroidManifest中增加如下服務(wù):
[0035] <service android name^"eam.qihoo360.byod aidlserver-RemoteServijee" android:process=" :remote"> <intent-l!lte ^ 《action andr?yt:n;?me=%om.rfm擔(dān).service"/〉 </intent-fllter> 〈/service〉
[0036] 在反編譯后的· \smali\com\qihoo360\byod\aidlserver 中增加如下文件:
[0037] - IRemote$Stub$Proxy. small
[0038] - IRemote$Stub. small
[0039] - IRemote. small
[0040] - RemoteService$l. small
[0041] - RemoteService. small
[0042] C.將處理后的反編譯文件進(jìn)行回編譯、簽名,完成應(yīng)用程序中服務(wù)包的插入,實(shí)現(xiàn) 應(yīng)用程序架構(gòu)的改變。
[0043] 將插包后的應(yīng)用程序上傳至服務(wù)器端。
[0044] 其中,服務(wù)包中設(shè)有接口。
[0045] 其中,服務(wù)包的種類包括但不限于以下幾種:數(shù)據(jù)清除服務(wù)包、intent隔離服務(wù) 包、斷開數(shù)據(jù)請求服務(wù)包、VPN傳輸服務(wù)包、改變數(shù)據(jù)格式服務(wù)包和數(shù)據(jù)存儲路徑服務(wù)包。
[0046] 需要指出的是,應(yīng)用程序可根據(jù)需要插入至少一個服務(wù)包。
[0047] 在本實(shí)施例中,應(yīng)用程序的管控首先需獲取程序管控命令,程序管控命令根據(jù)服 務(wù)包的種類,其獲取方式包括以下兩種情況:
[0048] A.接收服務(wù)器端發(fā)送的程序管控命令。
[0049] B.獲取本地發(fā)出的程序管控命令。
[0050] S12,根據(jù)管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口。
[0051] S13,服務(wù)包作用于其所在的應(yīng)用程序,執(zhí)行管控操作。
[0052] 服務(wù)包只能作用于其所在的應(yīng)用程序,對其它應(yīng)用程序無影響。
[0053] 以上所述,本實(shí)施例的方法可動態(tài)改變應(yīng)用程序的行為,并對其進(jìn)行管控,使得應(yīng) 用程序的靈活性提高、提高應(yīng)用程序的安全性和增強(qiáng)用戶體驗(yàn)。
[0054] 下面以客戶端獲取本地發(fā)出的程序管控命令為例,通過幾個場景對本實(shí)施例的方 法進(jìn)行詳細(xì)闡述。
[0055] A.當(dāng)應(yīng)用程序獲取自身產(chǎn)生的調(diào)用數(shù)據(jù)存儲路徑命令時,hook原來可調(diào)用數(shù)據(jù) 存儲路徑的函數(shù),調(diào)用該應(yīng)用程序架構(gòu)中數(shù)據(jù)存儲路徑服務(wù)包的接口,使得數(shù)據(jù)存儲路徑 服務(wù)包返回其預(yù)設(shè)的數(shù)據(jù)存儲路徑。此方法可將應(yīng)用數(shù)據(jù)放到指定的路徑,使得數(shù)據(jù)更加 安全,可用于透明加解密。此方法對于手機(jī)客戶端,可修改數(shù)據(jù)的SD卡存儲路徑,避免SD 卡上的數(shù)據(jù)被解讀。
[0056] 其中,hook方法如下:
[0057] Environment. getExternalStorageDirectory ()
[0058] Environment. getExternalStorageState()
[0059] B.當(dāng)啟動插有intent隔離服務(wù)包的應(yīng)用程序時,intent隔離服務(wù)包hook該應(yīng)用 程序startactivity的intent,然后調(diào)用客戶端中相應(yīng)的方法,并把intent傳給該方法,客 戶端利用該intent打開與此應(yīng)用程序相近的其他更安全的應(yīng)用程序,確保數(shù)據(jù)安全。
[0060] 其中,更安全的應(yīng)用程序中設(shè)有簽名,只有客戶端才能打開。
[0061] C.當(dāng)應(yīng)用程序獲取客戶端發(fā)出的其數(shù)據(jù)請求異常信息時,根據(jù)數(shù)據(jù)請求異常信 息,調(diào)用該應(yīng)用程序架構(gòu)中斷開數(shù)據(jù)請求服務(wù)包的接口,斷開數(shù)據(jù)請求服務(wù)包斷開應(yīng)用程 序與服務(wù)器端的交互,以確保服務(wù)器端的安全。
[0062] 當(dāng)應(yīng)用程序獲取客戶端發(fā)出的其數(shù)據(jù)請求正常信息時,根據(jù)數(shù)據(jù)請求正常信息, 調(diào)用該應(yīng)用程序架構(gòu)中VPN傳輸服務(wù)包的接口,VPN傳輸服務(wù)包將該應(yīng)用程序的數(shù)據(jù)請求 通過VPN傳輸。
[0063] D.當(dāng)應(yīng)用程序獲取自身產(chǎn)生的存儲數(shù)據(jù)命令時,調(diào)用該應(yīng)用程序架構(gòu)中改變數(shù)據(jù) 格式服務(wù)包的接口,改變數(shù)據(jù)格式服務(wù)包對該應(yīng)用程序的數(shù)據(jù)進(jìn)行格式修改,以起到加密 的作用。
[0064] 對于上述A、B場景,本實(shí)施例應(yīng)用程序中插入數(shù)據(jù)存儲路徑服務(wù)包或intent隔離 服務(wù)包的實(shí)現(xiàn)方式如下:
[0065] 在反編譯后的.\smali\com\qihoo360\byod\jni 中增加 h. smali 文件。
[0066] 在反編譯后的.\smali\com\qihoo360\protect 中增加 appcall. smali 文件。
[0067] 在反編譯后的· \smali\com\qihoo\utils中增加如下文件:
[0068] - StubPathHooker$l. smali
[0069] - StubPathHooker$2. smali
[0070] - StubPathHooker$3. smali
[0071] - StubPathHooker$4. smali
[0072] _ StubPathHooker$5. smali
[0073] - StubPathHooker. smali
[0074] 在反編譯后的.\assets中增加 byod和cert文件。
[0075] 在反編譯后的· \lib\armeabi和.\lib\armeabi_v7a中分別增加如下文件:
[0076] - libbyod. so
[0077] - libMethodHooker. so
[0078] - libprotectCls. so
[0079] 在 AndroidManifest 中增加〈uses-permission
[0080] android:name 二〃com. qihoo360. byod. permission. APPSTORE"/〉
[0081]修改所有 AndroidManifest 中 activity 標(biāo)簽下的 android :permission 為 android:permission = 〃com. qiho〇36〇. byod. permission. APPSTORE",若沒有則新建該標(biāo) 簽。
[0082]若 AndroidManifest 中 application 標(biāo)簽沒有 android:name,則新建為 android:name = 〃com. qiho〇36〇· protect, appcall",若有,則修改原標(biāo)簽對應(yīng) smali,在 首行增加 invoke-static{},Lcom/qihoo360/byod/jni/h;->run0nce()Lcom/qihoo360/ byod/jni/h〇
[0083] 其中,該實(shí)現(xiàn)方式不需要在AndroidManifest中聲明服務(wù)。
[0084] 請參閱圖2,圖2為本發(fā)明基于架構(gòu)改變的程序管控方法另一實(shí)施例的流程示意 圖,該方法在服務(wù)器端實(shí)施,如圖2所示,包括以下步驟:
[0085] S21,下發(fā)應(yīng)用程序至客戶端,應(yīng)用程序架構(gòu)中設(shè)有服務(wù)包。
[0086]上傳至服務(wù)器端應(yīng)用程序插入有服務(wù)包,服務(wù)包的插入方法在圖丨所示實(shí)施例中 有詳細(xì)的闡述,在此不再闡述。
[0087]其中,服務(wù)器端采用兩種應(yīng)用程序下發(fā)方式:自由安裝和強(qiáng)制安裝。自由安裝方式 下發(fā)的應(yīng)用程序顯示在客戶端的應(yīng)用市場中,供用戶自由安裝;強(qiáng)制安裝方式下發(fā)的應(yīng)用, 用戶需安裝才能使用客戶端。
[0088] 其中,服務(wù)器端對上傳的應(yīng)用程序進(jìn)行加固處理,以防止應(yīng)用程序被逆向。
[0089] S22,根據(jù)客戶端的狀態(tài),發(fā)送程序管控命令至客戶端以使客戶端中相應(yīng)的服務(wù)包 作用于其所在的應(yīng)用程序,實(shí)現(xiàn)應(yīng)用程序的管控。
[0090] 客戶端的狀態(tài)包括以下任意一種或多種:檢測的客戶端中應(yīng)用程序的狀態(tài)、接收 的客戶端的狀態(tài)及管理員確認(rèn)的需管控的客戶端。
[0091] 在本實(shí)施例中,步驟S21后,可結(jié)合圖1所示的步驟進(jìn)行程序管控,或結(jié)合S22及 圖1所示的步驟實(shí)現(xiàn)服務(wù)器端對客戶端應(yīng)用程序的管控。
[0092] 請參閱圖3,圖3為本發(fā)明基于架構(gòu)改變的程序管控系統(tǒng)一實(shí)施例的流程示意圖, 程序管控系統(tǒng)包括服務(wù)器端和客戶端,如圖3所示,該系統(tǒng)的工作流程包括以下步驟 :
[0093] S31,服務(wù)器端下發(fā)應(yīng)用程序至客戶端,應(yīng)用程序架構(gòu)中設(shè)有服務(wù)包。
[0094] S32,根據(jù)客戶端的狀態(tài),發(fā)送程序管控命令至客戶端。
[0095] S33,客戶端獲取程序管控命令。
[0096] S34,根據(jù)管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口。
[0097] S35,服務(wù)包作用于其所在的應(yīng)用程序,執(zhí)行管控操作。
[0098] 上述步驟在圖1和圖2所示的實(shí)施例中有詳細(xì)的闡述,在此不再贅述。
[0099] 其中,程序管控系統(tǒng)為智能終端(如:移動終端)的企業(yè)管理系統(tǒng),是面向企業(yè)的 移動終端管理平臺,其服務(wù)器端部署在企業(yè)內(nèi)網(wǎng),客戶端安裝在需被管理的移動終端上。
[0100] 服務(wù)器端是基于web的統(tǒng)一控制臺,負(fù)責(zé)客戶端的管理、下發(fā)企業(yè)內(nèi)網(wǎng)的應(yīng)用程 序及管理、下發(fā)策略等。
[0101] 客戶端用于執(zhí)行服務(wù)器端下發(fā)的策略和移動辦公。
[0102] 客戶端的功能主要表現(xiàn)在以下幾個方面:
[0103] A.獨(dú)立工作區(qū)
[0104] 基于客戶端的數(shù)據(jù)防泄密機(jī)制,客戶端在移動終端上建立了獨(dú)立工作區(qū),所有的 企業(yè)應(yīng)用和數(shù)據(jù)存儲在受保護(hù)的工作區(qū)內(nèi)。相應(yīng)的,工作區(qū)外的內(nèi)存空間稱為個人區(qū),所有 的個人應(yīng)用和數(shù)據(jù)存儲在個人區(qū)內(nèi),個人應(yīng)用無法訪問企業(yè)數(shù)據(jù),從而避免企業(yè)數(shù)據(jù)被個 人應(yīng)用非法訪問、存取。移動終端中的工作區(qū)和個人區(qū)可進(jìn)行切換。
[0105] B.工作區(qū)設(shè)置有電子郵箱、日歷、聯(lián)系人、短信、瀏覽器和應(yīng)用市場等應(yīng)用。
[0106] 電子郵箱可查看、收發(fā)電子郵件。
[0107] 日歷可查看exchange同步的約會,新建、編輯日歷約會。
[0108] 聯(lián)系人中可新建或?qū)肼?lián)系人。工作區(qū)的聯(lián)系人和通話記錄與個人區(qū)完全隔離, 可設(shè)置工作區(qū)內(nèi)發(fā)生的通話記錄是否顯示在個人區(qū)。
[0109] 工作區(qū)的短信與個人區(qū)完全隔離。
[0110] 瀏覽器提供網(wǎng)頁訪問功能。
[0111] 通過應(yīng)用市場下載服務(wù)器端推送的應(yīng)用程序。
[0112] 服務(wù)器端的功能表現(xiàn)在以下幾個方面:
[0113] A.企業(yè)應(yīng)用庫
[0114] 服務(wù)器端建立了一個專用空間,用于存儲上傳到服務(wù)器端中的應(yīng)用程序,稱為企 業(yè)應(yīng)用庫,企業(yè)應(yīng)用庫用于生成應(yīng)用市場。服務(wù)器端可自動提取應(yīng)用程序的logo等信息, 方便管理員的管理,并可將應(yīng)用程序下發(fā)給客戶端。
[0115] B.下發(fā)安全策略
[0116] 設(shè)置客戶端工作區(qū)鎖屏密碼的種類、復(fù)雜度及更換周期等。
[0117] 設(shè)置客戶端超出離線時間后,不能訪問客戶端工作區(qū)。
[0118] 禁止工作區(qū)截屏,禁止從工作區(qū)復(fù)制、粘貼、剪切內(nèi)容至個人區(qū);基于地理位置的 攝像頭禁用。
[0119] 定期檢測客戶端是否被root或越獄,并設(shè)定相應(yīng)的處理方法。
[0120] C.管理客戶端
[0121] 在客戶端存在安全威脅時,清除客戶端的數(shù)據(jù),包括郵箱、存儲的文件、相關(guān)的安 全策略和配置文件等,但不影響個人區(qū)的數(shù)據(jù)。
[0122] 在客戶端所在的移動終端丟失的情況下,發(fā)送鎖定命令,鎖定客戶端的工作區(qū),以 保護(hù)工作區(qū)的數(shù)據(jù)。
[0123] 當(dāng)用戶忘記工作區(qū)的鎖屏密碼或特殊情況下管理員需訪問客戶端時,發(fā)送解鎖命 令,解除工作區(qū)的鎖屏密碼。
[0124] 當(dāng)用戶忘記工作區(qū)的鎖屏密碼或管理員需強(qiáng)制更換工作區(qū)鎖屏密碼時,發(fā)送新的 鎖屏密碼。
[0125] 當(dāng)客戶端的郵件長時間不更新時,發(fā)送同步郵件命令,使客戶端同步郵件。由于客 戶端同步郵件的頻率不相同,當(dāng)管理員發(fā)送緊急郵件時,可利用郵件同步功能,確保個客戶 端及時收到郵件。
[0126] 利用客戶端收集的定位信息,對客戶端進(jìn)行位置定位,方便管理員了解客戶端的 位置。
[0127] 在客戶端所在的移動終端丟失的情況下,發(fā)送啟動鳴響命令,使客戶端發(fā)出警報(bào)。
[0128] 批量推送消息或url至客戶端。推送消息有兩種形式:推送消息和推送通知,消息 僅顯示在工作區(qū)桌面的消息widget中,通知將在用戶進(jìn)入工作區(qū)時彈窗顯示通知內(nèi)容。
[0129] 上述服務(wù)器端的功能,為企業(yè)提供所需的控制權(quán)和可見性。
[0130] 對于本實(shí)施例,下面以清除服務(wù)包為例,詳細(xì)闡述服務(wù)器端對客戶端應(yīng)用程序的 管控。
[0131] 在存在以下情況時,服務(wù)器端發(fā)出程序管控命令。具體為:服務(wù)器端檢測到客戶端 中應(yīng)用程序與其交互異常和/或客戶端中應(yīng)用程序達(dá)到其預(yù)設(shè)的清除應(yīng)用數(shù)據(jù)的時間閾 值;服務(wù)器端接收到客戶端被root的消息和/或客戶端被請求進(jìn)行應(yīng)用數(shù)據(jù)清除的消息, 客戶端被請求進(jìn)行應(yīng)用數(shù)據(jù)清除的場景為客戶端丟失或使用客戶端的用戶離職,用戶利用 其他客戶端發(fā)送的請求;管理員確認(rèn)的需管控的客戶端,此類場景為客戶端丟失或使用客 戶端的用戶離職,管理員直接通過服務(wù)器端發(fā)送應(yīng)用數(shù)據(jù)清除管控命令。
[0132] 清除服務(wù)包中設(shè)有接口,當(dāng)客戶端接收到清除管控命令后,調(diào)用相應(yīng)的接口,使接 口對應(yīng)的清除服務(wù)包執(zhí)行清除操作。應(yīng)用程序的數(shù)據(jù)被清除后,相當(dāng)于重新安裝。
[0133] 應(yīng)用數(shù)據(jù)清除結(jié)束后,對于清除的執(zhí)行狀態(tài),客戶端可調(diào)用接口(如:AIDL)得到 清除結(jié)果,再將該清除結(jié)果反饋至服務(wù)器端。
[0134] 在其他實(shí)施例中,可根據(jù)客戶端的離線時間,對客戶端中應(yīng)用程序的數(shù)據(jù)進(jìn)行清 除。具體為,服務(wù)器端先發(fā)送清除管控命令至客戶端,此清除管控命令中有離線時間的設(shè) 定,當(dāng)客戶端檢測其離線時間超過清除管控命令中設(shè)定的離線時間時,根據(jù)清除管控命令, 調(diào)用應(yīng)用程序中相應(yīng)清除服務(wù)包的接口,使清除服務(wù)包執(zhí)行清除操作。
[0135] 利用清除服務(wù)包,可不依賴于提權(quán),遠(yuǎn)程對應(yīng)用數(shù)據(jù)進(jìn)行清除。服務(wù)器端與客戶端 共同作用,確??蛻舳斯ぷ鲄^(qū)的安全,且應(yīng)用程序還進(jìn)行了加固處理,進(jìn)一步加強(qiáng)客戶端工 作區(qū)的安全。上述方法不受限于提權(quán),也不受限于人工在客戶端管控。
[0136] 在本實(shí)施例中,當(dāng)服務(wù)器端檢測到客戶端中應(yīng)用程序與其交互異常時,也可發(fā)送 程序管控命令,客戶端根據(jù)程序管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)斷開數(shù)據(jù)請求服務(wù)包 的接口,斷開數(shù)據(jù)請求服務(wù)包斷開應(yīng)用程序與服務(wù)器端的交互,以確保服務(wù)器端的安全。
[0137] 其中,服務(wù)器端發(fā)送的程序管控命令為加密命令,以防止惡意程序管控命令對應(yīng) 用程序進(jìn)行管控,確保程序管控的安全性。
[0138] 其中,本實(shí)施例的方法在一些場景下,可智能地遠(yuǎn)程管控應(yīng)用程序。
[0139] 以上所述,服務(wù)器端可對客戶端的應(yīng)用程序進(jìn)行管控,以便客戶端的管理。
[0140] 請參閱圖4,圖4為本發(fā)明基于架構(gòu)改變的程序管控裝置一實(shí)施例的結(jié)構(gòu)示意圖, 此裝置置于客戶端,如圖4所示,包括:獲取模塊41、調(diào)用模塊42及管控模塊43。
[0141] 上述各模塊的功能如下:獲取模塊41用于獲取程序管控命令。調(diào)用模塊42用于 根據(jù)管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口。管控模塊43用于管控服務(wù)包所在 的應(yīng)用程序。
[0142] 其中,獲取模塊41具體用于接收服務(wù)器端發(fā)送的程序管控命令或獲取本地發(fā)出 的程序管控命令。
[0143] 請參閱圖5,圖5為本發(fā)明基于架構(gòu)改變的程序管控裝置另一實(shí)施例的結(jié)構(gòu)示意 圖,此裝置置于服務(wù)器端,如圖5所示,包括:下發(fā)模塊51和發(fā)送模塊52。
[0144] 上述各模塊的功能如下:
[0145]下發(fā)模塊51用于下發(fā)應(yīng)用程序至客戶端,應(yīng)用程序架構(gòu)中設(shè)有服務(wù)包。發(fā)送模塊 52用于根據(jù)客戶端的狀態(tài),發(fā)送程序管控命令至客戶端以使客戶端中相應(yīng)的服務(wù)包作用于 其所在的應(yīng)用程序,實(shí)現(xiàn)應(yīng)用程序的管控。
[0146]結(jié)合圖4和圖5,下發(fā)模塊51下發(fā)應(yīng)用程序至客戶端后,獲取模塊41可獲取本地 發(fā)出的程序管控命令,還可獲取發(fā)送模塊52發(fā)送的程序管控命令。然后調(diào)用模塊42根據(jù) 管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口。最后管控模塊43執(zhí)行管控操作,管控 服務(wù)包所在的應(yīng)用程序。此處的管控模塊43相當(dāng)于服務(wù)包,服務(wù)包作用于其所在的應(yīng)用程 序,執(zhí)行管控操作。
[0147]其中,下發(fā)模塊51下發(fā)的應(yīng)用程序中插入有至少一個服務(wù)包。服務(wù)包的類型為數(shù) 據(jù)清除服務(wù)包、intent隔離服務(wù)包、斷開數(shù)據(jù)請求服務(wù)包、VPN傳輸服務(wù)包、改變數(shù)據(jù)格式 服務(wù)包或數(shù)據(jù)存儲路徑服務(wù)包。
[0148]其中,發(fā)送模塊52需根據(jù)客戶端的狀態(tài)發(fā)送程序管控命令,客戶端的狀態(tài),包括 以下任意一種或多種:檢測的客戶端中應(yīng)用程序的狀態(tài)、接收的客戶端的狀態(tài)及管理員確 認(rèn)的需管控的客戶端。
[0149]以上所述,圖4和圖5所示實(shí)施例的裝置,可基于應(yīng)用程序的架構(gòu)改變對應(yīng)用程序 進(jìn)行管控,以提高客戶端或服務(wù)器端的安全性和增強(qiáng)用于體驗(yàn)。
[0150]以上所述僅是本發(fā)明的部分實(shí)施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1. 一種基于架構(gòu)改變的程序管控方法,其特征在于,包括以下步驟: 獲取程序管控命令; 根據(jù)所述管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口; 所述服務(wù)包作用于其所在的應(yīng)用程序,執(zhí)行管控操作。
2. 根據(jù)權(quán)利要求1所述的基于架構(gòu)改變的程序管控方法,其特征在于,獲取程序管控 命令,包括: 接收服務(wù)器端發(fā)送的程序管控命令;或 獲取本地發(fā)出的程序管控命令。
3. 根據(jù)權(quán)利要求2所述的基于架構(gòu)改變的程序管控方法,其特征在于,所述應(yīng)用程序 的架構(gòu)改變包括: 將所述應(yīng)用程序解壓,并進(jìn)行反編譯; 對反編譯后的文件進(jìn)行處理,包括在反編譯后的代碼中插入服務(wù)包對應(yīng)的代碼和在反 編譯后的Androidmanifest. xml文件中加入此服務(wù)包的服務(wù)聲明; 將處理后的反編譯文件進(jìn)行回編譯、簽名,完成所述應(yīng)用程序中服務(wù)包的插入,實(shí)現(xiàn)應(yīng) 用程序架構(gòu)的改變。
4. 根據(jù)權(quán)利要求3所述的基于架構(gòu)改變的程序管控方法,其特征在于,所述應(yīng)用程序 中插入有至少一個服務(wù)包。
5. 根據(jù)權(quán)利要求4所述的基于架構(gòu)改變的程序管控方法,其特征在于,所述服務(wù)包為 數(shù)據(jù)清除服務(wù)包、intent隔離服務(wù)包、斷開數(shù)據(jù)請求服務(wù)包、VPN傳輸服務(wù)包、改變數(shù)據(jù)格 式服務(wù)包或數(shù)據(jù)存儲路徑服務(wù)包。
6. 根據(jù)權(quán)利要求5所述的基于架構(gòu)改變的程序管控方法,其特征在于,服務(wù)器端發(fā)送 的程序管控命令為加密命令。
7. -種基于架構(gòu)改變的程序管控方法,其特征在于,包括以下步驟: 下發(fā)應(yīng)用程序至客戶端,所述應(yīng)用程序架構(gòu)中設(shè)有服務(wù)包; 根據(jù)所述客戶端的狀態(tài),發(fā)送程序管控命令至客戶端以使客戶端中相應(yīng)的服務(wù)包作用 于其所在的應(yīng)用程序,實(shí)現(xiàn)應(yīng)用程序的管控。
8. -種基于架構(gòu)改變的程序管控裝置,其特征在于,包括: 獲取模塊,用于獲取程序管控命令; 調(diào)用模塊,用于根據(jù)所述管控命令,調(diào)用應(yīng)用程序架構(gòu)中相應(yīng)服務(wù)包的接口; 管控模塊,用于管控所述服務(wù)包所在的應(yīng)用程序。
9. 根據(jù)權(quán)利要求8所述的基于架構(gòu)改變的程序管控裝置,其特征在于,所述獲取模塊 具體用于: 接收服務(wù)器端發(fā)送的程序管控命令;或 獲取本地發(fā)出的程序管控命令。
10. -種基于架構(gòu)改變的程序管控裝置,其特征在于,包括: 下發(fā)模塊,用于下發(fā)應(yīng)用程序至客戶端,所述應(yīng)用程序架構(gòu)中設(shè)有服務(wù)包; 發(fā)送模塊,用于根據(jù)所述客戶端的狀態(tài),發(fā)送程序管控命令至客戶端以使客戶端中相 應(yīng)的服務(wù)包作用于其所在的應(yīng)用程序,實(shí)現(xiàn)應(yīng)用程序的管控。
【文檔編號】G06F9/445GK104252374SQ201410555077
【公開日】2014年12月31日 申請日期:2014年10月17日 優(yōu)先權(quán)日:2014年10月17日
【發(fā)明者】張晨, 劉偉 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司