# US 10,503,344 B2 · Dynamic cross-environment application configuration/orientation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,344 B2
- Document ID: US10503344B2
- Status: Granted
- Kind: B2
- Application number: 14/950,632
- Filed: 2015-11-24
- Published: 2016-03-17
- Granted: 2019-12-10
- Earliest claimed: 2011-07-13
- Assignees: Z124
- Applicants: Z124
- Inventors: Brian Reeves; Paul E. Reeves; Wuke Liu; Borys Sushchev
- Web page: https://patentgrep.com/patent/US10503344B2

## CPC

- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 3/04847: Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
- G06F 3/1423: {controlling a plurality of local displays, e.g. CRT and flat panel display}
- G06F 3/1454: {involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay}
- G06F 9/451: Execution arrangements for user interfaces
- G09G 5/14: Display of multiple viewports
- H04L 67/75: Indicating network or usage conditions on the user display
- H04W 4/60: Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
- G09G 2340/0492: Change of orientation of the displayed image, e.g. upside-down, mirrored
- G09G 2354/00: Aspects of interface with display user
- G09G 2370/047: using display data channel standard [DDC] communication
- G09G 2370/12: Use of DVI or HDMI protocol in interfaces along the display data pipeline
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Dynamic configuration of cross-environment applications enhances the computing experience in a computing environment with an extended active user environment and/or multiple active user environments. A mobile computing device maintains multiple active device configurations associated with multiple active user environments and/or application windows within active user environments. Device configuration qualifiers are determined from a variety of sources including device characteristics, device indicators, user settings, and/or application presentation. The mobile computing device selects active resource sets for applications based on the device configuration qualifiers. Application presentation is dynamically updated by disestablishing an application screen and establishing a new active application screen using a different resource set. The mobile computing device may be a smartphone running the Android mobile operating system and a full desktop Linux distribution on a modified Android kernel.

## Claims

### Claim 1

A method for dynamically configuring active application screens of applications running in two different operating systems of a mobile computing device, the two different operating systems comprising a first operating system associated with a first active user environment and a second operating system associated with a second active environment, the method comprising:
receiving a device configuration change message, the device configuration change message related to a device configuration of the second active user environment, the second active user environment receiving graphics information from the mobile computing device through a graphics interface;
allocating, by a shared kernel, anonymous shared memory comprising named memory blocks, the anonymous shared memory being accessible and configured to be used by all processes running on the first operating system and a second operating system and not accessible by name by other processes, the first operating system and the second operating system running concurrently and independently on the shared kernel, the shared kernel running on the mobile computing device;
receiving a display parameter associated with an active display of the second active user environment, wherein the second active user environment is a desktop computing system;
selecting an active resource set from a plurality of resource sets associated with the first application based at least in part on the display parameter; and
configuring a first application screen associated with the first application based on the received device configuration change message by disestablishing the first application screen associated with the first application and displaying a second application screen associated with the first application using the active resource set on the active display of the second user environment;
wherein the first operating system is a mobile operating system and the second operating system is a desktop operating system;
wherein the shared kernel directly manages resources of the mobile device including memory and the first operating system and the second operating system make system calls to the memory through the shared kernel without virtualized memory;
wherein the mobile computing device and the desktop computing system are distinct computing devices;
wherein the mobile computing device is a mobile telephony device;
wherein device drivers in the single shared kernel control hardware interfaces;
wherein the shared kernel allocates a first frame buffer memory associated with the mobile operating system and allocates a second frame buffer memory associated with the desktop operating system;
wherein the mobile operating system renders the first application in the first frame buffer memory through the shared kernel and the desktop operating system renders the second application in the second frame buffer memory through the shared kernel; and
wherein the shared kernel provides direct access to the first frame buffer memory and the second frame buffer memory by the respective mobile operating system and desktop operating system through frame buffer devices without virtualization of addressing by either operating system.

### Claim 2 (depends on 1)

The method of claim 1, wherein the mobile telephony device is a smartphone.

### Claim 3 (depends on 2)

The method of claim 2, wherein the display parameter is based on a property of a console window associated with a console application running on the second operating system.

### Claim 4 (depends on 1)

The method of claim 1, further comprising translating a plurality of configuration parameters including the received display parameter into a configuration qualifier, wherein the configuration qualifier is used in selecting the active resource set from the plurality of resource sets.

### Claim 5 (depends on 4)

The method of claim 4, wherein at least one of the plurality of configuration parameters is associated with the first active user environment.

### Claim 6 (depends on 4)

The method of claim 4, wherein the display parameter comprises a resolution of the console window.

### Claim 7 (depends on 4)

The method of claim 4, wherein the display parameter comprises an aspect ratio of the console window.

### Claim 8 (depends on 1)

The method of claim 1, wherein the device configuration change message indicates a connection state of the second active user environment.

### Claim 9 (depends on 1)

