STORING NEW SETTINGS FOR WRITE-PROTECTED SYSTEMS ON NON-WRITE-PROTECTED STORAGE

A system may comprise a processor and storage coupled to the processor. The storage may comprise write-protected storage and non-write-protected storage. The storage may store computer-readable instructions. When executed the computer-readable instructions may cause the processor to detect a new settings value to modify a setting from an existing settings value, the existing settings value stored on the write-protected storage, and store the new settings value in a settings file on the non-write-protected storage.

BACKGROUND

Computer systems or applications that may run on computer systems may allow modification of settings. Some settings may be stored on write-protected storage.

DETAILED DESCRIPTION

Computer systems may use write-protected storage. This may be done as a security measure to prevent unwanted changes to the operating system and applications running on the computer system. The operating system and application settings may also be stored on write-protected storage. This may prevent a user from being able to readily customize the various settings on the computer system, as the settings may not be saved from session to session as the user logs in and out or reboots the system.

A settings manager may be executed on the computer system to allow a user to modify a selection of settings. These settings may be operating system settings or application settings determined to have minimal chance of adversely affecting the system. The settings manager may monitor the system for settings changes to existing settings values and store them as new settings values on non-write-protected storage. When the computer system is rebooted or a new session is started, the settings manager may modify the system settings from the existing settings values obtained from the write-protected storage to the new settings values saved to the non-write protected storage.

In one example in accordance with the present disclosure, a system is provided. The system comprises a processor and storage coupled to the processor, the storage comprising write-protected storage and non-write-protected storage, the storage to store computer-readable instructions and execution of the computer-readable instructions by the processor causes the processor to detect a new settings value to modify a setting from an existing settings value, the existing settings value stored on the write-protected storage and to store the new settings value in a settings file on the non-write-protected storage.

In one example in accordance with the present disclosure, a system is provided. The system comprises a processor and storage coupled to the processor, the storage comprising write-protected storage and non-write-protected storage, the storage to store computer-readable instructions and execution of the computer-readable instructions by the processor causes the processor to identify a settings file during initialization of a session, the settings file stored on the non-write-protected storage and to modify a setting from an existing settings value of the system to a new settings value during the initialization of the session, the existing settings value from the write-protected storage and the new settings value from the settings file.

In one example in accordance with the present disclosure, a system is provided. The system comprises a processor and storage coupled to the processor, the storage comprising write-protected storage and non-write-protected storage, the storage to store computer-readable instructions and execution of the computer-readable instructions by the processor causes the processor to detect a new settings value to modify a setting from an existing settings value, the existing settings value stored on the write-protected storage, to store the new settings value in a settings file on the non-write-protected storage, and to modify the setting from the existing settings value to the new settings value during the initialization of the session.

FIG. 1shows a computer system100with settings files150,160stored in write-protected storage140and non-write-protected storage130, respectively, in accordance with various examples. Computer system100may include a processor110and storage120coupled together, such as via a bus. Storage120may include write-protected storage140and non-write-protected storage130. The settings file150may include a settings value155. The settings file160may include a settings value165.

Computer system100may include a laptop computer, desktop computer, embedded system, virtual system, workstation, or remote desktop system. Storage120may include a disk drive, solid state drive, tape drive, Flash memory, a RAM (random access memory) drive, removable storage or other appropriate storage. In various examples, write-protected storage140may be write protected by the nature of the storage device, such as a read-only CD-ROM (compact disc-read only memory).

In various examples, write protected storage140may be write protected by a device driver such as by a write filter, an application, the operating system, the file system, or hardware write protection. The write protection may protect an entire device or portions of the device. For example, the write protection may prevent writing to a particular sector, file directory, or file. In various examples, the write protection may protect an entire storage device but have exceptions where writing may be performed to a designated sector, directory, or file.

In various examples, storage120may include a disk drive, write-protected storage140may include storage space on the disk drive that has write protection, and non-write-protected storage130may include storage space on the disk drive that does not have write protection. In various examples, storage120may comprise a combination of storage devices. For example, storage120may comprise a disk drive to provide non-write-protected storage130and Flash memory with write protection to provide write-protected storage140.

Write-protected storage140may provide security for computer system100. The write protection may protect against changes to computer-readable instructions or settings of computer system100by malicious attacks, such as by viruses or trojans, or to protect against a user changing the system, whether intentionally or unintentionally.

In various examples, write protection of write-protected storage140may be able to be disabled or suspended. For example, data may be written to write-protected storage140by supplying a password. An authorized user or a systems administrator may be able to disable or suspend the write protection for a time. Write protection may be re-enabled explicitly, after a set period of time, or at some other event, such as restarting or logging out of the computer system100.

