WO2020197916A1 - Systems and methods for providing low memory killer protection to non-system applications - Google Patents

Systems and methods for providing low memory killer protection to non-system applications Download PDF

Info

Publication number
WO2020197916A1
WO2020197916A1 PCT/US2020/023521 US2020023521W WO2020197916A1 WO 2020197916 A1 WO2020197916 A1 WO 2020197916A1 US 2020023521 W US2020023521 W US 2020023521W WO 2020197916 A1 WO2020197916 A1 WO 2020197916A1
Authority
WO
WIPO (PCT)
Prior art keywords
system application
lmk
application
use case
foreground
Prior art date
Application number
PCT/US2020/023521
Other languages
French (fr)
Inventor
Joshua David Galicia
Nicholas James Versino
Christopher Scott Gremo
Robert Ferguson
Original Assignee
Verifone, Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Verifone, Inc. filed Critical Verifone, Inc.
Priority to EP20777546.1A priority Critical patent/EP3942411A4/en
Publication of WO2020197916A1 publication Critical patent/WO2020197916A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Quality & Reliability (AREA)

Abstract

Systems and methods for low memory killer protection are disclosed. According to one embodiment, in an information processing apparatus comprising at least one computer processor and executing an operating system including a LMK subsystem, a method for providing low memory killer (LMK) protection may include: (1) a non-system application embedded with a SDK initiating a foreground service at the beginning of a use case session; (2) the non-system application causing the foreground service to create an ongoing notification with the operating system, wherein the ongoing notification causes the non-system application to have no lower than a perceptible LMK status during the use case session; (3) the non-system application completing the use case session; and (4) the non-system application causing the foreground service to remove the ongoing notification.

Description

