应用程序管理方法、应用程序管理系统与使用者装置制造方法

文档序号:6509149阅读:203来源:国知局
应用程序管理方法、应用程序管理系统与使用者装置制造方法
【专利摘要】一种应用程序管理方法、应用程序管理系统与使用者装置。该应用程序管理方法包括下列步骤。接收原始应用程序,并通过再封装程序,将使用权管理程序代码注入至原始应用程序,以产生再封装应用程序。将再封装应用程序公开,以供使用者装置下载并安装再封装应用程序,其中使用者装置执行客户端程序。当使用者装置执行再封装应用程序,使用权管理程序代码发出使用权检查请求,以启动客户端程序根据再封装应用程序的使用权信息发出使用权检查回应。使用权检查回应指出再封装应用程序是否可继续执行。当使用权检查回应指出再封装应用程序不可继续执行,使用权管理程序代码终止再封装应用程序。
【专利说明】应用程序管理方法、应用程序管理系统与使用者装置

【技术领域】
[0001]本发明涉及一种应用程序管理方法、应用程序管理系统与使用者装置。

【背景技术】
[0002]Android是以一个Linux为基础的半开放原始码操作系统,主要用于移动装置,目前是由Google所成立的开放手机联盟(Open Handset Alliance)持续开发中。Google所提供的Android软件开发套件(Software Development Kit, SDK)可让第三方软件开发者(Software Developer)为Android操作系统开发应用程序。
[0003]然而,以应用程序的使用权(License)而言,Android的应用程序需要特别的管理程序代码向后端系统查询应用程序的使用权,以决定应用程序是否能执行。如果第三方软件开发者在开发应用程序时手动加入使用权管理程序代码,则第三方软件开发者需要一段时间去学习Android SDK其中关于使用权的部分。而针对不同业者的平台所供应的SDK,第三方软件开发者需采用不同的方式加入使用权管理程序代码,否则会导致不相容的问题,而这将会造成第三方软件开发者的成本与负担。并且关于使用权的SDK说明文件也有泄密的疑虑。
[0004]此外,Android SDK提供包括网络、硬件设定以及移动装置各种数据存取(如通信录、国际移动设备辨识码(Internat1nal Mobile Equipment Identity number, IMEI))等应用程序接口(Applicat1n Programming Interface, API)。这也意味着第三方应用程序可以存取使用者在移动装置上的私人隐私数据并连上网络送出。然而,Android对应用程序的管制只有在安装时期提供权限(Permiss1n)列表,供使用者决定是否安装,以达成对应用程序的权限管制。应用程序安装之后,就无法变更其权限设定。


【发明内容】

[0005]本公开提供一种应用程序管理方法、应用程序管理系统与使用者装置,其可为应用程序加入使用权以及存取权限的管理程序代码,以提供使用者装置的应用程序执行使用权检查程序以及针对使用者装置内的应用程序进行权限管制。
[0006]本公开提出一种应用程序管理方法,包括下列步骤。首先,接收原始应用程序。通过再封装程序,将使用权管理程序代码注入至原始应用程序,以产生再封装应用程序。接着,将再封装应用程序公开,以供使用者装置下载并安装再封装应用程序,其中使用者装置执行客户端程序。当使用者装置执行再封装应用程序时,使用权管理程序代码发出使用权检查请求,以启动客户端程序根据再封装应用程序的使用权信息发出使用权检查回应。使用权检查回应指出再封装应用程序是否可继续执行。当使用权检查回应指出再封装应用程序不可继续执行时,则使用权管理程序代码终止再封装应用程序。
[0007]本公开另提出一种应用程序管理方法,用于使用者装置,包括下列步骤。首先,执行客户端程序。自应用程序管理系统下载再封装应用程序,其中再封装应用程序是应用程序管理系统通过再封装程序注入使用权管理程序代码至原始应用程序而产生。接着,执行再封装应用程序。当再封装应用程序被执行的时期,使用权管理程序代码发出使用权检查请求,以启动该客户端程序根据再封装应用程序的使用权信息发出使用权检查回应,其中使用权检查回应指出再封装应用程序是否可继续执行。当使用权检查回应指出再封装应用程序不可继续执行时,则使用权管理程序代码终止再封装应用程序。
[0008]本公开另提出一种应用程序管理系统,其包括再封装模块以及应用程序管理模块。再封装模块用以接收原始应用程序,并且通过再封装程序,注入使用权管理程序代码至原始应用程序,以产生再封装应用程序。应用程序管理模块用以公开再封装应用程序,以供使用者装置下载并安装再封装应用程序,其中使用者装置执行客户端程序。当使用者装置执行再封装应用程序时,使用权管理程序代码发出使用权检查请求,以启动客户端程序根据再封装应用程序的使用权信息发出使用权检查回应。使用权检查回应指出再封装应用程序是否可继续执行。当使用权检查回应指出再封装应用程序不可继续执行时,使用权管理程序代码终止再封装应用程序。
[0009]本公开另提出一种使用者装置,其包括通信模块以及处理器。通信模块用以连接应用程序管理系统。处理器用以执行客户端程序,自应用程序管理系统下载再封装应用程序,并执行再封装应用程序,其中再封装应用程序是应用程序管理系统通过再封装程序注入使用权管理程序代码至原始应用程序而产生。当再封装应用程序被执行的时期,使用权管理程序代码发出使用权检查请求,以启动客户端程序根据再封装应用程序的使用权信息发出使用权检查回应。使用权检查回应指出再封装应用程序是否可继续执行。当使用权检查回应指出再封装应用程序不可继续执行时,则使用权管理程序代码终止再封装应用程序。
[0010]为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

【专利附图】

