{"id":16,"date":"2007-11-08T00:37:13","date_gmt":"2007-11-08T07:37:13","guid":{"rendered":"http:\/\/www.brunerd.com\/blog\/2007\/11\/08\/whats-in-hard-drive-update-10-2\/"},"modified":"2007-11-08T09:17:44","modified_gmt":"2007-11-08T16:17:44","slug":"whats-in-hard-drive-update-10-2","status":"publish","type":"post","link":"https:\/\/www.brunerd.com\/blog\/2007\/11\/08\/whats-in-hard-drive-update-10-2\/","title":{"rendered":"What&#8217;s in Hard Drive Update 1.0?"},"content":{"rendered":"<p>So there&#8217;s a <a href=\"http:\/\/www.apple.com\/support\/downloads\/harddriveupdate10.html\">Hard Drive Update 1.0<\/a> update out from Apple! Put on your mining hats and let&#8217;s go spelunking&#8230; first stop the package .dist file has some strings of interest:<br \/>\n<code>if( model.match(\/ST3500641AS\/) )<br \/>\nif( revision.match(\/3.BTD\/) )<br \/>\nif( model.match(\/ST3750640AS\/) )<br \/>\nif( revision.match(\/3.BTF\/) )<\/code><\/p>\n<p>This refers to Seagate&#8217;s <a href=\"http:\/\/www.seagate.com\/ww\/v\/index.jsp?vgnextoid=e2af99f4fa74c010VgnVCM100000dd04090aRCRD&#038;locale=en-US\">750GB<\/a> &#038; <a href=\"http:\/\/www.seagate.com\/ww\/v\/index.jsp?vgnextoid=785e99f4fa74c010VgnVCM100000dd04090aRCRD&#038;locale=en-US\">500GB<\/a> drives<\/p>\n<p>What else can we find? Once we open the archive.pax.gz there&#8217;s the actual Hard Drive Update 1.0 Cocoa app, which has a very scary sounding readme.rtf file inside the Contents\/Resources\/<language>.lproj:<\/p>\n<blockquote><p>Warning: It is strongly recommended that you back up the data on your hard drives to an external drive or removable media before running this update.  Do not reset, shut down, or turn off power to your computer while performing this update.  If an error occurs during the update process, your hard drive(s) may become unusable and all data could be lost. If you have not backed up your data, click Quit and do so now.<\/p><\/blockquote>\n<p>As <a href=\"http:\/\/www.youtube.com\/watch?v=dwWXr0qCC1M\">Count Floyd<\/a> would say: &#8220;Oooh <strong>Scary<\/strong>&#8221;<\/p>\n<p>Next up is the MacOS\/Hard Drive Update 1.0 binary and a selection of strings:<br \/>\n<code>installEFIUpdater:<br \/>\n%@\/%@\/hdfw.efi<br \/>\nThis computer is not connected to an AC power source.<br \/>\n<\/code><br \/>\nIt uses an <a href=\"http:\/\/www.intel.com\/technology\/efi\/index.htm\">EFI<\/a> application that will update the firmware on the drives (the AC line makes me chuckle, to think of what the battery life of a Mac Pro would be?! Obviously they used a template for this.)<\/p>\n<p>Inside hdfw.efi are strings that refer to <a href=\"http:\/\/en.wikipedia.org\/wiki\/Cygwin\">Cygwin<\/a>, interesting what platform they are using to develop this with: a Windows box emulating *nix<br \/>\n<code>C:\\cygwin\\home\\Loki\\Platform\\Apple\\Common\\Application\\ATAHDFWUtil\\ATAHDFWUtil.c<br \/>\nC:\\cygwin\\home\\Loki\\Platform\\IntelMpg\\AppleTools\\Build\\X64\\ATAHDFWUtil.pdb<br \/>\n<\/code><br \/>\nInside the Hard Drive Update 1.0.app\/Contents\/Resources\/System\/HDFW directory are hives of model names with single string files (FWAlias &#038; FWCurrent)  and the actual firmwares (FW01):<br \/>\n<code>ST3500641AS__P 3_BTD\/FWAlias<br \/>\nST3500641AS__P 3_BTE\/FWCurrent<br \/>\nST3500641AS__P_3_BTE\/FW01<br \/>\nST3500641AS__Q 3_BTD\/FWAlias<br \/>\nST3500641AS__Q 3_BTE\/FWCurrent<br \/>\nST3500641AS__Q_3_BTE\/FW01<br \/>\nST3750640AS_P 3_BTF\/FWAlias<br \/>\nST3750640AS_P 3_BTH\/FWCurrent<br \/>\nST3750640AS_P_3_BTH\/FW01<br \/>\nST3750640AS_Q 3_BTF\/FWAlias<br \/>\nST3750640AS_Q 3_BTH\/FWCurrent<br \/>\nST3750640AS_Q_3_BTH\/FW01<br \/>\n<\/code><br \/>\nHere&#8217;s an amusing edited list of strings :D<br \/>\n<code>0000000000000c96 Lube Event<br \/>\n0000000000000d28 Virgin Sector Cleaned<br \/>\n0000000000000e8f Enter DateOfBirth YYWW<br \/>\n0000000000000eaa Enter 64Bit WorldWideName<br \/>\n000000000000534c DRIVE HAS BEEN SET-STUFFED -%1<br \/>\n00000000000058ca Invalid caller to SaveStuffToDisk()! Write not done! %x<br \/>\n0000000000006c1a  !! Going Offlimits !!<br \/>\n0000000000006c31 Sleep?<br \/>\n<\/code><br \/>\nSounds like a date gone wrong! You really should get the DOB <em>before<\/em> initiating a lube event on a virgin sector&#8230; *ahem* let me try and get back on track with a couple informative strings about the guts of the drive:<br \/>\n<code>0000000000012b4b Orig Code = BTG4H1 TONKA2_GX_4H1.0GC.0B9<br \/>\n0000000000012e87 Built for GALAXY4D,PITKIN,Redback,TI1810 PreAmp,Agere7531 PreAmp,McKinleyDT,4Disk,220 Servos,7200RPM,8Pole,133MHz<br \/>\n<\/code><\/p>\n<p>Well, enough spelunking I&#8217;m headed topside now.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So there&#8217;s a Hard Drive Update 1.0 update out from Apple! Put on your mining hats and let&#8217;s go spelunking&#8230; first stop the package .dist file has some strings of interest: if( model.match(\/ST3500641AS\/) ) if( revision.match(\/3.BTD\/) ) if( model.match(\/ST3750640AS\/) ) if( revision.match(\/3.BTF\/) ) This refers to Seagate&#8217;s 750GB &#038; 500GB drives What else can we [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4,5],"tags":[],"class_list":["post-16","post","type-post","status-publish","format-standard","hentry","category-apple","category-os-x","category-packages"],"_links":{"self":[{"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/posts\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":0,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/posts\/16\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/media?parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/categories?post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.brunerd.com\/blog\/wp-json\/wp\/v2\/tags?post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}