CN103984576A - 用于防止应用卸载的方法和终端 - Google Patents
用于防止应用卸载的方法和终端 Download PDFInfo
- Publication number
- CN103984576A CN103984576A CN201410234165.5A CN201410234165A CN103984576A CN 103984576 A CN103984576 A CN 103984576A CN 201410234165 A CN201410234165 A CN 201410234165A CN 103984576 A CN103984576 A CN 103984576A
- Authority
- CN
- China
- Prior art keywords
- application
- interface
- equipment manager
- password
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明提供了用于防止对激活了设备管理器的第一应用进行卸载的方法和终端。该方法包括:(a)拦截与所述第一应用相关的取消激活所述设备管理器的请求;(b)就所述请求向第二应用加以通知;以及(c)由所述第二应用引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用。
Description
技术领域
本发明涉及终端安全领域,更具体地涉及用于防止卸载终端上的应用的方法和对应终端。
背景技术
随着移动终端的日益普及,其已经成为了人们在生产生活中不可或缺的一部分。因此,企业为了提高员工们的工作效率,通常会允许员工们使用自备的移动终端或企业统一向员工发放的移动终端在企业内部进行通信。为了企业数据信息的安全,需要通过企业级移动终端管理软件对这些移动终端进行监控和管理。为此,通常需要在这些移动终端上安装统一的企业移动终端管理应用。为了防止这些移动终端由于丢失、被盗等原因而导致移动终端上的管理软件被无权限人员(非企业设备管理员)卸载,或者为了防止由于移动终端的用户因误操作而被卸载,从而使终端脱离企业的监控和管理,因此需要对设备管理软件进行卸载保护。
在第一现有技术中,通过捕获系统日志的方式来监控终端的操作界面是否进入了应用卸载界面。当进入指定应用(例如,企业移动终端管理应用)的卸载界面时,系统一般会生成一些日志。这些日志记录了与应用相关的动作(例如,卸载、安装等)、应用包的名称等信息。通过分析这些捕获到的系统日志,判断是否进入了要防止被卸载的应用的卸载界面。当发现进入应用卸载界面时,通过弹出遮挡对话框并要求输入管理密码来要求当前用户进行身份认证。如果输入密码错误则退出卸载界面,从而防止应用卸载。
然而这种防止卸载的方式依赖于是否能够正确产生系统日志。目前市面上存在很多无法生成系统日志的终端,从而导致日志无法被监控,进而无法确定其是否进入了应用卸载界面。此外,由于该方法是通过在后台开启用于持续监视日志的服务来实现的,因此该方法将消耗大量的电量。
在第二现有技术中,通过监视当前界面的方式来判断是否进入设置界面。在该方式中,同样由后台服务通过系统提供的API(应用程序接口)每隔较小时间段得到当前正在显示的界面,并判断是否是设置界面。如果进入设置界面则弹出遮挡框并要求输入管理员密码。如果输入密码错误则退出卸载界面,从而防止应用卸载。
然而因为这种方式只能监控到是否进入设置界面,所以不能精准地监控特定应用的卸载界面。此外,这种方式在应用快捷卸载功能时无效,例如通过第三方提供的应用管理软件来快捷卸载。此外,由于此方法会在后台开启至少一个服务并每隔一个很小的时间段去监控当前界面,因此同样将消耗大量的电量。
发明内容
为了解决上述问题,提供了根据本发明的用于防止应用卸载的方法和终端。
根据本发明的第一方面,提供了用于防止对激活了设备管理器的第一应用进行卸载的方法。该方法包括:(a)拦截与所述第一应用相关的取消激活所述设备管理器的请求;(b)就所述请求向第二应用加以通知;以及(c)由所述第二应用引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用。
在一些实施例中,所述拦截步骤是通过对所述设备管理器的用于在取消激活前进行提示的函数进行重载来实现的。
在一些实施例中,所述用于在取消激活前进行提示的函数是DeviceAdminReceiver类的onDisableRequested方法函数。
在一些实施例中,步骤(b)是通过自定义系统广播或进程间通信(IPC)来实现的。
在一些实施例中,如果在步骤(b)中使用所述自定义系统广播向所述第二应用加以通知,则所述第二应用在广播接收器中引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用;如果在步骤(b)中使用所述进程间通信向所述第二应用加以通知,则所述第二应用在实现了AIDL接口的服务类中的相应接口中引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用。
在一些实施例中,所述第二应用是不在任务管理器中显示的应用,以防止通过所述任务管理器来关闭所述第二应用,进而取消用于阻碍的界面。
在一些实施例中,在所述第一应用和所述第二应用属于同一应用的情况下,则所述方法省略步骤(b)。
在一些实施例中,所述界面包括用于输入管理员密码的输入栏。
在一些实施例中,在步骤(c)之后,所述方法还包括:(d)对输入的管理员密码进行验证,如果验证有效,则引起取消所述界面,否则请求重新输入管理员密码。
在一些实施例中,步骤(d)还包括:将输入的管理员密码与本地预先存储的密码进行比较,以验证是否有效。
在一些实施例中,步骤(d)还包括:(d1)计算输入的所述管理员密码的数字摘要;(d2)向服务器发送所述数字摘要;以及(d3)从所述服务器接收验证结果。
在一些实施例中,步骤(d)还包括:(d0)判断输入的管理员密码是否为空,如果为空,则在所述界面上提示密码为空,否则继续所述方法。
在一些实施例中,步骤(d2)还包括:(d21)判断是否能够连接到所述服务器,如果否,则在所述界面上提示所述服务器不可用,否则继续所述方法。
在一些实施例中,步骤(d)还包括:(d5)如果输入的管理员密码连续验证无效达预定次数,则在所述界面上提示尝试次数过多并终止所述请求,否则继续所述方法。
在一些实施例中,所述界面还包括用于找回管理员密码的按钮。
在一些实施例中,在所述按钮被点击的情况下,所述方法还包括:(e)在所述界面上返回管理员的联系方式。
在一些实施例中,步骤(e)还包括:判断是否能够连接到管理员服务器,如果不能,则返回本地存储的管理员的联系方式,否则,从所述管理员服务器获取所述管理员的联系方式。
在一些实施例中,步骤(e)还包括:使用从所述管理员服务器获取到的所述管理员的联系方式来更新本地存储的管理员的联系方式。
在一些实施例中,所述界面覆盖用于取消激活所述设备管理器的界面。
在一些实施例中,通过重载所述界面的回退按键函数来阻止取消对所述界面的显示。
根据本发明的第二方面,提供了一种用于防止对激活了设备管理器的第一应用进行卸载的终端。该终端包括:请求拦截单元,用于拦截与所述第一应用相关的取消激活所述设备管理器的请求;请求通知单元,用于就所述请求向第二应用加以通知;以及界面显示单元,用于由所述第二应用引起所述界面显示单元显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用。
在一些实施例中,所述请求拦截单元是通过对所述设备管理器的用于在取消激活前进行提示的函数进行重载来实现的。
在一些实施例中,所述用于在取消激活前进行提示的函数是DeviceAdminReceiver类的onDisableRequested方法函数。
在一些实施例中,所述请求通知单元是通过自定义系统广播或进程间通信(IPC)来实现的。
在一些实施例中,如果在所述请求通知单元中使用所述自定义系统广播向所述第二应用加以通知,则所述第二应用在广播接收器中引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用;如果在所述请求通知单元中使用所述进程间通信向所述第二应用加以通知,则所述第二应用在实现了AIDL接口的服务类中的相应接口中引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用。
在一些实施例中,所述第二应用是不在任务管理器中显示的应用,以防止通过所述任务管理器来关闭所述第二应用,进而取消用于阻碍的界面。
在一些实施例中,在所述第一应用和所述第二应用属于同一应用的情况下,则所述方法省略步骤(b)。
在一些实施例中,所述界面包括用于输入管理员密码的输入栏。
在一些实施例中,所述终端还包括:密码验证单元,用于对输入的管理员密码进行验证,如果验证有效,则引起取消所述界面,否则请求重新输入管理员密码。
在一些实施例中,所述密码验证单元还用于:将输入的管理员密码与本地预先存储的密码进行比较,以验证是否有效。
在一些实施例中,所述密码验证单元还用于:(d1)计算输入的所述管理员密码的数字摘要;(d2)向服务器发送所述数字摘要;以及(d3)从所述服务器接收验证结果。
在一些实施例中,所述密码验证单元还用于:(d0)判断输入的管理员密码是否为空,如果为空,则在所述界面上提示密码为空,否则继续所述方法。
在一些实施例中,所述密码验证单元还用于:(d21)判断是否能够连接到所述服务器,如果否,则在所述界面上提示所述服务器不可用,否则继续所述方法。
在一些实施例中,所述密码验证单元还用于:(d5)如果输入的管理员密码连续验证无效达预定次数,则在所述界面上提示尝试次数过多并终止所述请求,否则继续所述方法。
在一些实施例中,所述界面还包括用于找回管理员密码的按钮。
在一些实施例中,所述终端还包括:管理员联系单元,用于在所述界面上返回管理员的联系方式。
在一些实施例中,所述管理员联系单元还用于:判断是否能够连接到管理员服务器,如果不能,则返回本地存储的管理员的联系方式,否则,从所述管理员服务器获取所述管理员的联系方式。
在一些实施例中,所述管理员联系单元还用于:使用从所述管理员服务器获取到的所述管理员的联系方式来更新本地存储的管理员的联系方式。
在一些实施例中,所述界面覆盖用于取消激活所述设备管理器的界面。
在一些实施例中,通过重载所述界面的回退按键函数来阻止取消对所述界面的显示。
通过使用本发明的方法及终端,可以有效地防止用户误删除或防止第三方恶意删除激活了设备管理器的应用,从而提高了企业终端的安全性,保护了企业数据安全。
附图说明
通过下面结合附图说明本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中:
图1是示出了根据本发明的用于防止应用卸载的系统的示例应用场景的示意图。
图2A和2B是示出了根据本发明的防止应用卸载的示例流程图。
图3~8是与图2A和2B所示流程图中部分步骤对应的示例屏幕截图;
图9是示出了根据本发明实施例的在终端处执行的用于防止卸载应用的示例方法的流程图。
图10是示出了根据本发明实施例的用于执行图9所示方法的示例终端的框图。
具体实施方式
下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。以下,以本发明应用于无线移动通信系统的场景为例,对本发明进行了详细描述。但本发明并不局限于此,本发明也可以应用于固定通信系统、有线通信系统,或者应用于无线移动通信系统、固定通信系统、有线通信系统等的任意混合结构。就移动通信系统而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA、CDMA2000、TD-SCDMA系统等,不同的移动终端可以采用相同的通信协议,也可以采用不同的通信协议。此外,本发明并不局限于移动终端的具体操作系统,可以包括(但不限于)iOS、Windows Phone、Symbian(塞班)、Android(安卓)等,不同的移动终端可以采用相同的操作系统,也可以采用不同的操作系统。
图1是示出了根据本发明的防止应用卸载系统1000的应用场景的示意图。如图1所示,系统1000可以包括终端100和服务器200。为了清楚起见,图中仅示出了一个终端100、一个服务器200,但本发明并不局限于此,可以包括两个或更多数目的终端和/或服务器等等。终端100可以属于用户或者可以由用户操作。终端100和服务器200可以通过通信网络300进行通信。通信网络300的示例可以包括(但不限于):互联网、移动通信网络、固定线路(如xDSL、光纤等)等。在本发明的一个实施例中,终端100可以是企业为员工配发的工作用终端100或员工自备的终端100,其上安装有企业移动终端管理软件。在一个实施例中,通信网络300可以是企业的内部网络或互联网,而服务器200可以是企业内部的管理员服务器,其功能之一是用于验证终端100提交的管理员密码是否有效。
在图1所示实施例中,为了在终端100上防止应用卸载,将根据本发明的实施例的防止应用卸载客户端150(以下简称为客户端150)安装在终端100上。客户端150可以由用户以软件的形式自行安装在终端100中,或者可以由生产厂商以硬件或固件的形式安装在终端100中。在一些实施例中,客户端150可以是例如在用户购买了终端100之后从网络中下载的专门用于本发明的应用软件。在另一些实施例中,客户端150可以是例如由生产厂商以固件或硬件形式预先安装在终端100中的应用程序。在又一些实施例中,客户端150可以是由生产厂商生产的硬件模块或终端100本身。客户端150可以是企业用于管理终端的管理软件或其一部分。
在本发明的以下实施例中,为了方便说明,将采用基于安卓平台的终端作为示例。然而本领域技术人员将意识到:本发明的理念同样适用于其他适合的平台。为了方便读者理解,将首先介绍“设备管理器”的功能。在采用安卓系统的终端100中,安卓系统提供了被称为“设备管理器(device manager)”的功能。该功能允许激活了该功能的应用(通常是设备管理应用)对终端100进行设备管理,例如允许该应用对终端100进行锁屏、修改终端密码、恢复出厂设置、擦除数据等。此外,激活了该功能的应用在被卸载时将会要求用户“取消激活(deactivate)”设备管理器功能,且在“取消激活”之后该应用才能被卸载。本发明的一些实施例利用了该特性,对安卓系统提供的取消激活设备管理器方法进行了修改,以在拦截到取消激活设备管理器的请求时,通过例如自定义广播之类的消息传递机制,向后台运行的服务通知该事件(即,拦截到取消激活设备管理器的请求的事件),并由该服务弹出一个全局性质的不会被随意取消的界面(例如,全局性对话框)以遮挡设备管理器的取消激活界面,并仅在用户输入的管理员密码通过本地验证或远端管理员服务器200验证之后,才能取消该全局性对话框并继续取消激活设备管理器的操作。
接下来将参考图2A并结合图3~8来详细描述根据本发明的一个实施例的在终端100上用于防止应用卸载的流程。
如图2所示,当由于某种原因,终端100的当前用户决定卸载激活了设备管理器的应用(例如,客户端150或其它终端管理应用)时,系统将响应于用户的操作,针对该应用来尝试取消激活设备管理器。在如图3~5所示的典型实施例中,用户依次进入“设置”界面(图3)、“安全”界面(图4)、“设备管理器”界面、以及选定应用(例如,在本示例中,“RIMIMDM”应用)的“取消激活”设备管理器界面(图5),以尝试取消激活示例应用RIMIMDM的设备管理器。当用户点击例如图5右下方所示的“取消激活”按钮时,安卓系统将调用该应用(即RIMIMDM)的类“DeviceAdminReceiver”的“onDisableRequested”方法。
该“onDisableRequested”方法的原始用途是向应用的开发人员提供一个机会,用于向卸载应用的用户警告有可能发生的卸载后果。然而在本发明的一些实施例中,通过对该方法进行重载(override),可以在该方法中拦截(或检测)取消激活设备管理器的请求。具体地,在一个实施例中,可以通过在该方法中以自定义系统广播或者进程间通信(Inter-Processes Communication,即IPC)方式(例如,Binder机制,包括例如AIDL(Android Interface Definition Language)机制、Messenger机制等)向本应用的其他组件(例如,不同线程)或者其他应用的组件(例如,不同进程)通知“拦截(或检测)到取消激活设备管理器的请求”的事件,来通知其它进程/线程/应用/组件弹出阻碍取消激活设备管理器的界面。在一个实施例中,如果使用自定义系统广播进行通知,则被通知的进程/线程/应用/组件可以在其广播接收器中引起显示用于阻碍取消激活设备管理器的界面(例如,如图6或7所示的全局性遮挡对话框),以防止卸载激活了设备管理器的应用。在另一个实施例中,如果使用进程间通信(IPC)进行通知,则被通知的进程/线程/应用/组件可以在实现了AIDL接口的服务类中的相应接口中引起显示用于阻碍取消激活设备管理器的界面,以防止卸载激活了设备管理器的应用。使用上述通信机制,是为了防止用户通过例如“任务管理器”之类的方式来关闭弹出阻碍界面的应用并进而使得阻碍界面消失。
在“onDisableRequested”方法中弹出的界面可以是一个全局性对话框而不是一个“activity”,因为如本发明的发明人所意识到的,在“onDisableRequested”方法中弹出遮挡界面(例如,全局性对话框)是通过向本应用的主线程中的handler的消息队列添加请求消息来实现的,然而由于在该消息队列中,请求弹出全局性对话框的消息可能会排在“onDisableRequested”方法的返回值之后,因此尽管在“onDisableRequested”方法结束之前发起遮挡界面的弹出,但是并不能保证该遮挡界面就一定在设备管理器实际取消激活之前弹出。因此,在本发明的一些实施例中,为了保证阻碍界面弹出的及时性,所以使用弹出的全局性对话框。
因为在例如安卓系统中,普通对话框(例如,AlertDialog)的显示通常需要依附于一个确定的Activity类,而在onDisableRequested的方法中只有上下文对象Context而非一个具体的Activity,所以通常不能使用普通对话框的方式。相对的,全局性对话框则不必须依附于具体的Activity类。在一个实施例中,该全局性对话框可以通过例如使用具有“TYPE_SYSTEM_ALERT”布局参数(LayoutParams)的AlertDialog来实现。在另一实施例中,该全局性对话框可以通过例如使用WindowManager服务来添加新的阻碍视图(例如,addView方法)来实现。在这些实施例中,应当注意阻碍界面的尺寸和/或位置,使得其应当能够遮挡住系统自行提供的设备管理器取消激活界面(或至少其中的关键组件,例如,确认按钮等)。
在一个实施例中,如果弹出阻碍界面的应用和被阻碍卸载的应用是同一应用的不同组件时,可以通过在AndroidManifest.xml文件中加入android:excludeFromRecents=″true″这一属性来实现同样的功能。但是如此一来该应用就永远不会出现在任务管理器(例如,通过长按移动终端的HOME键所弹出的视图)中,不太符合用户习惯。所以将在没有前台界面的应用中生成该阻碍界面。这样,在任务管理器中看不到生成阻碍界面的应用,也就自然无法通过任务管理器来关闭该阻碍界面。在一个实施例中,可以通过在该应用的AndroidManifest.xml文件中去掉入口activity的以下属性来使得该应用没有前台界面:
<category android:name=″android.intent.category.LAUNCHER″/>。
在一个实施例中,该通知可以通过上述自定义系统广播(例如,INTENT机制)来实现。在另一个实施例,该通知可以通过安卓系统提供的IPC机制来实现,包括例如binder等。当使用IPC机制时,通常会涉及到两个以上的应用。尽管这是可行的,也在本发明的保护范围之内,但是为了提升用户体验,避免用户安装多个应用时的麻烦,优选地可以使用自定义系统广播在同一个应用的不同组件之间实现。
在一个实施例中,在使用广播接收器接收到该自定义广播之后,应用(例如,客户端150)可以弹出一个全局性质的界面(参见例如图6的全局性对话框),其用来遮挡安卓系统自身提供的取消设备管理器界面。在一个实施例中,这个全局性质的对话框可以通过在获取系统的WindowManager类之后直接添加view的方式来实现。在一个实施例中,可以通过重载方式来劫持该全局性对话框的返回(back)等按键操作,以确保该全局性对话框不会被关闭。
在一个实施例中,该全局性对话框可以包括“取消”按钮。可点击取消并退回系统管理界面,然后再退回到主界面。退回系统管理界面的目的是防止当再次进入原始的取消激活界面时,由于安卓系统读取界面缓存数据而导致取消设备管理器操作暴露在外(即,未被遮挡)。此外,如本发明的发明人所意识到的:在现有的安卓系统中,并未考虑到会出现不允许用户卸载应用的情况(即,企业终端管理场景),安卓系统本身可以在用户选择“取消激活”时弹出安卓本身的取消激活确认界面,而该确认界面并不要求用户输入任何密码,只需选择“确认”即可。即,尽管可以在“onDisableRequested”方法中弹出阻碍界面以要求输入管理员密码,用户依然可以通过在该阻碍界面选择不取消激活,并在安卓系统自行提供的界面上选择取消激活设备管理器,来实现对设备管理器的取消激活。因此,为了解决该问题,在本发明的一些实施例中,类似于上述方式,在用户选择阻碍界面上的“取消”时,返回系统管理界面,然后再退回到主界面,以防止用户进入系统自带的取消激活界面。
在一个实施例中,该全局性对话框可以包括“忘记密码”按钮。当用户忘记管理员密码时,可以点击该“忘记密码”按钮,以获得系统管理员的联系方式,并与系统管理员联系取得管理员密码。在一个实施例中,可以先与管理员服务器200连接,查看本地存储的管理员联系方式是否与服务器200上的相同。如果相同,则显示本地存储的管理员联系方式信息。如果不同,则更新本地信息与服务器200一致,再显示本地存储的管理员联系方式信息。当不能连接服务器200时,直接显示本地已存储的管理员联系方式。
在如图7所示的实施例中,全局性对话框可以包括用于输入管理员密码的输入栏,当合法用户确实要取消激活设备管理器时,可以在该输入栏中输入管理员密码,并点击确认。在一个实施例中,在点击确认之后,首先检查输入的密码是否为空,如果为空,则提示“输入管理员密码”,如果不是,则继续后续步骤。在一个实施例中,可以使用MD5算法来计算所输入密码的MD5摘要,并发送给管理员服务器200进行密码验证。当然,本发明不限于MD5摘要算法,而是可以使用任何对密码进行加密的算法,例如SHA1。当然,本发明也不限于上述单向加密算法,也可以使用加密/解密方式对输入的密码加密,例如3DES、AES等等。
在一个实施例中,如果与管理员服务器200的连接失败,则提示服务器连接失败。在该情况下,可以将输入的密码与本地存储的预先指定的密码进行比较,并验证是否成功。当然,本发明不限于此。在另一些实施例中,也可以直接在本地验证密码,并不一定要先连接服务器200并在服务器200处验证。
在一个实施例中,如果远端服务器200验证密码未通过(密码无效),则向终端100返回验证失败。在一个实施例中,在验证失败达预定次数(例如,3次)之后,可提示密码尝试次数过多并直接终止该取消激活请求。在一个实施例中,当远端服务器200验证密码通过(密码有效),则参见图8可以关闭上述全局性质的提示框,露出系统的取消激活设备管理器的原界面,防卸载功能完毕。
至此,已结合图2A以及图3~图8详细描述了防止应用卸载的流程。通过使用根据本发明实施例的方法及终端,可以有效地防止用户误删除或防止第三方恶意删除激活了设备管理器的应用,从而提高了企业终端的安全性,保护了企业数据安全。
图2B示出了更一般化的本发明的实施例。图2B与图2A所示实施例的主要不同之处在于:在图2B所示实施例中,明确了要被取消激活设备管理器的应用(第一应用)和弹出阻碍界面(例如,全局性遮挡对话框)的应用(第二应用)可以是不同应用或相同应用。且由拦截到“激活取消前提示”的第一应用向第二应用进行通知的方式不限于自定义系统广播,而还可以是进程间通信(IPC),或甚至在第一应用和第二应用是同一应用的情况下的直接弹出阻碍界面,而无需任何通知步骤。
如图2B所示以及如上面关于图2A所述,在一个实施例中,当使用自定义系统广播时,可以由第二应用的广播接收器来接收该自定义广播,并发起对阻碍界面的弹出(例如,直接调用全局性对话框生成函数等)。在另一个实施例中,当使用进程间通信时,可以通过第二应用的AIDL接口来接收该进程间通信,并类似地发起对阻碍界面的弹出。在一个实施例中,当第一应用和第二应用属于同一应用时,可以在不需要不同应用/组件/进程/线程之间的通知的情况下,在onDisableRequested方法中直接弹出全局性对话框(阻碍界面)来实现阻碍取消激活设备管理器的功能。图2B所示实施例的其他部分与图2A的类似,此处为了描述的简洁和清楚,对其进行省略。
图9是示出了根据本发明实施例的在终端100中执行的基于应用证书来检测应用安装包的安全性的方法400的流程图。如图9所示,方法400可以包括步骤S410、S420和S430。根据本发明,方法400的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图9所示的具体操作顺序。在一些实施例中,方法400可以由图1所示的终端100或客户端150来执行。
图10是示出了根据本发明实施例的阻止应用卸载的示例终端100的框图。如图10所示,终端100可以包括:请求拦截单元110、请求通知单元120和界面显示单元130。
请求拦截单元110可以用于拦截与第一应用相关的取消激活设备管理器的请求。请求拦截单元110可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以用于拦截与第一应用相关的取消激活设备管理器的请求。
请求通知单元120可以用于就该请求向第二应用加以通知。请求通知单元120可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以用于就该请求向第二应用加以通知。
界面显示单元130可以用于由第二应用引起显示用于阻碍取消激活设备管理器的界面,以防止卸载第一应用。界面显示单元130可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的显示部分(例如,LCD显示屏)相配合,由第二应用引起显示用于阻碍取消激活设备管理器的界面,以防止卸载第一应用。
此外,终端100还可以包括图10中未示出的其他单元,例如密码验证单元、管理员联系单元等。在一些实施例中,密码验证单元可以用于对输入的管理员密码进行验证,如果验证有效,则引起取消界面,否则请求重新输入管理员密码。在一些实施例中,管理员联系单元可以用于在界面上返回管理员的联系方式。
以下将结合图9和图10,对根据本发明实施例的在终端100上执行的用于防止应用卸载的方法400和终端100进行详细的描述。
方法400开始于步骤S410,在步骤S410中,可以由终端100的请求拦截单元110拦截与第一应用相关的取消激活设备管理器的请求。
在步骤S420中,可以由终端100的请求通知单元120就该请求向第二应用加以通知。
在步骤S430中,可以由第二应用引起由终端100的界面显示单元显示用于阻碍取消激活设备管理器的界面,以防止卸载第一应用。
在一些实施例中,步骤S410可以是通过对设备管理器的用于在取消激活前进行提示的函数进行重载来实现的。
在一些实施例中,用于在取消激活前进行提示的函数可以是DeviceAdminReceiver类的onDisableRequested方法函数。
在一些实施例中,步骤S420可以是通过自定义系统广播或进程间通信(IPC)来实现的。
在一些实施例中,如果在步骤S420中使用自定义系统广播向第二应用加以通知,则第二应用可以在广播接收器中引起显示用于阻碍取消激活设备管理器的界面,以防止卸载第一应用;如果在步骤S420中使用进程间通信向第二应用加以通知,则第二应用可以在实现了AIDL接口的服务类中的相应接口中引起显示用于阻碍取消激活设备管理器的界面,以防止卸载第一应用。
在一些实施例中,第二应用可以是不在任务管理器中显示的应用,以防止通过任务管理器来关闭第二应用,进而取消用于阻碍的界面。
在一些实施例中,在第一应用和第二应用属于同一应用的情况下,则方法400可以跳过步骤S420。
在一些实施例中,界面可以包括用于输入管理员密码的输入栏。
在一些实施例中,在步骤S430之后,方法400还可以包括:(S440)对输入的管理员密码进行验证,如果验证有效,则引起取消界面,否则请求重新输入管理员密码。
在一些实施例中,步骤S440还可以包括:将输入的管理员密码与本地预先存储的密码进行比较,以验证是否有效。
在一些实施例中,步骤S440还可以包括:(S442)计算输入的管理员密码的数字摘要;(S444)向服务器发送数字摘要;以及(S446)从服务器接收验证结果。
在一些实施例中,步骤S440还可以包括:(S441)判断输入的管理员密码是否为空,如果为空,则在界面上提示密码为空,否则继续方法。
在一些实施例中,步骤S444还可以包括:(S445)判断是否能够连接到服务器200,如果否,则在界面上提示服务器200不可用,否则继续方法。
在一些实施例中,步骤S440还可以包括:(S448)如果输入的管理员密码连续验证无效达预定次数,则在界面上提示尝试次数过多并终止请求,否则继续方法。
在一些实施例中,界面还可以包括用于找回管理员密码的按钮。
在一些实施例中,在按钮被点击的情况下,方法400还可以包括:(S450)在界面上返回管理员的联系方式。
在一些实施例中,步骤S450还可以包括:判断是否能够连接到管理员服务器200,如果不能,则返回本地存储的管理员的联系方式,否则,从管理员服务器200获取管理员的联系方式。
在一些实施例中,步骤S450还可以包括:使用从管理员服务器200获取到的管理员的联系方式来更新本地存储的管理员的联系方式。
在一些实施例中,界面覆盖可以用于取消激活设备管理器的界面。
在一些实施例中,可以通过重载界面的回退按键函数来阻止取消对界面的显示。
至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换、添加和组合等。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。
Claims (22)
1.一种用于防止对激活了设备管理器的第一应用进行卸载的方法,包括:
(a)拦截与所述第一应用相关的取消激活所述设备管理器的请求;
(b)就所述请求向第二应用加以通知;以及
(c)由所述第二应用引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用。
2.根据权利要求1所述的方法,其中,所述拦截步骤是通过对所述设备管理器的用于在取消激活前进行提示的函数进行重载来实现的。
3.根据权利要求2所述的方法,其中,所述用于在取消激活前进行提示的函数是DeviceAdminReceiver类的onDisableRequested方法函数。
4.根据权利要求1所述的方法,其中,步骤(b)是通过自定义系统广播或进程间通信(IPC)来实现的。
5.根据权利要求4所述的方法,其中,
如果在步骤(b)中使用所述自定义系统广播向所述第二应用加以通知,则所述第二应用在广播接收器中引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用;
如果在步骤(b)中使用所述进程间通信向所述第二应用加以通知,则所述第二应用在实现了AIDL接口的服务类中的相应接口中引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用。
6.根据权利要求1所述的方法,其中,所述第二应用是不在任务管理器中显示的应用,以防止通过所述任务管理器来关闭所述第二应用,进而取消用于阻碍的界面。
7.根据权利要求1所述的方法,其中,所述界面包括用于输入管理员密码的输入栏。
8.根据权利要求7所述的方法,其中,在步骤(c)之后,所述方法还包括:
(d)对输入的管理员密码进行验证,如果验证有效,则引起取消所述界面,否则请求重新输入管理员密码。
9.根据权利要求8所述的方法,其中,步骤(d)还包括:将输入的管理员密码与本地预先存储的密码进行比较,以验证是否有效。
10.根据权利要求8所述的方法,其中,步骤(d)还包括:
(d1)计算输入的所述管理员密码的数字摘要;
(d2)向服务器发送所述数字摘要;以及
(d3)从所述服务器接收验证结果。
11.根据权利要求10所述的方法,其中,步骤(d)还包括:
(d0)判断输入的管理员密码是否为空,如果为空,则在所述界面上提示密码为空,否则继续所述方法。
12.根据权利要求10所述的方法,其中,步骤(d2)还包括:
(d21)判断是否能够连接到所述服务器,如果否,则在所述界面上提示所述服务器不可用,否则继续所述方法。
13.根据权利要求10所述的方法,其中,步骤(d)还包括:
(d5)如果输入的管理员密码连续验证无效达预定次数,则在所述界面上提示尝试次数过多并终止所述请求,否则继续所述方法。
14.根据权利要求7所述的方法,其中,所述界面还包括用于找回管理员密码的按钮。
15.根据权利要求14所述的方法,其中,在所述按钮被点击的情况下,所述方法还包括:
(e)在所述界面上返回管理员的联系方式。
16.根据权利要求15所述的方法,其中,步骤(e)还包括:
判断是否能够连接到管理员服务器,如果不能,则返回本地存储的管理员的联系方式,否则,从所述管理员服务器获取所述管理员的联系方式。
17.根据权利要求16所述的方法,其中,步骤(e)还包括:使用从所述管理员服务器获取到的所述管理员的联系方式来更新本地存储的管理员的联系方式。
18.根据权利要求1所述的方法,其中,所述界面通过覆盖用于取消激活所述设备管理器的界面来阻碍取消激活所述设备管理器的界面。
19.根据权利要求1所述的方法,其中,通过重载所述界面的回退按键函数来阻止取消对所述界面的显示。
20.一种用于防止对激活了设备管理器的第一应用进行卸载的终端,包括:
请求拦截单元,用于拦截与所述第一应用相关的取消激活所述设备管理器的请求;
请求通知单元,用于就所述请求向第二应用加以通知;以及
界面显示单元,用于由所述第二应用引起所述界面显示单元显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述第一应用。
21.一种用于防止对激活了设备管理器的应用进行卸载的方法,包括:
(a)拦截与所述应用相关的取消激活所述设备管理器的请求;
(b)由所述应用引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述应用。
22.一种用于防止对激活了设备管理器的应用进行卸载的终端,包括:
请求拦截单元,用于拦截与所述应用相关的取消激活所述设备管理器的请求;
界面显示单元,用于由所述应用引起显示用于阻碍取消激活所述设备管理器的界面,以防止卸载所述应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410234165.5A CN103984576A (zh) | 2014-05-29 | 2014-05-29 | 用于防止应用卸载的方法和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410234165.5A CN103984576A (zh) | 2014-05-29 | 2014-05-29 | 用于防止应用卸载的方法和终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103984576A true CN103984576A (zh) | 2014-08-13 |
Family
ID=51276569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410234165.5A Pending CN103984576A (zh) | 2014-05-29 | 2014-05-29 | 用于防止应用卸载的方法和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984576A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537314A (zh) * | 2014-12-25 | 2015-04-22 | 北京网秦天下科技有限公司 | 设备管理器处理方法及装置 |
CN105791596A (zh) * | 2016-05-05 | 2016-07-20 | 绿网天下(福建)网络科技股份有限公司 | 一种防止app被卸载的方法 |
CN105975316A (zh) * | 2016-05-18 | 2016-09-28 | 广东欧珀移动通信有限公司 | 一种进程管理方法、装置及设备 |
CN106028298A (zh) * | 2016-05-05 | 2016-10-12 | 绿网天下(福建)网络科技股份有限公司 | 一种移动终端短信的管控方法 |
CN106909809A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 建立设备管理器的方法及装置 |
CN106909836A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 应用防卸载方法及装置 |
CN106951742A (zh) * | 2017-03-21 | 2017-07-14 | 北京明朝万达科技股份有限公司 | 一种防止安卓系统的应用被卸载的方法和装置 |
CN106951774A (zh) * | 2017-03-03 | 2017-07-14 | 绿网天下(福建)网络科技股份有限公司 | 一种Android应用防杀防卸载的方法 |
US9898606B1 (en) * | 2014-10-29 | 2018-02-20 | Symantec Corporation | Preventing uninstallation of applications |
CN110634230A (zh) * | 2019-09-06 | 2019-12-31 | 深圳市智莱科技股份有限公司 | 一种自动售卖机的应用程序与硬件设备信息交互的方法 |
CN111061492A (zh) * | 2019-12-16 | 2020-04-24 | 连尚(新昌)网络科技有限公司 | 一种应用程序的处理方法、设备和计算机存储介质 |
CN114859874A (zh) * | 2022-07-06 | 2022-08-05 | 深圳市星卡软件技术开发有限公司 | 一种基于汽车诊断的封闭系统及其使用方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009032165A (ja) * | 2007-07-30 | 2009-02-12 | Fujitsu Telecom Networks Ltd | ソフトウェアのライセンス管理システム、プログラム及び装置 |
CN103810419A (zh) * | 2014-02-13 | 2014-05-21 | 北京宝利明威软件技术有限公司 | 一种应用防卸载方法和设备 |
CN103810420A (zh) * | 2014-02-13 | 2014-05-21 | 北京宝利明威软件技术有限公司 | 一种应用防卸载方法和系统 |
-
2014
- 2014-05-29 CN CN201410234165.5A patent/CN103984576A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009032165A (ja) * | 2007-07-30 | 2009-02-12 | Fujitsu Telecom Networks Ltd | ソフトウェアのライセンス管理システム、プログラム及び装置 |
CN103810419A (zh) * | 2014-02-13 | 2014-05-21 | 北京宝利明威软件技术有限公司 | 一种应用防卸载方法和设备 |
CN103810420A (zh) * | 2014-02-13 | 2014-05-21 | 北京宝利明威软件技术有限公司 | 一种应用防卸载方法和系统 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9898606B1 (en) * | 2014-10-29 | 2018-02-20 | Symantec Corporation | Preventing uninstallation of applications |
CN104537314A (zh) * | 2014-12-25 | 2015-04-22 | 北京网秦天下科技有限公司 | 设备管理器处理方法及装置 |
CN106909809A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 建立设备管理器的方法及装置 |
CN106909836A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 应用防卸载方法及装置 |
CN105791596A (zh) * | 2016-05-05 | 2016-07-20 | 绿网天下(福建)网络科技股份有限公司 | 一种防止app被卸载的方法 |
CN106028298A (zh) * | 2016-05-05 | 2016-10-12 | 绿网天下(福建)网络科技股份有限公司 | 一种移动终端短信的管控方法 |
CN105975316A (zh) * | 2016-05-18 | 2016-09-28 | 广东欧珀移动通信有限公司 | 一种进程管理方法、装置及设备 |
CN106951774A (zh) * | 2017-03-03 | 2017-07-14 | 绿网天下(福建)网络科技股份有限公司 | 一种Android应用防杀防卸载的方法 |
CN106951742A (zh) * | 2017-03-21 | 2017-07-14 | 北京明朝万达科技股份有限公司 | 一种防止安卓系统的应用被卸载的方法和装置 |
CN110634230A (zh) * | 2019-09-06 | 2019-12-31 | 深圳市智莱科技股份有限公司 | 一种自动售卖机的应用程序与硬件设备信息交互的方法 |
CN110634230B (zh) * | 2019-09-06 | 2021-12-07 | 深圳市智莱科技股份有限公司 | 一种自动售卖机的应用程序与硬件设备信息交互的方法 |
CN111061492A (zh) * | 2019-12-16 | 2020-04-24 | 连尚(新昌)网络科技有限公司 | 一种应用程序的处理方法、设备和计算机存储介质 |
CN111061492B (zh) * | 2019-12-16 | 2023-12-29 | 连尚(新昌)网络科技有限公司 | 一种应用程序的处理方法、设备和计算机存储介质 |
CN114859874A (zh) * | 2022-07-06 | 2022-08-05 | 深圳市星卡软件技术开发有限公司 | 一种基于汽车诊断的封闭系统及其使用方法 |
CN114859874B (zh) * | 2022-07-06 | 2022-11-01 | 深圳市星卡软件技术开发有限公司 | 一种基于汽车诊断的封闭系统及其使用方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984576A (zh) | 用于防止应用卸载的方法和终端 | |
JP6396887B2 (ja) | モバイルデバイスサポートサービスを提供するためのシステム、方法、装置、および非一時的コンピュータ可読記憶媒体 | |
US7478250B2 (en) | System and method for real-time detection of computer system files intrusion | |
US20220232026A1 (en) | Intrusion detection system enrichment based on system lifecycle | |
US8419806B2 (en) | Discriminating data protection system | |
US9436832B2 (en) | System and method for virtual image security in a cloud environment | |
US8984651B1 (en) | Integrated physical security control system for computing resources | |
US10671723B2 (en) | Intrusion detection system enrichment based on system lifecycle | |
CN107193666B (zh) | 应用程序之间调用的控制方法及装置 | |
WO2021121382A1 (en) | Security management of an autonomous vehicle | |
CN110956722A (zh) | 一种智能锁异常报警的方法、设备、存储介质 | |
CN103810420A (zh) | 一种应用防卸载方法和系统 | |
CN108494749B (zh) | Ip地址禁用的方法、装置、设备及计算机可读存储介质 | |
CN103810419A (zh) | 一种应用防卸载方法和设备 | |
US20210173956A1 (en) | User access management from anywhere and prevent intruders by notifying the users after a predetermined time interval | |
CN106778173B (zh) | 一种基于智能操作系统的应用锁设置的方法及装置 | |
JP6636605B1 (ja) | 履歴監視方法、監視処理装置および監視処理プログラム | |
US10084749B2 (en) | Automatic blocking of bad actors across a network | |
CN112541168A (zh) | 一种数据的防窃取方法、系统及存储介质 | |
CN110784448A (zh) | 设备安全保护方法、装置、系统及计算机可读存储介质 | |
US20240152433A1 (en) | Computer-implemented system and method for recovering data in case of a computer network failure | |
Horsman | Can signs of digital coercive control be evidenced in mobile operating system settings?-A guide for first responders | |
CN116074042A (zh) | 基于单点登录的多云平台异常处理方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140813 |