{"id":4122,"date":"2012-05-13T17:57:27","date_gmt":"2012-05-13T07:57:27","guid":{"rendered":"http:\/\/mingersoft.com\/blog\/?p=4122"},"modified":"2019-02-23T20:12:14","modified_gmt":"2019-02-23T09:12:14","slug":"hacking-a-burners-firmware","status":"publish","type":"post","link":"https:\/\/mingersoft.com\/blog\/2012\/05\/hacking-a-burners-firmware\/","title":{"rendered":"Hacking a Burner&#8217;s Firmware"},"content":{"rendered":"\n<p>Following on from <a title=\"Not All Optical Discs Are Created Equally | Boydo's Tech Talk\" href=\"http:\/\/mingersoft.com\/blog\/2012\/05\/not-all-optical-discs-are-created-equally\/\" target=\"_blank\" rel=\"noopener noreferrer\">yesterday&#8217;s post<\/a>&nbsp;I briefly outlined a problem that I was having with my <a title=\"LG GGW-H20L Super-Multi Blu-ray Drive Product Support\" href=\"http:\/\/www.lg.com\/us\/support-product\/lg-GGW-H20L\" target=\"_blank\" rel=\"noopener noreferrer\">LG GGW-H20L Super-Multi Blu-ray drive<\/a> burning to a Shintaro single layer BD-R (Blu-ray disc recordable).<\/p>\n\n\n\n<p>In a nutshell, it seemed that my burner did not know how to handle the Shintaro BD-R discs when it came to burning so I thought I&#8217;d have a go at seeing if I could fix this myself after my attempt to upgrade my burner to the latest firmware (being YL07 at the time of writing) didn&#8217;t fix the problem<\/p>\n\n\n\n<p>First up, I had to get the media identiciation code of the Shintaro BD-R I was using. I used an application called <a title=\"DVD Identifier | CD Freaks\" href=\"http:\/\/dvd.identifier.cdfreaks.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">DVD Identifier<\/a> to do the job. It&#8217;s just a matter of popping in the blank disc, running the application and clicking the <strong>Identify<\/strong>&nbsp;button on the BD-R\/-RE tab.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/DVD-Identifier.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"631\" height=\"700\" src=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/DVD-Identifier.png?resize=631%2C700\" alt=\"DVD Identifier - Shintaro BD-R Results\" class=\"wp-image-4123\" srcset=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/DVD-Identifier.png?w=631&amp;ssl=1 631w, https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/DVD-Identifier.png?resize=270%2C300&amp;ssl=1 270w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>As we can see, there&#8217;s quite a bit of information there including burn speeds supported by the disc, number of layers, capacity and type. However, the details in which I was most interested were the <strong>Manufacturer ID<\/strong>&nbsp;(&#8220;CMCMAG&#8221;) and <strong>Media Type ID<\/strong> (&#8220;BA5&#8221;). We&#8217;ll see why later on.<\/p>\n\n\n\n<p>The next step was to extract the firmware from my burner so I could examine its contents. Sounds scary and perhaps rightly so for people who don&#8217;t normally poke around in the nether regions of device memory! The utility I used for this is called <a title=\"Devilsclaw's Flasher | SourceForge\" href=\"http:\/\/sourceforge.net\/projects\/flasher\/files\/current_stable\/\" target=\"_blank\" rel=\"noopener noreferrer\">Flasher<\/a> (otherwise knows as Devilsclaw&#8217;s Flasher). There are versions available for:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Linux (32-bit),<\/li><li>Mac OS X,<\/li><li>Windows (32-bit and 64-bit).<\/li><\/ul>\n\n\n\n<p>I used the 64-bit Windows version and ran it from an <a title=\"Open an Administrative Command Prompt in Windows Vista and Windows 7 | Boydo's Tech Talk\" href=\"http:\/\/mingersoft.com\/blog\/2011\/12\/open-an-administrative-command-prompt-in-windows-vista-and-windows-7\/\" target=\"_blank\" rel=\"noopener noreferrer\">administrative command line<\/a> to make sure I didn&#8217;t run into any problems with being unable to access my burner&#8217;s internal memory. I then executed the following commands after navigating to the folder containing the flasher (and note case sensitivity):<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>flasher -D<ul>\n<li>this gives you a list of all optical drives in the computer and their ID numbers.<\/li>\n<\/ul><\/li><li>flasher -d x -m main_firmware.bin<ul>\n<li>this contains the Manufacturer ID and Media Type ID data for the drive &#8211; replace x in the command with the ID number obtained in the last step corresponding with the drive from which you want to extract firmware.<\/li>\n<\/ul><\/li><\/ul>\n\n\n\n<p>After a while the utility should have done its job.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Flasher-Extract-Burner-Firmware.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"342\" src=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Flasher-Extract-Burner-Firmware.png?resize=677%2C342\" alt=\"Flasher - Extract Burner Firmware\" class=\"wp-image-4124\" srcset=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Flasher-Extract-Burner-Firmware.png?w=677&amp;ssl=1 677w, https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Flasher-Extract-Burner-Firmware.png?resize=300%2C151&amp;ssl=1 300w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Don&#8217;t close the command prompt as you will need it later on.<\/p>\n\n\n\n<p>The next step is to check out the extracted firmware with a hex editor and I used <a title=\"Hex Workshop | BreakPoint Software\" href=\"http:\/\/www.bpsoft.com\/downloads\/\" target=\"_blank\" rel=\"noopener noreferrer\">Hex Workshop<\/a>. Fire it up and open up the main_firmware.bin file that was extracted in the last step. We want to do a text search for the Manufacturer ID (CMCMAG) in the file which you can do as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Hit Ctrl + F on the keyboard,<\/li><li>On the <strong>Criteria<\/strong>&nbsp;tab select <strong>Text String<\/strong>&nbsp;from the drop down menu,<\/li><li>In the <strong>Value<\/strong>&nbsp;box type in &#8220;CMCMAG&#8221;,<\/li><li>Click <strong>OK<\/strong>,<\/li><li>The first matching value will be highlighted and in its vicinity you should also find something resembling the <strong>Media Type ID<\/strong>&nbsp;(something similar to &#8220;BA5&#8221; that we identified for the Shintaro disc that started this exercise),<\/li><li>Hit F3 if you don&#8217;t find the exact Media Type ID or something close to it.<\/li><\/ul>\n\n\n\n<p>In this example, the sixth hit found something of interest:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Hex-Workshop-GGW-H20L-YL07-Firmware-Typo.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"847.5\" height=\"548\" src=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Hex-Workshop-GGW-H20L-YL07-Firmware-Typo-1024x662.png?resize=847.5%2C548\" alt=\"Hex Workshop - GGW-H20L YL07 Firmware Typo\" class=\"wp-image-4125\" srcset=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Hex-Workshop-GGW-H20L-YL07-Firmware-Typo.png?resize=1024%2C662&amp;ssl=1 1024w, https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Hex-Workshop-GGW-H20L-YL07-Firmware-Typo.png?resize=300%2C194&amp;ssl=1 300w, https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Hex-Workshop-GGW-H20L-YL07-Firmware-Typo.png?w=1777&amp;ssl=1 1777w, https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Hex-Workshop-GGW-H20L-YL07-Firmware-Typo.png?w=1695&amp;ssl=1 1695w\" sizes=\"auto, (max-width: 847px) 100vw, 847px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Eleven characters along from the sixth hit is the text &#8220;BB5&#8221; which looks like a <strong>Media Type ID<\/strong>. This text&nbsp;is odd as the two prior references to the <strong>Manufacturer ID<\/strong>&nbsp;of &#8220;CMCMAG&#8221; had <strong>Media Type IDs<\/strong>&nbsp;of &#8220;BAx&#8221; where x was a number. Potentially, the &#8220;BB5&#8221; is a typo and was meant to be &#8220;BA5&#8221; so I am going to try changing it to &#8220;BA5&#8221; and save the firmware file under a new filename in the same folder like &#8220;main_firmware_new.bin&#8221;.<\/p>\n\n\n\n<p>So now, we need to flash the firmware to our drive. Needless to say you should bear in mind the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong style=\"color: #ff0000;\">Updating your burner&#8217;s firmware has the potential to really mess up your burner from minor weird behaviour through to complete lack of operation,<\/strong><\/li><li><strong style=\"color: #ff0000;\"><strong><strong>Uploading unofficial firmware can void your burner&#8217;s warranty,<\/strong><\/strong><\/strong><\/li><li><span style=\"color: #ff0000;\"><strong>Don&#8217;t turn off the computer while the firmware is uploading,<\/strong><\/span><\/li><li><span style=\"color: #ff0000;\"><strong><strong>Updating your burner&#8217;s firmware has the potential to really mess up your burner from minor weird behaviour through to complete lack of operation (yes, I&#8217;m saying this again).<\/strong><\/strong><\/span><\/li><\/ul>\n\n\n\n<div>To upload the firmware, go back to the command prompt window and type in the following command:<\/div>\n\n\n\n<div>\n<ul>\n<li>flasher -d x -f main_firmware_new.bin<\/li>\n<\/ul>\n<p><\/p><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Flasher-Upload-Updated-Burner-Firmware.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"342\" src=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Flasher-Upload-Updated-Burner-Firmware.png?resize=677%2C342\" alt=\"Flasher - Upload Updated Burner Firmware\" class=\"wp-image-4128\" srcset=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Flasher-Upload-Updated-Burner-Firmware.png?w=677&amp;ssl=1 677w, https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/Flasher-Upload-Updated-Burner-Firmware.png?resize=300%2C151&amp;ssl=1 300w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>During flashing of the updated firmware, the light on your burner should flash.<\/p>\n\n\n\n<p>However, if the process failed to kick off, then you may need to update the checksum of your modified firmware file by typing the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> flasher &#8211;checksum main_firmware_new.bin <\/li><\/ul>\n\n\n\n<p>You should then be able flash the modified firmware.<\/p>\n\n\n\n<p>After flashing, you may find that the drive may have also ejected the tray and&nbsp;is now unresponsive. Don&#8217;t be alarmed, just shut down your computer (i.e. power it off, not just a reboot) and it should come good during the subsequent boot up. The tray should also retract by itself by you can manually retract it yourself at this point by pushing the button on the front of the drive.<\/p>\n\n\n\n<p>Once back up and running, the true test is in burning to our problematic disc. So how did I go?<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/CDBurnerXP-Successful-Burn.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"595\" height=\"345\" src=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/CDBurnerXP-Successful-Burn.png?resize=595%2C345\" alt=\"CDBurnerXP - Successful Burn\" class=\"wp-image-4127\" srcset=\"https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/CDBurnerXP-Successful-Burn.png?w=595&amp;ssl=1 595w, https:\/\/i0.wp.com\/mingersoft.com\/blog\/wp-content\/uploads\/2012\/05\/CDBurnerXP-Successful-Burn.png?resize=300%2C173&amp;ssl=1 300w\" sizes=\"auto, (max-width: 595px) 100vw, 595px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Well, my burn actually managed to get out of the starting blocks which made a welcome change and the whole disc managed to burn successfully, In fact, I have now burnt to three of the Shintaro discs without a problem at all &#8211; not a bad result!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Following on from yesterday&#8217;s post&nbsp;I briefly outlined a problem that I was having with my LG GGW-H20L Super-Multi Blu-ray drive burning to a Shintaro single layer BD-R (Blu-ray disc recordable). In a nutshell, it seemed that my burner did not know how to handle the Shintaro BD-R discs when it came to burning so I &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/mingersoft.com\/blog\/2012\/05\/hacking-a-burners-firmware\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[97,103,95,96,94,92,18],"tags":[2267,926,1908,2262],"class_list":["post-4122","post","type-post","status-publish","format-standard","hentry","category-bd-rom","category-blu-ray","category-cd-rom","category-dvd-rom","category-optical","category-storage","category-technology","tag-blu-ray","tag-firmware","tag-lg","tag-optical","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/posts\/4122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/comments?post=4122"}],"version-history":[{"count":2,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/posts\/4122\/revisions"}],"predecessor-version":[{"id":6829,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/posts\/4122\/revisions\/6829"}],"wp:attachment":[{"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/media?parent=4122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/categories?post=4122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/tags?post=4122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}