{"id":1290,"date":"2010-09-10T20:00:08","date_gmt":"2010-09-10T10:00:08","guid":{"rendered":"http:\/\/mingersoft.com\/blog\/?p=1290"},"modified":"2010-09-10T20:00:08","modified_gmt":"2010-09-10T10:00:08","slug":"samsung-galaxy-s-why-download-and-recovery-modes-are-missing","status":"publish","type":"post","link":"https:\/\/mingersoft.com\/blog\/2010\/09\/samsung-galaxy-s-why-download-and-recovery-modes-are-missing\/","title":{"rendered":"Samsung Galaxy S &#8211; Why Download and Recovery Modes Are Missing"},"content":{"rendered":"<p>I&#8217;ve had some time on my hands the last couple of days due to the flu so I thought I would put some of that time toward working out why the download and recovery modes are seemingly disabled in some Samsung Galaxy S units around the globe.<\/p>\n<p>It&#8217;s been established that the download and recovery modes (AKA three button mode) are not entirely disabled and I have proven this for myself. You can force an affected Samsung Galaxy S into either mode by using the <a title=\"Android SDK\" href=\"http:\/\/developer.android.com\/sdk\/index.html\" target=\"_blank\">Android SDK<\/a> along with the USB drivers for your phone and entering the following commands from the SDK tools folder in a command prompt (without quotations):<\/p>\n<ul>\n<li><em>&#8220;adb reboot download&#8221;<\/em> (for download mode),\n<ul>\n<li>Entering this mode should show an android with a shovel.<\/li>\n<\/ul>\n<\/li>\n<li><em>&#8220;adb reboot recover<\/em>y&#8221; (for recovery mode).\n<ul>\n<li>Entering this mode should show something resembling a text mode interface.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>So the modes are there but are ultimately useless if a firmware flash is unsuccessful for whatever reason (i.e. flash\u00a0interrupted, corrupted firmware image, incorrect firmware, etc) as you need the phone to boot up to respond to requests via the SDK. Not ideal unless you want to keep returning your device to your carrier or Samsung to reflash or you are lucky enough to own a compatible <a title=\"Joint Test Action Group | Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/Jtag\" target=\"_blank\">JTAG<\/a> flash tool to write directly to memory without a functioning operating system.<\/p>\n<p>Android phones have a standard boot sequence which is well documented <a title=\"The Android boot process from power on | Enea Android Blog\" href=\"http:\/\/www.androidenea.com\/2009\/06\/android-boot-process-from-power-on.html\" target=\"_blank\">here<\/a>.\u00a0In a nutshell, after the Boot ROM finds and loads the first stage boot loader (AKA Primary Boot Loader or PBL or boot.bin) the second stage boot loader (AKA Secondary Boot Loader or SBL or sbl.bin) is loaded. After that, the operating system is loaded (in this case it is the Linux kernel) and parameters can be passed to alter the start up mode (recovery mode is &#8220;bootmode=2&#8221;).<\/p>\n<p>Theoretically, something in the SBL (or something with which SBL is interacting such as <a title=\"Non-volatile random access memory | Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/NVRAM\" target=\"_blank\">NVRAM<\/a>) is doing one of the following:<\/p>\n<p><span style=\"font-family: Georgia, 'Bitstream Charter', serif;\"> <\/span><\/p>\n<ol>\n<li>unable to receive key presses during boot (something upstream is blocking communication),<\/li>\n<li>ignoring key presses during boot (key presses received but discarded with no further action),<\/li>\n<li>expecting a different set of key presses, either:\n<ol>\n<li>alphanumeric combination impossible to execute given the lack of physical keyboard,<\/li>\n<li>an unknown combination of existing buttons (less likely as most have already tried all the possible combinations).<\/li>\n<\/ol>\n<\/li>\n<li>key presses received but the code to trigger download or recovery modes as a result of the key presses has been disabled or removed.<\/li>\n<\/ol>\n<p>The folks over at <a title=\"Flashing a new Bootloader BML | XDA Developers\" href=\"http:\/\/forum.xda-developers.com\/showthread.php?t=756002\" target=\"_blank\">XDA Developers<\/a> have been trying to figure out which of the partitions contains the error causing the download and recovery modes to be inaccessible via key press combination on boot. The hunt is still in progress but I am definitely keeping my eyes peeled just in case they come up with a solution before Samsung.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve had some time on my hands the last couple of days due to the flu so I thought I would put some of that time toward working out why the download and recovery modes are seemingly disabled in some Samsung Galaxy S units around the globe. It&#8217;s been established that the download and recovery &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/mingersoft.com\/blog\/2010\/09\/samsung-galaxy-s-why-download-and-recovery-modes-are-missing\/\">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":[511,180,267,151,18,184],"tags":[355,909,883,907,2302,904,905,908,882,906,456,171,893],"class_list":["post-1290","post","type-post","status-publish","format-standard","hentry","category-android-operating-systems-technology","category-interfaces","category-linux","category-operating-systems","category-technology","category-usb-interfaces-technology","tag-android","tag-download","tag-galaxy-s","tag-jtag","tag-linux","tag-nvram","tag-pbl","tag-recovery","tag-samsung","tag-sbl","tag-sdk","tag-usb","tag-xda-developers","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/posts\/1290","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=1290"}],"version-history":[{"count":0,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/posts\/1290\/revisions"}],"wp:attachment":[{"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/media?parent=1290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/categories?post=1290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mingersoft.com\/blog\/wp-json\/wp\/v2\/tags?post=1290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}