IP Library › Granted Patent US 12,693,934
Granted Patent B2
US 12,693,934 · App. 18/568,509 · Granted Jul 28, 2026

Dedicated recovery modules for resolving issues with faulty applications

Inventors: Jakob Schneider (London, GB); Martin David Churchill (London, GB); Lidia Gaymond (London, GB)
Assignee: Google LLC
G06F11/1415G06F11/3612G06F2201/865
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,693,934
App. No.
18/568,509
Filed
Dec 8, 2023
Granted
Jul 28, 2026
Kind
B2
Art Unit
2199
USPC
717/131
Abstract

In general, techniques are described by which to enable dedicated recovery modules for resolving issues with faulty applications. A server computing device comprising a memory and a. processor may perform various aspects of the techniques. The memory may store a faulty application indication identifying a faulty application of a plurality of applications hosted for distribution by the server computing device, where the faulty application has an issue occurring during execution of the faulty application by a user computing device. The processor may generate, based on the faulty application indication, a dedicated recovery module dial extends the faulty application, and output, to the user computing device, the dedicated recovery' module to resolve the issue occurring during execution of the faulty application.

Claims (54)

1 . A method comprising:

receiving, by one or more processors of a server computing device hosting distribution of a plurality of applications, a faulty application indication identifying a faulty application of the plurality of applications, the faulty application having an issue that occurs during execution of the faulty application by a user computing device;

in response to receiving the faulty application indication, automatically generating, by one or more processors of the server computing device and based on the faulty application indication, a dedicated recovery module that extends functionality of the faulty application without modifying existing code of the faulty application, wherein generating the dedicated recovery module comprises:

selecting, based on the faulty application indication, a template code that targets the issue that occurs during execution of the faulty application by a user computer computing device;

populating the selected template code to obtain populated template code configured to resolve the issue; and

compiling the populated template code to generate the dedicated recovery module, wherein the dedicated recovery module is a sub-package separate from the faulty application, is generated to target the faulty application, and compiles separately from the faulty application;

linking the dedicated recovery module to the faulty application by at least modifying, by the one or more processors, a manifest file associated with the faulty application with instructions to add the dedicated recovery module as a sub-package, wherein the manifest file lists a plurality of sub-packages associated with the faulty application and causes the dedicated recovery module to be executed before any other sub-package in the plurality sub-packages associated with the faulty application; and

sending, by the one or more processors and to the user computing device, the manifest file, wherein the manifest file is configured to cause the user computing device, upon initiation of execution of the faulty application, to:

determine that the dedicated recovery module has been linked to the faulty application and is to be executed first before any other sub-packages associated with the faulty application based on the manifest file;

retrieve the dedicated recovery module; and

execute the dedicated recovery module to resolve the issue that occurs during execution of the faulty application.

2 . The method of claim 1 ,

wherein the faulty application indication identifies a name and a version associated with the faulty application, and

wherein generating the dedicated recovery module comprises generating the dedicated recovery module to target the faulty application identified by the name and the version associated with the faulty application.

3 . The method of claim 1 , wherein the dedicated recovery module is configured to delete or edit a file installed by the faulty application.

4 . The method of claim 1 , wherein the dedicated recovery module is configured to delete or edit a cache associated with the faulty application.

5 . The method of claim 1 , wherein the dedicated recovery module is configured to delete or edit a database associated with the faulty application.

6 . The method of claim 1 , wherein the dedicated recovery module is configured to delete or edit an experimental parameter associated with the faulty application.

7 . The method of claim 1 , wherein the dedicated recovery module is configured to prompt an update to the faulty application.

8 . The method of claim 1 , wherein receiving a faulty application indication comprises:

presenting a user interface configured to prompt a developer of the faulty application to enter the faulty application indication; and

receiving, via the user interface, the faulty application indication.

9 . The method of claim 1 ,

wherein the faulty application indication includes an issue indication that identifies the issue experienced during execution of the faulty application by the user computing device.