An application for execution on processor110may include computer-readable instructions stored on write-protected storage140. The application may include a settings file150that stores a settings value155. The settings value155may correspond to a setting of the application. The application may be of many varieties, such as a word processing application, a video game, a device driver for a programmable keyboard, or an operating system. The settings file150may be a file stored in a file directory structure of the write-protected storage140. The application may read the settings value155from the settings file150during initialization of the application or when the setting is used by the application. The settings values in settings file150, such as settings value155, may be called existing settings values. A setting may be various values to configure the application, which may include settings for how the application operates or user settings. For example, a sales database application may include settings to refer to various network locations from which to draw data. The settings specifying those network locations may be configurable by a user, or they may be configurable by a systems administrator and unchangeable by a user. For example, a word processing application may include user settings, such as a customized dictionary, a set of saved styles, add-ons, or auto-correct settings. Modifying and saving these various settings may include saving a settings value155in a settings file150or in a registry entry, or both. The settings value155or the settings file150may be encrypted.

An application may be executed by processor110. The application may store a settings value155in a settings file150on a write-protected storage140. The settings value155may correspond to a user setting. If a user changes a user setting, the write protection on write-protected storage140may not allow the settings change to be stored to settings file150without a password, systems administrator assistance, or other process. Unless the change in setting is stored, the user's modification may not be preserved after a reboot or when initializing a new session on the computer system100.

Processor110may execute a settings manager. The settings manager may be an application and may include computer-readable instructions stored on write-protected storage140. The settings manager may detect a change in settings for another application. The settings manager may store a settings value165corresponding to the settings change in a settings file160on non-write-protected storage130. Settings value165may be called a new settings value. The other application may be closed and re-opened, such as within the same user session, after logging out of the computer system100, or after rebooting the computer system100. The other application may be initialized and configured based on settings file150in the write-protected storage140. The settings manager may detect that the other application is being initialized and identify a settings value165in settings file160that corresponds to the other application. The settings manager may modify the setting of the other application that corresponds to the settings value165. The process of saving the settings value165to settings file160and restoring the corresponding setting to the application by the settings manager may involve user interaction with a user interface, or it may not be noticeable to a user. From a user's perspective, the operation may be indistinguishable from a system where settings file150of the application is stored on non-write-protected storage130, instead of write-protected storage140.

An application may allow programmatic modification of a settings file, such as by calling a function in an application programming interface (API) to change the setting. A setting may be modified by changing a known location in memory where the application stores the setting while in operation. Changing the setting of an application may include modifying a registry entry, such as by adding, deleting, or editing a registry entry. The registry may be saved to the write-protected storage140. The settings manager may update an application's settings through an API call, modifying a location in memory, or modifying a registry entry. The settings manager may update the application's settings in other ways, depending on how the application manages and stores its settings.

The settings manager may detect when a setting of an application is modified. The settings manager may register with the application for an event notification on a change of setting. The settings manager may monitor file accesses to determine a write attempt is being made to settings file155. The settings manager may otherwise interact with the application or operating system to detect when a setting of the application is changed. The settings manager may determine whether it manages that settings change. For example, a settings manager may manage a user's saved searches and default view settings for a database application, but not manage the source paths for the database information. If the settings manager manages a setting that is changed, it may record a corresponding settings value165in settings file160on non-write-protected storage130. If the settings manager does not manage a setting that is changed, it may not record such a change. When the application is restarted, the application may configure its settings based on settings file150stored on write-protected storage140. The settings manager may modify the application's settings based on settings file160on non-write-protected storage130. If a user modifies a setting that is not managed by the settings manager, the application may use the settings value155stored in settings file150on the write-protected storage140, and the settings manager may not store a modified setting in settings file160on the non-write-protected storage130.

A systems administrator may configure the settings manager as to which settings of which applications are stored as settings values165in settings file160on non-write-protected storage130. Such settings manager settings may be stored on write-protected storage140, and a user may not be allowed to modify those settings manager settings. In various examples, the settings manager may manage its own settings.

In various examples, the application may include computer-readable instructions or settings stored on non-write-protected storage130. The settings manager may include computer-readable instructions or settings stored on non-write-protected storage130.

Networked environment200may include a computer system205, a non-write-protected storage235, such as a server, and a settings value259accessible across network290. Computer system205may include a processor210, a storage220, and a network interface connector280coupled together, such as via a bus. Storage220may include write-protected storage240and non-write-protected storage230. Write-protected storage240may include settings files250,252to store settings values255,257. Non-write-protected storage230may include a settings file260to store a settings value265. Network interface connector280may allow the computer system205to communicate across the network290. The network290may be a local area network, a wide area network, a public network, a private network, or any number of other networks. The network290may connect to or include the Internet. Non-write-protected storage235may be accessible by computer system205via network290. The use may provide authentication, such as a user name and password, for the computer system205to access the non-write-protected storage235or network290. Non-write-protected storage235may include a settings file270. Settings file270may include settings values267,275. Settings value259may be accessible by computer system205via network290. Settings value259may be pushed across the network290to computer system205by a systems administrator or automatically downloaded by the settings manager.

Settings file250may correspond to a first application to be executed by processor210. Settings file252may correspond to a second application to be executed by processor210. Computer-readable instructions to execute the first and second application may be stored on storage220, such as in write-protected storage240. Computer-readable instructions to execute a settings manager may be stored on storage220, such as in write-protected storage240. The settings manager may be an application executed by processor210.