【附图说明】
[0011]图1为根据本公开的一范例实施例所绘示的应用程序管理系统的概要方块图。
[0012]图2为根据本公开的一范例实施例所绘示的使用者装置的概要方块图。
[0013]图3A为根据本公开的一范例实施例所绘示的应用程序管理方法的流程图。
[0014]图3B为根据本公开的一范例实施例所绘示的使用者装置。
[0015]图4A为根据本公开的一范例实施例所绘示的应用程序管理方法的流程图。
[0016]图4B为根据本公开的一范例实施例所绘示的使用者装置。
[0017]【符号说明】
[0018]100:应用程序管理系统
[0019]110:再封装模块
[0020]120:应用程序管理模块
[0021]130:使用权管理模块
[0022]140:金钥提供模块
[0023]150:金钥管理模块
[0024]160:空中下载服务管理模块
[0025]170:第三方软件开发端
[0026]180:使用者装置
[0027]210:通信模块
[0028]220:处理器
[0029]230:存储装置
[0030]S301?S319:应用程序管理方法的流程步骤
[0031]S401?S419:应用程序管理方法的流程步骤

【具体实施方式】
[0032]图1为根据本公开的一范例实施例所绘示的应用程序管理系统的概要方块图,但此仅是为了方便说明,并不用以限制本公开。
[0033]请参照图1,应用程序管理系统100包括再封装模块110、应用程序管理模块120、使用权管理模块130、金钥提供模块140、金钥管理模块150以及空中下载服务管理(Overthe Air, OTA)模块 160。
[0034]在本范例实施例中,应用程序管理系统100可以为任何以计算机为基础的系统(Computer-based System),用以接收第三方软件开发端170所开发的应用程序,在再封装程序中,为上述应用程序增加使用权管理程序代码,再提供给客户端的使用者装置180下载使用。此外,应用程序管理系统100更可提供使用者装置180进行后续的查询以及其它相关服务。
[0035]再封装模块110用以接收第三方软件开发端170所开发的应用程序(在此定义为“原始应用程序”),通过再封装程序,注入使用权管理程序代码至原始应用程序,以产生再封装应用程序。此外,金钥提供模块140提供金钥至再封装模块110,而再封装模块110可在再封装程序中注入金钥至原始应用程序。
[0036]应用程序管理模块120用以公开上述再封装应用程序,以供客户端的使用者装置180下载并安装上述再封装应用程序。
[0037]使用权管理模块130用以自使用者装置180接收上述再封装应用程序的名称,并根据上述名称提供使用权信息至使用者装置180。
[0038]金钥管理模块150用以自金钥提供模块140取得上述再封装应用程序的金钥,其可自使用者装置180接收再封装应用程序的名称后,根据上述名称提供对应的上述金钥至使用者装置180。
[0039]空中下载服务管理模块160用以提供权限管理讯息至使用者装置180,而使用者装置180可根据权限管理讯息变更权限设定。
[0040]在本范例实施例中,再封装模块110、应用程序管理模块120、使用权管理模块130、金钥提供模块140、金钥管理模块150以及空中下载服务管理模块160可以是设置在单一服务器主机或分属多个不同服务器主机的硬件或软件。
[0041]图2为根据本公开的一范例实施例所绘示的使用者装置180的概要方块图。请参照图2,使用者装置180包括通信模块210、处理器220以及存储装置230,其中通信模块210以及存储装置230分别耦接至处理器220。
[0042]在本范例实施例中,使用者装置180为具有上网功能的智能手机、平板计算机、个人数字助理、笔记型计算机、电子书、或是数字相机等移动装置。此外,在本范例实施例中,使用者装置180采用Android操作系统。然而在其它范例实施例中,使用者装置180也可米用 Windows、1S、Android, 1S, Blackberry, Symbian, Linux 或 Unix 等操作系统。
[0043]在以下的说明当中,处理器220通过执行使用权管理程序代码、权限管理程序代码以及客户端程序来控制使用者装置180的关于本公开的运作。
[0044]使用者装置180传送的讯息与数据是由处理器220通过通信模块210所发送,使用者装置180所接收的讯息与数据亦是由处理器220通过通信模块210所接收。在此,通信模块210可支持全球移动通信系统(Global System for Mobile communicat1ns,GSM)、第三代移动通信网络(The Third Generat1n Mobile Communicat1n, 3G MobileCommunicat1n)、第四代移动通信网络(4G Mobile Communicat1n)、长期演进技术网络(Long Term Evolut1n Network, LTE Network)、个人手持式电话系统(PersonalHandy-phone System, PHS)、码分多重接入(Code Divis1n Multiple Access, CDMA)、无线保真(Wireless Fidelity, Wi_Fi)、全球互通微波接入(Worldwide Interoperabilityfor Microwave Access, WiMAX)、蓝牙(Bluetooth)等无线信号传输(Wireless SignalTransmiss1n)技术。通信模块210也可以支持有线信号传输技术,例如通用串行总线(Universal Serial Bus,USB)、火线串行接口(Firewire)或雷电串行接口(Thunderbolt)。在本范例实施例中,使用者装置180的通信模块210用以连接应用程序管理系统100。
[0045]存储装置230例如是固定式或可移动式的随机存取存储器(Random AccessMemory, RAM)、快闪存储器(Flash Memory)、硬盘、存储卡、其它类似的装置或这些装置的组合,用以存储使用者装置180硬件运作所执行的程序代码以及数据。
[0046]图3A为根据本公开的一范例实施例所绘示的应用程序管理方法的流程图。图3B为根据本公开的一范例实施例所绘示的使用者装置180。值得注意的是,在本范例实施例中是以管理应用程序的使用权的观点来进行说明。
[0047]请同时参照图1、图2以及图3A,首先应用程序管理系统100的再封装模块110接收第三方软件开发端170所开发的原始应用程序(步骤S301)。在本范例实施例中,当再封装模块110接收原始应用程序后,再封装模块110通过再封装程序,注入使用权管理程序代码以及金钥提供模块140所提供的金钥至原始应用程序,以产生再封装应用程序(步骤S303)。
[0048]详细而言,以Android系统为例,再封装模块110先自原始应用程序将classes,dex文件取出,再利用反汇编器(Disassembler)将classes, dex文件反汇编成至少一个附属文件名为smali的文件,在此定义为“反汇编文件”。接着,金钥提供模块140先提供金钥至再封装模块110,而再封装模块110再注入使用权管理程序代码以及金钥至上述反汇编文件,以产生至少一个第一中介文件。其中,再封装模块110可对反汇编文件做静态分析(Static Analysis),以将使用权管理程序代码注入至适当的位置。举例而言,在本实施例中可以分析使用者装置180在进入此应用程序时所载入的程序代码,而将使用权管理程序代码注入于此。此外,目前Android的应用程序是由Java程序语言来进行编写。然而,由于Java程序容易被反汇编,为避免遭受到反向工程(Reverse Engineering)的攻击,再封装模块110动态混淆(Obfuscate)第一中介文件,以产生至少一第二中介文件。之后,再利用汇编器(Assembler)汇编上述第二中介文件,并且执行Android系统对所有应用程序所要求的数字签章程序,以产生再封装应用程序。在此的汇编器以及反汇编器可采用专门汇编以及反汇编dex文件所使用的smali/baksmali工具。
[0049]接着,应用程序管理模块120会公开再封装应用程序,以供使用者装置180下载并安装再封装应用程序(步骤S305)。例如,应用程序管理模块120可提供一个网页或是应用程序贩售平台以公开上述的再封装应用程序,使用者装置180可进行付费或免费下载以取得上述再封装应用程序。
[0050]当使用者装置180下载并安装再封装应用程序后,如图3B所示,使用者装置180包括再封装应用程序310,而再封装应用程序310包括使用权管理程序代码315。在此,图3B的使用者装置180亦包括图2的使用者装置180的所有元件,相关叙述请参照图2的相关说明,在此不再赘述。
[0051]值得注意的是,使用者装置180还包括客户端程序320,而当使用者装置180的处理器220执行客户端程序320时,其可通过通信模块210通过与应用程序管理系统100或是存储装置230的数据库进行沟通,以进行使用权检查程序。也就是说,在使用者装置180下载并安装再封装应用程序310后,当使用者装置180的处理器220执行再封装应用程序310时(步骤S307),再封装应用程序310内的使用权管理程序代码315会发出使用权检查请求,以启动使用者装置180内的客户端程序320根据再封装应用程序310的使用权信息发出使用权检查回应(步骤S309)。接着,使用权检查回应以及使用权检查回应所需的时间将指出再封装应用程序310是否可继续执行。
[0052]在本范例实施例中,使用权管理程序代码315可提供上述再封装应用程序310的名称至客户端程序320。接着,客户端程序320可通过通信模块210,将上述名称提供给应用程序管理系统100,而应用程序管理系统100的使用权管理模块130可根据接收到的再封装应用程序310的名称提供对应的使用权信息给客户端程序320。客户端程序320根据使用权信息的内容进行使用权检查。举例而言,使用权信息可包括再封装应用程序170的使用期限、使用次数等授权协议(License Agreements)。客户端程序320根据使用权信息进行使用权检查,然后在使用权检查回应中指出再封装应用程序310是否可继续执行。接着,客户端程序320将使用权检查回应传送至使用权管理程序代码315,以告知使用权管理程序代码315继续执行或终止再封装应用程序310。然而,为了安全防护设计以及避免不同应用程序间(Inter-applicat1n)的攻击,本范例实施例采用程序间通信(Inter-processCommunicat1n, IPC)的安全通信协议,以确保客户端程序以及再封装应用程序之间所传送的数据完整性。
[0053]详细而言,以Android操作系统为例,其提供一个再封装应用程序310与客户端程序320之间的IPC通道。此外,使用权管理程序代码315还可包括一个计时器。再封装应用程序310的使用权管理程序代码315发出使用权检查请求时,会先使用再封装应用程序310的金钥加密使用权检查请求,再将再封装应用程序310的名称以及加密后的使用权检查请求发送给客户端程序320。此时,计时器也会开始计时。
[0054]客户端程序320在接收到再封装应用程序310的名称以及加密后的使用权检查请求后,则通过通信模块210,将上述名称提供给应用程序管理系统100。应用程序管理系统100便可根据上述名称,利用金钥管理模块150向金钥提供模块140查询上述再封装应用程序310所对应的金钥,并且将金钥回传给使用者装置180。
[0055]在另一范例实施例中,倘若使用者装置180在之前有执行使用权检查程序,则上述使用权信息以及金钥可存储至存储装置230的数据库中,或者仅存储使用权信息与金钥其中之一至存储装置230的数据库中。客户端程序可直接利用再封装应用程序310的名称于数据库查询再封装应用程序所对应的金钥以及使用权信息,而不必再向应用程序管理系统100查询。
[0056]当使用者装置180自通信模块230或是由本身的存储装置230取得上述使用权信息以及金钥后,客户端程序320先使用上述金钥解密使用权检查请求,根据使用权信息产生使用权检查回应,并且再使用上述金钥加密使用权检查回应,再传送至再封装应用程序310的使用权管理程序代码315。当使用权管理程序代码315将使用权检查回应解码并检视其内容后,计时器停止计时。
[0057]在本范例实施例中,再封装应用程序是否可继续执行是根据客户端程序320的使用权检查回应以及计时器的计时。首先,根据计时器的计时,使用权管理程序代码315判断在向客户端程序320发出使用权检查请求的预设时间(例如5秒)内是否收到使用权检查回应(步骤S311)。倘若在预设时间内未收到使用权检查回应,则使用权管理程序代码315终止再封装应用程序(步骤S313)。反之,倘若在预定时间内收到使用权检查回应,则使用权管理程序代码315根据使用权检查回应决定是否继续执行再封装应用程序310 (步骤S315)。当使用权检查回应指出再封装应用程序310不可继续执行时,则使用权管理程序代码315终止再封装应用程序(步骤S317)。反之,使用权管理程序代码315则可继续执行再封装应用程序310 (步骤S319)。
[0058]在本范例实施例中,使用者装置180可自应用程序管理系统100取得使用权信息,而客户端程序320再依使用权信息来决定是否停止再封装应用程序310的使用。此外,当使用者装置180是基于沙盒(Sand Box)来让各应用程序的行程独立,以保障安全的系统,如Android, 1S, Blackberry, Symbian等,贝U本公开更可提供应用程序的权限(Permiss1n)管理,以对使用者装置180内的一个或多个应用程序设定不同的存取权限。
[0059]图4A为根据本公开的一范例实施例所绘示的应用程序管理方法的流程图。图4B为根据本公开的一范例实施例所绘示的使用者装置180。不同于前一范例实施例,本范例实施例是以管理应用程序的权限的观点来进行说明。
[0060]请先参照图4A搭配图1以及图2,首先应用程序管理系统100的再封装模块110接收自第三方软件开发端170所开发的原始应用程序(步骤S401)。在本范例实施例中,当再封装模块110接收原始应用程序后,再封装模块110通过再封装程序,注入权限管理程序代码以及金钥提供模块140所提供的金钥至原始应用程序,以产生再封装应用程序(步骤S403)。
[0061]以本范例实施例而言,再封装模块110先自原始应用程序将classes, dex文件取出,再利用反汇编器将classes, dex文件反汇编成至少一个附属文件名为smali的反汇编文件。接着,金钥提供模块140先提供金钥至再封装模块110,而再封装模块110再注入权限管理程序代码以及金钥至上述反汇编文件,以产生至少一第一中介文件。其中,再封装模块110可同样地对反汇编文件做静态分析,以将权限管理程序代码注入至适当的位置。举例而言,在本实施例中可以分析与使用者隐私相关的应用程序接口(Applicat1n ProgrammingInterface, API)的程序代码,而将权限管理程序代码注入于此。再封装模块110动态混淆第一中介文件,以产生至少一第二中介文件。之后,再利用例如是smali的汇编器汇编上述第二中介文件,并且执行Android系统对所有应用程序所要求的数字签章程序,以产生再封装应用程序。如同第一范例实施例,汇编器以及反汇编器可采用专门汇编以及反汇编dex文件所使用的smali/baksmali工具。
[0062]接着,应用程序管理模块120会公开再封装应用程序,以供使用者装置180下载并安装再封装应用程序(步骤S405)。例如,应用程序管理模块120可提供一个网页或是应用程序贩售平台以公开上述的再封装应用程序,使用者装置180可进行付费或免费下载以取得上述再封装应用程序。
[0063]当使用者装置180下载并安装再封装应用程序后,如图4B所示,使用者装置180还包括再封装应用程序410,而再封装应用程序410还包括权限管理程序代码415。在此,图4B的使用者装置180亦包括图2的使用者装置180的所有元件,相关叙述请参照图2的相关说明。
[0064]值得注意的是,在本范例实施例中,使用者装置180还包括客户端程序420,而当使用者装置180的处理器220执行客户端程序420时,其可通过通信模块210通过与应用程序管理系统100或是存储装置230的数据库进行沟通,以进行权限检查程序。
[0065]此外,存储装置230存储某些系统函数的权限设定,上述系统函数通常是涉及使用者的信息隐私或信息安全的系统函数,例如用以取得使用者装置180的国际移动设备辨识码(Internat1nal Mobile Equipment Identity number, IMEI)的函数、用以存取使用者装置180的使用者身份模块(Subscriber Identity Module,SM)的函数、用以取得使用者装置 180 的国际移动用户辨识码(Internat1nal Mobile Subscriber Identity Number,IMSI)的函数、搜寻使用者装置180的位置信息的函数、取得电话号码的函数、送出简讯的函数、由网络下载文件的函数等。在本范例实施例中,客户端程序可提供一个使用者接口,使用者装置180的使用者可用上述使用者接口将上述系统函数的权限设定变更为执行、不执行或是以假信息回应。通过上述的使用者接口,上述的权限设定可以随时变更,而权限管理程序代码415可根据上述系统函数的权限设定而执行上述系统函数、不执行上述系统函数或是以假信息回应上述系统函数。
[0066]在使用者装置180下载并安装再封装应用程序后,在使用者装置180的处理器220正在执行再封装应用程序时(步骤S407),当再封装应用程序呼叫上述系统函数(步骤S409),再封装应用程序内的权限管理程序代码会先拦截再封装应用程序对上述系统函数的呼叫(步骤S411),并且发出权限检查请求,以启动客户端程序根据上述系统函数的权限设定发出权限检查回应(步骤S413)。此外,权限检查回应以及权限检查回应所需的时间将指出上述系统函数是否可继续执行。
[0067]详细而言,如前一范例实施例,Android操作系统提供一个再封装应用程序与客户端程序之间的IPC通道。此外,权限管理程序代码415还包括一个计时器。再封装应用程序410的权限管理程序代码415发出权限检查请求时,会先使用再封装应用程序410的金钥加密权限检查请求,再将再封装应用程序410的名称以及加密后的权限检查请求发送给客户端程序420。此时,计时器也会开始计时。
[0068]客户端程序420在接收到再封装应用程序410的名称以及加密后的权限检查请求后,则通过通信模块210,将上述名称提供给应用程序管理系统100。应用程序管理系统100便可根据上述名称,利用金钥管理模块150向金钥提供模块140查询上述再封装应用程序所对应的金钥,并且将金钥回传给使用者装置180。
[0069]在另一实施例中,倘若使用者装置180在之前有执行权限检查程序,则上述金钥可存储至存储装置230的数据库中。客户端程序可直接利用上述名称于数据库查询再封装应用程序所对应的金钥。
[0070]当使用者装置180自通信模块230或是由本身的存储装置230接收到上述金钥后,客户端程序420先使用上述金钥解密权限检查请求,并且再使用上述金钥加密权限检查回应,再传送至再封装应用程序410的权限管理程序代码415。当权限管理程序代码415将权限检查回应解码并检视其内容后,计时器停止计时。在此,权限检查回应是根据前述使用者装置180的使用者通过使用者接口对系统函数所做的权限设定。
[0071]在本范例实施例中,首先,根据计时器的计时,权限管理程序代码415判断在向客户端程序420发出权限检查请求的预设时间(例如5秒)内是否收到权限检查回应(步骤S415)。倘若尚未收到权限检查回应,则权限管理程序代码415不执行上述系统函数(步骤S417)。反之,倘若在预定时间内收到权限检查回应,则权限管理程序代码根据权限检查回应继续执行上述系统函数、不执行系统函数或是以假信息回应系统函数(步骤S419)。
[0072]举例而言,假设在使用者装置180内存有导航的再封装应用程序以及Facebook的再封装应用程序。使用者装置180可针对此两种再封装应用程序对系统函数做不同的权限设定。以读取位置信息的系统函数为例,导航的再封装应用程序的权限被设定为可读取使用者装置180的全球定位系统(Global Posit1ning System,GPS)数据,而Facebook的再封装应用程序被设定为不可读取使用者装置180的GPS数据。因此,一旦Facebook的再封装应用程序在执行读取位置信息的系统函数时,权限管理程序代码可根据权限检查回应拒绝Facebook读取GPS数据。在另一实施例中,也可以假信息回应读取位置信息的系统函数,使Facebook读取假的GPS数据。藉此,使用者装置180的使用者既可避免所在位置的GPS数据在Facebook上被他人读取追踪,而又可以利用GPS数据享有导航的服务。
[0073]在另一范例实施例中,客户端程序420更具备了即时分析的功能。当使用者装置180在执行再封装应用程序410时,当有动态载入的新增程序代码时,再封装应用程序410的权限管理程序代码415会将新增程序代码传送至客户端程序420分析。在此,新增程序代码可以是来自应用程序管理系统100或其它来源的再封装应用程序的更新文件。
[0074]当再封装应用程序410在执行时期载入新增程序代码时,权限管理程序代码415可拦截此新增程序代码,将新增程序代码传送至客户端程序420。客户端程序420分析新增程序代码是否呼叫需要权限管理的系统函数,并且根据分析的结果修改新增程序代码。客户端程序420修改新增程序代码之后,将回传修改后的新增程序代码至权限管理程序代码415。此时,权限管理程序代码415则可允许修改后的新增程序代码并入再封装应用程序410。经过上述修改,权限管理程序代码415可拦截新增程序代码对上述系统函数的呼叫,并且发出权限检查请求,以启动客户端程序420根据权限设定发出权限检查回应。
[0075]在本范例实施例中,在特定的情况之下,应用程序管理系统100的空中下载服务管理模块160可传送权限管理讯息至使用者装置180的客户端程序420。举例而言,当使用者遗失使用者装置180时,使用者可通知应用程序管理系统100,而应用程序管理系统100的空中下载服务管理模块160可传送权限管理讯息至使用者装置180的客户端程序420,通知客户端程序420变更系统函数的权限设定。例如,权限管理讯息可通知客户端程序420将导航的再封装应用程序设定为可读取GPS数据,方便追踪使用者装置180的所在位置。又例如,权限管理讯息可通知客户端程序420将所有再封装应用程序410设定为不可取得电话号码或收发简讯,以防止电话号码或隐私数据被窃取。
[0076]除此之外,本范例实施例的应用程序管理方法,无须修改使用者装置180底层的操作系统,因此应用程序管理系统100并不限于电信业者。在另一范例实施例中,应用程序管理系统100可以是一般软件系统整合厂商,可以利用本公开的应用程序管理方法发展独立的平台,其运作方式类似于软件贩售平台,而此独立的平台可应用于企业或组织内部,提供符合企业或组织存取政策的应用程序给内部人员或相关人员使用。在此范例实施例中,使用者装置180可上传本身已有的原始应用程序至应用程序管理系统100。应用程序管理系统100可为此原始应用程序进行再封装程序,产生可以动态设定权限的再封装应用程序,以供使用者装置180进行下载。
[0077]值得一提的是,图3A的使用权管理实施例以及图4A的权限管理实施例的再封装程序可以整合,也就是将使用权管理程序代码连同权限管理程序代码以及金钥,一并注入至原始应用程序中。藉此,使用者装置180下载的再封装应用程序可以执行使用权检查程序以及权限检查程序。使用权检查程序以及权限检查程序可使用相同或不同的金钥,如果使用不同金钥,则金钥提供模块140必须提供两个不同的金钥,再封装程序必须注入这两个不同的金钥至原始应用程序中以产生再封装应用程序,其中一个金钥用于使用权检查程序的加密和解密,另一个金钥用于权限检查程序的加密和解密。
[0078]综上所述,本公开所提出的应用程序管理方法以及应用程序管理系统,在公开第三方软件开发端所开发的原始应用程序之前,可进行再封装程序,为原始应用程序注入使用权管理程序代码以及权限管理程序代码,以产生再封装应用程序。当使用者装置下载并安装再封装应用程序后,可配合使用者装置的客户端程序执行使用权检查程序。此外,客户端程序可提供使用者接口,让使用者装置的使用者通过使用者接口设定各个再封装应用程序的相关系统函数的存取权限,可对再封装应用程序进行不同的权限管制,以适当地保护使用者隐私(User Privacy)。
[0079]虽然本公开已以实施例公开如上,然其并非用以限定本公开,本领域技术人员在不脱离本公开的精神和范围内,当可作些许的更动与润饰,故本公开的保护范围当视所附权利要求书界定范围为准。
【权利要求】
1.一种应用程序管理方法,包括: 接收一原始应用程序; 通过一再封装程序,注入一使用权管理程序代码至该原始应用程序,以产生一再封装应用程序;以及 公开该再封装应用程序,以供一使用者装置下载并安装该再封装应用程序,其中该使用者装置执行一客户端程序,当该使用者装置执行该再封装应用程序时,该使用权管理程序代码发出一使用权检查请求,以启动该客户端程序根据该再封装应用程序的使用权信息发出一使用权检查回应,该使用权检查回应指出该再封装应用程序是否可继续执行,当该使用权检查回应指出该再封装应用程序不可继续执行,则该使用权管理程序代码终止该再封装应用程序。
2.如权利要求1所述的应用程序管理方法,其中该使用权管理程序代码提供该再封装应用程序的名称至该客户端程序,而且该应用程序管理方法还包括: 自该客户端程序接收该名称;以及 根据该名称提供该使用权信息至该客户端程序。
3.如权利要求1所述的应用程序管理方法,其中该使用者装置存储一系统函数的权限设定,该应用程序管理方法还包括: 通过该再封装程序,注入一权限管理程序代码至该原始应用程序,以产生该再封装应用程序,其中该权限管理程序代码拦截该再封装应用程序对该系统函数的呼叫,并发出一权限检查请求,以启动该客户端程序根据该权限设定发出一权限检查回应,该权限管理程序代码根据该权限检查回应而执行该系统函数、不执行该系统函数、或以假信息回应该系统函数。
4.如权利要求3所述的应用程序管理方法,其中当该再封装应用程序在执行时期载入一新增程序代码,则该权限管理程序代码将该新增程序代码传送至该客户端程序,该客户端程序修改该新增程序代码,以使该权限管理程序代码拦截该新增程序代码对该系统函数的呼叫,并发出该权限检查请求,以启动该客户端程序根据该权限设定发出该权限检查回应,然后该权限管理程序代码允许该新增程序代码并入该再封装应用程序。
5.如权利要求3所述的应用程序管理方法,还包括: 提供一权限管理讯息至该客户端程序,其中该客户端程序根据该权限管理讯息变更该权限设定。
6.如权利要求3所述的应用程序管理方法,其中当该使用权管理程序代码在发出该使用权检查请求的一预设时间内未收到该使用权检查回应,则该使用权管理程序代码终止该再封装应用程序,当该权限管理程序代码在发出该权限检查请求的该预设时间内未收到该权限检查回应,则该权限管理程序代码不执行该系统函数。
7.如权利要求3所述的应用程序管理方法,其中该使用权管理程序代码或该权限管理程序代码提供该再封装应用程序的名称至该客户端程序,而且该应用程序管理方法还包括: 通过该再封装程序,注入至少一金钥至该原始应用程序,以产生该再封装应用程序; 自该客户端程序接收该名称;以及 根据该名称提供上述至少一金钥其中之一至该客户端程序,其中 当该名称是由该使用权管理程序代码提供,则该使用权管理程序代码使用该金钥以加密该使用权检查请求并解密该使用权检查回应,该客户端程序使用该金钥以解密该使用权检查请求并加密该使用权检查回应, 当该名称是由该权限管理程序代码提供,则该权限管理程序代码使用该金钥以加密该权限检查请求并解密该权限检查回应,该客户端程序使用该金钥以解密该权限检查请求并加密该权限检查回应。
8.如权利要求7所述的应用程序管理方法,其中通过该再封装程序以产生该再封装应用程序的步骤包括: 反汇编该原始应用程序,以产生至少一反汇编文件; 注入该使用权管理程序代码、该权限管理程序代码、以及上述至少一金钥于该至少一反汇编文件,以产生至少一第一中介文件; 动态混淆该至少一第一中介文件,以产生至少一第二中介文件;以及 汇编该至少一第二中介文件,并且进行一数字签章程序,以产生该再封装应用程序。
9.一种应用程序管理方法,用于一使用者装置,包括: 执行一客户端程序; 自一应用程序管理系统下载一再封装应用程序,其中该再封装应用程序是该应用程序管理系统通过一再封装程序注入一使用权管理程序代码至一原始应用程序而产生; 执行该再封装应用程序; 当该再封装应用程序被执行的时期,该使用权管理程序代码发出一使用权检查请求,以启动该客户端程序根据该再封装应用程序的使用权信息发出一使用权检查回应,其中该使用权检查回应指出该再封装应用程序是否可继续执行;以及 当该使用权检查回应指出该再封装应用程序不可继续执行,则该使用权管理程序代码终止该再封装应用程序。
10.如权利要求9所述的应用程序管理方法,还包括: 该使用权管理程序代码提供该再封装应用程序的名称至该客户端程序; 该客户端程序提供该名称至该应用程序管理系统,其中该应用程序管理系统根据该名称提供该使用权信息;以及 该客户端程序自该应用程序管理系统接收该使用权信息。
11.如权利要求9所述的应用程序管理方法,其中该应用程序管理系统在该再封装程序中更注入一权限管理程序代码至该原始应用程序以产生该再封装应用程序,该应用程序管理方法还包括: 存储一系统函数的权限设定; 该权限管理程序代码拦截该再封装应用程序对该系统函数的呼叫,并发出一权限检查请求,以启动该客户端程序根据该权限设定发出一权限检查回应; 该权限管理程序代码根据该权限检查回应而执行该系统函数、不执行该系统函数、或以假信息回应该系统函数; 当该再封装应用程序在执行时期载入一新增程序代码,则该权限管理程序代码将该新增程序代码传送至该客户端程序; 该客户端程序修改该新增程序代码,以使该权限管理程序代码拦截该新增程序代码对该系统函数的呼叫,并发出该权限检查请求,以启动该客户端程序根据该权限设定发出该权限检查回应;以及 在该客户端程序修改该新增程序代码之后,该权限管理程序代码允许该新增程序代码并入该再封装应用程序。
12.如权利要求11所述的应用程序管理方法,还包括: 该客户端程序提供一使用者接口,以供该使用者装置的使用者变更该权限设定。
13.如权利要求11所述的应用程序管理方法,还包括: 该客户端程序自该应用程序管理系统接收一权限管理讯息;以及 该客户端程序根据该权限管理讯息变更该权限设定。
14.如权利要求11所述的应用程序管理方法,还包括: 当该使用权管理程序代码在发出该使用权检查请求的一预设时间内未收到该使用权检查回应,则该使用权管理程序代码终止该再封装应用程序;以及 当该权限管理程序代码在发出该权限检查请求的该预设时间内未收到该权限检查回应,则该权限管理程序代码不执行该系统函数。
15.如权利要求11所述的应用程序管理方法,其中该应用程序管理系统在该再封装程序中更注入至少一金钥至该原始应用程序以产生该再封装应用程序,该应用程序管理方法还包括: 该使用权管理程序代码或该权限管理程序代码提供该再封装应用程序的名称至该客户端程序; 该客户端程序提供该名称至该应用程序管理系统,其中该应用程序管理系统根据该名称提供上述至少一金钥其中之一; 该客户端程序自该应用程序管理系统接收该金钥; 当该名称是由该使用权管理程序代码提供,则该使用权管理程序代码使用该金钥以加密该使用权检查请求并解密该使用权检查回应,该客户端程序使用该金钥以解密该使用权检查请求并加密该使用权检查回应;以及 当该名称是由该权限管理程序代码提供,则该权限管理程序代码使用该金钥以加密该权限检查请求并解密该权限检查回应,该客户端程序使用该金钥以解密该权限检查请求并加密该权限检查回应。
16.如权利要求15所述的应用程序管理方法,还包括: 该客户端程序将该使用权信息和/或自该应用程序管理系统接收的该金钥存储在该使用者装置; 当该使用者装置已存储该使用权信息,则该客户端程序根据存储在该使用者装置的该使用权信息发出后续的该使用权检查回应;以及 当该使用者装置已存储该金钥,则该客户端程序使用存储在该使用者装置的该金钥以解密后续的该使用权检查请求和/或后续的该权限检查请求,而且该客户端程序使用存储在该使用者装置的该金钥以加密后续的该使用权检查回应和/或后续的该权限检查回应。
17.—种应用程序管理系统,包括: 一再封装模块,用以接收一原始应用程序,通过一再封装程序,注入一使用权管理程序代码至该原始应用程序,以产生一再封装应用程序;以及 一应用程序管理模块,用以公开该再封装应用程序,以供一使用者装置下载并安装该再封装应用程序,其中该使用者装置执行一客户端程序,当该使用者装置执行该再封装应用程序时,该使用权管理程序代码发出一使用权检查请求,以启动该客户端程序根据该再封装应用程序的使用权信息发出一使用权检查回应,该使用权检查回应指出该再封装应用程序是否可继续执行,当该使用权检查回应指出该再封装应用程序不可继续执行,则该使用权管理程序代码终止该再封装应用程序。
18.如权利要求17所述的应用程序管理系统,其中该使用权管理程序代码提供该再封装应用程序的名称至该客户端程序,而且该应用程序管理系统还包括: 一使用权管理模块,用以自该客户端程序接收该名称,并根据该名称提供该使用权信息至该客户端程序。
19.如权利要求17所述的应用程序管理系统,其中该使用者装置存储一系统函数的权限设定,该再封装模块还通过该再封装程序,注入一权限管理程序代码至该原始应用程序,以产生该再封装应用程序,该权限管理程序代码拦截该再封装应用程序对该系统函数的呼口4,并发出一权限检查请求,以启动该客户端程序根据该权限设定发出一权限检查回应,该权限管理程序代码根据该权限检查回应而执行该系统函数、不执行该系统函数、或以假信息回应该系统函数,其中当该再封装应用程序在执行时期载入一新增程序代码,则该权限管理程序代码将该新增程序代码传送至该客户端程序,该客户端程序修改该新增程序代码,以使该权限管理程序代码拦截该新增程序代码对该系统函数的呼叫,并发出该权限检查请求,以启动该客户端程序根据该权限设定发出该权限检查回应,然后该权限管理程序代码允许该新增程序代码并入该再封装应用程序。
20.如权利要求19所述的应用程序管理系统,还包括: 一空中下载服务管理模块,用以提供一权限管理讯息至该客户端程序,其中该客户端程序根据该权限管理讯息变更该权限设定。
21.如权利要求19所述的应用程序管理系统,其中当该使用权管理程序代码在发出该使用权检查请求的一预设时间内未收到该使用权检查回应,则该使用权管理程序代码终止该再封装应用程序,当该权限管理程序代码在发出该权限检查请求的该预设时间内未收到该权限检查回应,则该权限管理程序代码不执行该系统函数。
22.如权利要求19所述的应用程序管理系统,其中该使用权管理程序代码或该权限管理程序代码提供该再封装应用程序的名称至该客户端程序,而且该应用程序管理系统还包括: 一金钥提供模块,用以提供至少一金钥,其中该再封装模块还通过该再封装程序,注入上述至少一金钥至该原始应用程序,以产生该再封装应用程序;以及 一金钥管理模块,用以自该金钥提供模块取得上述至少一金钥,自该客户端程序接收该名称,并根据该名称提供上述至少一金钥其中之一至该客户端程序,其中当该名称是由该使用权管理程序代码提供,则该使用权管理程序代码使用该金钥以加密该使用权检查请求并解密该使用权检查回应,而且该客户端程序使用该金钥以解密该使用权检查请求并加密该使用权检查回应,当该名称是由该权限管理程序代码提供,则该权限管理程序代码使用该金钥以加密该权限检查请求并解密该权限检查回应,而且该客户端程序使用该金钥以解密该权限检查请求并加密该权限检查回应。
23.如权利要求22所述的应用程序管理系统,其中该再封装模块反汇编该原始应用程序,以产生至少一反汇编文件,注入该使用权管理程序代码、该权限管理程序代码、以及上述至少一金钥于该至少一反汇编文件,以产生至少一第一中介文件,动态混淆该至少一第一中介文件,以产生至少一第二中介文件,汇编该至少一第二中介文件,并且进行一数字签章程序,以产生该再封装应用程序。
24.一种使用者装置,包括: 一通信模块,用以连接一应用程序管理系统;以及 一处理器,用以执行一客户端程序,自该应用程序管理系统下载一再封装应用程序,并执行该再封装应用程序,其中该再封装应用程序是该应用程序管理系统通过一再封装程序注入一使用权管理程序代码至一原始应用程序而产生,当该再封装应用程序被执行时,该使用权管理程序代码发出一使用权检查请求,以启动该客户端程序根据该再封装应用程序的使用权信息发出一使用权检查回应,其中该使用权检查回应指出该再封装应用程序是否可继续执行,当该使用权检查回应指出该再封装应用程序不可继续执行,则该使用权管理程序代码终止该再封装应用程序。
25.如权利要求24所述的使用者装置,其中该使用权管理程序代码提供该再封装应用程序的名称至该客户端程序,该客户端程序提供该名称至该应用程序管理系统,该应用程序管理系统根据该名称提供该使用权信息,该客户端程序自该应用程序管理系统接收该使用权信息。
26.如权利要求24所述的使用者装置,还包括: 一存储装置,用以存储一系统函数的权限设定,该应用程序管理系统在该再封装程序中更注入一权限管理程序代码至该原始应用程序以产生该再封装应用程序,该权限管理程序代码拦截该再封装应用程序对该系统函数的呼叫,并发出一权限检查请求,以启动该客户端程序根据该权限设定发出一权限检查回应,该权限管理程序代码根据该权限检查回应而执行该系统函数、不执行该系统函数、或以假信息回应该系统函数。
27.如权利要求26所述的使用者装置,其中当该再封装应用程序在执行时期载入一新增程序代码,则该权限管理程序代码将该新增程序代码传送至该客户端程序,该客户端程序修改该新增程序代码,以使该权限管理程序代码拦截该新增程序代码对该系统函数的呼口4,并发出该权限检查请求,以启动该客户端程序根据该权限设定发出该权限检查回应,在该客户端程序修改该新增程序代码之后,该权限管理程序代码允许该新增程序代码并入该再封装应用程序。
28.如权利要求26所述的使用者装置,其中该客户端程序提供一使用者接口,以供该使用者装置的使用者变更该权限设定。
29.如权利要求26所述的使用者装置,其中该客户端程序自该应用程序管理系统接收一权限管理讯息,并根据该权限管理讯息变更该权限设定。
30.如权利要求26所述的使用者装置,其中当该使用权管理程序代码在发出该使用权检查请求的一预设时间内未收到该使用权检查回应,则该使用权管理程序代码终止该再封装应用程序,当该权限管理程序代码在发出该权限检查请求的该预设时间内未收到该权限检查回应,则该权限管理程序代码不执行该系统函数。
31.如权利要求26所述的使用者装置,其中该应用程序管理系统在该再封装程序中更注入至少一金钥至该原始应用程序以产生该再封装应用程序,该使用权管理程序代码或该权限管理程序代码提供该再封装应用程序的名称至该客户端程序,该客户端程序提供该名称至该应用程序管理系统,该应用程序管理系统根据该名称提供上述至少一金钥其中之一,该客户端程序自该应用程序管理系统接收该金钥,当该名称是由该使用权管理程序代码提供,则该使用权管理程序代码使用该金钥以加密该使用权检查请求并解密该使用权检查回应,而且该客户端程序使用该金钥以解密该使用权检查请求并加密该使用权检查回应,当该名称是由该权限管理程序代码提供,则该权限管理程序代码使用该金钥以加密该权限检查请求并解密该权限检查回应,而且该客户端程序使用该金钥以解密该权限检查请求并加密该权限检查回应。
32.如权利要求31所述的使用者装置,其中该客户端程序将该使用权信息和/或自该应用程序管理系统接收的该金钥存储在该存储装置,当该存储装置已存储该使用权信息,则该客户端程序根据存储在该存储装置的该使用权信息发出后续的该使用权检查回应;当该存储装置已存储该金钥,则该客户端程序使用存储在该存储装置的该金钥以解密后续的该使用权检查请求和/或后续的该权限检查请求,而且该客户端程序使用存储在该存储装置的该金钥以加密后续的该使用权检查回应和/或后续的该权限检查回应。
【文档编号】G06F21/52GK104298916SQ201310379908
【公开日】2015年1月21日 申请日期:2013年8月28日 优先权日:2013年7月17日
【发明者】高铭智, 潘佑宣, 黄琨富 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1