CN106951742A - 一种防止安卓系统的应用被卸载的方法和装置 - Google Patents

一种防止安卓系统的应用被卸载的方法和装置 Download PDF

Info

Publication number
CN106951742A
CN106951742A CN201710169106.8A CN201710169106A CN106951742A CN 106951742 A CN106951742 A CN 106951742A CN 201710169106 A CN201710169106 A CN 201710169106A CN 106951742 A CN106951742 A CN 106951742A
Authority
CN
China
Prior art keywords
application
kernel service
interface
miscellaneous function
monitoring
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
Application number
CN201710169106.8A
Other languages
English (en)
Inventor
董洪艳
王志海
喻波
安鹏
廖黄河
韩振国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wondersoft Technology Co Ltd
Original Assignee
Beijing Wondersoft Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Wondersoft Technology Co Ltd filed Critical Beijing Wondersoft Technology Co Ltd
Priority to CN201710169106.8A priority Critical patent/CN106951742A/zh
Publication of CN106951742A publication Critical patent/CN106951742A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种防止安卓系统的应用被卸载的方法和装置,该方法包括:准入客户端判断核心服务是否已安装;如果否,则调用系统安装程序安装核心服务,开启应用的辅助功能和/或激活设备管理权限,接收窗口状态改变事件,判断上述事件是否为辅助功能管理页面、设备管理页面、第三方应用管理软件或应用卸载页面之一,如果是,则模拟用户行为的点击返回按钮,否则,返回到接收窗口状态改变事件;如果核心服务已安装,判断是否需要防止应用卸载,如果否,调用核心服务接口停止对所述应用的监控,如果是,调用核心服务接口设置需要监控的应用名称,调用核心服务接口开启监控服务。通过本方案,保护应用程序正常运行。

Description