The method of claim 1, wherein the device configuration change message comprises a user input that indicates that the active application screen is to be moved from a display associated with the first user environment to the display associated with the second user environment.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
selecting a secondary resource set from the plurality of resource sets associated with the application;
displaying a first application screen of the application in a first portion of a display associated with the second active user interaction space using the resource set; and
displaying a second application screen of the application in a second portion of the display associated with the second active user interaction space using the secondary resource set.

### Claim 11 (depends on 1)

The method of claim 1, wherein the second active user interaction space is associated with the first operating system.

### Claim 12 (depends on 1)

The method of claim 1, wherein the selecting of the resource set is in response to a user input that indicates that the application should be moved from the first active user interaction space to the second active user interaction space.

### Claim 13

A mobile computing device including a memory storing instructions for a physical processor, the instructions, when executed, causing the processor to perform steps comprising:
running a first application in a first operating system of the mobile computing device, the first operating system associated with a first active user environment;
running a second application in a second operating system different from the first operating system, the second operating system being associated with a second active user environment and wherein the first operating system and the second operating system run concurrently and independently in a shared kernel running on the mobile computing device;
receiving a device configuration change message, the device configuration change message being related to a device configuration of the second active user environment, the second active user environment receiving graphics information from the mobile computing device through a graphics interface;
allocating, by the shared kernel, anonymous shared memory comprising named memory blocks, the anonymous shared memory being accessible and configured to be used by all processes running on the first operating system and the second operating system and not accessible by name by other processes;
receiving a display parameter associated with an active display of the second active user environment, the second active user environment being associated with the second operating system, wherein the second active user environment is a desktop computing system;
selecting an active resource set from a plurality of resource sets associated with the first application based on the display parameter; and
configuring a first application screen associated with the first application based on the received device configuration change message by disestablishing a first application screen associated with the first application and displaying a second application screen associated with the first application using the active resource set on the active display of the second active user environment;
wherein the first operating system is a mobile operating system and the second operating system is a desktop operating system;
wherein the shared kernel directly manages resources of the mobile device including memory and the first operating system and the second operating system make system calls to the memory through the shared kernel without virtualized memory;
wherein the mobile computing device and the desktop computing system are distinct computing devices;
wherein the mobile computing device is a mobile telephony device;
wherein the shared kernel allocates a first frame buffer memory associated with the mobile operating system and allocates a second frame buffer memory associated with the desktop operating system;
wherein the mobile operating system renders the first application in the first frame buffer memory through the shared kernel and the desktop operating system renders the second application in the second frame buffer memory through the shared kernel; and
wherein the shared kernel provides direct access to the first frame buffer memory and the second frame buffer memory by the respective mobile operating system and desktop operating system through frame buffer devices without virtualization of addressing by either operating system.

### Claim 14 (depends on 13)

The mobile computing device of claim 13, wherein the mobile telephony device is a smartphone, wherein device drivers in the single shared kernel control hardware interfaces.

### Claim 15

A non-transitory, computer-readable medium comprising a set of instructions stored therein which, when executed by a processor, causes the processor to dynamically configure active application screens of applications running in two different operating systems of a mobile computing device, the two different operating systems comprising a first operating system associated with a first active user environment and a second operating system associated with a second active environment by:
receiving a device configuration change message, the device configuration change message being related to a device configuration of the second active user environment, the second active user environment receiving graphics information from the mobile computing device through a graphics interface;
allocating, by a shared kernel, anonymous shared memory comprising named memory blocks, the anonymous shared memory being accessible and configured to be used by all processes running on the first operating system and a second operating system and not accessible by name by other processes, the first operating system and the second operating system running concurrently and independently on the shared kernel, the shared kernel running on the mobile computing device;
receiving a display parameter associated with an active display of the second active user environment, wherein the second active user environment is a desktop computing system;
selecting an active resource set from a plurality of resource sets associated with the first application based at least in part on the display parameter; and
configuring a first application screen associated with the first application based on the received device configuration change message by disestablishing the first application screen associated with the first application and displaying a second application screen associated with the first application using the active resource set on the active display of the second user environment;
wherein the first operating system is a mobile operating system and the second operating system is a desktop operating system;
wherein the shared kernel directly manages resources of the mobile device including memory and the first operating system and the second operating system make system calls to the memory through the shared kernel without virtualized memory;
wherein the mobile computing device and the desktop computing system are distinct computing devices;
wherein the mobile computing device is a mobile telephony device;
wherein device drivers in the single shared kernel control hardware interfaces;
wherein the shared kernel allocates a first frame buffer memory associated with the mobile operating system and allocates a second frame buffer memory associated with the desktop operating system;
wherein the mobile operating system renders the first application in the first frame buffer memory through the shared kernel and the desktop operating system renders the second application in the second frame buffer memory through the shared kernel; and
wherein the shared kernel provides direct access to the first frame buffer memory and the second frame buffer memory by the respective mobile operating system and desktop operating system through frame buffer devices without virtualization of addressing by either operating system.