SYSTEMS AND METHODS FOR PROVIDING LOW MEMORY KILLER PROTECTION TO NON-SYSTEM APPLICATIONS
BACKGROUND OF THE INVENTION
1. Field of the Invention
[0001] The present disclosure relates generally to systems and methods for providing low memory killer protection to non-system applications.
2. Description of The Related Art
[0002] The Android mobile operating system includes a Low Memory Killer (LMK) subsystem, which is a process that monitors the memory state. When the LMK subsystem senses high memory pressure, it may kill the least essential processes to keep system performance at acceptable levels.
[0003] Android includes multiple levels of LMK protection, depending on the application’s operational status. For example, when an application is in the foreground, it is granted FOREGROUND LMK status, as it is in primary use. When it leaves the foreground, it is granted PREVIOUS LMK status, and may move to CACHED LMK status. If the application is in the background and can be perceived by a user (e.g., music playing in the background), it may be granted PERCEPTIBLE LMK status. If an application is not in the foreground, but is still visible to the user (e.g., by transparency), the application may be granted VISIBLE status. Applications having a CACHED LMK status are expendable, and applications having the PERSISTENT LMK status are considered to be immune to LMK.
[0004] When a group of applications work together to accomplish a use case, the LMK subsystem is unaware of the critical relationship between the group of applications, and may kill one or more of the applications during the use case, therefore terminating the use case. An example of such a use case is a payment transaction, where there may be several separate Android applications involved in accomplishing the payment transaction. If any of those applications is killed before the transaction is complete, the transaction cannot be completed.
[0005] While many of the applications in a group may be under the control of the device software platform (“system applications”), which may be designed with special mechanisms to protect certain applications, this is not the case for every application as different applications may be supplied by different entities. For example, for a point-of-sale device, a point-of-sale application may be provided by a merchant or an acquirer, and would not be protected as system applications. Adding such protection on a case-by-case basis is difficult as it requires granting privileges to the point-of-sale application that the non- system normally are not granted.
SUMMARY OF THE INVENTION
[0006] Systems and methods for providing low memory killer protection are disclosed. According to one embodiment, in an information processing apparatus comprising at least one computer processor and executing an operating system including a LMK subsystem, a method for providing low memory killer (LMK) protection may include: (1) a non- system application embedded with a SDK initiating a foreground sendee at the beginning of a use case session; (2) the non-system application causing the foreground service to create an ongoing notification with the operating system, wherein the ongoing notification causes the non- system application to have no lower than a perceptible LMK status during the use case session; (3) the non-system application completing the use case session; and (4) the non-system application causing the foreground service to remove the ongoing notification. [0007] In one embodiment, the SDK may be embedded into the nonsystem application by including an AAR file in the non-system application.
[0008] In one embodiment, the use case may be executed by the nonsystem application and at least one system application.
[0009] In one embodiment, wherein the operating system may be the Android mobile operating system.
[0010] In one embodiment, the non-system application may perform an action that brings a system application to the foreground.
[0011] According to another embodiment, an electronic device providing low memory killer (LMK) protection to non- system applications may include at least one computer processor, an operating system executed by the at least one computer processor, the operating system including a LMK subsystem, and a memory storing at least one non-system application embedded with a SDK.
The non-system application may initiate a foreground service at the beginning of a use case session, may cause the foreground service to create an ongoing notification with the operating system, wherein the ongoing notification causes the non-system application to have no lower than a perceptible LMK status during the use case session, may complete the use case session, and may cause foreground service to remove the ongoing notification.
[0012] In one embodiment, the SDK may be embedded into the nonsystem application by including an AAR file in the non-system application.
[0013] In one embodiment, the memory may include a system application, and the use case is executed by the non-system application and the system application. [0014] In one embodiment, the operating system is the Android mobile operating system.
[0015] In one embodiment, the electronic device may be a point of sale device.
[0016] In one embodiment, the non-system application may perform an action that brings a system application to the foreground.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] For a more complete understanding of the present invention, the objects and advantages thereof, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:
[0018] Figure 1 depicts a system for providing low memory killer protection according to one embodiment;
[0019] Figure 2 depicts a method for providing low memory killer protection according to one embodiment; and
[0020] Figure 3 is an illustrative table depicting the LMK status of applications in the absence of LMK protection;
[0021] Figure 4 is an illustrative table depicting the LMK status of applications with LMK protection enabled according to one embodiment.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0022] Embodiments are directed to systems and methods for low memory killer protection. Embodiments protect non-system applications that interact with system applications to prevent a use case from being killed, or terminated, by the LMK subsystem, during execution of the use case. [0023] As used herein, a“use case” is a task that is performed by a group of separate applications. Some of the applications may be system applications, and others may be non- system applications that may be susceptible to termination or killing by the LMK subsystem.
[0024] Although embodiments are described in the context of electronic devices running the Android mobile operating system, it should be recognized that embodiments may have applicability with other operating systems.
[0025] In embodiments, a Software Development Kit (SDK) that is embedded in a non-system application may perform the following. First, at the start of a use case, a non-system application may initiate a“session” using a SDK. The session may be required in order for the non-system application to initiate a transaction with system applications.
[0026] Upon the starting of a session, a foreground service, which may manage sessions with non-system applications, may be automatically created.
[0027] In one embodiment, the SDK may include APIs, such as starts ession() and endSession, which start and end the session, respectively. The non-system application uses these APIs, which may start and stop the foreground service.
[0028] The foreground service may then create an ongoing (i.e., persistent) notification indicating that the use case session is in progress.
[0029] The creation of the ongoing notification causes the non- system application that created the notification via the foreground service to have a minimum of PERCEPTIBLE LMK protection for the duration of the notification, even when it leaves the foreground and thereby relinquishing its FOREGROUND level protection. This avoids the non- system application dropping to a PREVIOUS/CACHED protection level when it passes control of the use case to another system application, thus putting the system application in the foreground while it moves to the background.
[0030] In one embodiment, only certain non-system applications may require LMK protection. For example, in the payment use case example, applications that integrate with the payment application and perform
transactions need the LMK protection.
[0031] At the conclusion of the use case session, the foreground service may remove the ongoing notification. In one embodiment, the non-system application may control the timing of the closing of sessions. For example, sessions may be closed after a single transaction, after multiple transactions, or as necessary and/or desired.
[0032] Referring to Figure 1, an electronic device including LMK protection is provided according to one embodiment. Electronic device 110 may be any suitable electronic device that provides low memory kill services. Examples of electronic devices 110 include devices executing the Android mobile operating system.
[0033] Electronic device 110 may include memory 112, processor(s) 114, display 116, and input/output (I/O) 118. Any suitable components may be used as is necessary and/or desired.
[0034] Memory 112 may host operating system 135, such as the Android mobile operating system. Operating system 135 may include daemons, services, and kernels, such as the low memory kill subsystem (not shown).
[0035] Memory 112 may further host non- system application 120, and system application(s) 130i, 1302, ... 130n. Non-system application 120 may include SDK 125. SDK 125 may be embedded within non-system application and may include instructions to start a foreground service at the start of a use case session; to have the foreground service create an ongoing notification during the use case session; and to have the foreground service remove the ongoing notification when the use case is complete.
[0036] In one embodiment, the SDK may be embedded in the non- system application by including a file (e.g., an AAR file) into the non-system
application. The file may enable the application to access the functions of the SDK.
[0037] In one embodiment, the AAR file may be included in the developer’s application project (e.g., within the Android Studio IDE or another IDE), and may then be accessible by virtue of the AAR being included as a library in the project.
[0038] Referring to Figure 2, a method of providing low memory killer protection is provided according to one embodiment. In step 205, a SDK may be embedded in a non-system application. In one embodiment, the SDK may include instructions to start a foreground service at the start of a use case session; to have the foreground service create an ongoing notification during the use case session; and to have the foreground service remove the ongoing notification when the use case is complete.
[0039] In step 210, a use case may be initiated using, for example, a non system application.
[0040] In step 215, at the beginning of the use case, the SDK starts a foreground service with the operating system.
[0041] In step 220, the SDK causes the foreground service to create an ongoing notification with the operating system. [0042] In one embodiment, the non-system application may have a session, and may still be in the foreground. In this case, the non-system application retains the stronger foreground protection. When the non-system application leaves the foreground during an active session (e.g., the foreground service and notification are active), the non-system application may receive perceptible protection instead of dropping further to previous or cached status.
[0043] In step 225, the non-system application, and system applications, complete a use case.
[0044] In step 230 at the completion of the use case, the SDK causes the foreground service to remove the ongoing notification.
[0045] An example of the LMK protection states for non-system
applications and system applications is provided in Figures 3 and 4. It should be noted that this example is illustrative only and does not limit the scope of this disclosure.
[0046] In the example, a use case may include several applications, including a point-of-sale (POS) application, which is a non-system application that includes the SDK. The use case may further execute system applications, including Payment Service, Peripheral Service, Payment Application, Host Service, and CRS.
[0047] Figure 3 illustrates the LMK status of the application in the absence of LMK protection. For example, the POS application will start with a FOREGROUND LMK status, but when the payment application moves to the FOREGROUND, the POS application’s LMK status drops to PREVIOUS, making is susceptible to termination by the LMK subsystem. Because the payment service application is bound to the POS application, it also drops to a PREVIOUS LMK status. [0048] Figure 4 illustrates the LMK status of the applications with LMK protection enabled. For example, the POS application will again start with a FOREGROUND LMK status, but when the payment application moves to the FOREGROUND, the POS application’s LMK status only drops to
PERCEPTIBLE. This is because of the foreground service and the ongoing notification. Thus, the POS application is not susceptible to LMK termination.
[0049] It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the present invention includes both
combinations and sub-combinations of features described hereinabove and variations and modifications thereof which are not in the prior art. It should further be recognized that these embodiments are not exclusive to each other.
[0050] It will be readily understood by those persons skilled in the art that the embodiments disclosed here are susceptible to broad utility and application. Many embodiments and adaptations of the present invention other than those herein described, as well as many variations, modifications and equivalent arrangements, will be apparent from or reasonably suggested by the present invention and foregoing description thereof, without departing from the substance or scope of the invention.
[0051] Accordingly, while the present invention has been described here in detail in relation to its exemplary embodiments, it is to be understood that this disclosure is only illustrative and exemplary of the present invention and is made to provide an enabling disclosure of the invention. Accordingly, the foregoing disclosure is not intended to be construed or to limit the present invention or otherwise to exclude any other such embodiments, adaptations, variations, modifications or equivalent arrangements.

