安卓数据库访问的方法及设备的制作方法

文档序号:6485777阅读:198来源:国知局
安卓数据库访问的方法及设备的制作方法
【专利摘要】本发明提出了一种Android系统数据库访问的方法,包括以下步骤:应用程序调用Android系统应用程序框架层的接口请求对数据库进行访问操作;Android系统应用程序框架层确定所述应用程序的访问权限;根据所述访问权限,所述Android系统应用程序框架层向所述应用程序反馈信息。本发明实施例另一方面还提出了一种终端设备。本发明提出的上述方案,通过对Android系统应用程序框架层接口的配置,实现对系统中的数据库进行保护,从而保护所有的数据库文件。本发明提出的上述方案,能够有效防止恶意软件读取数据库中的数据,还可以对恶意软件进行更好的控制。
【专利说明】安卓数据库访问的方法及设备
【技术领域】
[0001]本发明涉及通信领域,具体而言,本发明涉及安卓(Android)数据库访问的方法及设备。
【背景技术】
[0002]近年来,随着电子产业和通信技术的飞速发展,以数据、话音、视频为基础的新业务发展迅猛。微电子技术、计算机软硬件技术的快速发展,为终端设备处理越来越复杂的工作打下了基础,为终端设备个性化提供了实现可能,使得终端从某种程度上摆脱了网络的制约,可以具备越来越强大的功能。此外,用户本身也对终端有迫切的需求,希望终端功能更强大、更灵活、更简捷。信息技术的发展,使终端技术走向智能化、移动化、多功能化。
[0003]随着移动终端的普及,尤其是智能手机的迅猛发展,不仅使人们的生活更方便,也使人们享受到高科技带来的成果。智能移动终端如智能手机,因为其有强大的操作系统,大容量的存储空间,可以方便地安装各种软件等诸多优点而越来越被人们接受。较之于传统的移动终端,移动智能终端能够安装更多的第三方应用。例如,为了充分利用智能手机的优点,电信运营商和移动运营商开发了各种增值业务,其中包括软件版本的在线升级的业务。软件版本的在线升级是指通过无线网络,例如WIFI (Wireless Fidelity,无线保真)网络、3G网络,将软件版本的升级包下载到移动终端如手机,然后提示用户有新的版本可以更新,用户选择更新之后,手机便自动安装升级包完成版本更新。
[0004]具体到Android系统的智能终端,从高层到低层通常依次包括:应用层、应用程序框架层、Android 运行时库层(Android Runtime and Libraries Layer)以及底层的 Linux内核层。通常,现有智能终端操作系统,第三方应用在安装完毕并获得系统授权后,即可直接从用户数据库调取用户数据。现有第三方安全软件不能够修改Android框架层的接口,只能在应用层做一些保护或者只是通过建立第三方自己的数据库进行数据保护,不能对原有Android系统的数据库中已有的数据进行保护。而且第三方安全软件只是选择性的对部分联系人以及联系人相关的通话记录,短信等进行保护,不能对所有数据库中的数据进行保护。
[0005]因此,有必要提出有效的技术方案,解决Android系统中的数据库的访问和安全性问题。

【发明内容】