一种防止安卓系统的应用被卸载的方法和装置
技术领域
本发明涉及计算机领域,具体涉及一种防止安卓系统的应用被卸载的方法和装置。
背景技术
基于企业管理及安全的需求,需要工作人员的手机安装特定的软件,以达到检测目的。由于这些软件的特殊价值所在,所以防卸载功能也应运而生。目前,市场上针对此问题的解决方案一般为以下几种:
A、通过设备管理器激活的方法实现,激活设备管理器的应用不能直接卸载,需要取消激活设备管理器,当用户点击取消设备管理器时,应用可以接收到取消激活的通知,通过阻止程序正常返回达到禁止取消设备管理器的操作,以达到防卸载功能。
B、接收系统卸载应用的广播消息然后弹出遮罩层。Avast有防止所有程序卸载的功能,可以通过接收卸载的系统广播来控制保护的程序不被卸载。
C、root以后把应用link到/system下面,把应用做成系统APP,须将android:persistent属性设置为true,同时使用目标机器的签名文件对应用进行签名,但这样又造成了应用无法保证兼容所有不同厂商的产品。
从现实情况来看,激活设备管理器的方式与本发明最为接近,但由于目前大多数手机在卸载应用时,可通过长按应用卸载,不需要进入到应用管理界面。其中部分手机长按卸载时,如果检测到此应用为设备管理器会直接弹出取消设备管理并卸载的对话框。当用户点击确认时,应用被卸载,无法接收到取消激活的通知。所以此方案对此类机型无效。
图1是现有技术中的实现步骤:
A、实现系统API DeviceAdminReceiver,使应用具备设备管理功能
B、激活应用的设备管理功能
C、通过DeviceAdminReceiver的onDisableRequested回调方法,接收用户激活或者取消设备管理权限行为
D、当用户取消激活时,会执行onDisableRequested方法,可在此方法中弹出遮罩层并利用耗时操作阻止此方法返回。
现有技术存在以下缺点:
A、兼容性差:由于部分机型长按图标即可取消设备管理并卸载,所以此方案在此类机型上不适用。
B、效果不理想:当用户通过最近运行的程序或者第三方应用管理软件强制杀死应用时,应用无法接收到取消设备管理器的通知,此时用户可以取消设备管理器并正常卸载应用。
C、资源浪费:由于需要在onDisableRequested方法中增加耗时操作以阻止方法返回,势必会造成资源浪费。
D、封装性差:由于取消设备管理的广播只能由本应用接收到,所以所有需要实现防卸载功能的应用均需要编写相关代码。
本发明从实际需求和应用的角度出发,构建一套兼容性强、封装性好的应用防卸载的方案,现有技术的最大缺点为无法接收或者无法及时接收取消设备管理激活的广播,针对这一问题,本发明从另一角度出发,禁止用户取消激活设备管理的操作,来达到防卸载功能。采用辅助功能,接收用户行为,如点击、长按、窗口状态改变等。对需要拦截的行为进行分析,当用户试图卸载应用或者做与卸载应用相关的操作(如取消设备管理、取消辅助功能)时,应用自动模拟用户点击返回行为,使用户无法进入相关页面。其次现有技术可能因为部分手机通过长按功能卸载应用,针对此问题,本发明产品作为核心服务程序,不存在桌面图标。
发明内容
为解决上述技术问题,本发明提供了一种防止安卓系统的应用被卸载的方法,包括以下步骤:
1).调用系统安装程序安装核心服务;
2).开启应用的辅助功能和/或激活设备管理权限;
3).接收窗口状态改变事件;
4).判断上述事件是否为辅助功能管理页面、设备管理页面、第三方应用管理软件或应用卸载页面之一;
5).如果是,则通过系统API模拟用户行为的点击返回按钮,跳转到步骤6),否则,跳转到步骤3);
6).结束。
优选的,在步骤1)之前,如果准入客户端判断核心服务没有安装,才执行上述步骤1)-6),如果准入客户端判断核心服务已经安装,则执行下列步骤:
a).准入客户端开始运行,判断是否需要防止应用被卸载;
b).如果否,调用核心服务接口停止对所述应用的监控,跳转到步骤6),如果是,调用核心服务接口设置需要监控的应用的包名;
c).调用核心服务接口开启监控服务,跳转到步骤6)。
优选的,所以核心服务接口提供了两个接口,一个接口是包名设置接口,所述步骤b)通过此接口准入客户端向所述核心服务设置应用的包名,以便所述核心服务对该应用进行监控;另一个接口为设置是否需要进行监控的接口,通过此接口设置应用被保护,或通过此接口通知核心服务停止监控所述应用。
优选的,所述开启辅助功能和/或激活设备管理权限具体包括:
2.1)判断核心服务是否开启辅助功能,如果否,则开启辅助功能,跳转到步骤2.1),如果是,直接跳转到步骤2.2);
2.2)判断核心服务是否激活设备管理权限,如果否,则激活设备管理权限,跳转到步骤2.2),如果是,直接跳转到步骤3)。
优选的,通过以下方法实现接收窗口状态改变事件:根据系统APIAccessibilityService的onAccessibilityEvent方法接收窗口状态改变事件。
优选的,通过系统API DeviceAdminReceiver为所述应用开启辅助功能;通过系统API AccessibilityService为所述应用激活设备管理权限功能。
优选的,通过系统API AccessibilityService的performGlobalAction方法模拟用户点击返回按钮,阻止用户进入到卸载页面。
优选的,在接收窗口状态改变事件的同时,执行下列步骤:
3.1)开启循环需保护的应用状态;
3.2)判断准入客户端是否被卸载,如果否,则跳转到步骤3.1),如果是,则跳转到步骤3.3);
3.3)调用系统安装程序安装准入客户端。
为解决上述技术问题,本发明提供了一种防止安卓系统的应用被卸载的终端,该终端包括处理器和存储介质,所述存储介质包括计算机程序指令,所述处理器通过执行所述计算机程序指令实现上述之一的方法。
为解决上述技术问题,本发明提供了一种用于安卓系统的应用防卸载的装置,该装置包括:
核心服务安装判断装置,判断核心服务是否已安装,如果否,则调用系统安装程序安装核心服务;
辅助功能开启装置,开启辅助功能;
设备管理权限激活装置,激活设备管理权限;
事件接收装置,接收窗口状态改变事件;
防卸载装置,判断上述窗口状态改变事件是否为取消辅助功能、取消设备管理权限、第三方应用管理软件或应用卸载页面之一,如果是,则通过系统API模拟用户行为的点击返回按钮;
防卸载判断装置,判断是否需要防止应用卸载,如果否,调用核心服务接口停止对所述应用的监控,如果是,调用核心服务接口设置需要监控的应用名称;
监控开启装置,调用核心服务接口开启监控服务。
优选的,所以核心服务接口提供了两个接口,一个接口是包名设置接口,通过此接口向所述核心服务设置应用的包名,以便所述核心服务对该应用进行监控;另一个接口为设置是否需要进行监控的接口,通过此接口设置应用被保护,或通过此接口通知核心服务停止监控所述应用。
通过本发明的技术方案取得了以下技术效果:
A、保护应用程序正常运行
B、节省资源,避免不必要的电量消耗
C、对android机型适用广泛
D、使用方便,本发明实现时作为一个单独的进程存在,需要实现防卸载功能的应用只需要绑定此服务。通过服务提供的接口设置应用包名即可。
附图说明
图1是现有技术实现流程图
图2是本发明核心技术实现流程图
图3是具体实施例的实现流程图
具体实施方式
如图2所示,本发明的核心技术包括:
A、实现DeviceAdminReceiver、AccessibilityService为应用增加辅助功能及设备管理功能。此处的辅助功能和设备管理功能指安卓系统手机设置中的辅助功能和设备管理器。
B、实现AccessibilityService的onAccessibilityEvent接收窗口状态改变事件。
C、判断当前窗口是否为取消辅助功能、取消设备管理、第三方应用管理或者卸载本应用页面,如果是,则通过AccessibilityService的performGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK)方法模拟用户点击返回按钮,阻止用户进入到则页面
D、循环监控需要保护的应用,如果应用被卸载则弹出安装页面。
如图3,是本发明的一个具体实施例。
A、实施的必要性
安全监测系统为安全部门定制的系统,目的在于在用户手机使用情况进行监测,这就要求程序不能被私自卸载。所以本发明在此应用的事实上提供了两个接口,一个是包名设置接口,通过此接口准入客户端向核心服务程序设置包名,以便核心服务对此应用进行监控,另一个接口为设置是否需要进行监控的接口,由于一些实际需求,当准入应用不再需要被保护时,可通过此接口通知核心服务停止监控。
B、实现步骤
1)准入客户端在运行时判断核心服务是否已安装,如果未安装则调用系统安装应用安装核心服务。其中,准入客户端指防卸载的一个安全应用,为申请人开发的一个安全准入客户端;核心服务指提供防卸载的程序,本质是一个app,以服务的形式运行在手机中,没有程序图标。
2)核心服务安装成功后,引导用户开启辅助功能及激活设备管理权限,具体为:判断是否开启应用的辅助功能,如果已经开启,则进入激活应用设备管理权限的步骤,否则返回继续判断是否开启应用的辅助功能步骤;在激活应用设备管理权限的步骤中,判断是否激活应用的设备管理权限功能,如果没有激活,则返回继续判断是否激活应用的设备管理权限功能,如果已经激活,则进入接收窗口状态改变事件的步骤。并通过辅助功能监控用户行为,当用户试图卸载或者做卸载核心服务相关的操作时,模拟用户点击行为,返回到上级页面,相当于按了安卓系统中的返回键。
3)准入客户端根据策略判断自己是否需要防卸载。
4)如果需要,则通过核心服务提供的接口设置包名并通知核心服务开始监控。由于应用程序APP的名称不是唯一的,但是同一个手机上应用的包名不可重复,因此将需要防卸载的应用的包名设置给核心服务,以确保对应用设置的唯一性。
5)当准入客户端接收到停止对应用的监控策略时,调用核心服务提供的另一个接口停止对应用的监控。
在另一实施例中,本发明提供了一种防止安卓系统的应用被卸载的终端,该终端包括处理器和计算机存储介质,所述存储介质包括计算机程序指令,所述处理器通过执行所述计算机程序指令实现上述防止被卸载的方法。
在另一实施例中,本发明提供了一种用于安卓系统的应用防卸载的装置,该装置包括:
核心服务安装判断装置,判断核心服务是否已安装,如果否,则调用系统安装程序安装核心服务;
辅助功能开启装置,开启辅助功能;
设备管理权限激活装置,激活设备管理权限;
事件接收装置,接收窗口状态改变事件;
防卸载装置,判断上述窗口状态改变事件是否为取消辅助功能、取消设备管理权限、第三方应用管理软件或应用卸载页面之一,如果是,则通过系统API模拟用户行为的点击返回按钮;
防卸载判断装置,判断是否需要防止应用卸载,如果否,调用核心服务接口停止对所述应用的监控,如果是,调用核心服务接口设置需要监控的应用名称;
监控开启装置,调用核心服务接口开启监控服务。
通过本发明,可以取得如下技术效果:保护应用程序正常运行;节省资源,避免不必要的电量消耗;对android机型适用广泛;使用方便,本发明实现时作为一个单独的进程存在,需要实现防卸载功能的应用只需要绑定此服务。通过服务提供的接口设置应用包名即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应保护在本发明的保护范围之内。

