throbber
(19) United States
`(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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket