Electronic devices are becoming ubiquitous in modern society. Digital music players, electronic televisions, portable digital video disc (DVD) players, desktop computer systems, etc. are commonplace, software-controlled systems, that are in use every day. Furthermore, devices that were previously and primarily mechanically controlled systems, such as refrigerators, dishwashers, etc., are more frequently being controlled by software executed on a microprocessor. Software, however, is often subject to bugs. These errors, flaws, or mistakes in a software program may prevent the program from working correctly, or cause the software program to produce an incorrect or non-optimal result.
Delivering a software patch to a computer system, or a portable device which may easily be connected to a computer system, may be a simple task. However, a problem arises with current consumer electronics devices, such as televisions, car stereos, refrigerators, etc., which have limited to no portability. Such consumer electronic devices often are controlled by proprietary software, lack a simple way of delivering an upgrade (e.g., upgrading a personal computer program is usually achieved by downloading a patch over the internet and having the patch automatically installed by the personal computer), and software systems in consumer electronics devices are usually inaccessible to end users. Furthermore, such devices are less portable and therefore are less likely to receive upgrades, patches, and new software functionality.