10 . The method of claim 1 , wherein the issue occurring during execution of the faulty application by the user computing device includes a failure to execute the faulty application in a manner that enables user interaction with the faulty application.

11 . A server computing device comprising:

a memory configured to store a faulty application indication identifying a faulty application of a plurality of applications hosted for distribution by the server computing device, the faulty application having an issue occurring during execution of the faulty application by a user computing device; and

one or more processors configured to:

in response to receiving the faulty application indication, automatically generate, based on the faulty application indication, a dedicated recovery module that extends functionality of the faulty application without modifying existing code of the faulty application, wherein the dedicated recovery module is a sub-package separate from the faulty application, is generated to target the faulty application, and compiles separately from the faulty application wherein, to generate the dedicated recovery module, the one or more processors are configured to:

select, based on the faulty application indication, a template code that targets the issue that occurs during execution of the faulty application by a user computer computing device;

populate the selected template code to obtain populated template code configured to resolve the issue; and

compile the populated template code to generate the dedicated recovery module

link the dedicated recovery module to the faulty application by at least modifying a manifest file associated with the faulty application with instructions to add the dedicated recovery module as a sub-package, wherein the manifest file causes the dedicated recovery module to be executed before any other sub-package associated with the faulty application; and

send to the user computing device, the manifest file, wherein the manifest file is configured to cause the user computing device, upon initiation of execution of the faulty application, to:

determine that the dedicated recovery module has been linked to the faulty application and is to be executed first before any other sub-packages associated with the faulty application based on the manifest file;

retrieve the dedicated recovery module; and

execute the dedicated recovery module to resolve the issue occurring during execution of the faulty application.

12 . The server computing device of claim 11 ,

wherein the faulty application indication identifies a name and a version associated with the faulty application, and

wherein the one or more processors are, when configured to generate the dedicated recovery module, configured to generate the dedicated recovery module to target the faulty application identified by the name and the version associated with the faulty application.

13 . The server computing device of claim 11 , wherein the dedicated recovery module is configured to delete or edit a file installed by the faulty application.

14 . The server computing device of claim 11 , wherein the dedicated recovery module is configured to delete or edit a cache associated with the faulty application.

15 . The server computing device of claim 11 , wherein the dedicated recovery module is configured to perform one or more of delete or edit a database associated with the faulty application, and delete or edit an experimental parameter associated with the faulty application.

16 . A non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors of a server computing device to:

receive a faulty application indication identifying a faulty application of a plurality of applications hosted for distribution by the server computing device, the faulty application having an issue occurring during execution of the faulty application by a user computing device;

in response to receiving the faulty application indication, automatically generate, based on the faulty application indication, a dedicated recovery module that extends functionality of the faulty application without modifying existing code of the faulty application, wherein the dedicated recovery module is a sub-package separate from the faulty application, is generated to target the faulty application, and compiles separately from the faulty application, wherein, to generate the dedicated recovery module, the one or more processors are configured to:

select, based on the faulty application indication, a template code that targets the issue that occurs during execution of the faulty application by a user computer computing device;

populate the selected template code to obtain populated template code configured to resolve the issue; and

compile the populated template code to generate the dedicated recovery module;

link the dedicated recovery module to the faulty application by at least modifying a manifest file associated with the faulty application with instructions to add the dedicated recovery module as a sub-package, wherein the manifest file causes the dedicated recovery module to be executed before any other sub-package associated with the faulty application; and

send to the user computing device, the manifest file, wherein the manifest file is configured to cause the user computing device, upon initiation of execution of the faulty application, to:

determine that the dedicated recovery module has been linked to the faulty application and is to be executed first before any other sub-packages associated with the faulty application based on the manifest file;

retrieve the dedicated recovery module; and

