`(12) Patent Application Publication (10) Pub. No.: US 2008/0052698 A1
`(43) Pub. Date:
`Feb. 28, 2008
`Olson et al.
`
`US 2008.0052698A1
`
`(54)
`
`(75)
`
`PROVIDING FIRMWARE UPDATESTO
`PORTABLE MEDIA DEVICES
`
`Inventors:
`
`Kipley J. Olson, Mercer Island,
`WA (US); Dennis A. Kilerich,
`Kirkland, WA (US); Vlad
`Sadovsky, Redmond, WA (US);
`Kjersten Johansen Hayter,
`Issaquah, WA (US)
`Correspondence Address:
`SENNIGER POWERS (MSFT)
`ONE METROPOLITAN SQUARE, 16TH
`FLOOR
`ST. LOUIS, MO 63102
`
`(73)
`
`Assignee:
`
`MICROSOFT CORPORATION,
`Redmond, WA (US)
`
`(21)
`(22)
`
`Appl. No.:
`
`11/467,432
`
`Filed:
`
`Aug. 25, 2006
`
`Publication Classification
`
`(51) Int. Cl.
`G06F 9/44
`
`(2006.01)
`
`(52) U.S. Cl. ....................................................... 717/168
`
`ABSTRACT
`(57)
`A system for providing a firmware upgrade to a portable
`media device by comparing a version number of the firm
`ware on the portable media device to the version number of
`an available firmware upgrade. The available firmware
`upgrade is provided by the manufacturer of the portable
`media device or some other trusted Source and compiled in
`a firmware database. The firmware database is accessed
`when the portable media device is connected to the personal
`computing device. Additionally, a digital signature may be
`associated with a certified version of the media device
`firmware and used by a multimedia management application
`to verify the functionality of the portable media device.
`
`DEVICE
`CONNECTED
`
`/ 202
`
`-
`
`^
`
`CTIME PERIOD
`
`
`
`> TIME PERIOD - MF
`
`a 208
`GET FIRMWARE
`VERSION AND
`HARDWARE IDENTIFIER
`FROMDEVICE
`
`209
`SEND REQUEST
`TO FIRMWARE DB
`w
`RECEIVE FIRMWARE
`WERSONANDFIRMWARE
`LOCATION FROM
`FIRMWARE DB
`
`A 210
`
`211
`
`w
`STORE DATE IN
`DEVICE TABLE
`
`212 - - -
`IS FIRMWARE
`UP-TO-DATE?
`
`Y
`
`214 -
`
`N
`DOWNLOAD
`FIRMWARE UPDATE
`
`– 216
`UPDATE
`N
`FIRMWARE? -
`
`A 218
`COPY FIRMWARE
`UPDATE TO DEVICE
`a 220
`SIGNAL DEVICE TO
`APPLY UPDATE
`
`APPLE 1012
`
`1
`
`
`
`Patent Application Publication
`
`Feb. 28, 2008 Sheet 1 of 4
`
`US 2008/0052698 A1
`
`FIG. 1
`
`
`
`Firmware
`Database
`
`
`
`
`
`Personal
`Computing
`Device
`Multimedia
`Management ||
`Application
`
`Portable
`Media
`Device
`Firmware
`
`RAM -
`
`Media
`Storage
`
`114A
`
`Firmware
`updates
`
`FirmWare
`updates
`
`2
`
`
`
`Patent Application Publication
`
`Feb. 28, 2008 Sheet 2 of 4
`
`US 2008/0052698 A1
`
`FIG. 2
`
`
`
`
`
`
`
`GET FIRMWARE
`VERSION AND
`HARDWARE IDENTIFIER
`FROMDEVICE
`
`/ 209
`SEND REOUEST
`TO FIRMWARE DB
`
`A
`
`210
`
`RECEIVE FIRMWARE
`VERSION AND FIRMWARE
`LOCATION FROM
`FIRMWARE DB
`
`STORE DATE IN
`DEVICE TABLE
`
`DEVICE
`CONNECTED
`
`/ 202
`
`204
`
`< TIME PERIOD
`
`TIME SINCE
`SLAST CHECK -
`r > TIME PERIOD
`
`y
`
`-->
`212
`- IS FIRMWARE
`UP-TO-DATE? -
`
`
`
`DOWNLOAD
`FIRMWARE UPDATE
`
`216
`*
`N
`- UPDATE
`is FIRMWARE? -
`
`
`
`SIGNAL DEVICE TO
`APPLY UPDATE
`
`206
`
`
`
`
`
`
`
`
`
`3
`
`
`
`Patent Application Publication
`
`Feb. 28, 2008 Sheet 3 of 4
`
`US 2008/0052698 A1
`
`FIG. 3
`
`
`
`TESTING FIRMWARE
`FUNCTIONALITY
`
`Y.
`
`- FIRMWARE
`N
`FUNCTIONALITY >
`OK? -
`
`Y
`
`/ 305
`DONE
`
`GENERATE DIGITAL
`SIGNATURE
`
`ENCRYPT DIGITAL
`SIGNATURE W/
`PRIVATE KEY
`
`PROVIDE
`MANUFACTURER
`DIGITAL SIGNATURE
`
`COPY DIGITAL
`SIGNATURE TO
`SUBSEQUENTLY
`MANUFACTURED DEVICES
`
`4
`
`
`
`Patent Application Publication
`
`Feb. 28, 2008 Sheet 4 of 4
`
`US 2008/0052698 A1
`
`FIG. 4
`
`A 402
`
`DEVICE CONNECT
`
`/ 404
`
`RETRIEVE DIGITAL SIGNATURE
`FROMDEVICE
`
`RETRIEVE IDENTIFYING
`INFORMATION
`FROMDEVICE
`
`/ 406
`
`
`
`
`
`/ 408
`
`410
`
`DECRYPT DIGITAL SIGNATURE
`WITH PUBLIC KEY
`
`GENERATE DIGITAL
`SIGNATURE FROM RETRIEVED
`INFORMATION
`
`412
`
`
`
`COMPAREDECRYPTED DIGITAL
`SIGNATURE TO GENERATED
`DIGITAL SIGNATURE TO VERIFY
`DEVICE
`
`/ 414
`
`y 418
`
`
`
`N
`
`DISABLE
`FEATURES
`
`-
`
`^
`
`DIGITALs
`SIGNATURE
`VALID? -
`
`- -
`
`
`
`A 416
`
`ENABLE FEATURES
`
`5
`
`
`
`US 2008/0052698 A1
`
`Feb. 28, 2008
`
`PROVIDING FRMIWARE UPDATESTO
`PORTABLE MEDLA DEVICES
`
`BACKGROUND
`0001. A wide variety of portable media devices are
`available on the market. These portable media devices are
`capable of storing and playing music, video, still photos and
`other media files. Because portable media devices are com
`pact, typically small enough to fit in a pocket, the devices are
`convenient to store and carry audio, video, photos, and other
`files while walking, exercising, traveling, commuting to
`work or school, and driving. Portable media devices are
`often connected to a personal computing device through a
`USB (Universal Serial Bus), wireless, or other connection
`and managed by a multimedia management application
`executing on the personal computing device. Once con
`nected, the user may transfer digital photos, music and video
`files between the person computing device and the portable
`media device.
`0002 The portable media devices include a firmware,
`which is a software program or set of instructions pro
`grammed on the portable media device. Firmware provides
`the necessary instructions for operating the portable media
`device and for allowing the portable media device to com
`municate with other devices, such as the personal computing
`device. Firmware can be thought of as semi-permanent
`because it will remain the same unless it is updated. For
`example, the firmware of the portable media device may
`need to be updated in order for it to work with a computer
`configured with a new version of an operating system or to
`increase or improve the functionality of the portable media
`device.
`0003. The firmware is provided by the manufacturer of
`the portable media device. Typically, each model of portable
`media device will have a unique firmware. Periodically, as
`the firmware is updated, the manufacturer of the portable
`media device or some other trusted source will release a new
`or updated version of the firmware. For example, manufac
`turers may make firmware updates available by posting a
`firmware update program or files on the internet and allow
`ing the user to download the update to their personal
`computing device. Firmware updates are applied to the
`portable media device by either (1) executing the update
`program on the personal computing device while the por
`table media device is connected or (2) by copying the
`download firmware update from the personal computing
`device to the connected portable media device and signaling
`the portable media device to install the update. Because
`users are not automatically notified of firmware updates,
`many users are unaware when a new firmware update is
`available for their device. Furthermore, for those users who
`become aware of a new firmware update, the update process
`is often complicated and daunting.
`
`SUMMARY
`0004 Embodiments of the invention include providing a
`firmware upgrade to a portable media device by comparing
`a version number of the firmware installed on the portable
`media device to the version number of an available firmware
`upgrade when the portable media device is connected to a
`personal computing device. The available firmware
`upgrades provided by the manufacturers of the portable
`media devices or other trusted Sources are compiled in a
`
`firmware database. The firmware database is accessed by the
`personal computing device when the portable media device
`is connected to the personal computing device. In an
`embodiment, a digital signature may be associated with a
`certified version of the portable media device firmware and
`used by a multimedia management application to Verify the
`functionality of the portable media device.
`0005. This summary is provided to introduce a selection
`of concepts in a simplified form that are further described
`below in the Detailed Description. This Summary is not
`intended to identify key features or essential features of the
`claimed Subject matter, nor is it intended to be used as an aid
`in determining the scope of the claimed Subject matter.
`0006. Other features will be in part apparent and in part
`pointed out hereinafter.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0007 FIG. 1 is a block diagram illustrating an example of
`a suitable computing system environment in which the
`invention may be implemented.
`0008 FIG. 2 is a flowchart of an exemplary embodiment
`of a method for upgrading the firmware of a portable media
`device.
`0009 FIG. 3 is a flowchart of an exemplary embodiment
`of a method for certifying the firmware of a portable media
`device.
`0010 FIG. 4 is a flowchart of an exemplary embodiment
`of a method for verifying the certification of a firmware of
`a portable media device.
`0011 Corresponding reference characters indicate corre
`sponding parts throughout the drawings.
`
`DETAILED DESCRIPTION
`0012 FIG. 1 is a block diagram illustrating one example
`of a Suitable computing environment in which a firmware
`update of a portable media device 102 may be implemented.
`The portable media device 102 is an electronic device which
`is capable of storing and playing files in one or more media
`formats. The portable media device 102 includes media
`storage 120 (e.g. hard disk or flash memory) for storing
`multimedia files. For example, media storage 120 includes
`ROM, EEPROM, flash memory or other memory technol
`ogy, optical disk storage, magnetic disk storage or other
`magnetic storage devices, or any other medium that may be
`used to store the desired information and that may be
`accessed by the portable media device 102. The portable
`media devices 102 may also include RAM (Random Access
`Memory) 118.
`0013 Portable media players are often versatile, being
`able to load and play different formats of video, pictures, and
`recorded TV. Examples of media formats include: MPEG
`(Moving Picture Experts Group), DivX, XviD, MP3
`(MPEG-1 Audio Layer 3), WAV (Waveform audio format),
`Ogg Vorbis, JPEG (Joint Photographic Experts Group),
`WMA (Windows Media Audio), WMV (Windows Media
`Video), ASF (Advanced Systems Format or Advanced
`Streaming Format) and GIF (Graphics Interchange Format).
`Portable media devices 102 may include the ability to record
`Video and audio. Additionally, some portable media devices
`102 include card readers for removable media for data
`storage and transfer. Examples of removable media include:
`SD (Secure Digital) and MMC (MultiMediaCard). Portable
`media devices 102 may also store files other than multime
`
`6
`
`
`
`US 2008/0052698 A1
`
`Feb. 28, 2008
`
`dia files such as data files, computer programs, game files,
`word processing files and text files.
`0014 Portable media devices 102 are often connected to
`a personal computing device 104 through a USB connection
`and managed by a multimedia management application 106
`executing on the personal computing device 104. Alterna
`tively, the portable media device 102 is connected to the
`personal computing device 104 through a wired network,
`direct-wired connection, or wireless connection, such as
`WiFi, Bluetooth, acoustic, RF, and infrared. The multimedia
`management application 106 manages multimedia files on
`the personal computing device 104 and the portable media
`device 102.
`0015 FIG. 1 shows several examples of a general pur
`pose computing devices in the form of computers 104,112.
`116A, 116B. In an embodiment of the invention, a computer
`is suitable for use in the other figures illustrated and
`described herein. The computer has one or more processors
`or processing units and a system memory. The computer
`typically has at least Some form of computer readable media.
`Computer readable media, which include both volatile and
`nonvolatile media, removable and non-removable media,
`may be any available medium that may be accessed by
`computer. By way of example and not limitation, computer
`readable media comprise computer storage media and com
`munication media. Computer storage media include Volatile
`and nonvolatile, removable and non-removable media
`implemented in any method or technology for storage of
`information such as computer readable instructions, data
`structures, program modules or other data.
`0016 For example, computer storage media include
`RAM, ROM, EEPROM, flash memory or other memory
`technology, CD-ROM, digital versatile disks (DVD) or other
`optical disk storage, magnetic cassettes, magnetic tape,
`magnetic disk storage or other magnetic storage devices, or
`any other medium that may be used to store the desired
`information and that may be accessed by computer. Com
`munication media typically embody computer readable
`instructions, data structures, program modules, or other data
`in a modulated data signal Such as a carrier wave or other
`transport mechanism and include any information delivery
`media. Those skilled in the art are familiar with the modu
`lated data signal, which has one or more of its characteristics
`set or changed in Such a manner as to encode information in
`the signal. Wired media, such as a wired network or direct
`wired connection, and wireless media, Such as acoustic, RF,
`infrared, and other wireless media, are examples of com
`munication media. Combinations of any of the above are
`also included within the scope of computer readable media.
`0017 Referring again to FIG. 1, the portable media
`device 102 also includes firmware 108. Firmware 108 is a
`set of instructions programmed for the portable media
`device 102. The firmware 108 is the operating system of the
`portable media device 102 which provides the necessary
`instructions for the device functionality. For example, the
`firmware 108 provides instructions for playing media files
`and communicating with other devices, such as the personal
`computing device 104. The firmware 108 of the portable
`media device 102 may be updated to interface with a new
`version of an operating system installed on the personal
`computing device 104, to Support a new media format, or to
`provide increased or improved functionality of the portable
`media device 102. The system memory of the portable
`media device 102 includes storage media in the form of
`
`removable and/or non-removable, volatile and/or nonvola
`tile memory. In an embodiment, the firmware 108 is stored
`in a flash ROM (Read Only Memory) of the portable media
`device 102. While ROM is “read-only memory,” flash ROM
`can be erased and rewritten because it is actually a type of
`flash memory. The firmware 108 of the portable media
`device 102 remains the same unless it is updated or
`upgraded.
`(0018. The firmware 108 is provided by a trusted source
`such as the manufacturer of the portable media device 102.
`Typically, each model of portable media device 102 will
`have a unique firmware 108. Furthermore, as the firmware
`108 is updated, a version number is associated with the
`firmware 108. In an embodiment, the version number is an
`increasing value that is incremented as changes are made to
`the firmware 108. Thus, a firmware 108 update is available
`for the portable media device 102 if the firmware version
`number of the firmware 108 installed on the portable media
`device 102 is less than the version number of the latest
`firmware 108 release. In an embodiment, the manufacturer
`of the portable media device 102 or other trusted source
`allows the user to download the firmware update program or
`files 114A, 114B from servers 116A, 116B to the personal
`computing device 104 over the internet or through other
`communication networks.
`0019. A firmware database 110 is provided to inform the
`user when a new firmware update 114A, 114B has been
`released by the manufacturer of the portable media device
`102 or other trusted source. The firmware database 110 is
`associated with a server 112. The firmware database 110
`contains entries that associate models of portable media
`devices 102 to the most current firmware version. In an
`embodiment, an entry in the firmware database 110 includes
`a model identifier associated with the portable media device,
`the latest release firmware version number and a location or
`address of the firmware update 114A, 114B. In an alternative
`embodiment, an entry in the firmware database 110 includes
`a hardware identifier associated with the portable media
`device, the latest release firmware version number and a
`location or address of the firmware update 114A, 114B. In an
`embodiment, the location of the firmware update 114A,
`114B is stored in a URL (Uniform Resource Locator)
`format.
`(0020. The computers and servers 104, 112, 116A, 116B
`may operate in a networked environment using logical
`connections to one or more remote computers. The remote
`computer may be a personal computer, a server, a router, a
`network PC, a peer device or other common network node,
`and typically includes many or all of the elements described
`above relative to computers and servers 104, 112, 116A,
`116B. The logical connections depicted in FIG. 1 include a
`local area network (LAN) and a wide area network (WAN).
`but may also include other networks. LAN and/or WAN may
`be a wired network, a wireless network, a combination
`thereof, and so on. Such networking environments are
`commonplace in offices, enterprise-wide computer net
`works, intranets, and global computer networks (e.g., the
`Internet).
`0021. In FIG. 2 a method is shown for upgrading the
`firmware 108 of the portable media device 102 utilizing the
`firmware database 110 according to an embodiment of the
`invention. At 202, the portable media device 102 is con
`nected to the multimedia management application 106
`executing on the personal computing device 104. In an
`
`7
`
`
`
`US 2008/0052698 A1
`
`Feb. 28, 2008
`
`embodiment, the portable media device 102 is connected
`through USB interface of the personal computing device
`104. In an alternative embodiment, the portable media
`device 102 is connected to the personal computing device
`104 through a wireless connection.
`0022. At 204, the multimedia management application
`106 determines the last time the portable media device 102
`was checked for a firmware update. In an embodiment, the
`time of the last update check will be stored in the device
`table in the media library of the multimedia management
`application 106. The multimedia management application
`106 checks for the firmware update if a specified period time
`has elapsed since the last check. In an embodiment, the
`firmware check occurs if it has been more than 30 days since
`the last check. If the last firmware check was made within
`the specified period of time, the method terminates at 206.
`Alternatively, the user has the option of overriding the
`multimedia management application 106 to check for firm
`ware updates even if the specified period of time since the
`last firmware check has not elapsed.
`0023. If the specified period of time since the last firm
`ware check has elapsed, at 208, the firmware version number
`and hardware identifier are retrieved from the portable
`media device 102. In another embodiment, the firmware
`version number and hardware identifier are retrieved from a
`cache, data structure or other location available to the
`multimedia management application 106. At 209, the mul
`timedia management application 106 sends a request to the
`firmware database 110. In an embodiment, the request
`includes the hardware identifier from the portable media
`device 102. At 210, the multimedia management application
`106 receives the latest version number of firmware available
`for the portable media device 102 and the location or address
`of the firmware update 114A, 114B from firmware database
`110. In an embodiment, the address is in a Universal
`Resource Locator (URL) format.
`0024. In an alternative embodiment, the multimedia man
`agement application 106 initiates a web request to download
`an XML (Extensible Markup Language) document contain
`ing the latest firmware update information. The URL used
`for the web request will go through a standard redirector. A
`redirector is software on a server computer that intercepts
`request for information and, when appropriate, redirects
`them to other servers on the network. In this embodiment,
`the URL for the request will be constructed as follows:
`
`http://www.a.com/firmwareupdate?locale=sLocale&geoid=
`sGeoid&version=SVersion &userlocale=sUserLocale&hardwareID=
`sHardwareID&firmwareversion=SEirmwareVersion&vendor=
`sVendor&modelname=sModelNamemodelname=sModelName
`
`where SLocale is the system locale of the operating system
`of the personal computing device 104; SGeoid is unique
`identification number for a geographical region, country,
`city, or location of the operating system of the personal
`computing device 104; sVersion is the version of multimedia
`management application 106; sUserLocale is the locale of
`the current user; shardwareID is the hardware identifier of
`the portable media device 102; slfirmwareVersion is the
`firmware version number returned from portable media
`device 102; and sVendor is the manufacturer identifier
`returned from portable media device 102. In an embodiment,
`the hardware identifier of the portable media device 102
`
`includes a vendor identifier (VID) and a product identifier
`(PID). In an alternative embodiment, the hardware identifier
`includes a Revision in addition to the VID and the PID.
`0025. The redirector uses the parameters from the request
`to lookup the manufacturer URL in the firmware database
`110. If these parameters do not resolve to a valid firmware
`database 110 entry, an empty XML document will be
`returned and the method will terminate at 206. Alternatively,
`if the parameters do not resolve to a valid firmware database
`110 entry, an error will be returned. If a valid firmware
`database 110 entry is found, the response to the web request
`will be returned in an XML document formatted as follows:
`
`<?xml version=“1.0 encoding==“UTF-16'2>
`<firmwareUpdate HardwareID='rHardwareID Version=rVersion'
`Wendor=rVendor Model-rName Date=rDate'
`DownloadURL=rDownloadURL InfoURL=rInfoURL> rDescription
`<ffirmwareUpdates
`
`where rhardwareID is the hardware identifier; rVersion is
`the version of firmware update; rVendor is the Vendor or
`manufacturer name; rModel is the Model name or identifier;
`date is date of firmware update; rDownloadURL is the URL
`to download the update package from; rInfoURL is a URL
`to web site that provides more information on the firmware
`update; and rDescription is the description of the firmware
`update.
`0026. At 211, the multimedia management application
`106 stores the date the request to the firmware database 110
`was sent. In an embodiment, the date of the last request sent
`to the firmware database 110 is stored in a device table in a
`media library of a multimedia management application 106.
`At 212, the multimedia management application 106 com
`pares the firmware version of the firmware 108 installed on
`the portable media device 102 to the firmware version
`obtained from the firmware database 110. The firmware
`upgrade is selectively applied to the connected portable
`media device 102 as a function of the firmware upgrade
`version number obtained from the firmware database 110
`and the installed firmware version number. If the firmware
`108 installed on the portable media device 102 is up to date,
`the method terminates at 206. If the firmware version
`installed on the portable media device 102 is out of date, the
`multimedia management application 106 initiates a down
`load of the firmware update 114A from the servers 116A at
`214. In an embodiment, a dialog box is displayed to the user
`on the personal computing device 104. The dialog box
`allows the user to view the progress of the download and to
`cancel the download, if desired. In an embodiment, the
`firmware update 114A is downloaded from the location
`specified by the rDownloadURL field of the response XML
`document. In an alternative embodiment, if the rDownloa
`dURL field of the response XML document is blank, the user
`is prompted to visit the web site of a trusted source (e.g. the
`manufacturer) to download the firmware update 114A. If the
`user responds “yes”, a web browser will be launched to the
`URL specified by the rinfoURL field of the response XML
`document and the method will terminate at 216. In other
`embodiments, the rinfoURL field provides a link to a
`detailed explanation of the firmware upgrade even if the
`rDownloadURL is not blank.
`0027. At 216, the user is prompted if they would like to
`install the firmware update 114A portable media device 102.
`
`8
`
`
`
`US 2008/0052698 A1
`
`Feb. 28, 2008
`
`In an embodiment, the downloaded firmware update 114A
`file is digitally signed to verify it is from a trusted source
`before the user is prompted to install the upgrade. In an
`alternative embodiment, the description field from the XML
`document is displayed to the user in the dialog box on the
`personal computing device 104 and the user is given three
`options: “yes”, “no', and “not right now”. If the user
`responds “not right now at 216, the method terminates at
`206 and the user will be prompted again to install the
`firmware update 114A at another time when the portable
`media device 102 is connected to the personal computing
`device 104.
`0028. If the user responds “no” at 216, the method
`terminates at 206 and the user will not be prompted again to
`install the firmware update 114A the next time the portable
`media device 102 is connected to the personal computing
`device 104. In an alternative embodiment, the method will
`continue to download the firmware update 114A even if the
`user replies no. In this embodiment, the method stores the
`firmware update 114A, if space is available on the personal
`computing device 104, and queries the user again the next
`time the portable media device 102 is connected to the
`personal computing device 104. In this embodiment, the
`method checks if the firmware update 114A is available
`locally on the personal computing device 104 before initi
`ating the download from server 116A at 214.
`0029. If the user responds yes at 216, the firmware update
`114A is copied to the portable media device 102 at 218. In
`an embodiment, the firmware update 114A file is down
`loaded in a compressed and archived format, such as a ZIP
`archives. Each file in the archive is unpacked, copied to the
`connected portable media device 102, and tagged as a
`firmware update. Alternatively, the files are copied to the
`portable media device 102 and each file will be tagged as a
`firmware update per a Media Transfer Protocol such as MTP.
`MTP is a protocol for transferring media files and associated
`metadata to/from portable media devices, with optional
`additional Support for remote control of the device, reading
`and setting of portable media device parameters such as
`special DRM (Digital Rights Management)-related device
`parameters for protected content. In other alternative
`embodiments, the firmware update file is transferred to the
`portable media device per the Picture Transfer Protocol
`(PTP), PTP/IP, and other related protocols for transferring
`media files and associated metadata to/from portable media
`devices. The dialog box described above shows progress of
`the overall transfer of the unpacked firmware update 114A
`files. If the user hits cancel at this time, any firmware update
`files previously copied to the portable media device 102 will
`be deleted.
`0030. At 220, the multimedia management application
`106 signals the portable media device 102 to apply the
`firmware update 114A files. In an embodiment, the portable
`media device 102 is notified that there are new firmware
`updates are available. Upon receiving this notification, the
`portable media device 102 disconnects (logically, not physi
`cally) from the personal computing device 104. A prompt is
`displayed to the user on the portable media device 102
`asking for permission to apply the new updates. If the user
`responds yes, the portable media device 102 will upgrade
`itself using the files found in the update folder. When
`firmware update is complete, the portable media device 102
`
`will re-connect (logically, not physically) to the multimedia
`management application 106 of the personal computing
`device 104.
`0031
`FIG. 3 illustrates an embodiment of a method of
`verifying the firmware 108 provided by a manufacturer of
`portable media device 102 or other trusted source by a
`certifying agency according to the invention. For example,
`in an embodiment, the developer of the multimedia man
`agement application 106 may want to verify that the portable
`media device's 102 firmware 108 has the functionality to be
`compatible with the multimedia management application
`106. In an alternative embodiment, for security purposes, the
`multimedia management application 106 may want to con
`firm the firmware installed on the portable media device 102
`was provided by the manufacturer of the portable media
`device or other trusted source and not by some other
`malicious third party.
`0032. At 302, the portable media device 102 with the
`installed firmware 108 is tested by the multimedia manage
`ment application 106 developers or some other certifying
`agency for a particular degree of functionality or a minimum
`set of requirements. In an embodiment, portable media
`devices 102 that pass the testing are allowed to use a logo
`indicating to the user that the portable media device 102 is
`compatible with similarly logo-ed digital media stores and
`Supports music and/or movies and video.
`0033. At 303, a check is made to determine if the
`firmware 108 has the required functionality. If the firmware
`108 does not have the required functionality, the method
`completes at 305. If the firmware 108 has the required
`functionality, at 304, a digital signature is generated. In an
`embodiment, the digital signature is a hash generated from
`the portable media device 102 manufacturer identifier and
`the portable media device 102 hardware identifier. In an
`alternative embodiment, the digital signature is a hash
`generated from the firmware version in addition to the
`portable media device 102 manufacturer identifier and the
`portable media device 102 hardware identifier. At 306, the
`digital signature is encrypted. In an embodiment, the digital
`signature is encrypted with a private key.
`0034. At 308, the encrypted digital signature is provided
`to the manufacturer of the portable media device 102. At
`310, the manufacturer copies the encrypted digital signature
`to subsequently manufactured portable media devices 102
`with the firmware 108 that was tested at 302.
`0035 FIG. 4 illustrates an embodiment of the invention
`for verifying the firmware 108 installed on the portable
`media device 102 was verified under the method illustrated
`in FIG.3 by the multimedia management application 106. At
`402, the portable media device 102 connects to the personal
`computing device 104. At 404, the digital signature is
`received from the portable media device 102. At 406, the
`digital signature is unencrypted at 304. In an embodiment,
`the digital signature is unencrypted using the public key of
`the verifying application. In this embodiment, the public key
`corresponds to the private key used to encrypt the digital
`signature at 306.
`0036. At 408, identifying information is received from
`the portable media device. In an embodiment, the hardware
`identifier and the firmware version are received from the
`portable media device 102. Then, at 410, a digital signature
`is generated from the retrieved information. In an embodi
`
`9
`
`
`
`US 2008/0052698 A1
`
`Feb. 28, 2008
`
`ment, the digital signature is a hash generated from the
`received hardware identifier and the firmware version of the
`portable media device 102.
`0037. At 412, a comparison of the digital signature
`decrypted at 406 and the digital signature generated at 410
`is made. In an embodiment, features of the multimedia
`management application 106 are selectively enabled by the
`personal computing device 104 as a function of the received
`the digital signature, the hardware identifier and the firm
`ware version number. At 414, if the digital signature
`decrypted at 406 matches the digital signature generated at
`410, features of the multimedia management application 106
`are enabled at 416, such as the firmware update shown in
`FIG. 2. If not, features of the multimedia management
`application 106 are not allowed or disabled at 418.
`0038 Referring again to FIG. 1, for purposes of illustra
`tion, programs and other executable program components,
`Such as the multimedia management application 106, are
`illustrated herein as discrete blocks. It is recognized, how
`ever, that such programs and components reside at various
`times in different storage components of the computer