Claims (11)

1.一种防止安卓系统的应用被卸载的方法,包括以下步骤:
1).调用系统安装程序安装核心服务;
2).开启应用的辅助功能和/或激活设备管理权限;
3).接收窗口状态改变事件;
4).判断上述事件是否为辅助功能管理页面、设备管理页面、第三方应用管理软件或应用卸载页面之一;
5).如果是,则通过系统API模拟用户行为的点击返回按钮,跳转到步骤6),否则,跳转到步骤3);
6).结束。
2.根据权利要求1所述的方法,在步骤1)之前,如果准入客户端判断核心服务没有安装,才执行上述步骤1)-6),如果准入客户端判断核心服务已经安装,则执行下列步骤:
a).准入客户端开始运行,判断是否需要防止应用被卸载;
b).如果否,调用核心服务接口停止对所述应用的监控,跳转到步骤6),如果是,调用核心服务接口设置需要监控的应用的包名;
c).调用核心服务接口开启监控服务,跳转到步骤6)。
3.根据权利要求2所述的方法,所以核心服务接口提供了两个接口,一个接口是包名设置接口,所述步骤b)通过此接口准入客户端向所述核心服务设置应用的包名,以便所述核心服务对该应用进行监控;另一个接口为设置是否需要进行监控的接口,通过此接口设置应用被保护,或通过此接口通知核心服务停止监控所述应用。
4.根据权利要求1所述的方法,所述开启辅助功能和/或激活设备管理权限具体包括:
2.1)判断核心服务是否开启辅助功能,如果否,则开启辅助功能,跳转到步骤2.1),如果是,直接跳转到步骤2.2);
2.2)判断核心服务是否激活设备管理权限,如果否,则激活设备管理权限,跳转到步骤
2.2),如果是,直接跳转到步骤3)。
5.根据权利要求1所述的方法,通过以下方法实现接收窗口状态改变事件:根据系统API AccessibilityService的onAccessibilityEvent方法接收窗口状态改变事件。
6.根据权利要求1所述的方法,通过系统API DeviceAdminReceiver为所述应用开启辅助功能;通过系统API AccessibilityService为所述应用激活设备管理权限功能。
7.根据权利要求1所述的方法,通过系统API AccessibilityService的performGlobalAction方法模拟用户点击返回按钮,阻止用户进入到卸载页面。
8.根据权利要求1-7之一的方法,在接收窗口状态改变事件的同时,执行下列步骤:
3.1)开启循环需保护的应用状态;
3.2)判断准入客户端是否被卸载,如果否,则跳转到步骤3.1),如果是,则跳转到步骤
3.3);
3.3)调用系统安装程序安装准入客户端。
9.一种防止安卓系统的应用被卸载的终端,该终端包括处理器和存储介质,所述存储介质包括计算机程序指令,所述处理器通过执行所述计算机程序指令实现权利要求1-8之一的方法。
10.一种用于安卓系统的应用防卸载的装置,该装置包括:
核心服务安装判断装置,判断核心服务是否已安装,如果否,则调用系统安装程序安装核心服务;
辅助功能开启装置,开启辅助功能;
设备管理权限激活装置,激活设备管理权限;
事件接收装置,接收窗口状态改变事件;
防卸载装置,判断上述窗口状态改变事件是否为取消辅助功能、取消设备管理权限、第三方应用管理软件或应用卸载页面之一,如果是,则通过系统API模拟用户行为的点击返回按钮;
防卸载判断装置,判断是否需要防止应用卸载,如果否,调用核心服务接口停止对所述应用的监控,如果是,调用核心服务接口设置需要监控的应用名称;
监控开启装置,调用核心服务接口开启监控服务。
11.根据权利要求10所述的装置,所以核心服务接口提供了两个接口,一个接口是包名设置接口,通过此接口向所述核心服务设置应用的包名,以便所述核心服务对该应用进行监控;另一个接口为设置是否需要进行监控的接口,通过此接口设置应用被保护,或通过此接口通知核心服务停止监控所述应用。
CN201710169106.8A 2017-03-21 2017-03-21 一种防止安卓系统的应用被卸载的方法和装置 Pending CN106951742A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710169106.8A CN106951742A (zh) 2017-03-21 2017-03-21 一种防止安卓系统的应用被卸载的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710169106.8A CN106951742A (zh) 2017-03-21 2017-03-21 一种防止安卓系统的应用被卸载的方法和装置

Publications (1)

Publication Number Publication Date
CN106951742A true CN106951742A (zh) 2017-07-14

Family

ID=59472554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710169106.8A Pending CN106951742A (zh) 2017-03-21 2017-03-21 一种防止安卓系统的应用被卸载的方法和装置

Country Status (1)

Country Link
CN (1) CN106951742A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108769366A (zh) * 2018-04-18 2018-11-06 Oppo广东移动通信有限公司 权限管理方法、装置、移动终端及存储介质
CN111742537A (zh) * 2018-02-19 2020-10-02 飞比特网络股份有限公司 用于对便携信息终端的数据通信、终端功能进行控制的计算机软件程序以及数据通信控制服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103824016A (zh) * 2013-11-28 2014-05-28 北京奇虎科技有限公司 应用防卸载方法及设备
CN103984576A (zh) * 2014-05-29 2014-08-13 北京网秦天下科技有限公司 用于防止应用卸载的方法和终端
CN104461656A (zh) * 2014-12-26 2015-03-25 深圳数字电视国家工程实验室股份有限公司 一种基于安卓平台的应用程序卸载保护方法及系统
CN105791596A (zh) * 2016-05-05 2016-07-20 绿网天下(福建)网络科技股份有限公司 一种防止app被卸载的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103824016A (zh) * 2013-11-28 2014-05-28 北京奇虎科技有限公司 应用防卸载方法及设备
CN103984576A (zh) * 2014-05-29 2014-08-13 北京网秦天下科技有限公司 用于防止应用卸载的方法和终端
CN104461656A (zh) * 2014-12-26 2015-03-25 深圳数字电视国家工程实验室股份有限公司 一种基于安卓平台的应用程序卸载保护方法及系统
CN105791596A (zh) * 2016-05-05 2016-07-20 绿网天下(福建)网络科技股份有限公司 一种防止app被卸载的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111742537A (zh) * 2018-02-19 2020-10-02 飞比特网络股份有限公司 用于对便携信息终端的数据通信、终端功能进行控制的计算机软件程序以及数据通信控制服务器
CN108769366A (zh) * 2018-04-18 2018-11-06 Oppo广东移动通信有限公司 权限管理方法、装置、移动终端及存储介质

