CN106663018B - 修改移动设备应用生命周期的系统、方法、介质和设备 - Google Patents
修改移动设备应用生命周期的系统、方法、介质和设备 Download PDFInfo
- Publication number
- CN106663018B CN106663018B CN201580045075.4A CN201580045075A CN106663018B CN 106663018 B CN106663018 B CN 106663018B CN 201580045075 A CN201580045075 A CN 201580045075A CN 106663018 B CN106663018 B CN 106663018B
- Authority
- CN
- China
- Prior art keywords
- class
- content provider
- application
- original
- wrapper
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 260
- 230000000694 effects Effects 0.000 claims description 32
- 230000003068 static effect Effects 0.000 claims description 23
- 238000011423 initialization method Methods 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 9
- 238000004883 computer application Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 19
- 239000003999 initiator Substances 0.000 description 10
- 238000007726 management method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 239000007858 starting material Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000002600 positron emission tomography Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
对相关申请的交叉引用
本申请是于2015年1月12日提交的美国申请No.14/594,377的延续并且要求该美国申请的权益,该美国申请要求于2014年9月24日提交的美国临时申请No.62/054,853的权益,出于所有目的将这两个申请的全部内容通过引用并入本文。
本申请涉及于2013年3月15日提交的美国申请No.13/841,498以及于2014年3月14日提交的美国申请No.14/213,244但不要求这两个申请的优先权,出于所有目的将这两个申请的全部内容通过引用并入本文。
技术领域
一般而言,本申请涉及数据处理。具体而言,本申请涉及用于向移动设备和其它设备上的软件应用提供安全服务的系统、方法和机器可读介质,其中安全服务包括认证、授权、审计、单点登录、安全策略实施、密钥管理和分发、安全通信、安全数据存储和安全数据共享等。
背景技术
在移动设备上方便地访问企业资源是一个反复出现的问题。一旦移动设备管理(MDM)解决方案被安装在移动设备上,则几乎移动设备上的所有内容成为企业数据。如果移动设备的用户希望将它用于非企业目的,则这可能是次优的。
应用(或它们有时被称为“app”)被频繁地更新和修订。电子邮件应用每隔几个月就打更新补丁并不是罕见的。移动设备和其它计算设备常常具有许多应用,这些应用中的每个应用被频繁更新。这可能使得保护移动设备免受黑客攻击是困难的,因为计算设备的安全一般仅取决于其最薄弱的一环。如果一个应用遭受安全异常,则潜在地可能危及设备上的数据中的所有数据。
由于这些安全漏洞,许多公司不允许通过雇员自己的设备对他们的公司网络的访问(通常被称为自带设备(BYOD)访问)。除非雇员同意上文描述的锁定用户设备上的所有内容的MDM解决方案,否则公司不采纳BYOD的理念。替代方案是雇主为雇员提供用于企业访问的电子设备;然而,这是昂贵的并且需要更新基础设施。
移动设备上的应用的更好安全性、灵活性和集成是所需要的。
发明内容
一般而言,描述了用于在移动应用被安装到计算设备上之前自动将移动应用“容器化(containerize)”以使得应用的网络调用和输入/输出(I/O)调用中的全部网络调用和I/O调用之前都有必要的用户认证、令牌选择和/或加密的系统、设备和方法。在本机应用在构造器调用或网络调用或I/O调用中执行任何代码之前,执行安全代码。
“容器化器(containerizer)”应用以本机的、未修改的应用作为输入并且输出容器化的、经修改的应用。具体而言,从Google应用包(APK)文件提取用于Google计算机应用的ApplicationManifest.XML文件和Google可执行文件(DEX)字节码文件。为应用、内容提供器(Content Provider)和活动创建包装器类和假(dummy)生命周期方法。一个目的是创建假生命周期,以使得在认证完成之前不执行原始代码;一旦认证成功完成,则在执行实际应用代码之前获取和应用策略。
移动设备应用的生命周期可以被修改。方法将APK文件解码并且从APK文件提取Android清单和DEX文件。该方法从清单读取应用类名,然后解析应用类的字节码,重命名方法CLINIT(静态初始化器)、INIT(构造器)、attachBaseContext和onCreate(应用生命周期方法),并且插入具有原始名称(即,CLINIT、INIT、attachBaseContext和onCreate)的空白假方法。在处理应用类之后,该方法从清单获取内容提供器类的名称,并且通过追加后缀常量来修改(清单中的)这些名称。然后,该方法利用字节码操纵来为内容提供器创建充当原始内容提供器之上的包装器/委托类的具有经修改的名称的类。一旦生成了用于内容提供器的包装器,则该方法从清单文件读取活动的名称,它利用字节码解析器来重命名方法CLINIT、INIT和生命周期方法(onCreate、onResume、onStart、onRestart、onPause、onStop、onDestroy、finish)并且在它们的位置中创建假方法。另外,在DEX文件中添加假启动器活动,并且该假启动器活动的名称作为(移除来自原始启动器活动的启动器属性的)启动器活动被添加到清单文件中,这是启动应用时要调用的第一个活动。一旦应用生命周期控制进来,则触发假启动器活动认证并且获取策略。此后,调用(invoke)原始启动器活动。
用假方法/类代替原始生命周期方法/类的目的是使得在完成认证和获取策略之前不执行应用代码。容器化器不仅修改生命周期,而且可以包装文件系统调用和网络调用,以在这些调用中注入安全性。例如,在设备上写入任何数据之前,数据将被加密,并且将在读取操作中被解密。类似地,所有网络调用可以通过安装在企业网络中的网关来代理,以使得可以通过适当的信道来控制和路由所有网络业务。为了执行网络拦截,类似于对写/读操作的加密/解密,从路由业务的网络进行认证可能是重要的;密钥管理器应当被初始化。一旦认证完成,则可以初始化密钥管理器,并且接收认证令牌以通过网络通信。以相同的序列触发被重命名的原始生命周期方法/类。在一些实例中,可以只在控制进入活动生命周期(例如,活动的onCreate/onResume)中时,才调用认证。因此,原始生命周期被假生命周期代替。一旦认证发生,则原始生命周期在认证之后被调用。
当启动容器化的应用时,发生的第一件事是应用类的初始化。由于所有的初始化/生命周期方法被重命名,因此该代码都没有被执行。相反,(由容器化器注入的)假方法被执行。在应用类初始化之后,内容提供器被初始化并且用于内容提供器的(由容器化器注入的)包装器类被初始化。
在应用和内容提供器初始化之后,应用生命周期进入假启动器活动,假启动器活动触发认证并且在成功认证之后初始化密钥管理器和网络管理器。在此之后,触发原始生命周期。第一个应用的类(重命名的CLINIT、重命名的INIT和重命名的attachBaseContext)被调用。在执行重命名的生命周期方法之后,应用类原始内容提供器类被初始化并且它们的onCreate被调用。一旦原始内容提供器被初始化,则应用的类的原始onCreate被调用。完成所有这些之后,调用原始启动器活动并且相应地调用剩余的应用功能。
有时候,可以在某些具体活动时触发应用,在这些具体活动中在应用类和内容提供器初始化之后,控制不进入假启动器活动而是直接进入被调用的活动。出于该原因,我们在活动中重命名了静态初始化器(CLINIT)、构造器(INIT)和生命周期方法,并且在所有活动中添加了用于活动生命周期的假方法。这些假方法在调用原始的重命名的生命周期方法之前检查认证。如果未认证,则onCreate/onResume的假方法触发认证。成功认证后,用于应用和内容提供器初始化的原始生命周期被触发。此后,调用活动的原始CLINIT、INIT和onCreate,然后相应地进行剩余的应用流。
本发明的一些实施例涉及一种修改移动设备应用的生命周期的方法。该方法包括:提供应用清单文件和字节码文件,该应用清单文件和字节码文件对应于计算机软件应用;将应用类的原始方法重命名为字节码文件中的重命名的方法;将包装器方法插入字节码文件中的应用类中,该包装器方法具有原始方法的名称,该包装器方法被配置为在调用重命名的方法之前调用认证或加密方法;将原始内容提供器类的名称修改为应用清单文件中的经修改的内容提供器类名称;以及在字节码文件中创建包装器内容提供器类,包装器内容提供器类具有经修改的内容提供器类名称,包装器内容提供器类被配置为在转发对原始内容提供器类的方法的调用之前检查原始内容提供器类是否被实例化。
该方法还可以包括将活动类的原始方法的名称重命名为字节码文件中该活动类的重命名的方法,并且在字节码文件中的该活动类中插入假方法,该假方法具有活动类的原始方法的名称,该假方法被配置为在调用活动类的重命名的方法之前调用认证或加密方法。
应用清单文件中的所有内容提供器类名称可以被重命名。该方法还可以包括由包装器方法读取策略,其中对认证或加密方法的调用基于策略。策略可以从信息技术(IT)部门发送到移动设备应用安装在其上的移动设备。
包装器方法可以包括对移动设备管理器应用的调用。原始方法可以包括静态块初始化。原始方法可以包括构造器。该方法还可以包括重命名应用静态初始化方法、应用构造器方法、应用attachBaseContext()方法、内容提供器静态初始化方法、内容提供器构造器方法、内容提供器onCreate()方法、应用onCreate()方法、启动器活动静态初始化方法、启动器活动构造器方法以及字节码文件中的启动器活动onCreate()、onStart()和onResume()方法。
该方法还可以包括将onCreate()、onStart()、onStop()、onRestart()、onPause()、onResume()或onDestroy()方法插入到包装器类中。原始方法的重命名可以包括将前缀或后缀追加到原始方法,以创建重命名的方法。应用清单文件可以包括可扩展标记语言(XML)代码。字节码文件可以是用于Google计算机应用的Google可执行文件(DEX)字节码文件。该方法还可以包括从Google应用包(APK)文件提取应用清单文件和字节码文件。
其它实施例涉及执行上文引用的方法的系统以及采用或存储用于上文描述的方法的指令的机器可读有形存储介质。
本发明内容既不旨在识别要求保护的主题的关键特征或必要特征,也不旨在单独用来确定要求保护的主题的范围。应当通过参考本专利的整个说明书的适当的部分、任何或全部附图以及每项权利要求来理解主题。
附图说明
图1示出了根据实施例的连接到受保护的公司网络的移动设备。
图2A-2B示出了根据实施例来修订应用清单文件。
图3A-3B示出了根据实施例来修订字节码文件。
图4示出了根据实施例的对应用生命周期的修改。
图5是示出根据实施例的过程的流程图。
图6绘出了用于实现实施例中的一个实施例的联网系统的简化示意图。
图7示出了其中可以实现本发明的各种实施例的示例性计算机系统。
图8示出了可以在其中实现本发明的各种实施例的、用于修改移动设备应用的生命周期的示例性系统的简化结构图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了具体的细节,以便于提供对本发明的实施例的透彻理解。然而,将明显的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。
可以以各种配置提供附图中的一些图中绘出的系统。在一些实施例中,系统可以被配置为其中系统的一个或多个组件跨云计算系统中的一个或多个网络分布的分布式系统。
本发明的方面涉及如何在基于Google操作系统(OS)的设备上执行安全容器化。描述了如何在Android平台上实现容器化目标。它定义了如何拦截Android应用生命周期并且执行注入以实现期望目标的过程。
容器化是一种保护移动应用的新方法。容器化可以提供安全的工作空间,并且围绕它集成其它应用,以便这些其它应用与工作空间一起共享容器化环境的生态系统。
现有的行业解决方案只是在移动设备上安装MDM;之后,设备有效地成为企业的财产。甚至个人应用也要遵守企业策略。
通过诸如本文描述的移动工作空间解决方案之类的移动工作空间解决方案,个人数据和企业数据可以保持在分开的控制下。在容器化环境中工作的企业应用及其数据仍然受公司策略的控制。它们的网络访问和文件系统访问在容器化环境中以常见的方式被保护。
这样的移动工作空间解决方案的技术优点是它可以:
-为移动应用增加安全性;
-提供安全的网络和文件访问;
-提供对应用的经认证的访问;
-提供对应用程序的策略控制;
-提供数据泄漏保护;以及
-提供对设备上的容器化环境的控制,该容器化环境可以从管理控制台锁定/擦除/清除,而不影响设备上的个人数据。
方法
-应用类初始化
-静态初始化
-构造器初始化
-attachBaseContext()应用生命周期初始化
-内容提供器
-静态初始化
-构造器初始化
-onCreate()内容提供器生命周期初始化
-onCreate()应用生命周期初始化
-启动器活动初始化
-静态初始化
-构造器初始化
-onCreate()、onStart()、onResume()活动生命周期初始化
人们可以更改这个生命周期,以便于迫使来自应用的每个网络调用和I/O调用预先检查安全策略和/或运行安全检查。
图1示出了根据实施例的连接到受保护的公司网络的移动设备。在系统100中,智能电话102经广域网110与公司网络120通信。
在智能电话102中,在虚拟机(VM)106上运行的应用108被拒绝与外部实体的直接连接。替代地,关键构造器和初始化的包装器迫使网络调用经过移动数据管理器(MDM)104。移动数据管理器104可以检查设备的通信的认证令牌和其它安全相关的方面。应用108有效地通过到广域网110(诸如因特网)的移动数据管理器104与公司网络120通信。
在公司网络120上,所有传入和传出的网络业务由防火墙112检查和调节。移动设备102对企业服务器114的调用可以采取企业web服务116的形式。例如,应用108可以利用(tap into)由企业服务116提供的内部雇员记录。
公司的IT部门可以发布策略118,策略118的副本通过广域网110发送到移动设备102。应用108中的包装器类可以查询可以采取可扩展标记语言(XML)文件的形式的策略的副本,以便确定是否以及何时获取用于某些事务的安全证书等。
图2A-2B示出了根据实施例来修订应用清单文件。在图2A中,原始应用清单文件202具有原始类名称204“oracle.webcenter.content.android.documentsprovider.WCCFilesPr ovider”。在由该类名称命名的元素内的是原始子元素。
在图2B中,经修订的应用清单文件206被示为具有被重命名为带“MyC14N”前缀的重命名的类名称的原始类名称204。即,它被重命名为“oracle.webcenter.content.android.documentsprovider.MyC14NWC CFilesProvider”。具有与原始类名称相同的类名称(即,“oracle.webcenter.content.android.documentsprovider.WCCFilesPr ovider”)的另一新类定义210被添加。在新类定义下的是新的子元素。新的子元素可以是或者可以不是原始子元素的副本。一些子元素可以被删除。
图3A-3B示出了根据实施例来修订字节码文件。
在图3A中,原始字节码文件302具有原始类304“ContentProvider”。在该类内的是原始代码。
在图3B中,经修订的类型代码文件306被示为具有被重命名为带“MyC14N”前缀的重命名的类的原始类名称。即,它被重命名为“MyC14NContentProvider”。它的原始代码保持不变。
具有与原始类“ContentProvider”相同的名称的新类310被添加。这个新类定义检查它是否已经被实例化和初始化的变量。它还创建诸如onCreate()之类的包装器方法,这些包装器方法读取策略,基于策略认证、加密/解密或执行其它安全功能,然后调用原始类的原始onCreate()函数。
图4示出了用于拦截可以被采用的应用代码的执行的字节码操纵/注入。对于每个可能的网络和文件系统操作,可以创建被注入到现有应用中的包装器类。可以在现有代码中实现实际的字节码修改,从而用包装器类代替原始类。例如:
-一旦可以用定制的包装器类代替FileInputStream和FileOutputStream。
由于可能希望控制应用生命周期,因此可以使用用于注入/修改现有生命周期代码的字节码操纵方法。
使用该方法的一个目的是在用户被允许执行应用之前使用户通过认证,并且在认证之后从安全工作空间获取会话数据和加密密钥。因此,网络调用和文件系统调用实际上可以工作。一些包装器需要主加密密钥来解码用来在每个文件操作中加密/解密数据的加密密钥。同样,对于网络调用,可以要求会话令牌,以确立对任何网络资源进行的调用的真实性,所述对任何网络资源进行的调用可以经由Oracle移动安全网关或其它基于云的网关来路由。
为了实现上面的用例,可以延迟整个应用生命周期并且引入假生命周期,以使得可以首先认证用户,然后获取主加密密钥和会话令牌。
这里是根据实施例的应用生命周期中的分步列表。
-在操作402中应用类初始化发生。
-对于静态初始化404,在容器化步骤430中它被重命名为定制定义的、带常量前缀/后缀的名称,以使得它可以稍后被调用并且被注入空的类初始化器。
-对于构造器初始化406,在容器化步骤432中它被重命名为定制定义的、带常量前缀/后缀的名称,以使得它可以稍后被调用并且被注入空的类构造器。这可以对所有可用的构造器进行。它可以对超类的所有构造器进行,并且它们相应的super()调用也可以被改变为上面提到的定制名称。
-在操作434中方法attachBaseContext()408可以被重命名为定制定义的、带常量前缀/后缀的名称,以使得它可以稍后被调用并且被注入用于它的空方法。
-对于内容提供器初始化410,可以在操作436中为在应用中定义的每个内容提供器注入假内容提供器并且还可以改变相关联的清单XML(可扩展标记语言)中的引用。这些假内容提供器又包含对原始内容提供器的引用,并且对该假内容提供器的所有方法调用都被委托给原始内容提供器。在对任何接口方法进行第一次调用之前,内容提供器通常不被正常地初始化。或者可以简单地称为,它是懒惰的初始化。例如,如果内容提供器是MyContentProvider,则可以实现以下内容:
-将清单中的条目
<provider android:name=”MyContentProvider”>改成
<provider android:name=”MyC14NContentProvider”>
-将静态init 412和构造器init 414注入名为MyC14NContentProvider的类。
以这种方式,通过引入假内容提供者并且将它们的接口方法委托给原始类的原始方法来延迟内容提供器的初始化。
-对于应用onCreate()初始化416,容器化器可以执行以下操作。
-诸如对于生命周期初始化418,可以在操作438中将onCreate()方法重命名为定制定义的、带常量前缀/后缀的名称,以使得它可以稍后被调用并且继而被注入onCreate()的假方法。这对所有超类进行,并且super.onCreate()的调用可以委托给上面提到的重命名的onCreate()方法。
-对于活动生命周期初始化,诸如对于启动器活动初始化420,可以在操作440中注入假活动,使其成为启动器活动,并且从原始活动中移除启动器动作。一旦在假活动中获取控制,则可以调用工作空间以供认证,工作空间将返回会话令牌和主加密密钥。一旦获取了密钥,则可以通过调用被重命名的原始方法来重新初始化整个周期。
-原始应用类静态初始化器422可以被调用。
-然后原始应用类构造器424可以被调用。
-原始应用类attachBaseContext()可以被调用。
-可以对假内容提供器调用Init(),Init()将初始化原始内容提供器。
-原始应用类onCreate()可以被调用。
-类似地,可以注入/修改原始现有活动的生命周期。
-可以在操作442中重命名426的onCreate()、onRestart()、onResume()方法,并且注入定制定义的生命周期方法,在该定制定义的生命周期方法中将进行策略实现的任务,然后调用原始的重命名的方法。例如:
-onCreate()重命名为onCreate_C14N()
-注入我们自己的onCreate()
-类似地,这可以对其它生命周期方法onStart()、onResume()、onPause()、onStop()、onDestroy()执行。
-使用字节码修改/注入的相同方法,可以用自己定制的调用代替共享偏好的系统调用和startActivity(),在该自己定制的调用中可以执行所有加密/解密和策略检查,然后调用原始的操作。
图5是示出根据实施例的过程500的流程图。该过程可以由计算机通过执行处理器中的指令或以其它方式来实现。在操作501中,提供应用清单文件和字节码文件,应用清单文件和字节码文件对应于计算机软件应用。在操作502中,将应用类的原始方法重命名为字节码文件中的重命名的方法。在操作503中,包装器方法被插入到字节码文件中的应用类中,该包装器方法具有原始方法的名称,该包装器方法被配置为在调用重命名的方法之前调用认证或加密方法。在操作504中,原始内容提供器类的名称被修改为应用清单文件中的经修改的内容提供器类名称。在操作505中,在字节码文件中创建包装器内容提供器类,该包装器内容提供器类具有经修改的内容提供器类名称,该包装器内容提供器类被配置为在转发对原始提供器类的方法的调用之前检查原始内容提供器类是否被实例化。
在操作506中,活动类的原始方法的名称被重命名为字节码文件中该活动类的重命名的方法。在操作507中,假方法被插入到字节码文件中的该活动类中,该假方法具有活动类的原始方法的名称,该假方法被配置为在调用活动类的重命名的方法之前调用认证或加密方法。
计算机系统基础设施
图6绘出了用于实现实施例中的一个实施例的分布式系统600的简化示意图。在所示的实施例中,分布式系统600包括一个或多个客户机计算设备602、604、606和608,该一个或多个客户机计算设备被配置为经一个或多个网络610执行和操作客户机应用,诸如web浏览器、专有客户机(例如,Oracle Forms)等。服务器612可以经由网络610与远程客户机计算设备602、604、606和608可通信地耦接。
在各种实施例中,服务器612可以适于运行由系统的组件中的一个或多个组件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务向客户机计算设备602、604、606和/或608的用户提供,或者在软件即服务(SaaS)模型下向客户机计算设备602、604、606和/或608的用户提供。操作客户机计算设备602、604、606和/或608的用户进而可以利用一个或多个客户机应用与服务器612交互,以利用由这些组件提供的服务。
在图中所绘出的配置中,系统600的软件组件618、620和622被示为在服务器612上实现。在其它实施例中,系统600的组件中的一个或多个组件和/或由这些组件提供的服务还可以由客户机计算设备602、604、606和/或608中的一个或多个实现。然后,操作客户机计算设备的用户可以利用一个或多个客户机应用来使用由这些组件提供的服务。这些组件可以在硬件、固件、软件或其组合中实现。应当理解的是,各种不同的系统配置是可能的,这些系统配置可以不同于分布式系统600。因此,图中所示的实施例是用于实现实施例系统的分布式系统的一个示例,并且不旨在是限制性的。
客户机计算设备602、604、606和/或608可以是运行诸如Microsoft Windows之类的软件和/或诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等之类的各种移动操作系统并且启用因特网、电子邮件、短消息服务(SMS)、或其它通信协议的便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器)。客户机计算设备可以是通用个人计算机,举例来说,包括运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或膝上型计算机。客户机计算设备可以是运行包括但不限于各种GNU/Linux操作系统(诸如像GoogleChrome OS)的各种商用的或类UNIX操作系统中的任何操作系统的工作站计算机。可替代地或附加地,客户机计算设备602、604、606和608可以是能够经(一个或多个)网络610通信的任何其它电子设备,诸如瘦客户机计算机、启用因特网的游戏系统(例如,具有或不具有姿势输入设备的Microsoft Xbox游戏机)和/或个人消息传送设备。
虽然示例性分布式系统600被示为具有四个客户机计算设备,但是任何数量的客户机计算设备可以被支持。诸如具有传感器的设备等之类的其它设备可以与服务器612交互。
分布式系统600中的(一个或多个)网络610可以是本领域技术人员熟悉的可以利用各种商用协议中的任何商用协议支持数据通信的任何类型的网络,所述各种商用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(互联网分组交换)、AppleTalk等。仅仅作为示例,(一个或多个)网络610可以是局域网(LAN),诸如基于以太网、令牌环和/或其它网络的LAN。(一个或多个)网络610可以是广域网和因特网。它可以包括虚拟网络,该虚拟网络包括但不限于虚拟专用网络(VPN)、内联网、外联网、公共交换电话网络(PSTN)、红外网络、无线网络(例如,在电气和电子协会(IEEE)802.11协议族中的任何协议、和/或任何其它无线协议下操作的网络);和/或这些网络和/或其它网络的任何组合。
服务器612可以包括一个或多个通用计算机、专用服务器计算机(举例来说,包括PC(个人计算机)服务器、服务器、中型服务器、大型计算机、机架式服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合。在各种实施例中,服务器612可以适于运行在前述公开内容中描述的一个或多个服务或软件应用。例如,服务器612可以对应于用于执行根据本公开的实施例的上文描述的处理的服务器。
服务器612可以运行包括上面讨论的操作系统中的任何操作系统以及任何商用的服务器操作系统的操作系统。服务器612还可以运行各种附加的服务器应用和/或中间层应用中的任何服务器应用和/或中间层应用,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于来自Oracle、Microsoft、Sybase、IBM(国际商业机器)等的商用数据库服务器。
在一些实施方式中,服务器612可以包括一个或多个应用,以分析和整合从客户机计算设备602、604、606和608的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和持续数据流接收到的馈送、更新或实时更新,该一个或多个第三方信息源和持续数据流可以包括与传感器数据应用、金融收报机(ticker)、网络性能测量工具(例如,网络监视和业务管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器612还可以包括经由客户机计算设备602、604、606和608的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统600还可以包括一个或多个数据库614和616。数据库614和616可以驻留在各种位置中。作为示例,数据库614和616中的一个或多个可以驻留在服务器612本地(和/或驻留在服务器612中)的非暂态存储介质上。可替代地,数据库614和616可以远离服务器612,并且经由基于网络的或专用的连接与服务器612通信。在一组实施例中,数据库614和616可以驻留在存储区域网络(SAN)中。类似地,用于执行属于服务器612的功能的任何必要的文件可以适当地在服务器612本地存储和/或远程存储。在一组实施例中,数据库614和616可以包括适于响应于SQL格式的命令来存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
图7示出了其中可以实现本发明的各种实施例的示例性计算机系统700。计算机系统700可以被用来实现上文描述的计算机系统中的任何计算机系统。如图中所示,计算机系统700包括经由总线子系统702与若干外围子系统通信的处理单元704。这些外围子系统可以包括处理加速单元706、I/O子系统708、存储子系统718和通信子系统724。存储子系统718包括有形的计算机可读存储介质722和系统存储器710。
总线子系统702提供用于使计算机系统700的各种组件和子系统按照预期彼此通信的机制。虽然总线子系统702被示意性地示为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统702可以是若干类型的总线结构中的任何总线结构,包括利用各种总线架构中的任何总线架构的存储器总线或存储器控制器、外围总线和局部总线。例如,这样的总线架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及可以被实现为根据IEEE P1386.1标准制造的夹层(Mezzanine)总线的外围组件互连(PCI)总线。
可以被实现为一个或多个集成电路(例如,常规的微处理器或微控制器)的处理单元704控制计算机系统700的操作。处理单元704中可以包括一个或多个处理器。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元704可以被实现为具有包括在每个处理单元中的单个或多核处理器的一个或多个独立处理单元732和/或734。在其它实施例中,处理单元704还可以被实现为通过将两个双核处理器集成到单个芯片中而形成的四核处理单元。
在各种实施例中,处理单元704可以响应于程序代码而执行各种程序,并且可以维护多个并发执行的程序或过程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在(一个或多个)处理器704和/或存储子系统718中。通过适当的编程,(一个或多个)处理器704可以提供上文描述的各种功能。计算机系统700可以附加地包括处理加速单元706,处理加速单元706可以包括数字信号处理器(DSP)、专用处理器和/或其它处理器。
I/O子系统708可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球之类的指示设备、结合到显示器中的触摸板或触摸屏、滚轮、点拨轮、拨盘、按钮、开关、键板、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括例如使得用户能够利用姿势和口头命令通过自然用户接口来控制输入设备(诸如Microsoft360游戏控制器)并与其交互的诸如Microsoft运动传感器之类的运动感测和/或姿势识别设备。用户接口输入设备还可以包括眼部姿势识别设备,诸如检测来自用户的眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并且将眼部姿势变换为到输入设备(例如,Google)中的输入的Google眨眼检测器。附加地,用户接口输入设备可以包括使得用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户接口输入设备还可以包括但不限于三维(3D)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视觉设备,诸如扬声器、数码照相机、数字摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及视线跟踪设备。附加地,用户接口输入设备可以包括例如医疗成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层扫描、医疗超声检查设备。用户接口输入设备还可以包括例如音频输入设备,诸如MIDI键盘、数字乐器等。
用户接口输出设备可以包括显示子系统、指示器灯或者诸如音频输出设备之类的非视觉显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子体显示器的平板设备之类的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用旨在包括用于向用户或其它计算机输出来自计算机系统700的信息的所有可能类型的设备和机构。例如,用户接口输出设备可以包括但不限于可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
计算机系统700可以包括存储子系统718,存储子系统718包括被示为当前位于系统存储器710内的软件元件。系统存储器710可以存储可在处理单元704上加载和执行的程序指令以及在这些程序的执行期间生成的数据。
取决于计算机系统700的配置和类型,系统存储器710可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可由处理单元704立即访问和/或当前操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器710可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实施方式中,包含有助于诸如在启动期间在计算机系统700内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以存储在ROM中。作为示例而非限制,系统存储器710还示出了应用程序712、程序数据714以及操作系统716,应用程序712可以包括客户机应用、Web浏览器、中间层应用、关系数据库管理系统(RDBMS)等。作为示例,操作系统716可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或移动操作系统(诸如iOS、Phone、OS、10OS和OS操作系统)。
存储子系统718还可以提供用于存储提供一些实施例的功能的基本编程和数据构造的有形的计算机可读存储介质。当由处理器执行时提供上文描述的功能的软件(程序、代码模块、指令)可以被存储在存储子系统718中。这些软件模块或指令可以由处理单元704执行。存储子系统718还可以提供用于存储根据本发明使用的数据的存储库。
存储子系统700还可以包括可以被进一步连接到计算机可读存储介质722的计算机可读存储介质读取器720。与系统存储器710一起并且可选地与系统存储器710组合,计算机可读存储介质722可以全面地表示远程存储设备、本地存储设备、固定存储设备和/或可移动存储设备加上用于临时和/或较永久地包含、存储、传输和检索计算机可读信息的存储介质。
包含代码或代码的部分的计算机可读存储介质722还可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性介质、可移动和不可移动介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、盒式磁带、磁带、磁盘存储设备或其它磁性存储设备、或者其它有形的计算机可读介质。这还可以包括非有形的计算机可读介质,诸如可以被用来传输期望的信息并且可以由计算系统700访问的数据信号、数据传输或任何其它介质。
作为示例,计算机可读存储介质722可以包括从不可移动、非易失性磁介质读取或向其写入的硬盘驱动器,从可移动、非易失性磁盘读取或向其写入的磁盘驱动器,以及从可移动、非易失性光盘(诸如CD-ROM、DVD和盘)或其它光学介质读取或向其写入的光盘驱动器。计算机可读存储介质722可以包括但不限于驱动器、闪存存储器卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质722还可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如基于固态RAM的SSD、基于动态RAM的SSD、基于静态RAM的SSD、基于DRAM的SSD、磁阻RAM(MRAM)SSD),以及使用基于DRAM的SSD和基于闪存存储器的SSD的组合的混合SSD。盘驱动器及其相关联的计算机可读介质可以为计算机系统700提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。
通信子系统724提供到其它计算机系统和网络的接口。通信子系统724充当用于从来自计算机系统700的其它系统接收数据以及向来自计算机系统700的其它系统传输数据的接口。例如,通信子系统724可以使得计算机系统700能够经由因特网连接到一个或多个设备。在一些实施例中,通信子系统724可以包括用于(例如,利用蜂窝电话技术、增强的数据网络技术(诸如3G、4G或EDGE(用于全球演进的增强的数据率))、WiFi(IEEE 802.11族标准)、或其它移动通信技术、或者其任何组合)访问无线语音网络和/或数据网络的射频(RF)收发器组件、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,除了无线接口之外或作为无线接口的代替,通信子系统724可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统724还可以代表可以使用计算机系统700的一个或多个用户接收以结构化和/或非结构化数据馈送726、事件流728、事件更新730等形式的输入通信。
作为示例,通信子系统724可以被配置为实时地接收来自社交网络的用户和/或诸如馈送、更新、web馈送(诸如丰富站点摘要(RSS)馈送)之类的其它通信服务的数据馈送726,和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统724还可以被配置为接收没有明确结束的本质上可以是连续的或无界的连续数据流形式的数据,其中连续数据流可以包括实时事件的事件流728和/或事件更新730。生成连续数据的应用的示例可以包括例如传感器数据应用、金融收报机、网络性能测量工具(例如,网络监视和业务管理应用)、点击流分析工具、汽车交通监视等。
通信子系统724还可以被配置为向可以与耦接到计算机系统700的一个或多个流数据源计算机通信的一个或多个数据库输出结构化和/或非结构化数据馈送726、事件流728、事件更新730等。
计算机系统700可以是包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息亭(kiosk)、服务器机架或任何其它数据处理系统的各种类型中的一种类型。
由于计算机和网络的不断变化的本质,图中绘出的计算机系统700的描述仅旨在作为具体示例。具有比图中绘出的系统更多或更少的组件的许多其它配置是可能的。例如,定制的硬件还可以被使用和/或特定的元件可以在硬件、固件、软件(包括小程序)或其组合中实现。此外,可以采用到其它计算设备(诸如网络输入/输出设备)的连接。基于本文提供的公开内容和教导,本领域普通技术人员将理解实现各种实施例的其它方式和/或方法。
图8示出了其中可以实现本发明的各种实施例的、用于修改移动设备应用的生命周期的示例性系统800的简化结构图。
如图8中所示,示例性系统800可以包括第一提供单元801、第一重命名单元802、第一插入单元803、第一修改单元804和第一创建单元805。第一提供单元801可以被配置为提供相关联的应用清单文件和字节码文件,该应用清单文件和该字节码文件对应于计算机软件应用。第一重命名单元802可以被配置为将应用类的原始方法重命名为字节码文件中的重命名的方法。第一插入单元803可以被配置为在字节码文件中的应用类中插入包装器方法,该包装器方法具有原始方法的名称,该包装器方法被配置为在调用重命名的方法之前调用认证或加密方法。第一修改单元804可以被配置为将原始内容提供器类的名称修改为应用清单文件中的经修改的内容提供器类名称。第一创建单元805可以被配置为在字节码文件中创建包装器内容提供器类,该包装器内容提供器类具有经修改的内容提供器类名称,该包装器内容提供器类被配置为在转发对原始内容提供器类的方法的调用之前检查原始内容提供器类是否被实例化。
第二重命名单元806可以被配置为将活动类的原始方法的名称重命名为字节码文件中该活动类的重命名的方法。第二插入单元807可以被配置为在字节码文件中的该活动类中插入假方法,该假方法具有活动类的原始方法的名称,该假方法被配置为在调用活动类的重命名方法之前调用认证或加密方法。
在一个实施例中,应用清单文件中的所有内容提供器类名称被重命名。
在一个实施例中,系统还可以包括:第一读取单元808,其被配置为通过包装器方法读取策略,其中对认证或加密方法的调用基于策略。
在一个实施例中,策略从信息技术(IT)部门被发送到其上安装移动设备应用的移动设备。
在一个实施例中,假类包括对移动设备管理器应用的调用。
在一个实施例中,类包括静态块初始化。
在一个实施例中,类包括构造器。
在一个实施例中,系统还可以包括第三重命名单元809,其被配置为重命名应用静态初始化方法、应用构造器方法、应用attachBaseContext()方法、内容提供器静态初始化方法、内容提供器构造器方法、内容提供器onCreate()方法、应用onCreate()方法、启动器活动静态初始化方法、启动器活动构造器方法以及字节码文件中的启动器活动onCreate()、onStart()和onResume()方法。
在一个实施例中,系统还可以包括第三插入单元810,其被配置为将onCreate()、onStart()、onStop()、onRestart()、onPause()、onResume()或onDestroy()方法插入到包装器类中。
在一个实施例中,第一重命名单元可以包括追加单元,其被配置为将前缀或后缀追加到原始方法,以创建重命名的方法。
在一个实施例中,应用清单文件包括可扩展标记语言(XML)代码。
系统800的单元可以由硬件(诸如现场可编程门阵列(FPGA)、集成电路(IC)或专用集成电路(ASIC)等)、软件、固件或它们的任何组合来实现以实行本发明的原理。本领域技术人员应当理解,图8中描述的单元可以被组合或分成子单元,以实现如上文描述的本发明的原理。因此,图8中描述的单元可以根据实际需要根据如上面的实施例中描述的本发明的原理来进行各种操作。
根据本发明的一些示例性实施例可以如下。
(1)一种用于修改移动设备应用的生命周期的计算机系统,该系统包括:
处理器,以及
与处理器可操作地耦接的存储器,该处理器执行来自存储器的指令,
其中该处理器被配置为:
提供应用清单文件和字节码文件,应用清单文件和字节码文件对应于计算机软件应用;
将应用类的原始方法重命名为字节码文件中的重命名的方法;
在字节码文件中的应用类中插入包装器方法,该包装器方法具有原始方法的名称,该包装器方法被配置为在调用重命名的方法之前调用认证或加密方法;
将原始内容提供器类的名称修改为应用清单文件中的经修改的内容提供器类名称;以及
在字节码文件中创建包装器内容提供器类,该包装器内容提供器类具有经修改的内容提供器类名称,该包装器内容提供器类被配置为在转发对原始内容提供器类的方法的调用之前检查原始内容提供器类是否被实例化。
(2)根据(1)所述的计算机系统,其中处理器还被配置为:
将活动类的原始方法的名称重命名为字节码文件中该活动类的重命名的方法;以及
在字节码文件中的该活动类中插入假方法,该假方法具有活动类的原始方法的名称,该假方法被配置为在调用活动类的重命名的方法之前调用认证或加密方法。
(3)根据(1)所述的计算机系统,其中应用清单文件中的所有内容提供器类名称被重命名。
(4)根据(1)所述的计算机系统,其中处理器还被配置为:
通过包装器方法读取策略,其中对认证或加密方法的调用基于策略。
(5)根据(4)所述的计算机系统,其中策略从信息技术(IT)部门被发送到其上安装移动设备应用的移动设备。
(6)根据(1)所述的计算机系统,其中包装器方法包括对移动设备管理器应用的调用。
(7)根据(1)所述的计算机系统,其中原始方法包括静态块初始化。
(8)根据(1)所述的计算机系统,其中原始方法包括构造器。
(9)根据(8)所述的计算机系统,其中处理器还被配置为:
重命名应用静态初始化方法、应用构造器方法、应用attachBaseContext()方法、内容提供器静态初始化方法、内容提供器构造器方法、内容提供器onCreate()方法、应用onCreate()方法、启动器活动静态初始化方法、启动器活动构造器方法,以及字节码文件中的启动器活动onCreate()、onStart()和onResume()方法。
(10)根据(1)所述的计算机系统,其中处理器还被配置为:
将onCreate()、onStart()、onStop()、onRestart()、onPause()、onResume()或onDestroy()方法插入到包装器类中。
(11)根据(1)所述的计算机系统,其中处理器被配置为重命名原始类名称包括处理器被配置为将前缀或后缀追加到方法名称,以创建重命名的方法。
(12)根据(1)所述的计算机系统,其中应用清单文件包括可扩展标记语言(XML)代码。
(14)根据(1)所述的计算机系统,其中处理器还被配置为:
在前述说明书中,参考其具体实施例描述了本发明的方面,但本领域技术人员将认识到本发明不限于此。上文描述的发明的各个特征和方面可以单独使用或联合使用。此外,在不背离本说明书的更广泛的精神和范围的情况下,可以在超出本文所描述的环境和应用的任何数量的环境和应用中利用实施例。相应地,说明书和附图将被认为是说明性的而不是限制性的。
Claims (21)
1.一种修改移动设备应用的生命周期的方法,所述方法包括:
提供应用清单文件和字节码文件,所述应用清单文件和字节码文件对应于计算机软件应用;
将应用类的原始方法重命名为所述字节码文件中的重命名的方法;
在所述字节码文件中的应用类中插入包装器方法,所述包装器方法具有所述原始方法的名称,所述包装器方法被配置为在调用所述重命名的方法之前调用认证或加密方法,其中所述包装器方法仅被应用在关键的构造器和初始化方法周围;
将原始内容提供器类的名称修改为所述应用清单文件中的经修改的内容提供器类名称;以及
在所述字节码文件中创建包装器内容提供器类,所述包装器内容提供器类具有所述经修改的内容提供器类名称,所述包装器内容提供器类被配置为在转发对所述原始内容提供器类的方法的调用之前检查所述原始内容提供器类是否被实例化,其中所述包装器内容提供器类执行所述原始内容提供器类的延迟的实例化。
2.如权利要求1所述的方法,还包括:
将活动类的原始方法的名称重命名为所述字节码文件中所述活动类的重命名的方法;以及
在所述字节码文件中的所述活动类中插入假方法,所述假方法具有所述活动类的所述原始方法的名称,所述假方法被配置为在调用所述活动类的所述重命名的方法之前调用认证或加密方法。
3.如权利要求1或权利要求2所述的方法,其中所述应用清单文件中的所有内容提供器类名称被重命名。
4.如权利要求1或权利要求2所述的方法,还包括:
通过所述包装器方法读取策略,其中对所述认证或加密方法的调用基于所述策略。
5.如权利要求4所述的方法,其中所述策略从信息技术(IT)部门被发送到其上安装所述移动设备应用的移动设备。
6.如权利要求1或权利要求2所述的方法,其中所述包装器方法包括对移动设备管理器应用的调用。
7.如权利要求1或权利要求2所述的方法,其中所述原始方法包括静态块初始化。
8.如权利要求1或权利要求2所述的方法,其中所述原始方法包括构造器。
9.如权利要求8所述的方法,还包括:
重命名应用静态初始化方法、应用构造器方法、应用attachBaseContext()方法、内容提供器静态初始化方法、内容提供器构造器方法、内容提供器onCreate()方法、应用onCreate()方法、启动器活动静态初始化方法、启动器活动构造器方法以及所述字节码文件中的启动器活动onCreate()、onStart()和onResume()方法。
10.如权利要求1或权利要求2所述的方法,还包括:
将onCreate()、onStart()、onStop()、onRestart()、onPause()、onResume()或onDestroy()方法插入到所述包装器类中。
11.如权利要求1或权利要求2所述的方法,其中所述原始方法的重命名包括将前缀或后缀追加到所述原始方法,以创建所述重命名的方法。
12.如权利要求1或权利要求2所述的方法,其中所述应用清单文件包括可扩展标记语言(XML)代码。
15.一种机器可读非暂态介质,所述机器可读非暂态介质包含指示用于使一个或多个机器执行用于修改移动设备应用的生命周期的操作的指令的信息,所述操作包括:
提供应用清单文件和字节码文件,所述应用清单文件和字节码文件对应于计算机软件应用;
将应用类的原始方法重命名为所述字节码文件中的重命名的方法;
在所述字节码文件中的所述应用类中插入包装器方法,所述包装器方法具有所述原始方法的名称,所述包装器方法被配置为在调用所述重命名的方法之前调用认证或加密方法,其中所述包装器方法仅被应用在关键的构造器和初始化方法周围;
将原始内容提供器类的名称修改为所述应用清单文件中的经修改的内容提供器类名称;以及
在所述字节码文件中创建包装器内容提供器类,所述包装器内容提供器类具有所述经修改的内容提供器类名称,所述包装器内容提供器类被配置为在转发对所述原始内容提供器类的方法的调用之前检查所述原始内容提供器类是否被实例化,其中所述包装器内容提供器类执行所述原始内容提供器类的延迟的实例化。
16.如权利要求15所述的介质,其中所述操作还包括:
将活动类的原始方法的名称重命名为所述字节码文件中的所述活动类的重命名的方法;以及
在所述字节码文件中的所述活动类中插入假方法,所述假方法具有所述活动类的所述原始方法的名称,所述假方法被配置为在调用所述活动类的所述重命名的方法之前调用认证或加密方法。
17.如权利要求15或权利要求16所述的介质,其中所述应用清单文件中的所有内容提供器类名称被重命名。
18.一种用于修改移动设备应用的生命周期的计算机系统,该系统包括:
处理器,以及
与处理器可操作地耦接的存储器,所述处理器执行来自所述存储器的指令,包括:
用于提供应用清单文件和字节码文件的程序代码,所述应用清单文件和字节码文件对应于计算机软件应用;
用于将应用类的原始方法重命名为所述字节码文件中的重命名的方法的程序代码;
用于在所述字节码文件中的所述应用类中插入包装器方法的程序代码,所述包装器方法具有所述原始方法的名称,所述包装器方法被配置为在调用所述重命名的方法之前调用认证或加密方法,其中所述包装器方法仅被应用在关键的构造器和初始化方法周围;
用于将原始内容提供器类的名称修改为所述应用清单文件中的经修改的内容提供器类名称的程序代码;以及
用于在所述字节码文件中创建包装器内容提供器类的程序代码,所述包装器内容提供器类具有所述经修改的内容提供器类名称,所述包装器内容提供器类被配置为在转发对所述原始内容提供器类的方法的调用之前检查所述原始内容提供器类是否被实例化,其中所述包装器内容提供器类执行所述原始内容提供器类的延迟的实例化。
19.如权利要求18所述的系统,其中所述处理器执行还包括以下程序代码的指令:
用于将活动类的原始方法的名称重命名为所述字节码文件中的所述活动类的重命名的方法的程序代码;以及
用于在所述字节码文件中的所述活动类中插入假方法的程序代码,所述假方法具有所述活动类的所述原始方法的名称,所述假方法被配置为在调用所述活动类的所述重命名的方法之前调用认证或加密方法。
20.如权利要求18或19所述的系统,其中所述应用清单文件中的所有内容提供器类名称被重命名。
21.一种设备,包括用于执行如权利要求1至14中的任何一项权利要求所述的方法的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462054853P | 2014-09-24 | 2014-09-24 | |
US62/054,853 | 2014-09-24 | ||
US14/594,377 | 2015-01-12 | ||
US14/594,377 US9344422B2 (en) | 2013-03-15 | 2015-01-12 | Method to modify android application life cycle to control its execution in a containerized workspace environment |
PCT/US2015/011136 WO2016048404A1 (en) | 2014-09-24 | 2015-01-13 | Method to modify android application life cycle to control its execution in a containerized workspace environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106663018A CN106663018A (zh) | 2017-05-10 |
CN106663018B true CN106663018B (zh) | 2020-09-15 |
Family
ID=55581709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580045075.4A Active CN106663018B (zh) | 2014-09-24 | 2015-01-13 | 修改移动设备应用生命周期的系统、方法、介质和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10225287B2 (zh) |
EP (1) | EP3198418B1 (zh) |
JP (1) | JP6464256B2 (zh) |
KR (1) | KR102263913B1 (zh) |
CN (1) | CN106663018B (zh) |
WO (1) | WO2016048404A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9645992B2 (en) | 2010-08-21 | 2017-05-09 | Oracle International Corporation | Methods and apparatuses for interaction with web applications and web application data |
US9722972B2 (en) | 2012-02-26 | 2017-08-01 | Oracle International Corporation | Methods and apparatuses for secure communication |
US9344422B2 (en) | 2013-03-15 | 2016-05-17 | Oracle International Corporation | Method to modify android application life cycle to control its execution in a containerized workspace environment |
US9129112B2 (en) | 2013-03-15 | 2015-09-08 | Oracle International Corporation | Methods, systems and machine-readable media for providing security services |
JP6479758B2 (ja) | 2013-03-15 | 2019-03-06 | オラクル・インターナショナル・コーポレイション | コンピュータ上におけるアプリケーション間の信頼性の確立 |
EP3198418B1 (en) | 2014-09-24 | 2020-04-22 | Oracle International Corporation | Method to modify android application life cycle to control its execution in a containerized workspace environment |
US11424931B2 (en) | 2016-01-27 | 2022-08-23 | Blackberry Limited | Trusted execution environment |
US10599409B2 (en) * | 2016-02-02 | 2020-03-24 | Blackberry Limited | Application lifecycle operation queueing |
CN107038056B (zh) * | 2017-05-19 | 2018-03-16 | 中南大学 | 基于安卓平台的流式计算模式调度方法 |
CN107977281A (zh) * | 2017-12-19 | 2018-05-01 | 深圳豪客互联网有限公司 | 偏好数据调用方法和装置 |
US11303627B2 (en) | 2018-05-31 | 2022-04-12 | Oracle International Corporation | Single Sign-On enabled OAuth token |
US11032342B2 (en) | 2018-07-05 | 2021-06-08 | Samsung Electronics Co., Ltd. | System and method for device audio |
BR102019000921A2 (pt) * | 2019-01-16 | 2020-08-04 | Samsung Eletrônica da Amazônia Ltda. | Sistema para habilitar uma experiência de desktop completa com base em um dispositivo móvel |
US20200334154A1 (en) * | 2019-04-17 | 2020-10-22 | XRSpace CO., LTD. | Mobile device with a shared data structure and method for operating the same |
CN110610097A (zh) * | 2019-09-09 | 2019-12-24 | 杭州天宽科技有限公司 | 一种基于安卓应用的文件传输保密系统 |
US11556351B1 (en) * | 2021-10-13 | 2023-01-17 | International Business Machines Corporation | Facilitation of application containerization |
KR102736630B1 (ko) * | 2022-04-01 | 2024-12-03 | (주)잉카엔트웍스 | Dex 파일 보호를 위한 보안 제공 장치와 방법 및 보안 실행 장치와 방법 |
CN116775172B (zh) * | 2023-08-25 | 2023-11-03 | 成都太阳高科技有限责任公司 | 一种通过反射实现Android获取数据的方法及系统 |
Family Cites Families (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2050433A1 (en) | 1990-09-04 | 1992-03-05 | Roger A. Stacy | System for enhancing data transfer between application programs and communications programs in telecommunications systems |
JP3196618B2 (ja) | 1995-11-24 | 2001-08-06 | 株式会社日立製作所 | パーソナルコンピュータおよびそれを用いた通信システム |
WO1997026731A1 (en) | 1996-01-16 | 1997-07-24 | Raptor Systems, Inc. | Data encryption/decryption for network communication |
US6314558B1 (en) | 1996-08-27 | 2001-11-06 | Compuware Corporation | Byte code instrumentation |
US5892904A (en) | 1996-12-06 | 1999-04-06 | Microsoft Corporation | Code certification for network transmission |
US5923756A (en) | 1997-02-12 | 1999-07-13 | Gte Laboratories Incorporated | Method for providing secure remote command execution over an insecure computer network |
US7127741B2 (en) | 1998-11-03 | 2006-10-24 | Tumbleweed Communications Corp. | Method and system for e-mail message transmission |
US6317868B1 (en) | 1997-10-24 | 2001-11-13 | University Of Washington | Process for transparently enforcing protection domains and access control as well as auditing operations in software components |
US6151606A (en) | 1998-01-16 | 2000-11-21 | Visto Corporation | System and method for using a workspace data manager to access, manipulate and synchronize network data |
US6052739A (en) * | 1998-03-26 | 2000-04-18 | Sun Microsystems, Inc. | Method and apparatus for object-oriented interrupt system |
US6226618B1 (en) | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
JP3756352B2 (ja) | 1999-06-29 | 2006-03-15 | 富士通株式会社 | コンパイラ装置およびコンパイラを記録したコンピュータ読み取り可能な記録媒体 |
US6484276B1 (en) * | 1999-10-25 | 2002-11-19 | Lucent Technologies Inc. | Method and apparatus for providing extensible object-oriented fault injection |
US6324648B1 (en) | 1999-12-14 | 2001-11-27 | Gte Service Corporation | Secure gateway having user identification and password authentication |
EP1122640A1 (en) | 2000-01-31 | 2001-08-08 | BRITISH TELECOMMUNICATIONS public limited company | Apparatus for automatically generating source code |
US6996808B1 (en) * | 2000-02-12 | 2006-02-07 | Microsoft Corporation | Function injector |
US20010047365A1 (en) * | 2000-04-19 | 2001-11-29 | Hiawatha Island Software Co, Inc. | System and method of packaging and unpackaging files into a markup language record for network search and archive services |
US20020099902A1 (en) * | 2000-05-12 | 2002-07-25 | Guillaume Comeau | Methods and systems for applications to interact with hardware |
AU6985601A (en) | 2000-06-16 | 2002-01-02 | Mindport Usa | Methods and systems to distribute content via a network utilizing distributed conditional access agents and secure agents, and to perform digital rights management (drm) |
US7000225B2 (en) * | 2000-12-07 | 2006-02-14 | International Business Machines Corporation | Method for inserting global breakpoints |
US20040024910A1 (en) | 2001-06-01 | 2004-02-05 | Marl Coyle B. | Adaptive synchronization of service data |
US7047562B2 (en) | 2001-06-21 | 2006-05-16 | Lockheed Martin Corporation | Conditioning of the execution of an executable program upon satisfaction of criteria |
US7017162B2 (en) | 2001-07-10 | 2006-03-21 | Microsoft Corporation | Application program interface for network software platform |
US7111285B2 (en) | 2001-07-17 | 2006-09-19 | Liquid Machines, Inc. | Method and system for protecting software applications against static and dynamic software piracy techniques |
US7243163B1 (en) | 2001-08-07 | 2007-07-10 | Good Technology, Inc. | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US7596565B2 (en) | 2001-08-07 | 2009-09-29 | Good Technology | System and method for maintaining wireless file folders at a wireless device |
US7962622B2 (en) | 2001-08-07 | 2011-06-14 | Motorola Mobility, Inc. | System and method for providing provisioning and upgrade services for a wireless device |
US7631084B2 (en) | 2001-11-02 | 2009-12-08 | Juniper Networks, Inc. | Method and system for providing secure access to private networks with client redirection |
US7159120B2 (en) | 2001-11-19 | 2007-01-02 | Good Technology, Inc. | Method and system for protecting data within portable electronic devices |
US6917945B2 (en) * | 2002-02-04 | 2005-07-12 | Microsoft Corporation | Encoding and decoding methods and systems |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US20030182460A1 (en) * | 2002-03-25 | 2003-09-25 | Atul Khare | Managed code modules dynamically invoking unmanaged code modules at arbitrary locations |
US7788382B1 (en) | 2002-03-26 | 2010-08-31 | Good Technology, Inc. | Server initiated synchronization |
US7447799B2 (en) | 2002-04-24 | 2008-11-04 | Good Technology, Inc. | System and method for automatically updating a wireless device |
IL149977A0 (en) | 2002-06-02 | 2009-02-11 | Internet Forex Products Inc | Generated applications |
WO2004015576A1 (en) | 2002-08-09 | 2004-02-19 | Visto Corporation | System and method for preventing access to data on a compromised remote device |
EP1546892B1 (en) * | 2002-09-04 | 2017-03-29 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Protecting mobile code against malicious hosts cross references to related applications |
WO2004055659A1 (en) | 2002-12-13 | 2004-07-01 | Bea Systems, Inc. | System and method for mobile communication |
US7594111B2 (en) * | 2002-12-19 | 2009-09-22 | Massachusetts Institute Of Technology | Secure execution of a computer program |
US7472401B2 (en) * | 2003-02-28 | 2008-12-30 | Bea Systems, Inc. | Computer product for a dynamically generated wrapper class |
US7512783B2 (en) | 2003-03-14 | 2009-03-31 | Naghian Siamaek | Provision of security services for an ad-hoc network |
US7275073B2 (en) | 2003-05-07 | 2007-09-25 | Good Technology, Inc. | System and method for notifying mobile devices based on device type and network capabilities |
US7890091B2 (en) | 2003-05-08 | 2011-02-15 | Good Technology, Inc. | Collaborative data and intelligent synchronization for mobile devices |
US7184801B2 (en) | 2003-05-12 | 2007-02-27 | Good Technology, Inc. | Mobile application builder |
US7716474B2 (en) | 2003-05-12 | 2010-05-11 | Byteblaze, Inc. | Anti-piracy software protection system and method |
US7451392B1 (en) | 2003-06-30 | 2008-11-11 | Microsoft Corporation | Rendering an HTML electronic form by applying XSLT to XML using a solution |
JP4744106B2 (ja) * | 2003-08-06 | 2011-08-10 | パナソニック株式会社 | セキュアデバイス、情報処理端末、通信システム及び通信方法 |
US7493622B2 (en) * | 2003-08-12 | 2009-02-17 | Hewlett-Packard Development Company, L.P. | Use of thread-local storage to propagate application context in Java 2 enterprise edition (J2EE) applications |
US7363581B2 (en) | 2003-08-12 | 2008-04-22 | Accenture Global Services Gmbh | Presentation generator |
US20050154886A1 (en) | 2004-01-12 | 2005-07-14 | International Business Machines Corporation | Declarative trust model between reverse proxy server and websphere application server |
JP4179553B2 (ja) | 2004-03-15 | 2008-11-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム |
US7549048B2 (en) | 2004-03-19 | 2009-06-16 | Microsoft Corporation | Efficient and secure authentication of computing systems |
US7620001B2 (en) | 2004-10-13 | 2009-11-17 | Good Technology, Inc. | Communication system and method with mobile devices |
US8156488B2 (en) | 2004-10-20 | 2012-04-10 | Nokia Corporation | Terminal, method and computer program product for validating a software application |
US8001082B1 (en) | 2004-10-28 | 2011-08-16 | Good Technology, Inc. | System and method of data security in synchronizing data with a wireless device |
US7530059B2 (en) * | 2005-02-18 | 2009-05-05 | International Business Machines Corporation | Method for inlining native functions into compiled java code |
US7805495B2 (en) | 2005-03-31 | 2010-09-28 | Google Inc. | Method and system for transferring web browser data between web browsers |
US7970386B2 (en) | 2005-06-03 | 2011-06-28 | Good Technology, Inc. | System and method for monitoring and maintaining a wireless device |
US8295492B2 (en) | 2005-06-27 | 2012-10-23 | Wells Fargo Bank, N.A. | Automated key management system |
US7836306B2 (en) | 2005-06-29 | 2010-11-16 | Microsoft Corporation | Establishing secure mutual trust using an insecure password |
US20070016961A1 (en) | 2005-07-11 | 2007-01-18 | Vogler Dean H | Application revocation using an application revocation list in a portable electronic device |
AU2006303992A1 (en) | 2005-10-11 | 2007-04-26 | Citrix Systems, Inc. | Systems and methods for facilitating distributed authentication |
US8677499B2 (en) | 2005-12-29 | 2014-03-18 | Nextlabs, Inc. | Enforcing access control policies on servers in an information management system |
TW200727174A (en) * | 2006-01-03 | 2007-07-16 | Tatung Co Ltd | Method of testing a hardware circuit block written in a hardware description language |
KR100823260B1 (ko) | 2006-01-19 | 2008-04-17 | 삼성전자주식회사 | 도메인에 가입하지 않은 기기로 콘텐트를 전송하는 방법 및장치 |
US7702322B1 (en) | 2006-02-27 | 2010-04-20 | Good Technology, Llc | Method and system for distributing and updating software in wireless devices |
US7620392B1 (en) | 2006-02-27 | 2009-11-17 | Good Technology, Inc. | Method and system for distributing and updating software in wireless devices |
US7849451B2 (en) | 2006-03-02 | 2010-12-07 | Oracle America Inc. | Dynamic delegation chain for runtime adaptation of a code unit to an environment |
US7739744B2 (en) | 2006-03-31 | 2010-06-15 | Novell, Inc. | Methods and systems for multifactor authentication |
US8838536B2 (en) | 2006-04-18 | 2014-09-16 | Sandeep Bhanote | Method and apparatus for mobile data collection and management |
US8005778B2 (en) * | 2006-04-24 | 2011-08-23 | Mark Montgomery | Modular system for optimizing knowledge yield in the digital workplace |
US8645973B2 (en) | 2006-09-22 | 2014-02-04 | Oracle International Corporation | Mobile applications |
US9055107B2 (en) | 2006-12-01 | 2015-06-09 | Microsoft Technology Licensing, Llc | Authentication delegation based on re-verification of cryptographic evidence |
CA2578466A1 (en) | 2007-01-12 | 2008-07-12 | Truecontext Corporation | Method and system for customizing a mobile application using a web-based interface |
JP4327865B2 (ja) | 2007-03-29 | 2009-09-09 | 株式会社東芝 | コンテンツ処理装置、暗号処理方法及びプログラム |
US8627409B2 (en) | 2007-05-15 | 2014-01-07 | Oracle International Corporation | Framework for automated dissemination of security metadata for distributed trust establishment |
KR20080103225A (ko) | 2007-05-23 | 2008-11-27 | 삼성전자주식회사 | 컨텐츠의 암호화 전송 방법 및 복호화 방법과 그 장치 |
US20080320566A1 (en) | 2007-06-25 | 2008-12-25 | Microsoft Corporation | Device provisioning and domain join emulation over non-secured networks |
US8918865B2 (en) | 2008-01-22 | 2014-12-23 | Wontok, Inc. | System and method for protecting data accessed through a network connection |
US20090228716A1 (en) * | 2008-02-08 | 2009-09-10 | Pado Metawsre Ab | Method and system for distributed coordination of access to digital files |
US8555380B2 (en) | 2008-02-28 | 2013-10-08 | Intel Corporation | Automatic modification of executable code |
US8219592B2 (en) * | 2008-02-29 | 2012-07-10 | International Business Machines Corporation | Method and system for using overlay manifests to encode differences between virtual machine images |
US8776176B2 (en) | 2008-05-16 | 2014-07-08 | Oracle America, Inc. | Multi-factor password-authenticated key exchange |
US20090307191A1 (en) | 2008-06-10 | 2009-12-10 | Li Hong C | Techniques to establish trust of a web page to prevent malware redirects from web searches or hyperlinks |
US8261320B1 (en) | 2008-06-30 | 2012-09-04 | Symantec Corporation | Systems and methods for securely managing access to data |
US8135571B2 (en) * | 2008-08-14 | 2012-03-13 | International Business Machines Corporation | Validating manufacturing test rules pertaining to an electronic component |
US9286045B2 (en) | 2008-08-18 | 2016-03-15 | Infosys Limited | Method and system for providing applications to various devices |
US8413113B2 (en) | 2008-11-25 | 2013-04-02 | Sap Aktiengeselleschaft | Dynamic naming conventions in a source code editor |
TW201042973A (en) | 2008-11-28 | 2010-12-01 | Ibm | Token-based client to server authentication of a secondary communication channel by way of primary authenticated communication channels |
US8296828B2 (en) | 2008-12-16 | 2012-10-23 | Microsoft Corporation | Transforming claim based identities to credential based identities |
US8284933B2 (en) | 2009-03-19 | 2012-10-09 | Ca, Inc. | Encrypting variable-length passwords to yield fixed-length encrypted passwords |
US20100281475A1 (en) | 2009-05-04 | 2010-11-04 | Mobile On Services, Inc. | System and method for mobile smartphone application development and delivery |
US8650479B2 (en) | 2009-08-05 | 2014-02-11 | International Business Machines Corporation | Guided attachment of policies in a service registry environment |
US8205096B2 (en) | 2009-10-12 | 2012-06-19 | Safenet, Inc. | Software license embedded in shell code |
US8468586B2 (en) | 2009-11-03 | 2013-06-18 | Oracle International Corporation | Methods and systems for implementing policy based trust management |
US20110185040A1 (en) | 2010-01-28 | 2011-07-28 | Schmidt James H | System and Method for Independent Aspect Ratio Touch Screen Optimization |
KR20140053756A (ko) | 2010-03-31 | 2014-05-08 | 어데토 캐나다 코포레이션 | 어플리케이션을 보호하기 위한 링크와 로드 방법 |
US9645992B2 (en) | 2010-08-21 | 2017-05-09 | Oracle International Corporation | Methods and apparatuses for interaction with web applications and web application data |
US20120066601A1 (en) | 2010-09-14 | 2012-03-15 | Apple Inc. | Content configuration for device platforms |
US8549656B2 (en) | 2011-02-11 | 2013-10-01 | Mocana Corporation | Securing and managing apps on a device |
US8955142B2 (en) * | 2011-03-21 | 2015-02-10 | Mocana Corporation | Secure execution of unsecured apps on a device |
US9032493B2 (en) | 2011-03-31 | 2015-05-12 | Intel Corporation | Connecting mobile devices, internet-connected vehicles, and cloud services |
CN102236757A (zh) * | 2011-06-30 | 2011-11-09 | 北京邮电大学 | 一种适用于Android系统的软件保护方法及系统 |
US20140032733A1 (en) * | 2011-10-11 | 2014-01-30 | Citrix Systems, Inc. | Policy-Based Application Management |
US8595841B2 (en) | 2011-11-09 | 2013-11-26 | Kaprica Security, Inc. | System and method for bidirectional trust between downloaded applications and mobile devices including a secure charger and malware scanner |
US9722972B2 (en) | 2012-02-26 | 2017-08-01 | Oracle International Corporation | Methods and apparatuses for secure communication |
US20130262687A1 (en) | 2012-03-29 | 2013-10-03 | Ryan L. Avery | Connecting a mobile device as a remote control |
US20130283335A1 (en) * | 2012-04-19 | 2013-10-24 | AppSense, Inc. | Systems and methods for applying policy wrappers to computer applications |
US9424554B2 (en) * | 2012-05-07 | 2016-08-23 | Citrix Systems, Inc. | Enterprise managed systems with collaborative application support |
US9027108B2 (en) | 2012-05-23 | 2015-05-05 | Box, Inc. | Systems and methods for secure file portability between mobile applications on a mobile device |
US8782409B2 (en) | 2012-06-04 | 2014-07-15 | Private Giant | Confidential message exchange using benign, context-aware cover message generation |
US8832847B2 (en) | 2012-07-10 | 2014-09-09 | International Business Machines Corporation | Coordinating data sharing among applications in mobile devices |
US9087191B2 (en) * | 2012-08-24 | 2015-07-21 | Vmware, Inc. | Method and system for facilitating isolated workspace for applications |
US9326145B2 (en) * | 2012-12-16 | 2016-04-26 | Aruba Networks, Inc. | System and method for application usage controls through policy enforcement |
US9535674B2 (en) * | 2012-12-21 | 2017-01-03 | Bmc Software, Inc. | Application wrapping system and method |
US8887150B2 (en) * | 2013-03-12 | 2014-11-11 | Bluebox Security Inc. | Methods for dynamic mobile application behavior modification subject to a behavior policy |
US9344422B2 (en) | 2013-03-15 | 2016-05-17 | Oracle International Corporation | Method to modify android application life cycle to control its execution in a containerized workspace environment |
US9129112B2 (en) | 2013-03-15 | 2015-09-08 | Oracle International Corporation | Methods, systems and machine-readable media for providing security services |
JP6479758B2 (ja) | 2013-03-15 | 2019-03-06 | オラクル・インターナショナル・コーポレイション | コンピュータ上におけるアプリケーション間の信頼性の確立 |
US9336384B2 (en) * | 2013-04-24 | 2016-05-10 | Symantec Corporation | Systems and methods for replacing application methods at runtime |
US9559766B2 (en) * | 2013-05-10 | 2017-01-31 | Elwha Llc | Dynamic point to point mobile network including intermediate device aspects system and method |
US9158935B2 (en) * | 2013-06-07 | 2015-10-13 | Microsoft Technology Licensing, Llc | Automatic mediation of resource access in mobile applications |
US9842032B2 (en) * | 2013-08-27 | 2017-12-12 | Red Hat, Inc. | Memory first live snapshot |
WO2015037684A1 (ja) * | 2013-09-11 | 2015-03-19 | フリービット株式会社 | アプリケーション状態変化通知プログラム及びその方法 |
IN2014MU00435A (zh) * | 2014-02-06 | 2015-09-25 | Tata Consultancy Services Ltd | |
US9703551B2 (en) * | 2014-04-28 | 2017-07-11 | Ca, Inc. | Modifying mobile application binaries to call external libraries |
EP3198418B1 (en) | 2014-09-24 | 2020-04-22 | Oracle International Corporation | Method to modify android application life cycle to control its execution in a containerized workspace environment |
-
2015
- 2015-01-13 EP EP15704619.4A patent/EP3198418B1/en active Active
- 2015-01-13 JP JP2017506745A patent/JP6464256B2/ja active Active
- 2015-01-13 WO PCT/US2015/011136 patent/WO2016048404A1/en active Application Filing
- 2015-01-13 CN CN201580045075.4A patent/CN106663018B/zh active Active
- 2015-01-13 KR KR1020177006473A patent/KR102263913B1/ko active IP Right Grant
-
2018
- 2018-07-27 US US16/048,006 patent/US10225287B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR102263913B1 (ko) | 2021-06-14 |
JP2017531846A (ja) | 2017-10-26 |
EP3198418A1 (en) | 2017-08-02 |
CN106663018A (zh) | 2017-05-10 |
EP3198418B1 (en) | 2020-04-22 |
US20180337955A1 (en) | 2018-11-22 |
US10225287B2 (en) | 2019-03-05 |
WO2016048404A1 (en) | 2016-03-31 |
JP6464256B2 (ja) | 2019-02-06 |
KR20170061664A (ko) | 2017-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106663018B (zh) | 修改移动设备应用生命周期的系统、方法、介质和设备 | |
US10057293B2 (en) | Method to modify android application life cycle to control its execution in a containerized workspace environment | |
CN108140098B (zh) | 建立容器之间的信任 | |
US9781098B2 (en) | Generic server framework for device authentication and management and a generic framework for endpoint command dispatch | |
US10193953B2 (en) | Self describing configuration | |
CN109617933B (zh) | 利用表单填充代理应用的基于网络的单点登录 | |
US10586061B2 (en) | Federated search | |
US10592684B2 (en) | Automatic operation detection on protected field | |
US10496837B2 (en) | Support sharing the same table for protected and non-protected data columns | |
CN108604278B (zh) | 具有对共享数据表的支持的自描述配置 | |
US11288380B2 (en) | Securely sharing selected fields in a blockchain with runtime access determination | |
JP7165715B2 (ja) | 統合検索のためのサポートを伴う保護されたフィールド上の自動動作検出 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |