Source: https://patents.google.com/patent/US10057293B2/en
Timestamp: 2020-01-20 18:50:57
Document Index: 697907775

Matched Legal Cases: ['Application No. 62', 'Application No. 201480004234', 'Application No. 13156805', 'Application No. 13156805', 'Application No. 13156805', 'Application No. 14762378', 'Application No. 14764811', 'Application No. 14765558', 'art-1', 'art-2']

US10057293B2 - Method to modify android application life cycle to control its execution in a containerized workspace environment - Google Patents
US10057293B2
US10057293B2 US15/140,404 US201615140404A US10057293B2 US 10057293 B2 US10057293 B2 US 10057293B2 US 201615140404 A US201615140404 A US 201615140404A US 10057293 B2 US10057293 B2 US 10057293B2
US15/140,404
US20160241598A1 (en
2016-04-27 Priority to US15/140,404 priority patent/US10057293B2/en
2016-08-18 Publication of US20160241598A1 publication Critical patent/US20160241598A1/en
2016-12-02 Assigned to ORACLE INTERNATIONAL CORPORATION reassignment ORACLE INTERNATIONAL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AAMIR, Mohammad, REHMAN, ATTA UR
2018-07-27 Priority claimed from US16/048,006 external-priority patent/US10225287B2/en
2018-08-21 Publication of US10057293B2 publication Critical patent/US10057293B2/en
This application is a continuation of U.S. application Ser. No. 14/594,377, filed Jan. 12, 2015, which claims the benefit of U.S. Provisional Application No. 62/054,853, filed Sep. 24, 2014, which are hereby incorporated by reference in their entireties for all purposes.
This application is related to, but does not claim priority to, U.S. application Ser. No. 13/841,498, filed Mar. 15, 2013, and U.S. application Ser. No. 14/213,244, filed Mar. 14, 2014, which are hereby incorporated by reference in their entireties for all purposes.
A ‘containerizes’ application takes a native, unmodified application as an input and outputs a containerized, modified application. Specifically, an ApplicationManifest.XML file and a Google Dalvik® executable (DEX) byte code file for Google Android® computer applications are extracted from a Google Android® application package (APK) file. Wrapper classes and dummy lifecycle methods are created for the Application, Content Providers, and Activities. One purpose is to create a dummy lifecycle so that no original code is executed until the authentication is done; once authentication is done successfully, policies are fetched and applied before the actual application code is executed.
For constructor initialization 406, it is renamed in containerization step 432 to a custom defined, constant prefixed/suffixed name so it can be invoked later and injected a empty class constructor. This can be done with all the available constructors. It can be done to all the constructors of the super class, and their respective super( ) invocation can also be changed to the custom name mentioned above.
Method attachBaseContext( ) 408 can be renamed in operation 434 to a custom defined, constant prefixed/suffixed name so it can be invoked later and injected an empty method for it.
class MyC14NContentProvider{ ContentProvider delegate; onCreate( ){ //Nothing } insert( ){ checkInit( ) delegate.insert( ); } query( ){ checkInit( ); delegate.query( ) } checkInit( ){ if(delegate==null){ delegate = new MyContentProvider( ); delegate.setContext(getContext( )); delegate.onCreate( ); } ...
The onCreate( ) method can be renamed in operation 438 to a custom defined, constant prefixed/suffixed name so that it could be invoked later and in turn injected a dummy method of onCreate( ). This is done for all super classes, and invocation of super.onCreate( ) can be delegated to the renamed onCreate( ) method mentioned above.
onCreate{ // do our Custom tasks for policy and data check onCreate_C14N( ); }
Similarly, this can be performed for other Life cycle methods onStart( ), onResume( ), onPause( ), onStop( ), onDestroy( ).
1. A method of modifying a life cycle of a mobile device app using a containerizer application, the method comprising:
renaming, by the containerizer application, an original method of an application class to a renamed method of the application class in the byte code file;
renaming, by the containerizer application, a name of an original method of an activity class to a renamed method of the activity class in the byte code file;
after renaming the original method of the application class, inserting, by the containerizer application, a wrapper method in the application class in the byte code file, the wrapper method having a name of the original method of the application class, the wrapper method configured to call an authentication or encryption method before calling the renamed method of the application class;
after renaming the original method of the activity class, inserting, by the containerizer application, a dummy method in the activity class in the byte code file, the dummy method having a name of the original method of the activity class, the dummy method configured to call an authentication or encryption method before calling the renamed method of the activity class;
modifying, by the containerizer application, a name of an original content provider class to a modified content provider class name in the application manifest file; and
creating, by the containerizer application, a wrapper content provider class in the byte code file, the wrapper content provider class having the modified content provider class name.
renaming, by the containerizer application, an application static initialization method, an application constructor method, an application attachBaseContext( )method, a content provider static initialization method, a content provider constructor method, a content provider onCreate( )method, an application onCreate( )method, a launcher activity static initialization method, a launcher activity constructor method, and launcher activity onCreate( ), onStart( ), and onResume( )methods in the byte code file.
inserting, by the containerizer application, an onCreate( ), onStart( ), onStop( ), onRestart( ), onPause( ), onResume( ), or onDestroy( )method into the wrapper class.
extracting, by the containerizer application, the application manifest file and the byte code file from a Google Android® application package (APK) file.
renaming an original method of an application class to a renamed method of the application class in the byte code file;
after renaming the original method of the application class, inserting a wrapper method in the application class in the byte code file, the wrapper method having a name of the original method of the application class, the wrapper method configured to call an authentication or encryption method before calling the renamed method of the application class;
after renaming the original method of the activity class, inserting a dummy method in the activity class in the byte code file, the dummy method having a name of the original method of the activity class, the dummy method configured to call an authentication or encryption method before calling the renamed method of the activity class;
modifying a name of an original content provider class to a modified content provider class name in the application manifest file; and
creating a wrapper content provider class in the byte code file, the wrapper content provider class having the modified content provider class name.
16. The system of claim 14 wherein all content provider class names in the application manifest file are renamed.
17. A computer system for modifying a life cycle of a mobile device app, the system comprising:
program code for renaming an original method of an application class to a renamed method of the application class in the byte code file;
program code for renaming a name of an original method of an activity class to a renamed method of the activity class in the byte code file;
program code for, after renaming the original method of the application class, inserting a wrapper method in the application class in the byte code file, the wrapper method having a name of the original method of the application class, the wrapper method configured to call an authentication or encryption method before calling the renamed method of the application class;
program code for, after renaming the original method of the activity class, inserting a dummy method in the activity class in the byte code file, the dummy method having a name of the original method of the activity class, the dummy method configured to call an authentication or encryption method before calling the renamed method of the activity class;
program code for modifying a name of an original content provider class to a modified content provider class name in the application manifest file; and
program code for creating a wrapper content provider class in the byte code file, the wrapper content provider class having the modified content provider class name.
US15/140,404 2013-03-15 2016-04-27 Method to modify android application life cycle to control its execution in a containerized workspace environment Active US10057293B2 (en)
US14/594,377 Continuation US9344422B2 (en) 2013-03-15 2015-01-12 Method to modify android application life cycle to control its execution in a containerized workspace environment
US16/048,006 Continuation US10225287B2 (en) 2013-03-15 2018-07-27 Method to modify android application life cycle to control its execution in a containerized workspace environment
US20160241598A1 US20160241598A1 (en) 2016-08-18
US10057293B2 true US10057293B2 (en) 2018-08-21
JPH09148993A (en) 1995-11-24 1997-06-06 Hitachi Ltd Communication system
US20020199115A1 (en) 2001-06-21 2002-12-26 Peterson Atley Padgett Conditioning of the execution of an executable program upon satisfaction of criteria
JP2008252174A (en) 2007-03-29 2008-10-16 Toshiba Corp Content processing apparatus, encryption processing method and program
US20080307300A1 (en) 2004-03-15 2008-12-11 Fumihiko Kitayama Display control information generation
JP2009524334A (en) 2006-01-19 2009-06-25 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for transmitting content to devices not joined to domain
US20100241657A1 (en) 2003-08-12 2010-09-23 Accenture Global Services Gmbh Presentation generator
US20110083069A1 (en) 2008-08-18 2011-04-07 Infosys Technologies Limited Method and system for providing applications to various devices
US20160286544A1 (en) * 2013-09-11 2016-09-29 Freebit Co., Ltd. Application state change notification program and method therefor
CN1163805C (en) 1998-08-13 2004-08-25 国际商业机器公司 System for tracking end-user electronic content usage
CN1320232A (en) 1998-08-13 2001-10-31 国际商业机器公司 System for tracking end-user electronic content usage
JP2016514912A (en) 2013-03-15 2016-05-23 オラクル・インターナショナル・コーポレイション Protected communication between computers between applications
JP2016513945A (en) 2013-03-15 2016-05-16 オラクル・インターナショナル・コーポレイション Establishing reliability between applications on a computer
JP2016512374A (en) 2013-03-15 2016-04-25 オラクル・インターナショナル・コーポレイション Security service management for computer applications by changing object code of computer applications
China Application No. CN201480004221.4, "Office Action", dated Jan. 10, 2018, 11 pages.
Chinese Application No. 201480004234.1, Office Action dated May 27, 2017, 29 pages (15 pages for the original document and 14 pages for the English translation).
Elbaz, "Using Public Key Cryptography in Mobile Phones," DISCRETIX Technologies, Oct. 2002, 9 pages, http://dev1.discretix.com/wp-content/uploads/2013/02/Using_Public_Key_Cryptography_in_Mobile_Phones.pdf.
European Application No. 13156805.7, Extended European Search Report dated Jun. 6, 2013, 5 pages.
European Application No. 13156805.7, Office Action dated Apr. 13, 2015, 5 pages.
European Application No. 13156805.7, Office Action dated Oct. 29, 2015, 5 pages.
European Application No. 14762378.9, Extended European Search Report dated Jul. 1, 2016, 7 pages.
European Application No. 14764811.7, Extended European Search Report dated Sep. 19, 2016, 9 pages.
European Application No. 14765558.3, Extended European Search Report dated Aug. 11, 2016, 7 pages.
http://networkpx.blogspot.com/2009/09/about-lcdyldinfoonly-command.html; network px blogspot; Sep. 20, 2009, 6 pgs.
http://reverse.put.as/wp-content/uploads/2011/06/mach-o_infection.ppt; Mach-o-infection; "Infecting the Mach-o Object Format," Jun. 2011, 46 pages.
http://stackoverflow.com/questions/8825537/mach-o-symbol-stubs-ios; stackoverflow; Jan. 11, 2012, 4 pgs.
http://www.amazon.ca/Hacking-Securing-iOS-Applications-Hijacking/dp/1449318746/ref=pd_bxgy_b_img_b/184-9916216-5442607; J. Zdziarski; Hacking and Securing iOS Applications; Hacking Part-1, pp. 189-202; Hacking Part-2, pp. 149-156 and pp. 203-208; Jan. 25, 2012; O'Reilly Media, Sebastopol, California.
Huawei AnyOffice Mobile Security Solution, Huawei Technologies Co., Ltd., 2013, http://enterprise.huawei.com/ilink/enenterprise/download/HW_277458.
International Application No. PCT/US2014/029552, International Preliminary Report on Patentability dated Sep. 24, 2015, 11 pages.
International Application No. PCT/US2014/029552, International Search Report and Written Opinion dated Jul. 1, 2014, 15 pages.
International Application No. PCT/US2014/029586, International Preliminary Report on Patentability dated Sep. 24, 2015, 8 pages.
International Application No. PCT/US2014/029586, International Search Report and Written Opinion dated Jul. 31, 2014, 12 pages.
International Application No. PCT/US2014/029680, International Preliminary Report on Patentability dated Sep. 24, 2015, 9 pages.
International Application No. PCT/US2014/029680, International Search Report and Written Opinion dated Jul. 1, 2014, 15 pages.
International Application No. PCT/US2015/011136, International Preliminary Report on Patentability dated Sep. 28, 2016, 10 pages.
International Application No. PCT/US2015/011136, Written Opinion dated Oct. 5, 2015, 10 pages.
International Search Report and Written Opinion, dated Mar. 24, 2015, PCT application No. PCT/US2015/011136, 12 pages.
Mallikarjuna et al., "Unveiling of Android Platform," IJARCSSE, Jul. 2013, vol. 3, Issue 7, pp. 1264-1267, 12 pages, http://www.ijarcsse.com/docs/papers/Volume_3/7_July2013/V3I7-0441.pdf.
U.S. Appl. No. 13/215,178 , Notice of Allowance dated Mar. 8, 2017, 13 pages.
U.S. Appl. No. 13/215,178, Final Office Action dated Jul. 8, 2014, 16 pages.
U.S. Appl. No. 13/215,178, Final Office Action dated Oct. 5, 2015, 13 pages.
U.S. Appl. No. 13/215,178, Non-Final Office Action dated Apr. 23, 2015, 15 pages.
U.S. Appl. No. 13/215,178, Non-Final Office Action dated Oct. 4, 2013, 22 pages.
U.S. Appl. No. 13/215,178, Non-Final Office Action dated Sep. 22, 2016, 17 pages.
U.S. Appl. No. 13/405,357, Final Office Action dated Aug. 8, 2016, 13 pages.
U.S. Appl. No. 13/405,357, Final Office Action dated Jun. 12, 2014, 17 pages.
U.S. Appl. No. 13/405,357, Non-Final Office Action dated Feb. 11, 2016, 13 pages.
U.S. Appl. No. 13/405,357, Non-Final Office Action dated Oct. 23, 2013, 13 pages.
U.S. Appl. No. 13/405,357, Notice of Allowance dated Apr. 10, 2017, 5 pages.
U.S. Appl. No. 13/841,498, Non-Final Office Action dated Oct. 8, 2014, 18 pages.
U.S. Appl. No. 13/841,498, Notice of Allowance dated May 4, 2015, 11 pages.
U.S. Appl. No. 14/213,244, Final Office Action dated May 18, 2015, 13 pages.
U.S. Appl. No. 14/213,244, Non-Final Office Action dated Nov. 7, 2014, 11 pages.
U.S. Appl. No. 14/213,244, Notice of Allowance dated Sep. 18, 2015, 8 pages.
U.S. Appl. No. 14/213,244, Supplemental Notice of Allowability dated Oct. 14, 2015, 2 pages.
U.S. Appl. No. 14/594,377, Notice of Allowance dated Jan. 15, 2016, 22 pages.
U.S. Appl. No. 14/842,608, Non-Final Office Action dated Apr. 13, 2016, 13 pages.
U.S. Appl. No. 14/842,608, Notice of Allowance dated Aug. 30, 2016, 10 pages.
U.S. Appl. No. 14/842,608, Notice of Allowance dated Nov. 8, 2016, 7 pages.
U.S. Appl. No. 14/842,608, Notice of Allowance dated Sep. 23, 2016, 7 pages.
U.S. Appl. No. 14/970,477, Final Office Action dated Dec. 22, 2016, 8 pages.
U.S. Appl. No. 14/970,477, Non-Final Office Action dated Sep. 23, 2016, 14 pages.
U.S. Appl. No. 14/970,477, Notice of Allowance dated Jan. 27, 2017, 5 pages.
US9344422B2 (en) 2016-05-17
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AAMIR, MOHAMMAD;REHMAN, ATTA UR;REEL/FRAME:040493/0146