公开/公告号CN105183307A
专利类型发明专利
公开/公告日2015-12-23
原文格式PDF
申请/专利权人 北京奇虎科技有限公司;奇智软件(北京)有限公司;
申请/专利号CN201510330052.X
申请日2015-06-15
分类号G06F3/0484(20130101);G06F9/44(20060101);H04L29/06(20060101);H04L29/08(20060101);
代理机构11330 北京市立方律师事务所;
代理人王增鑫
地址 100088 北京市西城区新街口外大街28号D座112室(德胜园区)
入库时间 2023-12-18 12:54:53
法律状态公告日
法律状态信息
法律状态
2023-07-07
专利权的转移 IPC(主分类):G06F 3/0484 专利号:ZL201510330052X 登记生效日:20230627 变更事项:专利权人 变更前权利人:三六零科技集团有限公司 变更后权利人:北京鸿享技术服务有限公司 变更事项:地址 变更前权利人:300450 天津市滨海新区滨海科技园高新六路39号9-3-401号 变更后权利人:100015 北京市朝阳区酒仙桥路甲10号3号楼15层17层1765
专利申请权、专利权的转移
2022-08-09
专利权的转移 IPC(主分类):G06F 3/0484 专利号:ZL201510330052X 登记生效日:20220727 变更事项:专利权人 变更前权利人:北京奇虎科技有限公司 变更后权利人:三六零科技集团有限公司 变更事项:地址 变更前权利人:100088 北京市西城区新街口外大街28号D座112室(德胜园区) 变更后权利人:300450 天津市滨海新区滨海科技园高新六路39号9-3-401号 变更事项:专利权人 变更前权利人:奇智软件(北京)有限公司 变更后权利人:
专利申请权、专利权的转移
2018-05-04
授权
授权
2016-01-20
实质审查的生效 IPC(主分类):G06F3/0484 申请日:20150615
实质审查的生效
2015-12-23
公开
公开
技术领域
本发明涉及计算机安全领域,具体而言,本发明涉及一种应用程序消 息显示控制方法及装置。
背景技术
近年来,随着智能手机的广泛应用,Android系统平台作为全球最流 行的移动操作系统已具有数以亿计的用户。Android系统为了方便用户查 看应用程序的消息通知,提供了通知栏消息服务以便于显示应用程序发送 的消息,提醒用户一些重要信息。但同时也给一些恶意广告软件带来了可 乘之机,恶意应用程序或者有些正常的第三方应用程序频繁利用系统的消 息通知接口显示通知栏消息,而大量的通知栏消息是无用的,多数为广告 消息,频繁弹出多条通知栏消息会给用户造成极大的干扰。
发明内容
本发明的目的旨在解决上述至少一个问题,提供一种应用程序消息显 示控制方法及装置。
为了实现上述目的,本发明提供一种应用程序消息显示控制方法,包 括以下步骤:
向系统注入并运行用于接管系统通知栏服务的控制模块;
所述控制模块依据预设条件过滤应用程序发送的通知栏消息以确定 允许显示的通知栏消息;
所述控制模块仅向SystemUI发送显示所述允许显示的通知栏消息的 消息指令,使SystemUI仅显示所述允许显示的通知栏消息。
进一步的,所述控制模块向SystemUI发送消息指令的过程如下:将 确定显示的应用程序的通知栏消息对应的消息标识符和消息对象作为参 数替换未被允许显示的应用程序通知栏消息的相应参数,通过所述的消息 指令传递该参数通知SystemUI显示消息,从而显示允许显示的通知栏消 息而隐藏未被允许显示的通知栏消息。
具体的,所述消息指令为系统提供的接口函数 NotificationManager.notify()。
具体的,所述系统通知栏服务具体指NotificationManagerService,用 于接收应用程序发送的消息并执行显示操作。
进一步的,还包括如下步骤:接收设定白名单的指令,生成用于记录 允许显示其发送的通知栏消息的应用程序包名的列表,以构造所述的用于 过滤的预设条件。
进一步的,还包括如下步骤:接收设定黑名单的指令,生成用于记录 禁止显示其发送的系统消息的应用程序包名的列表,以构造所述的用于过 滤的预设条件。
进一步的,还包括如下步骤:通过远程端口接收云端推送的白名单, 以根据该白名单所构造的预设条件实施过滤,以允许显示记录于该白名单 中的应用程序包名对应的应用程序发送的通知栏消息。
进一步的,还包括如下步骤:通过远程端口接收云端推送的黑名单, 以根据该黑名单所构造的预设条件实施过滤,以禁止显示记录于该黑名单 中的应用程序包名对应的应用程序发送的通知栏消息。
具体的,所述预设条件为判定通知栏消息所属应用程序是否安全的过 滤依据,当该应用程序被认证为安全时,确定允许显示其通知栏消息。
具体的,所述预设条件为判定应用程序发送的通知栏消息重要程度是 否高于预设值的过滤依据,当该通知栏消息的重要程度高于预设值时,确 定允许显示该通知栏消息。
具体的,所述预设条件为判定应用程序发送的通知栏消息被允许显示 的用户统计数据是否高于预设值的过滤依据,当该通知栏消息的被允许显 示的用户统计数据高于预设值时,确定允许显示该通知栏消息。
进一步的,还包括如下步骤:响应于查看指令,通过用户界面显示未 经过滤的由应用程序发送的所有通知栏消息,包括所述允许显示的通知栏 消息,和未被允许显示的通知栏消息。
一种应用程序消息显示控制装置,包括:
注入单元,用于向系统注入并运行用于接管系统通知栏服务的控制模 块;
过滤单元,用于所述控制模块依据预设条件过滤应用程序发送的通知 栏消息以确定允许显示的通知栏消息;
显示单元,用于所述控制模块仅向SystemUI发送显示所述允许显示 的通知栏消息的消息指令,使SystemUI仅显示所述允许显示的通知栏消 息。
具体的,所述控制模块向SystemUI发送消息指令的过程如下:将确 定显示的应用程序的通知栏消息对应的消息标识符和消息对象作为参数 替换未被允许显示的应用程序通知栏消息的相应参数,通过所述的消息指 令传递该参数通知SystemUI显示消息,从而显示允许显示的通知栏消息 而隐藏未被允许显示的通知栏消息。
具体的,所述消息指令为系统提供的接口函数 NotificationManager.notify()。
具体的,所述系统通知栏服务具体指NotificationManagerService,用 于接收应用程序发送的消息并执行显示操作。
进一步的,还包括白名单生成单元,接收设定白名单的指令,生成用 于记录允许显示其发送的通知栏消息的应用程序包名的列表,以构造所述 的用于过滤的预设条件。
进一步的,还包括黑名单生成单元,接收设定黑名单的指令,生成用 于记录禁止显示其发送的系统消息的应用程序包名的列表,以构造所述的 用于过滤的预设条件。
进一步的,所述过滤单元通过远程端口接收云端推送的白名单,以根 据该白名单所构造的预设条件实施过滤,以允许显示记录于该白名单中的 应用程序包名对应的应用程序发送的通知栏消息。
进一步的,所述过滤单元通过远程端口接收云端推送的黑名单,以根 据该黑名单所构造的预设条件实施过滤,以禁止显示记录于该黑名单中的 应用程序包名对应的应用程序发送的通知栏消息。
具体的,所述预设条件为判定通知栏消息所属应用程序是否安全的过 滤依据,当该应用程序被认证为安全时,确定允许显示其通知栏消息。
具体的,所述预设条件为判定应用程序发送的通知栏消息重要程度是 否高于预设值的过滤依据,当该通知栏消息的重要程度高于预设值时,确 定允许显示该通知栏消息。
具体的,所述预设条件为判定应用程序发送的通知栏消息被允许显示 的用户统计数据是否高于预设值的过滤依据,当该通知栏消息的被允许显 示的用户统计数据高于预设值时,确定允许显示该通知栏消息。
具体的,所述显示单元响应于查看指令,通过用户界面显示未经过滤 的由应用程序发送的所有通知栏消息,包括所述允许显示的通知栏消息, 和未被允许显示的通知栏消息。
相比现有技术,本发明的方案具有以下优点:
1、通过注入控制模块,运行使其接管系统的通知栏管理服务,依据 预设条件过滤应用程序发送的通知栏消息,将过滤后允许显示的通知栏消 息,发送至SystemUI以显示相应的通知栏消息,从而可以禁止无用通知 栏消息的显示,减少无用通知栏消息对用户造成的干扰,同时也不会丢失 重要的通知栏消息。
2、本发明依据用户设定的黑白名单过滤应用程序的通知栏消息,使 得用户可以自主选择接收的通知栏消息,同时结合云端服务器自动生成的 黑白名单,推荐允许或禁止显示的应用程序的通知栏消息,尽可能减少无 用通知栏消息,保留有用的重要的且用户需要的应用程序的通知栏消息, 使得通知栏消息的显示更符合用户的需求。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面 的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描 述中将变得明显和容易理解,其中:
图1为本发明所述应用程序消息显示控制方法原理示意图;
图2为本发明所述应用程序消息显示控制装置示意框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其 中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似 功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本 发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式 “一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是, 本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操 作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整 数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件 被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或 者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线 连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出 项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员 的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术 语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除 非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既 包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设 备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行 双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信 设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或 其他通信设备;PCS(PersonalCommunicationsService,个人通信系统), 其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal DigitalAssistant,个人数字助理),其可以包括射频接收器、寻呼机、互 联网/内联网访问、网络浏览器、记事本、日历和/或GPS(GlobalPositioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设 备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他 设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在 交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地 运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这 里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频 播放终端,例如可以是PDA、MID(MobileInternetDevice,移动互联网设 备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶 盒等设备。
本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括 但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个 服务器构成的云。在此,云由基于云计算(CloudComputing)的大量计算 机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦 合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络 设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括 但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP 协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方 式。
在Android系统中,状态栏通知是一个重要的功能,系统或应用程序 通过系统的通知服务发送通知消息以提醒用户。Notification,即通知,是 一种具有全局效果的通知,展示在屏幕的顶端,表现为一个图标的形式, 当用户向下滑动的时候展示出通知的具体内容。通知一般通过 NotificationManagerService发送一个Notification对象来完成。其中, NotificationManagerService是一个系统级服务,位于应用程序的框架层, 应用程序通过接口函数NotificationManager.notify()向系统发送全局通知。 具体在发送通知时,需要创建一个Notification对象来承载通知的内容, 该对象不会直接通过Notification的构造方法获取,而是通过类 Notification.Builder实例化一个Builder对象设置通知的各项属性,通过 Notification.Builder.builder()方法得到一个Notification对象,然后使用该 Notification对象通过方法NotificationManager.notify()发送通知。其中, Notification对象设置的通知的属性包括图标、文字、提示声音、振动、灯 光等。
为了接管上述NotificationManagerService服务,本发明对Root后的 Android系统注入相应的控制模块,以实现对应用程序发送的通知栏消息 的管理。
众所周知,Root权限是指Unix类操作系统(包括Linux、Android) 的系统管理员权限,类似于Windows(视窗)系统中的Administrator(管 理员)权限;Root权限可以访问和修改用户的移动设备中几乎所有的文件 (Android系统文件及用户文件,不包括ROM)。鉴于此,业内提供了 多种多样的提权方案用于获取Android系统的Root权限,实现用户权限 提升,达致全面控制操作系统的目的。这些提权方案,依提权后权限作用 的生命周期来看,包括永久Root权限和临时Root权限,顾名思义,永久 Root权限情况下,应用程序一经Root授权,以后可不必再进行Root提权; 而临时Root权限情况下,权限作用的生命周期只是操作系统的一次从开 机到关机的过程,下次开机依然需要进行Root。
无论采用何种Root方式,提权的基本原理均是通过向系统植入用于 接收权限请求的su,再结合SuperUser.apk应用程序实现人机交互,通过 su与SuperUser.apk在运行时的相互配合,来实现有效的权限管理。本发 明获取Root权限以便于在系统中注入控制模块,以接管原来的系统通知 栏服务NotificationManagerService,对应用程序发送通知的行为进行监控。 但采用何种Root方式不作为对本发明的限制。
基于上述原理,参考图1所示,本发明提供一种应用程序消息显示控 制方法,包括以下步骤:
S11、向系统注入并运行用于接管系统通知栏服务的控制模块;
为了控制应用程序发送的通知栏消息,可以选择性地为用户提供通知 栏消息,向系统注入用于接管系统通知栏服务的控制模块,即接管 NotificationManagerService的控制模块,本发明实施例采用注入so文件的 方式将控制模块植入进行Root后的Android系统,具体注入过程如下:
首先,暂停系统服务进程,即挂起目的进程;
然后,将修改后的系统服务进程的库文件覆盖原库文件;其中,修改 后的库文件中的函数包含本发明所述控制模块的功能代码、jar包、.so文 件等。从而将所述监控模块注入系统服务进程,对指定的其他服务进程的 特定操作进行监控。
所述控制模块的代码被注入并运行于SystemServer进程,由此接管系 统通知栏服务,监控应用程序发送通知栏消息的行为。当有应用程序调用 接口函数NotificationManager.notify(intid,Notificationnotification)向 NotificationManagerService发送通知时,所述控制模块对其进行拦截,获 取消息标识符和消息对象,其中所述消息标识符id用于记录消息对象在 内存中的存储地址,消息对象notification用于记录应用程序发送的消息内 容、属性等信息。
S12、所述控制模块依据预设条件过滤应用程序发送的通知栏消息以 确定允许显示的通知栏消息;
依据预设条件过滤应用程序发送的通知栏消息,以确定允许显示的通 知栏消息。在具体实施例中,所述预设条件可以由用户设定的白名单构造, 即允许属于白名单的应用程序显示其发送的通知栏消息。用户可以将重要 的应用软件设定为白名单,如网银类等软件。接受用户设定白名单的指令, 将用户选定的应用程序的包名记录于一个列表以允许该些应用程序显示 其发送的通知栏消息。向用户提供一个设定白名单的界面,依次显示所有 应用程序,每个应用程序对应提供一个按钮,用于接受用户将其加入白名 单的选中操作。该白名单还可以通过远程端口传到云端服务器,对应存储 于服务器中与第三方应用账户对应的预分配内存。
在其他具体实施例中,所述预设条件可以由用户设定的黑名单构造, 即禁止属于黑名单的应用程序显示其发送的通知栏消息。用户可以对一些 经常显示广告通知栏消息的应用软件设定黑名单。接受用户设定黑名单的 指令,将用户选定的应用程序的包名记录于一个列表以禁止该些应用程序 显示其发送的通知栏消息。向用户提供一个设定黑名单的界面,依次显示 所有应用程序,每个应用程序对应提供一个按钮,用于接受用户将其加入 黑名单的选中操作。该黑名单还可以通过远程端口传到云端服务器,对应 存储于服务器中与第三方应用账户对应的预分配内存。
在其他实施例中,云端服务器配置白名单和/或黑名单,通过远程端 口推送该白名单和/或黑名单。采用动态分析方法或静态分析方法分析确 定应用程序的安全性,其中,
所述静态分析方法具体操作为:提取安装文件的特征信息,如包名、 版本号、MD5签名、代码、字符串等信息,与云端服务器的特征码数据 库中的特征码一一进行匹配,根据匹配确定表征安装文件安全性的判定信 息,即安全等级信息,根据安全等级确定安装文件是否安全。其中,所述 特征码数据库记录特征码信息与该特征码信息所对应的安全等级之间的 映射关系。
所述动态分析方法具体操作为:解析安装文件,创建与应用程序运行 环境相应的虚拟机环境,监控应用程序运行在所述虚拟机上的动态行为和 网络交换信息,根据监控结果确定表征安装文件安全性的判定信息,即安 全等级信息,根据安全等级确定安装文件是否安全。
经过上述静态分析或动态分析,将确定安全的应用程序包名记录于白 名单,将确定不安全的应用程序包名记录于黑名单。经过远程端口推送相 应的白名单和/或黑名单,以允许或禁止显示白名单或黑名单中记录的应 用程序发送的通知栏消息。
云端服务器也可以将沙箱中的应用程序放入黑名单推送,沙箱是虚拟 软件,通过重定向技术,把应用程序生成和修改的文件定向到自身文件夹 中。云端服务器会隔离一些安全性不确定的应用程序,使其运行在虚拟的 环境中,与真实的系统环境隔离,以避免其对系统造成威胁。故云端服务 器将沙箱中的应用程序放入黑名单,以禁止其显示发送的通知栏消息。
在其他实施例中,通过判定应用程序是否安全,从而确定是否允许其 显示发送的通知栏消息。调用安全软件对其进行扫描,如果扫描结果确定 其安全,则允许其显示发送的通知栏消息,否则不允许。
在其他实施例中,云端服务器通过统计应用程序被允许显示通知栏消 息的用户数量确定是否允许其显示发送的通知栏消息。如果统计的用户数 量高于预设值,则允许其显示发送的通知栏消息,将其加入白名单,否则 不允许,将其加入黑名单。
根据上述构造的预设条件,对用户系统安装的所有应用程序发送的通 知栏消息进行过滤,确定允许显示的通知栏消息。
S13、所述控制模块仅向SystemUI发送显示所述允许显示的通知栏消 息的消息指令,使SystemUI仅显示所述允许显示的通知栏消息。
Android2.2以后的版本,都将原本存在于framework-res.apk中的状态 栏和下拉通知栏界面控制被分割出一个单独的apk文件,保存在 System/app文件夹中。SystemUI.apk包括状态栏图标、XML、控制文件等, 将SystemUI.apk分割出来是为了更方便地对其进行修改,以满足开发者的 设计需求。其中,SystemUI包括USB和Statusbar两个模块,状态栏主要 用来显示一些系统图标、系统时间、应用通知图标、应用通知内容等信息。 其中,Statusbar模块用于控制和管理状态栏。
状态栏与Toast都可以起到通知和提醒的作用,但两者的实现原理和 表现形式不同。Toast相当于一个Widget组件,类似于没有按钮的对话框。 而状态栏可以与系统中的其他应用进行交互,显示其他应用发送的通知栏 消息,可以在不使用Activity的情况下给用户提醒和通知。
具体为NotificationManagerService调用notifiy方法发送通知,与 StatusBarManagerService通过Binder机制进行交互,将发送的通知传到 StatusBarManagerService,由该服务调用addNotification方法将通知消息 进行显示,其中,addNotificationViews(keys,notification)用于显示图标, tick(notification)用于显示消息内容。本发明实施例中,所述控制模块接管 NotificationManagerService,对应用程序调用notifiy方法发送通知的行为 进行拦截,具体可以通过调用cancel函数取消应用程序发通知栏消息的行 为,以禁止不允许显示通知栏消息的应用程序。还可以通过将确定显示的 应用程序的通知栏消息对应的消息标识符和消息对象作为参数替换未被 允许显示的应用程序通知栏消息的相应参数,从而通过notifiy方法传递该 参数以显示允许显示的通知栏消息,隐藏未被允许显示的通知栏消息。由 此,所述控制模块通过限制被禁止显示的消息的应用程序调用notifiy方法 向SystemUI发送显示消息通知栏的消息指令,仅向SystemUI发送显示所 述允许显示的通知栏消息的消息指令,从而使SystemUI仅显示所述允许 显示的通知栏消息。
此外,对应于所有的应用程序发送的所有通知栏消息提供一个消息管 理界面,响应于用户的查看指令,通过该消息管理界面显示未经过滤的由 应用程序发送的所有通知栏消息,包括允许显示的通知栏消息和不被允许 显示的通知栏消息。
参考图2所示,本发明还提供一种应用程序消息显示控制装置,包括 注入单元11、过滤单元12、显示单元13,其中,
注入单元11用于向系统注入并运行用于接管系统通知栏服务的控制 模块;
为了控制应用程序发送的通知栏消息,可以选择性地为用户提供通知 栏消息,由注入单元11向系统注入用于接管系统通知栏服务的控制模块, 即接管NotificationManagerService的控制模块,本发明实施例注入单元11 采用注入so文件的方式将控制模块植入进行Root后的Android系统,具 体注入过程如下:
首先,暂停系统服务进程,即挂起目的进程;
然后,将修改后的系统服务进程的库文件覆盖原库文件;其中,修改 后的库文件中的函数包含本发明所述控制模块的功能代码、jar包、.so文 件等。从而将所述监控模块注入系统服务进程,对指定的其他服务进程的 特定操作进行监控。
所述控制模块的代码被注入并运行于SystemServer进程,由此接管系 统通知栏服务,监控应用程序发送通知栏消息的行为。当有应用程序调用 接口函数NotificationManager.notify(intid,Notificationnotification)向 NotificationManagerService发送通知时,所述控制模块对其进行拦截,获 取消息标识符和消息对象,其中所述消息标识符id用于记录消息对象在 内存中的存储地址,消息对象notification用于记录应用程序发送的消息内 容、属性等信息。
过滤单元12用于所述控制模块依据预设条件过滤应用程序发送的通 知栏消息以确定允许显示的通知栏消息;
过滤单元12依据预设条件过滤应用程序发送的通知栏消息,以确定 允许显示的通知栏消息。在具体实施例中,所述预设条件可以由用户设定 的白名单构造,即过滤单元12允许属于白名单的应用程序显示其发送的 通知栏消息。用户可以将重要的应用软件设定为白名单,如网银类等软件。 接受用户设定白名单的指令,将用户选定的应用程序的包名记录于一个列 表以允许该些应用程序显示其发送的通知栏消息。向用户提供一个设定白 名单的界面,依次显示所有应用程序,每个应用程序对应提供一个按钮, 用于接受用户将其加入白名单的选中操作。该白名单还可以通过远程端口 传到云端服务器,对应存储于服务器中与第三方应用账户对应的预分配内 存。
在其他具体实施例中,所述预设条件可以由用户设定的黑名单构造, 即禁止属于黑名单的应用程序显示其发送的通知栏消息。用户可以对一些 经常显示广告通知栏消息的应用软件设定黑名单。接受用户设定黑名单的 指令,将用户选定的应用程序的包名记录于一个列表以禁止该些应用程序 显示其发送的通知栏消息。向用户提供一个设定黑名单的界面,依次显示 所有应用程序,每个应用程序对应提供一个按钮,用于接受用户将其加入 黑名单的选中操作。该黑名单还可以通过远程端口传到云端服务器,对应 存储于服务器中与第三方应用账户对应的预分配内存。
在其他实施例中,云端服务器配置白名单和/或黑名单,通过远程端 口推送该白名单和/或黑名单。采用动态分析方法或静态分析方法分析确 定应用程序的安全性,其中,
所述静态分析方法具体操作为:提取安装文件的特征信息,如包名、 版本号、MD5签名、代码、字符串等信息,与云端服务器的特征码数据 库中的特征码一一进行匹配,根据匹配确定表征安装文件安全性的判定信 息,即安全等级信息,根据安全等级确定安装文件是否安全。其中,所述 特征码数据库记录特征码信息与该特征码信息所对应的安全等级之间的 映射关系。
所述动态分析方法具体操作为:解析安装文件,创建与应用程序运行 环境相应的虚拟机环境,监控应用程序运行在所述虚拟机上的动态行为和 网络交换信息,根据监控结果确定表征安装文件安全性的判定信息,即安 全等级信息,根据安全等级确定安装文件是否安全。
经过上述静态分析或动态分析,将确定安全的应用程序包名记录于白 名单,将确定不安全的应用程序包名记录于黑名单。经过远程端口推送相 应的白名单和/或黑名单,过滤单元12基于该白名单和/或黑名单以允许或 禁止显示白名单或黑名单中记录的应用程序发送的通知栏消息。
云端服务器也可以将沙箱中的应用程序放入黑名单推送,沙箱是虚拟 软件,通过重定向技术,把应用程序生成和修改的文件定向到自身文件夹 中。云端服务器会隔离一些安全性不确定的应用程序,使其运行在虚拟的 环境中,与真实的系统环境隔离,以避免其对系统造成威胁。故云端服务 器将沙箱中的应用程序放入黑名单,以禁止其显示发送的通知栏消息。
在其他实施例中,通过判定应用程序是否安全,从而确定是否允许其 显示发送的通知栏消息。调用安全软件对其进行扫描,如果扫描结果确定 其安全,则允许其显示发送的通知栏消息,否则不允许。
在其他实施例中,云端服务器通过统计应用程序被允许显示通知栏消 息的用户数量确定是否允许其显示发送的通知栏消息。如果统计的用户数 量高于预设值,则允许其显示发送的通知栏消息,将其加入白名单,否则 不允许,将其加入黑名单。
根据上述构造的预设条件,过滤单元12对用户系统安装的所有应用 程序发送的通知栏消息进行过滤,确定允许显示的通知栏消息。
显示单元13用于所述控制模块仅向systemUI发送显示所述允许显示 的通知栏消息的消息指令,使systemUI仅显示所述允许显示的通知栏消 息。
Android2.2以后的版本,都将原本存在于framework-res.apk中的状态 栏和下拉通知栏界面控制被分割出一个单独的apk文件,保存在 System/app文件夹中。SystemUI.apk包括状态栏图标、XML、控制文件等, 将SystemUI.apk分割出来是为了更方便地对其进行修改,以满足开发者的 设计需求。其中,SystemUI包括USB和Statusbar两个模块,状态栏主要 用来显示一些系统图标、系统时间、应用通知图标、应用通知内容等信息。 其中,Statusbar模块用于控制和管理状态栏。
状态栏与Toast都可以起到通知和提醒的作用,但两者的实现原理和 表现形式不同。Toast相当于一个Widget组件,类似于没有按钮的对话框。 而状态栏可以与系统中的其他应用进行交互,显示其他应用发送的通知栏 消息,可以在不使用Activity的情况下给用户提醒和通知。
具体为NotificationManagerService调用notifiy方法发送通知,与 StatusBarManagerService通过Binder机制进行交互,将发送的通知传到 StatusBarManagerService,由该服务调用addNotification方法将通知消息 进行显示,其中,addNotificationViews(keys,notification)用于显示图标, tick(notification)用于显示消息内容。本发明实施例中,所述控制模块接管 NotificationManagerService,对应用程序调用notifiy方法发送通知的行为 进行拦截,具体可以通过调用cancel函数取消应用程序发通知栏消息的行 为,以禁止不允许显示通知栏消息的应用程序。还可以通过将确定显示的 应用程序的通知栏消息对应的消息标识符和消息对象作为参数替换未被 允许显示的应用程序通知栏消息的相应参数,从而通过notifiy方法传递该 参数以使显示单元13显示允许显示的通知栏消息,隐藏未被允许显示的 通知栏消息。由此,所述控制模块通过限制被禁止显示的消息的应用程序 调用notifiy方法向显示单元13的SystemUI发送显示消息通知栏的消息指 令,仅向显示单元13的SystemUI发送显示所述允许显示的通知栏消息的 消息指令,从而使显示单元13的SystemUI仅显示所述允许显示的通知栏 消息。
此外,对应于所有的应用程序发送的所有通知栏消息,显示单元13 提供一个消息管理界面,响应于用户的查看指令,通过该消息管理界面显 示未经过滤的由应用程序发送的所有通知栏消息,包括允许显示的通知栏 消息和不被允许显示的通知栏消息。
综上所述,本发明通过注入控制模块的方式,使该控制模块控制应用 程序发送的通知栏消息的显示,基于用户预设和/或云端服务器推送的黑 白名单,仅显示允许显示的通知栏消息,隐藏不允许显示的通知栏消息, 有选择性地向用户展示通知栏消息,既避免了无用的消息频繁弹出干扰用 户,也不丢失有用的消息,更符合用户需求,提高了用户体验度。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进 和润饰,这些改进和润饰也应视为本发明的保护范围。
机译: 用于根据消息的答复数域中包含的数据执行应用程序的消息接收装置及其控制方法,包括消息接收装置的应用程序执行系统
机译: 包括多个应用程序和图像形成装置的图像形成系统中的通信控制方法,其中至少以JDF代码描述的打印作业从所述应用程序传输到所述图像形成装置,并且在之间交换以JMF代码描述的消息所述应用程序和所述图像形成设备,存储有用于所述图像形成系统的程序的存储介质以及所述图像形成系统
机译: 消息图像显示装置,消息图像显示装置的控制方法和程序