DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Specification
The use of the term Android, Linux, which is a trade name or a mark used in commerce, has been noted in this application. The term should be accompanied by the generic terminology; furthermore the term should be capitalized wherever it appears or, where appropriate, include a proper symbol indicating use in commerce such as ™, SM , or ® following the term.
Although the use of trade names and marks used in commerce (i.e., trademarks, service marks, certification marks, and collective marks) are permissible in patent applications, the proprietary nature of the marks should be respected and every effort made to prevent their use in any manner which might adversely affect their validity as commercial marks.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1-2 and 14-15 s/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Lee et al US 2020/0117499.
Regarding claims 1 and 14
Lee et al teaches
in response to an obtained first operation, obtaining, through a first software system, application information of at least one target application in a second software system, wherein both the first software system and the second software system are installed on a same electronic device, wherein the target application is an application that has been installed in the second software system, and the application information comprises at least one of an icon, an identifier, or an executable path of the target application [0112] in operation 720, the electronic device may output a first object associated with execution of the first application and a second object associated with execution of the second application on a screen of the first OS. According to an embodiment, various applications driven depending on each OS may be downloaded from an external server (e.g., an app store) and pre-stored. Although FIG. 7 illustrates an example in which a second object associated with execution of the second application is displayed along with a first object, the second application may be an application installed in real-time by an application search process and a download process. According to an embodiment, the second application may be a type of package program distributed from the external server to be installed on the first OS-based electronic device while the first OS is running and to be executable on the second OS. For example, the package program may be an installation file for the second application and may include at least one of a package name for the second application, authority information, and target package information about the second OS necessary to execute the second application while the first OS is running];
displaying, in the first software system, a desktop icon of the target application [0134] Upon receiving the start request message, the daemon 803 may execute the virtual network computing (VNC) server of the display manager 804 through the script in operation 821. The VNC server may execute the necessary target package (e.g., a Linux package) through the updated script information through a screen configuration process for executing applications in operation 822. In operation 823, the control application 802 may communicate with the VNC server for display or input. Accordingly, the user may execute his or her desired Linux package by a single icon click on the Android background screen. Thereafter, when the user terminates execution of the application, the control application 802 may correspondingly transmit a terminate request to the daemon 803 in operation 824. When the control application 802 is terminated, the daemon 803 may send a termination request to the VNC server of the display manager 804 and, in operation 825, may perform organization to unmount the image. Thus, in operation 826, the connection between the control application 802 and the daemon 803 may be released].
Regarding clams 2 and 15
Lee et al teaches
the first software system is an Android system, and the second software system is a Linux system (see fig 5, [0119] thus, when the user selects the first application again while the execution screen of the second application is displayed, the execution screen of the first application may be output along with the execution screen of the second application. For example, it may be shown to the user as if the Linux package is executed directly on Android by clicking the Linux-related icon in the Android background. Therefore, the user may have the same user experience as when using an application running on Android by the Linux execution screen shown in the Android screen with a single click on the application which actually runs on Linux].
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 4-8, 11, 13-15 and 17-18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Lee et al US 2020/0117499 in view of Chen et al USPN 8,887,152
Regarding claims 4 and 17
Lee et al teaches
sending a first message to the second software system by using the first main activity, wherein the first message is used to obtain the application information of the at least one target application in the second software system [0127] according to an embodiment, the external server (e.g., an app store) may distribute all data necessary to execute the guest OS (e.g., the second OS 220) and the downloaded application in the form of a package program. Thus, when a user selection for executing the application corresponding to the generated shortcut icon is entered in operation 812, the electronic device may launch the downloaded application corresponding to the user selection in operation 813. In operation 814, the electronic device may broadcast application package information along with target Linux package information to the control application 802 installed on the running host OS (e.g., the first OS 230). According to an embodiment, the control application 802 may be an LoD application];
obtaining, by using the first main activity, a second message fed back by the second software system, wherein the second message comprises the application information of the at least one target application [0161] referring to FIG. 17, various application execution screens of a plurality of different OSs, such as a first window 1720 and a second window 1730, may simultaneously be displayed on a main screen 1710. For example, an execution screen of a video/audio application (e.g., YouTube) of an Android OS and an execution screen of a video/audio application of a Linux OS may simultaneously be displayed in the first window 1720 and the second window 1730, respectively] and 0112] In operation 720, the electronic device may output a first object associated with execution of the first application and a second object associated with execution of the second application on a screen of the first OS. According to an embodiment, various applications driven depending on each OS may be downloaded from an external server (e.g., an app store) and pre-stored. Although FIG. 7 illustrates an example in which a second object associated with execution of the second application is displayed along with a first object, the second application may be an application installed in real-time by an application search process and a download process. According to an embodiment, the second application may be a type of package program distributed from the external server to be installed on the first OS-based electronic device while the first OS is running and to be executable on the second OS. For example, the package program may be an installation file for the second application and may include at least one of a package name for the second application, authority information, and target package information about the second OS necessary to execute the second application while the first OS is running]. Lee et al teaches first and second software system and target application but does not teach explicitly launching, in the first software system, a first main activity in a proxy Android application package (APK) based on the first operation, however, Chen et al teaches (column 4, line 37, Modified APK manager 120 runs as an Android service. This module manages all modified APKs (under control of the security application) paths and versions. If the requested APK is a new APK or an updated version, this module calls API Hook module 130 in order to modify the APK. This module also provides APIs for APP Loader module 110 to retrieve modified APK files. After modifying an APK file, API Hook module 130 registers this APK to the APK Manager 120. The modified APK file and AndroidManifest.xml are passed to APK Manager 120 when registering. APK Manager 120 parses AndroidManiefest.xml file and stores the package meta data. The Meta data include: 1. Activity class name and intent filter; 2. Content Provider class name and authority; 3. Broadcast Receiver class name and intent filter; 4. Service class name and intent filter; 5. DeviceAdminReceiver class name; and 6. Account authenticator and type. These meta data are useful when launching APK components. APK Manager 120 provides methods for other components to retrieve this meta data). Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to incorporate android application package. The modification would have been obvious because one of ordinary skill in the art would have been motivated to combine teaching into software installation which helps in distributing and installing Android apps and bundle all the code, resources, assets, and metadata needed for the app to run.
Regarding claim 5
Chen et al teaches
the first main activity communicates with a Linux system through native in the proxy APK (column 4, line 20, FIG. 2 is a block diagram illustrating the architecture of the security application. Main user interface 102 is the interface of the Android device and a target application to be modified and loaded is represented by "Start APK" 105. APP Loader Module 110 is used to load a target application's components (Activity, Service, Content Provider and Receiver) in the context of the security application. Once loaded, all data of this target application will be stored in the data directory of the security application and will be accessible by the security application. The main function of this module is that the security application creates a proxy component for each type of component in the target application; then, in the proxy component, the actual component instance is created. When the Android framework calls a proxy component's method, the same method of the actual component is called by the proxy component). The feature of providing proxy APK… would be obvious for the reasons set forth in the rejection of claim 1.
Regarding claims 6 and 18
Lee et al teaches
a communication protocol between the first main activity and a Linux system is a free remote desktop protocol [0138] Referring to FIG. 9, an electronic device may determine whether a Linux package object is selected in operation 910. For example, the Linux package object may be an icon indicating the downloaded application. When the Linux package object is selected, it may be determined whether a control application has been installed in the Android OS for performing control and communication with the Linux OS in operation 920. When no control application has been installed yet, it may be downloaded from the external server]. The feature of providing Linux… would be obvious for the reasons set forth in the rejection of claim 1.
Regarding claim 7
Lee et al teaches
registering the application information of the target application with a desktop launcher of the first software system by using the first main activity, to display, in the first software system, the desktop icon of the target application [0155] Referring to FIG. 13, when the user selects an icon (e.g., a Debian package (.deb)) 1320 on the background screen 1310 displayed on the electronic device, such a screen may be displayed as if a Linux package is executed on Android. For example, a first execution screen 1330 is an example screen of an application executed on the Linux OS and a second execution screen 1340 is an example screen of an application executed based on the Android OS. As shown in FIG. 13, when the user clicks on an icon (e.g., the Debian package (.deb)) 1320, the Debian package is able to provide an execution screen similar to the second execution screen 1340 albeit operating based on the Linux OS and, thus, the user may easily use applications of different OSs like when he or she uses Android applications]. The feature of providing desktop icon… would be obvious for the reasons set forth in the rejection of claim 1.
Regarding claims 8, 11 and 13
Chen et al teaches
controlling the first main activity to end running (column 9, line 55, In step 616 the code of the DEX classes are modified according to the desires of the user. I.e., the Smali format files are modified. Changes can be made to modify the APK files as discussed above to obtain control over the application. The resource files may be modified as well. In addition, other functionalities can be added. For example, dangerous code can be stopped from executing, malicious URLs can be blocked, code can be inserted to monitor an executing application (e.g., analyze application behavior and generate a report), data can be encrypted or isolated, etc. Specifically, once the API hook module 130 has decoded the target APK, code is injected into the decoded APK and the package will be rebuilt. Also, the data hook module 150 provides a set of data access APIs called by the modified APK). The feature of providing desktop icon… would be obvious for the reasons set forth in the rejection of claim 1.
Allowable Subject Matter
Claims 3, 9-10, 12, 16 and 19-20 are objected to as being dependent upon a rejected base claim but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Relevant Prior Art
US 20140137184 Russello et al teaches a device comprising an operating system to run processes and a middleware layer operable to launch applications. An application launched by the middleware layer is run using one or more processes in the operating system. The operating system has a user layer and a kernel wherein the processes run in the user layer and interact with other processes running in the user layer through the kernel, the interaction being in response to calls to the kernel made by the processes. The device has one or more policy files defining policies for interaction of processes with the kernel of the device, and a monitor configured to monitor interaction of a process with the kernel to link or associate defined policies to the process, and to read code defined in the policy file or files linked or associated to the process.
US 20130232573 Saidi; et al taches a method and system for application-based monitoring and enforcement of security, privacy, performance and/or other policies on a mobile device includes incorporating monitoring and policy enforcement code into a previously un-monitored software application package that is installable on a mobile device, and executing the monitoring and policy enforcement code during normal use of the software application by a user of the mobile device.
US 8732690 B1 Memmott teaches a computing device configured for installing an application is described. The computing device includes a processor and instructions stored in memory that is in electronic communication with the processor. The computing device determines if an application instruction length is a first instruction length or a second instruction length. The first instruction length is shorter than the second instruction length. If the application instruction length is the first instruction length, then the computing device runs an application installer in a first instruction length mode. If the application instruction length is the second instruction length, then the computing device determines if an operating system instruction length is the first instruction length or the second instruction length. If the operating system instruction length is the second instruction length, then the computing device disables a compatibility module.
Ardito et al teaches several techniques exist for mobile test automation, from script-based techniques to automated test generation based on GUI models. Most techniques fall short in being adopted extensively by practitioners because of the very costly de_nition (and maintenance) of test cases. We present a novel testing framework for Android apps that allows a developer to write effective test scripts without having to know the implementation details and the user interface of the app under test. The main goal of the framework is to generate adaptive tests that can be executed on a signi_cant number of apps, or different releases of the same app, without manual editing of the tests. The frameworks consists of: (1) a Test Scripting Language, that allows the tester to write generic test scripts tailored to activity and app categories; (2) a State Graph
Modeler, that creates a model of the app's GUI, identifying activities (i.e., screens) and widgets; (3) an app classi_er that determines the type of application under test; (4) an activity classi_er that determines the purpose of each screen; (5) a test adapter that executes test scripts that are compatible with the speci_c app and activity, automatically tailoring the test scripts to the classes of the app and the activities under test. We evaluated empirically the components of our testing framework. The classi_ers were able to outperform available approaches in the literature. The developed testing framework was able to correctly adapt high-level test cases to 28 out of 32 applications, and to reduce the LOCs of the test scripts of around 90%.We conclude that machine learning can be fruitfully applied to the creation of high-level, adaptive test cases for Android apps. Our framework is modular in nature and allows expansions through the addition of new commands to be executed on the classi_ed apps and activities.
Amalfitano et al teaches wwe present AndroidRipper, an automated technique that tests Android apps via their Graphical User Interface (GUI). AndroidRipper is based on a user-interface driven ripper that automatically explores the app’s GUI with the aim of exercising the application in a structured manner. We evaluate AndroidRipper on an open-source Android app. Our results show that our GUI-based test cases are able to detect severe, previously unknown, faults in the underlying code, and the structured
exploration outperforms a random approach.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Anil Khatri whose telephone number is (571)272-3725. The examiner can normally be reached M-F 8:30-5:00.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wei Zhen can be reached at 571-272-3708. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ANIL KHATRI/Primary Examiner, Art Unit 2191