Claims

CLAIMS What is claimed is:
1. A method for providing low memory killer (LMK) protection, comprising:
in an information processing apparatus comprising at least one computer processor and executing an operating system including a LMK subsystem:
a non-system application embedded with a SDK initiating a foreground service at the beginning of a use case session;
the non-system application causing the foreground service to create an ongoing notification with the operating system, wherein the ongoing notification causes the non-system application to have no lower than a perceptible LMK status during the use case session;
the non-system application completing the use case session; and the non-system application causing the foreground service to remove the ongoing notification.
2. The method of claim 1, wherein the SDK is embedded into the non-system application by including an AAR file in the non-system application.
3. The method of claim 1, wherein the use case is executed by the non-system application and at least one system application.
4. The method of claim 1, wherein the operating system is the
Android mobile operating system.
5. The method of claim 1, further comprising:
the non-system application performing an action that brings a system application to the foreground;
6. An electronic device providing low memory killer (LMK) protection to non-system applications, comprising:
at least one computer processor;
an operating system executed by the at least one computer processor, the operating system including a LMK subsystem;
a memory storing at least one non-system application embedded with a
SDK;
wherein:
the non-system application initiates a foreground service at the beginning of a use case session;
the non-system application causes the foreground service to create an ongoing notification with the operating system, wherein the ongoing notification causes the non-system application to have no lower than a perceptible LMK status during the use case session;
the non-system application completes the use case session; and the non-system application causes the foreground service to remove the ongoing notification.
7. The system of claim 6, wherein the SDK is embedded into the non system application by including an AAR file in the non-system application.
8. The system of claim 6, wherein the memory comprises a system application, and the use case is executed by the non-system application and the system application.
9. The system of claim 6, wherein the operating system is the Android mobile operating system.
10. The system of claim 6, wherein the electronic device comprises a point of sale device.
11. The system of claim 6, wherein the non- system application further performs an action that brings a system application to the foreground;
PCT/US2020/023521 2019-03-22 2020-03-19 Systems and methods for providing low memory killer protection to non-system applications WO2020197916A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP20777546.1A EP3942411A4 (en) 2019-03-22 2020-03-19 Systems and methods for providing low memory killer protection to non-system applications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/362,292 2019-03-22
US16/362,292 US11281508B2 (en) 2019-03-22 2019-03-22 Systems and methods for providing low memory killer protection to non-system applications

Publications (1)

Publication Number Publication Date
WO2020197916A1 true WO2020197916A1 (en) 2020-10-01

Family

ID=72514421

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/023521 WO2020197916A1 (en) 2019-03-22 2020-03-19 Systems and methods for providing low memory killer protection to non-system applications

Country Status (3)

Country Link
US (1) US11281508B2 (en)
EP (1) EP3942411A4 (en)
WO (1) WO2020197916A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332942A1 (en) * 2012-06-07 2013-12-12 Apple Inc. Targeted Memory Pressure Event Notifications
US20140143791A1 (en) * 2012-11-19 2014-05-22 Qualcomm Innovation Center, Inc. System, method, and apparatus for improving application-launch latencies
CN108804207A (en) * 2017-04-28 2018-11-13 珠海全志科技股份有限公司 A kind of process management-control method based on android system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815702A (en) * 1996-07-24 1998-09-29 Kannan; Ravi Method and software products for continued application execution after generation of fatal exceptions
US8510743B2 (en) * 2007-10-31 2013-08-13 Google Inc. Terminating computer applications
US20140075567A1 (en) * 2009-01-28 2014-03-13 Headwater Partners I Llc Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device
US9426140B2 (en) * 2013-09-09 2016-08-23 Layer, Inc. Federated authentication of client computers in networked data communications services callable by applications
US9479541B2 (en) * 2014-11-21 2016-10-25 Blackberry Limited Sharing data across profiles
KR102379173B1 (en) * 2015-01-06 2022-03-28 삼성전자주식회사 Workout record managing method and electronic device supporting the same
KR102303417B1 (en) * 2015-06-19 2021-09-23 삼성전자주식회사 Method and Apparatus for Controlling a plurality of Operating Systems
CN106648861B (en) * 2016-12-05 2020-07-14 阿里巴巴(中国)有限公司 Keep-alive method and device for background service process
CN108399033B (en) * 2017-02-07 2020-01-21 阿里巴巴集团控股有限公司 View switching method and device
US10534646B2 (en) * 2017-05-09 2020-01-14 Sap Se Memory management for applications operating on java virtual machines
JP7100154B6 (en) * 2018-04-20 2022-09-30 オッポ広東移動通信有限公司 Processor core scheduling method, device, terminal and storage medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332942A1 (en) * 2012-06-07 2013-12-12 Apple Inc. Targeted Memory Pressure Event Notifications
US20140143791A1 (en) * 2012-11-19 2014-05-22 Qualcomm Innovation Center, Inc. System, method, and apparatus for improving application-launch latencies
CN108804207A (en) * 2017-04-28 2018-11-13 珠海全志科技股份有限公司 A kind of process management-control method based on android system

