Method and system for controlling access to software features in an electronic device

A method and system for controlling access to features on an electronic device, such as a printer, is disclosed. The electronic device is shipped with multiple software features, but one or more of the features may be disabled. According to aspects of the present invention, when a customer subsequently licenses or purchases one of the disabled features, the feature is enabled as follows. A key corresponding to the disabled feature is stored on a portable storage device. When the portable storage device is inserted into the electronic device, the key is customized based on device-specific information of the electronic device, thereby reducing a possibility that the key can be copied and used for enabling the feature on more than one device. The customized key is then used to enable the feature in the electronic device.

FIELD OF THE INVENTION

The present invention relates to methods for software feature licensing, and more particularly to a method and system for controlling access to software features in an electronic device.

BACKGROUND OF THE INVENTION

Advanced printers are often shipped to customers as base packages where only a small subset of built-in software features are enabled. Embedded controller software is included in the printers as a product-specific package which is standard for multiple models of printers, and controls which capabilities or features of the printer are enabled. After some time, the customer may purchase the additional features from the manufacturer or vendor, and in return, the purchased feature will be enabled. After some time, the customer may purchase the additional features from the manufacturer or vendor, and in return, the purchased feature will be enabled.

A mechanism is required to control the enabling of these features. One solution is to implement feature control through a physical device, such as a compact flash card, and ship printers with a socket for reading the compact flash card. When a customer purchases a new feature, a compact flash card with some information for enabling the feature is sent to the customer. Once the card is inserted into the printer, the feature identified on the card is enabled. The problem with this method is that there is no built-in control to prevent the user from copying the contents of the compact flash to other compact flashes and installing the cards in multiple printers, rather than purchasing the feature option for each printer. Should this type of piracy occur, the printer manufacturer or vendor can lose a great deal of licensing revenue.

One solution to prevent duplication of the compact flash is to send the compact flash to customers with contents that are unique to the customer's printer. Creating compact flash devices with contents specific to each printer, however, would face prospective time delays due to creating personalized devices, and would increase cost to the point where it would be prohibitive to implement such a feature control.

Accordingly, what is needed is a method and system for controlling software features in an electronic device, such as a printer, in a manner that maximizes licensing revenue for the manufacturer. The method should be cost effective, easy to implement, and should have the ability to enable multiple features over time. The present invention addresses such a need.

SUMMARY OF THE INVENTION

The present invention provides a method and system for controlling access to features on an electronic device, such as a printer. The electronic device is shipped with multiple software features, but one or more of the features may be disabled. According to aspects of the present invention, when a customer subsequently licenses or purchases one of the disabled features, the feature is enabled as follows. A key corresponding to the disabled feature is stored on a portable storage device. When the portable storage device is inserted into the electronic device, the key is customized based on device-specific information of the electronic device. The customized key is then used to enable the feature in the electronic device.

According to the method and system disclosed herein, by customizing the key for each printer, after a customer licenses a feature, the present invention reduces the possibility that the key can be copied and used to enable the feature on more than one printer.

DETAILED DESCRIPTION OF THE INVENTION

The present invention relates to a mechanism for controlling access to features on an electronic device. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiments and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiments shown but is to be accorded the widest scope consistent with the principles and features described herein.

FIG. 1is block diagram illustrating a system10for controlling software features in an electronic device in accordance with the present invention. In a preferred embodiment, the electronic device comprises a printer12, but any type of electronic device could be used with the system described herein. The printer12is sold or leased to a customer by a manufacturer or vendor. The printer12typically has a unique identifier, such as a serial number14, to distinguish it from other printers12of the same model. Although the printer12is shipped loaded with a variety of preloaded software features16, the printer12is typically sold as a base package where only a limited number of the features16are enabled, and the rest are disabled. An embedded controller18within the printer12controls access to these software features16. After manufacture of printer12, the customer may license one or more additional features16from the manufacturer or vendor. The present invention provides a mechanism to enable the licensed features16in a secure manner.

According to the present invention, a portable storage device20, such as compact flash card, is used to control access to the selected feature16in a manner that enables the feature16on the printer12, while preventing the customer from using the portable storage device20to enable the same feature16in other printers12. In order to accept the portable storage device20, the printer12is provided with at least one resource socket22capable of reading the portable storage device20. In the preferred embodiment where the portable storage device20is a compact flash, the printer12includes two compact flash sockets22aand22b.

FIG. 2illustrates a flow diagram of the process for controlling access to features16(seeFIG. 1) on an electronic device, such as a printer12(seeFIG. 1) in accordance with a preferred embodiment of the present invention. The present invention operates in two stages; an initialization stage30and a feature enable stage38. Referring to bothFIGS. 1 and 2, once a printer12customer has selected a feature16to license or purchase for a particular model printer12, the initialization stage begins in step32, where an appropriate portable storage device20for the printer12is provided that contains a key26corresponding to the licensed feature16. In step34, the portable storage device20with the corresponding key26is inserted into the resource socket22a, and the embedded controller18customizes the key26based on the device-specific information of the printer12. In a preferred embodiment, the embedded controller18hashes the key26with the serial number14of the printer12and overwrites the original key26with hashed key26on the compact flash.

After the initialization stage30, the feature enable stage36uses the portable storage device20to activate the licensed feature16. During printer12boot-up in step36, the embedded controller18verifies that the key26on the portable storage device20has been customized correctly for the given printer12, and enables the corresponding feature16on the printer12in response.