Similar Documents

Publication Publication Date Title
CN104123498B (zh) 一种安卓系统Activity的安全性确定方法及装置
EP2562673B1 (en) Apparatus and method for securing mobile terminal
CN104657213B (zh) 一种系统间应用切换的方法和终端
US20160028884A1 (en) Mobile terminal calling request message processing method, device and system
CN104992081B (zh) 一种Android应用程序第三方代码的安全增强方法
CN102779255B (zh) 判断恶意程序的方法及装置
CN103853610B (zh) 资源优化方法及装置
CN105117643A (zh) 一种处理弹窗的方法及装置
US5594861A (en) Method and apparatus for handling processing errors in telecommunications exchanges
CN102347941B (zh) 一种基于开放平台的安全应用控制方法
US8442207B2 (en) System and method for observing a communication session
CN109379337A (zh) 一种安卓平台下应用进程的保活方法
CN106878309A (zh) 应用于网络支付的安全预警方法及装置
CN103152740A (zh) 一种用于移动终端的防监听方法及系统
CN106951742A (zh) 一种防止安卓系统的应用被卸载的方法和装置
CN105933497B (zh) 一种多模式的来电拦截方法与装置
CN103984576A (zh) 用于防止应用卸载的方法和终端
CN105893847B (zh) 一种保护安全防护应用程序文件的方法、装置及电子设备
CN103699835B (zh) 一种面向Android系统资源的访问控制方法
CN105844146A (zh) 一种保护驱动程序的方法、装置及电子设备
CN107506178A (zh) 一种页面跳转管理方法和装置
CN104361281A (zh) 一种安卓平台钓鱼攻击的解决方法
CN107992745A (zh) 一种基于安卓平台的界面劫持应对方法
CN109104400A (zh) 一种高效率物联网自动注册账号和自动登录方式
CN106951774A (zh) 一种Android应用防杀防卸载的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170714