The settings manager may manage settings corresponding to settings value255and settings value257, corresponding to a first and second application respectively. For example, settings file250and settings value255may correspond to a word processing application. Settings values255,257may be called existing settings values.

The settings manager may store settings value265on non-write-protected storage230local to the processor210, such as connected to the processor210via an internal computer bus, small computer system interface (SCSI), Fibre Channel, universal serial bus (USB), or other local connection. The settings manager may store settings values267,275on a remote non-write-protected storage235, such as a network drive or server accessible over a network290. For example, settings file260may be saved on non-write-protected storage235. Settings file270may be saved on non-write-protected storage230. Settings values265,267,275may be stored in settings file260or settings file270. The settings manager may access settings file260stored on local non-write-protected storage230and also access settings file270stored on remote non-write-protected storage270. Settings values259,265,267,275may be called new settings values.

In various examples, a first application may use settings value255from settings file250during initialization to configure a setting of the first application. A user may modify that setting while using the first application. The settings manager may detect the settings modification and determine that it manages that setting. The settings manager may save a corresponding settings value275in a settings file270on non-write-protected storage235. A second application may use settings value257from settings file252during its initialization to configure a setting of the second application. A user may modify that setting while using the second application. The settings manager may detect the settings modification of the second application and determine it manages that setting. The settings manager may save a corresponding settings value267in settings file270on non-write-protected storage235. The settings manager may save settings values corresponding to different applications in the same settings file270. The computer system205may be rebooted and the user may log in and run the first and second applications. The settings manager may detect the initialization of the first application and determine corresponding settings value275is stored in settings file270. The first application may be initialized using settings value255from settings file250. The settings manager may modify the first application's setting from a value corresponding to settings value255to a value corresponding to setting value275. The settings manager may detect initialization of the second application and determine corresponding settings value267is stored in settings file270. The second application may be initialized using settings value257from settings file252. The settings manager may modify the second application's setting from a value corresponding to settings value257to a value corresponding to settings value267. During operation, a user may further change a setting of the first or second application corresponding to settings value275or267, respectively. The settings manager may detect that change and update the settings value275or267stored in settings file270. In various examples, the setting may be changed to the value corresponding to settings value255or settings value257. The settings manager may detect that and delete settings value275or settings value267respectively from settings file270. In various examples, the settings manager may store a settings value275in settings file270that corresponds to the same value of settings value255in settings file250. In various examples, settings file270may indicate that settings value275is not to be used. For example, instead of deleting settings value275, it may be marked invalid or indicate that the existing settings value, such as settings value255, should be used.

In various examples, a systems administrator may push a settings change to the computer system205. The systems administrator may push settings value259as a settings change for an application. The application may not be running at the time settings value259is pushed. Settings value259may correspond to the same setting as settings value255, but have a different value for that setting. The settings manager may detect the pushed settings value259and store settings value259in settings file270. Settings value259may be a new entry in settings file270or may replace an existing entry in settings file270, such as settings value275.

FIG. 3shows a method300of detecting changes of settings corresponding to existing settings values stored on write-protected storage, storing new settings values on non-write-protected storage, and modifying settings during session initialization based on settings values on non-write-protected storage in accordance with various examples. Method300may comprise registering for an event notification indicating a modification of a setting310. Method300may comprise detecting a new settings value to modify the setting from an existing settings value, the existing settings value stored on a write-protected storage, the existing settings value comprising a registry entry320. Method300may comprise storing the new settings value as extensible markup language (XML) data in a settings file on a non-write-protected storage330. Method300may comprise identifying the settings file during initialization of a session, the settings file corresponding to a user account340. Method300may comprise modifying the setting from an existing settings value of the system to the new settings value during the initialization of the session, the existing settings value from the write-protected storage and the new settings value from the settings file, the modification performed via an application programming interface (API) of an application corresponding to the setting350. Method300may comprise performing a logout operation360. Method300may be performed by a settings manager.

The format of the settings file used by the settings manager may be in a setup information (INF) format, initialization (INI) format, extensible markup language (XML) format, a JavaScript object notation (JSON) format, a proprietary format, or any number of other formats. In various examples, an XML format may be used. Using XML, the settings file may include sections for different applications or different users. In various examples the settings manager may use multiple settings files. The settings files used by the settings manager may use different settings files for different applications. The settings files used by the settings manager may use different settings files for different users.

When a user logs into a computer system that uses the settings manager, the settings manager may detect which user has logged in. Users may have different settings values corresponding to the same setting of an application. For example, one user may configure a word processing program to default to Courier font, while another user may configure the word processing program to default to Arial font. The settings manager may apply different settings values to the corresponding setting of the word processing program, depending on which user is logged in.

In various examples, modification of a setting by the settings manager may not be finalized until a logout operation is performed. The settings manager may apply the setting and then request a logout operation. The logout may proceed automatically or involve user interaction, such as clicking an acknowledgement or approval button. The setting may finalize its modification once the user logs back in.