Also Published As

Publication number Publication date
US11281508B2 (en) 2022-03-22
EP3942411A4 (en) 2023-01-04
EP3942411A1 (en) 2022-01-26
US20200301833A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
US8458673B2 (en) Computer-implemented method and system for binding digital rights management executable code to a software application
AU2014218316B2 (en) Controlling usage of acquirer tokens stored within a merchant system
US10846114B2 (en) Virtual time control apparatus, method, and non-transitory computer readable storage medium thereof
US10540499B2 (en) Method for monitoring the security of a virtual machine in a cloud computing architecture
US8875165B2 (en) Computing device having a DLL injection function, and DLL injection method
CN108776595B (en) Method, device, equipment and medium for identifying display card of GPU (graphics processing Unit) server
CN106325913A (en) Application program starting method and apparatus
US11276069B2 (en) Risk payment processing method and apparatus, and device
WO2020057253A1 (en) Method and system for game updating, terminal and computer readable storage medium
CN114257551A (en) Distributed current limiting method and system and storage medium
EP3065097B1 (en) Device and method for facilitating a transaction
CN111338628A (en) Component rendering method and device
CN106874020B (en) Method and device for starting plug-in
US11281508B2 (en) Systems and methods for providing low memory killer protection to non-system applications
CN109543407B (en) Activity hijacking interception method and device
US11461104B2 (en) Deferred system error exception handling in a data processing apparatus
JP6910377B2 (en) Identity verification method and equipment
CN110264346A (en) Processing method, device and the equipment of assets consumer requests
US20180081711A1 (en) Method and apparatus for operating system level of application
CN106886721B (en) Method and device for realizing auxiliary function in application
CN113918167A (en) Data processing method and device
CN111367694B (en) Event processing method, server and computer storage medium
CN113989025A (en) Service processing method and device, storage medium and electronic equipment
CN110689431A (en) Processing method, server and storage medium for securities trading
CN111158863B (en) Interrupt controller processing method and device and electronic equipment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20777546

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2020777546

Country of ref document: EP