In a further aspect of the present invention, the initialization stage30, in which the key26is customized to work with a specific printer12, is performed by service personnel authorized by the printer12manufacturer or vendor. Performing the initialization of the key26by authorized personnel, rather than the customer, greatly reduces the possibility that the key26can be copied prior to customization and used in other printers12.

FIG. 3illustrates a flow chart illustrating the initialization stage30(seeFIG. 3) in further detail according to a preferred embodiment of the present invention. The flow chart ofFIG. 3will be discussed in reference to the system illustrated inFIG. 1. The embedded controller18invokes the initialization stage in step50after the compact flash is inserted into the compact flash socket22of the printer12. In a preferred embodiment, the key26is implemented as a keyword contained in a file on the compact flash, where the file name identifies the model of the printer12. An example of the contents of the compact flash for enabling the feature 16 PCL/PS in a model Infoprint85printer12is as follows:File name: PCLPS85.ffContents: Initial keyword 1

The embedded controller18first determines that the compact flash contains the appropriate type of file in step52. If not, the read attempt is retried some number of times in step54before the process terminates. If the compact flash does contain the appropriate type of file, then in step56the embedded controller18determines whether the keyword in the file matches any of the keywords for the features16stored in the printer12.

If the keywords match, then in step58the embedded controller18reads the printer12serial number14and hashes the keyword with the printer12serial number14in step60, creating an encrypted keyword. In step62, the embedded controller18stores the encrypted keyword on the printer hard drive and on the compact flash, overwriting the original keyword. In a preferred embodiment, the original keyword is overwritten by replacing the original file with a new file that has a different extension and that contains the encrypted keyword. At the end of the process, the compact flash is initialized to enable on the printer12. However, if the keywords do not match in step56, or the number of retries is exceeded in step54, then the process ends and the initialization stage fails. An example of the contents of a successfully initialized compact flash for enabling DBCS fonts in a model Infoprint 85 printer12is as follows:File name: PCLPS85.efContents: Encrypted value for a combination of keyword 1 and the Infoprint 85 printer's serial numberRandomly generated noise

After configuration by the service personnel, the customer retains possession of the configured compact flash. The compact flash is kept in the compact flash socket22and used during the feature enable stage36to enable the feature16when the printer12is powered on.

FIG. 4illustrates a flow chart illustrating further details of the feature enable stage36(seeFIG. 3) in a preferred embodiment of the present invention. The flow chart ofFIG. 4will be discussed in reference to the system illustrated inFIG. 1. The embedded controller18invokes the feature enable stage36in step70when the printer12is powered-on. In step72, the embedded controller18verifies that the contents of the compact flash matches the machine type of the printer. In a preferred embodiment, this is determined from the file name and extension of compact flash. In the example above, assuming that the configured compact flash was inserted into a model infoprint85printer, then the embedded controller18would read the filename “PCLPS85.ef” and determine that the contents of the compact flash match the machine type, model85.

If the contents of the compact flash match the machine type and contains an initialized file, then in step74, the embedded controller18verifies that the encrypted keyword on the compact flash matches the encrypted keyword stored on the printer's12hard drive. If so, then in step76, the embedded controller18enables the feature16identified by the file, in this example “PCLPS.” If the machine type does not match in step72or the encrypted values do not match in step74, then no features16are enabled and the process ends.

A further aspect of the present invention is the ability to enable more than one feature16on the printer12. Referring again toFIG. 1, to enable an additional feature16on the printer12, another compact flash is installed in the second flash socket22bof the printer12. For example, assume that the customer has licensed a second feature16for enabling DBCS fonts, which are common to all printer models. An example of the contents of the second compact flash for enabling the DBCS fonts is as follows:File name: DBCSFONT.ffContents: Initial keyword 2

The configuration procedure is run with both compact flashes installed in the printer12. The configuration process is the same as described above. However, the keyword from the second compact flash is copied to the first compact flash, and the initialization stage30(seeFIG. 3) is performed as described. This results in the compact flash containing multiple files corresponding to different features16, each with customized keywords that have been encrypted for that particular printer12. After the second initialization, the first compact flash would contain the following files:File name: PCLPS85.efContents: Encrypted value for a combination of keyword 1 and the printer's serial numberRandomly generated noiseFile name: DBCSFONT.efContents: Encrypted value for a combination of keyword 2 and the printer's serial numberRandomly generated noise

After configuration, the second compact flash can be removed from the second resource socket22and discarded if desired, unless additional information required to run the feature16is resident on the compact flash. During the feature enable stage36(seeFIG. 3) when the printer12is powered on, the embedded controller18verifies that the encrypted values on the compact flash match the encrypted values stored in the printer12, and enables the features16listed on the compact flash accordingly.

According to the present invention, the methodology for printer feature licensing disclosed herein provides the following advantages:A single part (storage device) is associated with each feature16shipped in the printer12, which minimizes manufacturing logistics and provides effective means of control for licensing and royalties.Customers cannot reuse the compact flash in another printer12once the compact flash has been configured.Multiple features16can be installed on a single printer12over a period of time.The features16installed in a manufactured printer12are the same regardless of which features16are purchased by the customer.

The compact flash has the same format regardless of the features16purchased.The present invention makes it more difficult for customers to enable features16for which they should not have access.The integrity of distributing manufacturer or vendor software is improved.Allows the addition of feature16and control within the same framework without changes to the printer12.The methodology is scalable to all printers12with compact flash capabilities, and more particularly, the methodology is scalable to all devices with embedded controllers18and external resource capabilities.

The present invention has been described in accordance with the embodiments shown, and one of ordinary skill in the art will readily recognize that there could be variations to the embodiments, and any variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.