[0006]本发明的目的旨在至少解决上述技术缺陷之一,特别是通过有效控制数据库的访问权限,解决Android系统数据库的访问和安全性问题。
[0007]本发明实施例一方面提出了一种Android系统数据库访问的方法,包括以下步骤:
[0008]应用程序调用Android系统应用程序框架层的接口请求对数据库进行访问操作;
[0009]Android系统应用程序框架层确定所述应用程序的访问权限;
[0010]根据所述访问权限,所述Android系统应用程序框架层向所述应用程序反馈信肩、O
[0011]本发明实施例另一方面还提出了一种终端设备,包括Android系统应用程序框架层的接口模块和Android系统应用程序框架层模块,
[0012]所述Android系统应用程序框架层的接口模块,用于接收应用程序对数据库进行访问操作的请求;
[0013]所述Android系统应用程序框架层模块,用于确定所述应用程序的访问权限,以及根据所述访问权限,所述Android系统应用程序框架层向所述应用程序反馈信息。
[0014]本发明提出的上述方案,通过对Android系统应用程序框架层接口的配置,实现对系统中的数据库进行保护,从而保护所有的数据库文件。本发明提出的上述方案,能够有效防止恶意软件读取用户数据库中的数据,还可以对恶意软件进行更好的控制。
[0015]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0016]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0017]图1为本发明实施例Android系统数据库访问的方法流程图;
[0018]图2为本发明实施例终端设备的结构示意图;
[0019]图3为对应用程序合法性检查的处理过程;
[0020]图4为对数据库数据加密的处理过程;
[0021]图5为数据库查询操作以及解密处理的处理过程;
[0022]图6为将黑白名单与数据库解密组合应用的处理过程;
[0023]图7在安装过程中用户修改应用程序权限的处理过程。
【具体实施方式】
[0024]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0025]在现有的技术方案中,应用程序调用Android系统应用程序框架层的接口进行数据库的操作,例如包括但不限于查询、插入、更新、删除等操作,Android系统应用程序框架层提供数据库操作的接口并完成数据库的访问操作,从而实现应用程序对数据库的访问操作。
[0026]为了实现本发明之目的,本发明实施例提出了一种Android系统数据库访问的方法,包括以下步骤:应用程序调用Android系统应用程序框架层的接口请求对数据库进行访问操作;Android系统应用程序框架层确定所述应用程序的访问权限;根据所述访问权限,所述Android系统应用程序框架层向所述应用程序反馈信息。
[0027]如图1所示,为本发明实施例Android系统数据库访问的方法流程图,具体说明如下:
[0028]SllO:应用程序调用Android系统应用程序框架层的接口对数据库进行访问操作。
[0029]在步骤SI 10中,应用程序调用Android系统应用程序框架层的接口进行数据库的操作,例如包括但不限于查询、插入、更新、删除等操作。
[0030]S120:Android系统应用程序框架层确定应用程序的访问权限。
[0031]为了实现本发明之目的,解决Android系统数据库的访问和安全性问题,Android系统应用程序框架层将判断应用程序的访问权限,确定应用程序的具体能访问哪些数据。
[0032]作为本发明的实施例,定义应用程序的访问权限列表,Android系统应用程序框架层通过查询应用程序的访问权限列表来确定所述应用程序的访问权限。例如,白名单列表中出现的应用程序,表明是具备权限的应用程序。
[0033]具体而言,Android系统应用程序框架层确定所述应用程序的访问权限进一步包括:
[0034]所述Android系统应用程序框架层判断所述应用程序是否存在于白名单列表中;
[0035]存在于白名单列表中的所述应用程序具备访问所述数据库的权限,否则不具备访问所述数据库的权限。
[0036]显然,应用程序的访问权限列表为根据用户指示动态生成或为系统预定义的固定配置。例如,上述白名单列表为采用动态的方法生成系统预置应用的白名单,也可以采用代码写死的方式生成系统预置应用的白名单。进一步而言,可以定义非白名单中的程序,即为属于黑名单。用户的应用程序的黑白名单是对用户在手机出厂后安装的需要操作数据库的应用程序名单,黑白名单采用统一数据结构,通过一个标志位来区分,标志位为I则为白名单,标志位为O则为黑名单。
[0037]S130:根据访问权限,Android系统应用程序框架层向应用程序反馈信息。
[0038]Android系统应用程序框架层向应用程序反馈信息是基于Android原始的架构。对于返回可公开的用户信息,是通过控制查询接口,查询不同的数据库实现的。对于不返回用户隐私信息,是由数据库接口(例如包括查询、插入、更新、删除)直接返回空或O实现的。对于返回加密的用户信息,是由于插入的数据是加密的,在返回给应用程序时不给其解密,或者,如果插入的数据是未加密的,则在返回给应用程序之前对数据进行加密。
[0039]具体而言,作为本发明的实施例,Android系统应用程序框架层向应用程序反馈信息包括:
[0040]当应用程序不存在于白名单类表中时,Android系统应用程序框架层阻止应用程序对数据库的访问,返回给应用程序可公开的用户信息,或者不返回用户隐私信息,或者返回加密的用户信息。在本发明中,一般而言,用户信息泛指与用户相关的所有信息,其中数据库中的信息只是用户信息的一种,对其他地方出现的相同描述不再赘述。
[0041]具体而言,作为本发明的实施例,Android系统应用程序框架层向应用程序反馈信息包括:
[0042]当应用程序存在于白名单类表中时,Android系统应用程序框架层接收应用程序传来的用户数据;
[0043]Android系统应用程序框架层对用户数据进行加密处理,其后将加密后的数据写入数据库中;
[0044]Android系统应用程序框架层向应用程序反馈写入成功消息。[0045]具体而言,作为本发明的实施例,Android系统应用程序框架层对用户数据进行加密处理在Andro i d系统平台的内容提供器中完成。
[0046]具体而言,作为本发明的实施例,Android系统应用程序框架层对用户数据进行加密处理包括:
[0047]所述应用程序调用所述Android系统应用程序框架层的接口,将所述用户数据传给Android系统平台的内容提供器;将用户数据在Android系统平台的内容提供器中进行数据加密,其后存储于数据库中。
[0048]具体而言,作为本发明的实施例,Android系统应用程序框架层向应用程序反馈信息包括:
[0049]当应用程序存在于白名单类表中,应用程序需要访问数据库时,进一步包括:
[0050]Android系统应用程序框架层返回游标给应用程序;
[0051]应用程序调用游标获取数据库中数据的接口,Android系统应用程序框架层对数据进行解密;
[0052]应用程序获得解密后的数据。
[0053]其中,Android框架层返回的游标(Cursor)可以是Android系统的游标例如是SQLiteCursor> AbstractffindowedCursor 等 Cursor 族,也可以是自定义添加的游标。
[0054]相应于上述方法,如图2所示,为本发明实施例还提出了一种终端设备100,终端设备100用于执行本发明上述提出的各个功能。终端设备100,包括Android系统应用程序框架层的接口模块110和Android系统应用程序框架层模块120。
[0055]具体而言,Android系统应用程序框架层的接口模块110用于接收应用程序对数据库进行访问操作的请求。
[0056]访问操作包括:对数据库进行查询、插入、更新或删除。
[0057]Android系统应用程序框架层模块120用于确定应用程序的访问权限,以及根据访问权限,Android系统应用程序框架层向应用程序反馈信息。
[0058]进一步而言,Android系统应用程序框架层模块120还包括判断模块121,确定应用程序的访问权限进一步包括:
[0059]判断模块121判断应用程序是否存在于白名单列表中;
[0060]存在于白名单列表中的应用程序具备访问数据库的权限,否则不具备访问数据库的权限。
[0061]定义应用程序的访问权限列表,判断模块121通过查询应用程序的访问权限列表来确定所述应用程序的访问权限。例如,白名单列表中出现的应用程序,表明是具备权限的应用程序。
[0062]显然,应用程序的访问权限列表为根据用户指示动态生成或为系统预定义的固定配置。例如,上述白名单列表为采用动态的方法生成系统预置应用的白名单,也可以采用代码写死的方式生成系统预置应用的白名单。进一步而言,可以定义非白名单中的程序,即为属于黑名单。用户的应用程序的黑白名单是对用户在手机出厂后安装的需要操作数据库的应用程序名单,黑白名单采用统一数据结构,通过一个标志位来区分,标志位为I则为白名单,标志位为O则为黑名单。
[0063]进一步而言,Android系统应用程序框架层模块120还包括发送模块122,向应用程序反馈信息包括:
[0064]当应用程序不存在于白名单类表中时,发送模块122返回给应用程序可公开的用户信息,或者不返回用户隐私信息,或者返回加密的用户信息。
[0065]进一步而言,Android系统应用程序框架层模块120还包括加密模块123,向应用程序反馈信息包括:
[0066]当应用程序存在于白名单类表中时,Android系统应用程序框架层的接口模块110接收应用程序传来的用户数据;
[0067]加密模块123对用户数据进行加密处理,其后将加密后的数据写入数据库中;
[0068]发送模块122向应用程序反馈写入成功消息。
[0069]加密模块123对用户数据进行加密处理在Android系统平台的内容提供器中完成。
[0070]进一步而言,Android系统应用程序框架层对用户数据进行加密处理包括:
[0071]加密模块123将用户数据在Android系统平台的内容提供器中进行数据加密,其后存储数据库。
[0072]Android系统应用程序框架层向应用程序反馈信息还包括:
[0073]当应用程序存在于白名单类表中,应用程序需要访问数据库时,进一步包括:
[0074]发送模块122返回游标给应用程序;
[0075]应用程序调用游标获取数据库中数据的接口,Android系统应用程序框架层对数据进行解密;
[0076]应用程序获得解密后的数据。
[0077]终端设备100包括但不限于智能手机、平板电脑等移动终端设备。
[0078]本发明提出的上述方案,通过对Android系统应用程序框架层接口的配置,实现对系统中的数据库进行保护,从而保护所有的数据库文件。本发明提出的上述方案,能够有效防止恶意软件读取用户数据库中的数据,还可以对恶意软件进行更好的控制。
[0079]为了进一步阐述本发明,下面对本发明上述提出的方法或设备的具体应用进一步举例。
[0080]如图3所示,为对应用程序合法性检查的处理过程。
[0081]步骤31应用程序调用Andriod平台的接口开始数据库的操作(包括查询、插入、更新、删除)。步骤32在数据库的操作接口中增加一级检查,对调用此接口的应用程序进行检查,如果该应用程序在白名单中,则执行步骤34,允许该应用程序对数据库的操作。如果该应用不在白名单中,则执行步骤33。步骤33检查应用程序是否在黑名单中,如果应用程序没有在黑名单中,则将应用程序添加到黑名单中。步骤35阻止应用程序对数据库的操作,可以选择返回给应用程序可公开的用户信息,或者不返回用户隐私信息,或者返回加密的用户信息。步骤36应用程序完成一次数据库的操作。
[0082]如图4所示,为对数据库数据加密的处理过程。
[0083]步骤41应用程序将要向数据库中插入新的数据,或者对数据库中的数据进行更新。步骤42在对数据库进行插入或更新之前,将需要的数据,例如涉及到用户隐私的数据,进行加密处理。步骤43将加过密的用户数据存储到数据库中,或者对数据库中的数据进行更新。[0084]如图5所示,为数据库查询操作以及解密处理的处理过程。
[0085]步骤51应用程序执行数据库查询。步骤42Android应用程序框架层执行数据的查询操作。步骤53Android应用程序框架层查询到结果后,向应用程序返回游标(Cursor),此游标可以是系统现有的游标(如SQLiteCursor、AbstractWindowedCursor等Cursor族),也可以是自定义添加的游标。步骤54应用程序获得游标后获取数据库中的数据。步骤55通过游标获取到加密的数据,通过Android应用程序框架层再做一次解密处理。步骤56应用程序获取到解密后的数据。
[0086]如图6所示,为将黑白名单与数据库解密组合应用的处理过程。
[0087]步骤61应用程序进行数据库查询操作。步骤62通过Android应用程序框架层实现数据库的查询。步骤63Android应用程序框架层查询到结果并向应用程序返回游标(Cursor),应用程序得到游标后,通过游标开始获取数据库中的数据。步骤64在游标中检查应用程序是否在白名单中,如果应用程序在白名单中则执行步骤65,否则执行步骤66。步骤65通过Android应用程序框架层将数据库中得数据进行解密处理,其后应用程序将得到解密后的明文数据。步骤66不进行解密处理,应用程序将得到未解密的密文数据。步骤67应用程序完成这次的数据库查询操作。
[0088]如图7所示,为在安装过程中用户修改应用程序权限的处理过程。
[0089]步骤71用户正在安装应用程序到Android设备中。步骤72Android平台显示该应用程序具有的权限,并询问用户是否继续安装。如果继续安装则执行步骤73,否则执行步骤75。步骤73是本发明新增加的处理,将该应用程序中详细的权限列举出来,并提供给用户禁用和启用的选择,这样可以保证及时地将应用程序的某些操作控制住。步骤74安装应用程序,并根据步骤73中用户的选择将该应用程序存储到黑白名单中。步骤75执行过程结束。
[0090]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0091 ] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0092]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0093]以上所述仅是本发明的部分实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种Android系统数据库访问的方法,其特征在于,包括以下步骤: 应用程序调用Android系统应用程序框架层的接口请求对数据库进行访问操作; Android系统应用程序框架层确定所述应用程序的访问权限; 根据所述访问权限,所述Android系统应用程序框架层向所述应用程序反馈信息。
2.如权利要求1所述的方法,其特征在于,所述访问操作包括:对所述数据库进行查询、插入、更新或删除。
3.如权利要求2所述的方法,其特征在于,所述Android系统应用程序框架层确定所述应用程序的访问权限进一步包括: 所述Android系统应用程序框架层判断所述应用程序是否存在于白名单列表中; 存在于白名单列表中的所述应用程序具备访问所述数据库的权限,否则不具备访问所述数据库的权限。
4.如权利要求3所述的方法,其特征在于,所述白名单列表为根据用户指示动态生成或为系统预定义的固定配置。
5.如权利要求4所述的方法,其特征在于,所述Android系统应用程序框架层向所述应用程序反馈信息包括: 当所述应用程序不存在于白名单类表中时,所述Android系统应用程序框架层阻止所述应用程序对所述数据库的访问,返回给所述应用程序可公开的用户信息,或者不返回用户隐私信息,或者返回加密的用户信息。
6.如权利要求4所述的方法,其特征在于,所述Android系统应用程序框架层向所述应用程序反馈信息包括: 当所述应用程序存在于白名单类表中时,所述Android系统应用程序框架层接收所述应用程序传来的用户数据; 所述Android系统应用程序框架层对用户数据进行加密处理,其后将加密后的数据写入数据库中; 所述Android系统应用程序框架层向所述应用程序反馈写入成功消息。
7.如权利要求6所述的方法,其特征在于,所述Android系统应用程序框架层对用户数据进行加密处理在Android系统平台的内容提供器中完成。
8.如权利要求7所述的方法,其特征在于,所述Android系统应用程序框架层对用户数据进行加密处理包括: 所述应用程序调用所述Android系统应用程序框架层的接口,将所述用户数据传给Android系统平台的内容提供器; 将所述用户数据在所述Android系统平台的内容提供器中进行数据加密,其后存储于所述数据库中。
9.如权利要求4所述的方法,其特征在于,所述Android系统应用程序框架层向所述应用程序反馈信息包括: 当所述应用程序存在于白名单类表中,所述应用程序需要访问所述数据库时,进一步包括: 所述Android系统应用程序框架层返回游标给所述应用程序; 所述应用程序调用游标获取数据库中数据的接口,所述Android系统应用程序框架层对数据进行解密; 所述应用程序获得解密后的数据。
10.一种终端设备,其特征在于,包括Android系统应用程序框架层的接口模块和Android系统应用程序框架层模块, 所述Android系统应用程序框架层的接口模块,用于接收应用程序对数据库进行访问操作的请求; 所述Android系统应用程序框架层模块,用于确定所述应用程序的访问权限,以及根据所述访问权限,所述Android系统应用程序框架层向所述应用程序反馈信息。
11.如权利要求10所述的终端设备,其特征在于,所述访问操作包括:对所述数据库进行查询、插入、更新或删除。
12.如权利要求11所述的终端设备,其特征在于,所述Android系统应用程序框架层模块还包括判断模块,确定所述应用程序的访问权限进一步包括: 所述判断模块判断所述应用程序是否存在于白名单列表中; 存在于白名单列表中的所述应用程序具备访问所述数据库的权限,否则不具备访问所述数据库的权限。
13.如权利要求12所述的终端设备,其特征在于,所述白名单列表为根据用户指示动态生成或为系统预定义的固定配置。
14.如权利要求13所述的终端设备,其特征在于,所述Android系统应用程序框架层模块还包括发送模块,向所述应用程序反馈信息包括: 当所述应用程序不存在于白名单类表中时,所述发送模块返回给所述应用程序可公开的用户信息,或者不返回用户隐私信息,或者返回加密的用户信息。
15.如权利要求14所述的终端设备,其特征在于,所述Android系统应用程序框架层模块还包括加密模块,向所述应用程序反馈信息包括: 当所述应用程序存在于白名单类表中时,所述Android系统应用程序框架层的接口模块接收所述应用程序传来的用户数据; 所述加密模块对用户数据进行加密处理,其后将加密后的数据写入数据库中; 所述发送模块向所述应用程序反馈写入成功消息。
16.如权利要求15所述的终端设备,其特征在于,所述加密模块对用户数据进行加密处理在Andro i d系统平台的内容提供器中完成。
17.如权利要求16所述的终端设备,其特征在于,所述Android系统应用程序框架层对用户数据进行加密处理包括: 所述加密模块将所述用户数据在所述Android系统平台的内容提供器中进行数据加密,其后存储于所述数据库中。
18.如权利要求13所述的终端设备,其特征在于,所述Android系统应用程序框架层向所述应用程序反馈信息包括: 当所述应用程序存在于白名单类表中,所述应用程序需要访问所述数据库时,进一步包括: 所述发送模块返回游标给所述应用程序; 所述应用程序调用游标获取数据库中数据的接口,所述Android系统应用程序框架层对数据进行解密;所述应用程序获得解密后的 数据。
【文档编号】G06F21/62GK103455520SQ201210181614
【公开日】2013年12月18日 申请日期:2012年6月4日 优先权日:2012年6月4日
【发明者】汪连常, 冯德林, 刘向华, 袁顺 申请人:北京三星通信技术研究有限公司, 三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1