execute the dedicated recovery module to resolve the issue occurring during execution of the faulty application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2023
From: SCHNEIDER, JAKOB; CHURCHILL, MARTIN DAVID; GAYMOND, LIDIA
To: GOOGLE LLC
Reel/Frame 065812/0897 →
Continuity (1)
Related Publication 20250086060A1 · Mar 13, 2025
References Cited (116)
US 6292933B1 · Bahrs et al. · 2001 [cited by applicant]
US 6317143B1 · Wugofski · 2001 [cited by applicant]
US 6754896B2 · Mishra et al. · 2004 [cited by applicant]
US 7155462B1 · Singh et al. · 2006 [cited by applicant]
US 7181686B1 · Bahrs · 2007 [cited by applicant]
US 7206844B2 · Gupta et al. · 2007 [cited by applicant]
US 7698383B2 · Goring et al. · 2010 [cited by applicant]
US 7707574B2 · Goring et al. · 2010 [cited by applicant]
US 8095940B2 · Bissett et al. · 2012 [cited by applicant]
US 8112749B2 · Jelinek et al. · 2012 [cited by applicant]
US 8495625B1 · Sanders · 2013 [cited by applicant]
US 8782744B1 · Fuller et al. · 2014 [cited by applicant]
US 8832296B2 · Yandek et al. · 2014 [cited by applicant]
US 8943150B2 · Massey et al. · 2015 [cited by applicant]
US 9411571B2 · Gupta et al. · 2016 [cited by applicant]
US 9612815B1 · Jagtap et al. · 2017 [cited by applicant]
US 9628583B2 · Fu · 2017 [cited by applicant]
US 9675890B2 · Ahiska et al. · 2017 [cited by applicant]
US 9705973B2 · Austel et al. · 2017 [cited by applicant]
US 9772835B1 · Trautmann et al. · 2017 [cited by applicant]
US 9773102B2 · Graham et al. · 2017 [cited by applicant]
US 9817648B2 · Kirkpatrick · 2017 [cited by applicant]
US 9854047B2 · Elias et al. · 2017 [cited by applicant]
US 9871745B2 · Steinder et al. · 2018 [cited by applicant]
US 9898397B2 · Arif et al. · 2018 [cited by applicant]
US 10268531B2 · Kirkpatrick et al. · 2019 [cited by applicant]
US 10324734B2 · Kirkpatrick · 2019 [cited by applicant]
US 10467025B2 · Kirkpatrick et al. · 2019 [cited by applicant]
US 20020129351A1 · Bedos et al. · 2002 [cited by applicant]
US 20040103412A1 · Rao et al. · 2004 [cited by applicant]
US 20040107291A1 · Gamo · 2004 [cited by applicant]
US 20050049790A1 · Holman et al. · 2005 [cited by applicant]
US 20050193139A1 · Vinson et al. · 2005 [cited by applicant]
US 20060075381A1 · Laborczfalvi et al. · 2006 [cited by applicant]
US 20090133014A1 · Laurila et al. · 2009 [cited by applicant]
US 20090265788A1 · Ehrenschwender et al. · 2009 [cited by applicant]
US 20100313196A1 · De Atley et al. · 2010 [cited by applicant]
US 20110119684A1 · Suggs et al. · 2011 [cited by applicant]
US 20120304283A1 · Beam et al. · 2012 [cited by applicant]
US 20130019237A1 · Pardehpoosh et al. · 2013 [cited by applicant]
US 20130204975A1 · Keith, Jr. · 2013 [cited by applicant]
US 20130263139A1 · Schejter et al. · 2013 [cited by applicant]
US 20130325967A1 · Parks et al. · 2013 [cited by applicant]
US 20140007074A1 · Sporkert et al. · 2014 [cited by applicant]
US 20140215451A1 · Nachtigal · 2014 [cited by applicant]
US 20140229951A1 · Zhang · 2014 [cited by applicant]
US 20140282884A1 · Bao et al. · 2014 [cited by applicant]
US 20140289807A1 · Collado et al. · 2014 [cited by applicant]
US 20140365336A1 · Hurewitz · 2014 [cited by applicant]
US 20150154077A1 · Marra et al. · 2015 [cited by applicant]
US 20150193296A1 · Chen · 2015 [cited by examiner]
US 20150242622A1 · Xu et al. · 2015 [cited by applicant]
US 20150301824A1 · Patton et al. · 2015 [cited by applicant]
US 20150347122A1 · Wang et al. · 2015 [cited by applicant]
US 20160173540A1 · Linden et al. · 2016 [cited by applicant]
US 20160261716A1 · Khalaf et al. · 2016 [cited by applicant]
US 20170206071A1 · Kirkpatrick · 2017 [cited by applicant]
US 20170206090A1 · Kirkpatrick · 2017 [cited by applicant]
US 20170206123A1 · Kirkpatrick · 2017 [cited by applicant]
US 20170208137A1 · Kirkpatrick et al. · 2017 [cited by applicant]
US 20180060055A1 · Kirkpatrick · 2018 [cited by applicant]
US 20190065174A1 · Hilliar et al. · 2019 [cited by applicant]
US 20210067607A1 · Gardner · 2021 [cited by examiner]
US 20220261306A1 · Chandrasekaran · 2022 [cited by applicant]
CN 1836420A · 2006 [cited by applicant]
CN 102859532A · 2013 [cited by applicant]
CN 103562926A · 2014 [cited by applicant]
CN 109358873A · 2019 [cited by applicant]
CN 113254056A · 2021 [cited by applicant]
JP 2002358208A · 2002 [cited by applicant]
JP 2004529419A · 2004 [cited by applicant]
JP 2006259806A · 2006 [cited by applicant]
JP 2008090578A · 2008 [cited by applicant]
KR 1020070109310A · 2007 [cited by applicant]
WO 2011080615A1 · 2011 [cited by applicant]
WO 2013101950A1 · 2013 [cited by applicant]
WO 2013151894A1 · 2013 [cited by applicant]
WO 2014193434A1 · 2014 [cited by applicant]
“12 Applet Development Guide,” Oracle Inc., retrieved on Dec. 29, 2015, 13 pp. [cited by applicant]
“6. The IoC container,” The Spring Framework, retrieved on Jan. 8, 2016, 152 pp. [cited by applicant]
“About Bundles,” Apple Inc., Jun. 30, 2015, 6 pp. [cited by applicant]
“Accessing and Downloading On-Demand Resources,” Apple Inc., Oct. 21, 2015, 7 pp. [cited by applicant]
“App Container Image,” GitHub, Inc., retrieved on Dec. 9, 2015, 7 pp. [cited by applicant]
“App Container Pods,” GitHub Inc., retrieved on Dec. 9, 2015, 5 pp. [cited by applicant]
“App Container Specification,” GitHub Inc., retrieved on Jun. 11, 2015, 2 pp. [cited by applicant]
“App Thinning (iOS, tvOS, watchOS),” Apple Inc., Oct. 21, 2015, 4 pp. [cited by applicant]
“Class Loading,” Oracle Inc., retrieved on Dec. 29, 2015, from http://docs.oracle.com/javase/jndi/tutorial/beyond/, 4 pp. [cited by applicant]
“Docker (software),” Wikipedia, retrieved on Dec. 29, 2015, 6 pp. [cited by applicant]
“Docker Engine,” Docker Inc., retrieved on Jan. 25, 2017, 10 pp. [cited by applicant]
“Is Applet jar downloaded by browser or by JVM?,” Stack Overflow, Jun. 25, 2011, 2 pp. [cited by applicant]
“Microsoft App-V”, Wikipedia, the free Encyclopedia, revised on Jan. 29, 2010. 5 pp. [cited by applicant]
“Modern Application Architecture for the Enterprise | Delivering agility, portability, and control with Docker Containers as a Service (CaaS),” Docker Inc., Jan. 21, 2016, 6 pp. [cited by applicant]
“Multi Class Java Applet,” Stack Overflow, Mar. 14, 2011, 2 pp. [cited by applicant]
“NSBundleResourceRequest,” Apple Inc., Sep. 16, 2015, 2 pp. [cited by applicant]
“On-Demand Resources Essentials,” Apple Inc., Oct. 25, 2015, 6 pp. [cited by applicant]
Allen et al., “Serialization Sets: A Dynamic Dependence-Based Parallel Execution Model,” Principles and Practice of Parallel Programming, vol. 44 Issue 4, Apr. 2009, pp. 85-96. [cited by applicant]
Buck et al., “An API for Runtime Code Patching,” International Journal of High Performance Computing Applications, vol. 14 Issue 4, Nov. 2000, pp. 317-329. [cited by applicant]
Engberg et al., “Privacy Authentication—Persistent Non-Identification in Ubiquitous Environments,” Open Business Innovation, Aug. 18, 2002, 6 pp. [cited by applicant]
Escoffier et al., “iPOJO: an Extensible Service-Oriented Component Framework,” IEEE International Conference on Services Computing, Grenoble University, Jul. 9-13, 2007, 8 pp. [cited by applicant]
Horstmann et al., “Core JAVA 2 vol. 1—Fundamentals,” Sun Microsystems Inc., Dec. 18, 2000, pp. 624. [cited by applicant]
International Search Report and Written Opinion of International Application No. PCT/US2023/064224 dated Sep. 12, 2023, 9 pp. [cited by applicant]
Jianhui et al., “Run-Time Data-Flow Analysis,” Journal of Computer Science & Technology, vol. 17 Issue 4, Jul. 2002, pp. 442-449. [cited by applicant]
Karle, “Operating System Containers vs. Application Containers,” Rising Stack Engineering, May 19, 2015, 13 pp. [cited by applicant]
Kinney, “Getting Started with Microsoft Application Virtualization”, TechNet Magazine, Nov. 2008, Microsoft, pp. 34-41. [cited by applicant]
Kircher et al., “Pooling”, Corporate Technology, Siemens AG, May 10, 2003. 11 pp. [cited by applicant]
Kleyman, “Understanding Application Containers and OS-Level Virtualization,” Data Center Knowledge, retrieved on Jan. 5, 2015, 3 pp. [cited by applicant]
McGraw et al., “The Base Java Security Model: The Original Applet Sandbox,” Ch. 2 Sec. 7, John Wiley & Sons, Inc., retrieved on Jan. 25, 1997, 7 pp. [cited by applicant]
Samuel et al., “Survivable Key Compromise in Software Update Systems”, Proceedings of the 17th ACM Conference on Computer and Communications, Oct. 4, 2010, pp. 61-72. [cited by applicant]
Shende, “Enhancing Privacy in Intercloud Interaction,” IRF International Conference, Apr. 27, 2014, 185 pp. [cited by applicant]
Solomon, “App Thinning in IOS 9 & NSBundlerSourceRequest,” Mutual Mobile, Nov. 5, 2015, 7 pp. [cited by applicant]
Tarantino, “Prefetching/Preloading and Prerendering content with HTML,” Blog: Jack of Spades, Jan. 4, 2015, 6 pp. [cited by applicant]
Vaughn-Nichols, “What is Docker and why is it so darn popular,” ZDNet, Aug. 4, 2014, 10 pp. [cited by applicant]
Venners, “Security and the Class Loader Architecture,” JavaWorld, Aug. 1997, 9 pp. [cited by applicant]
Yang et al., “Application Streaming: A Mobile Application Distribution Method”, School of Information Science and Engineering, Central South University, Dec. 16, 2015. 14 pp. [cited by applicant]
Response to Communication Pursuant to Rules 161(1) and 162 EPC dated Jan. 8, 2024, from counterpart European Application No. 23715390.3, filed Jul. 4, 2024, 15 pp. [cited by applicant]
First Examination Report from counterpart Indian Application No. 202447001358 dated May 7, 2026, 9 pp. [cited by applicant]