Saturday, June 30, 2018

How To Put A Custom ROM on a Verizon Samsung Fascinate (SCH-I500)

Old Android phones are really neat. They still have a decent amount of computing power and a multitude of neat hardware (sensors, cameras, WiFi connectivity and Bluetooth all in one). But with so much bloatware and carrier restriction, these devices are almost useless. A great way to get around this is to put an entirely new Android ROM onto the device. This blog outlines my adventures in trying to root the Verizon edition Samsung Fascinate (Galaxy S SCH-I500) so you can do it too. Heads up, I probably made it harder than it needs to be.

I picked up a Samsung Fascinate (SCH-I500) from a thrift shop. It was wiped but it came with an SD card that had not been wiped. Wipe your storage mediums, people.



When this phone starts up, it requires an activation on Verizon's network. You can temporarily get by this by dialing *#TESTMODE at the emergency dialing pad. But this resets when you reboot, so this won't do. Maybe we can get rid of this through some kind of root mechanism?

Good idea. I looked high and low for a Custom ROM for this phone, and I found a CyanogenMod 10.1 build for it. Things were looking promising. Since Cyanogenmod has been defunct for a while, I found that the nightly builds were hosted at the Internet Archive. On this page, search for "fascinate" and it will highlight the one and only zip file you need. So that's what we're going to use. Copy that file over to the SD card and then boot the phone into recovery mode, and install from SD card, right?



Wrong. We can't install a Custom ROM without first installing a custom recovery software. I'll go with ClockworkMod because it was the first one I found. I tried flashing it directly but that didn't go very well.


I'm going to omit a lot of details here because this got very hairy very quickly. I could not get my phone into FASTBOOT Mode, so I decided to compile and use Heimdall and flash recovery myself. I think for Samsung phones this is standard practice, but this is the first I'm hearing of it This involves putting the phone into Download mode (take out the battery, hold volume down, and plug the phone in). This turned out to be stupid, because I bricked my phone many times over.

To fix this, I searched the internet high and low for the original firmware. This was not easy to find, but I did finally find it as an ODIN package. I converted the stock ROM to a Heimdall package and I'm hosting it here so it's available for anybody who needs it. Credit where credit is due, here's the inactive XDA-Developer's post that it originally came from (the link in the forum is dead, but this is the guy to give credit to, I just repackaged it). It's a compressed tar file, so you can pull out the parts you need, but I suggest just putting the whole package into Heimdall.

Finally, I found a recovery kernel image that would work: it's a red version of ClockworkMod that has a the "voodoo lag" patch.  I've bundled this into a Heimdall package here so you can do this easily. Again, the kernel and the rest of it are stock


At this point, I was able to install SuperClean. Cyanogenmod kept complaining that it wasn't the right phone to be installed on, but SuperClean installed with no problem by installing from a zip file on the SD card.


SuperClean is a very nice ROM. It looks clean and it's fast. I also have root, so now I can start uninstalling Verizon and Samsung bloatware at my discretion. However, I couldn't do that through all of the settings app. I don't know if this is a good way to do it, but I remounted the system partition as read-write and started deleting APKs from the app directory. After a reboot, it seemed to be fine. I also disabled com.sec.android.app.setupwizard using pm in a root shell so that I wouldn't get the setup and activation screen anymore. To remount the system partition on older software like Gingerbread Android, the command to run in a root shell is:
mount -o remount,rw /system /system
And then you can just start removing the apps you don't want or need (as far as I can tell). You should not use Titanium Backup's Force Remove because it seems to revert the phone back to stock recovery and brick it.

So now I have root on this phone and a Custom ROM on it. While that was technically my goal, I'm still a little confused as to why CyanogenMod didn't install. Maybe I had the wrong kernel installed? Regardless, I got what I wanted here. The phone is fast, free of bloat, and rooted. Everything seems to work fairly well. I hope this helps someone, I realize this is a very old phone and a very old version of Android, but the best way to recycle old electronics is to make them worth something again. And they're really only worth something if they're fast and flexible.

I scattered links to the downloads I host in here and, as they're the most important, I'll list them out here. Again, most of this is just stuff I'm mirroring and repackaging because it was hard to find and tricky to do. I'm sick and tired of upload hosts going down, so I'm just putting them here for posterity and for anybody who wants to use them. I think I'll do that from now on. If you own some of this software and want me to take it down, just let me know. But I think at this point it's abandoned and nobody really cares.


Enjoy your faster (but still very very old) Samsung Fascinate!

11 comments:

  1. Thank you for the tutorial. I have the same phone I think - (SCH-I500). Its stock and firmware Version is 2.3.5. Is there a mod to bring it up to >4.4? If not what do you recommend? Thanks - the device is nice with a great screen. I'd like to repurpose it... Thank you!

    ReplyDelete
    Replies
    1. Yeah so I'm not sure if anybody has built a newer Android for this particular device. One of the challenges about this phone was that nobody seemed to care about it because it was, like, three steps removed from being "flagship". This XDA post seems to have some (not much) information: https://forum.xda-developers.com/samsung-fascinate/general/n00bs-guide-to-kitkat-fascinate-t2826852

      Delete
  2. Hi, Thanks for the tutorial. It is interesting, but a little bit difficult to understand. Please let me explain my case: I have this phone, Samsung Verizon SCH-I500.EH03. Firmware version is 2.3.5; the kernel version is 2.6.35.7. Maybe you know this: this phone model, nice by the way, even if old, has no SIM card; it is stuck to be used only in Verizon network. But I cannot have Verizon in my town. Also, Verizon will shut down or it did already its network of cdma phones. So basically, I can use it as a calculator, or camera, view pictures, see the hour, date, calendar, write notes.I can even have access to internet through the wireless.
    So, I do not expect to use it as a phone; it is impossible because I cannot put a SIM card onto it. How could I root this phone? Installed, there is a ton of apps, all of them stuck to be used through the verizon network, therefore, all useless. I want to get rid of them, install usefull stuff, but cannot have root access yet. Is there a way to do it? Your kind help would be greatly appreciated.

    ReplyDelete
  3. I just add this because in case you reply, I will receive a notification through e-mail. Thanks.

    ReplyDelete
    Replies
    1. Hey there. This was a while ago so I don't remember all the details, but it looks like you should put your phone into Factory Mode and use a tool like Heimdall to flash a Stock image with a ClockworkMod recovery. Then, using ClockworkMod, install the SuperClean ROM. With that, you should have root access. But, again, your mileage may vary and you should do this at your own risk.

      Delete
  4. https://www.youtube.com/watch?v=1LaSPYyR_Lc -- at least gets you up to Jellybean but that's still a super old OS :)

    ReplyDelete
    Replies
    1. Thanks for the link. And thanks Tucker for the reply. By the way, I saw the video; lots of clicks, there are many details in the process that if by mistake one of them is bypassed could result in failure or bricking the phone.
      Yeah, 4.2.2 is kind of "old", but my actual phone runs 4.4.4 LOL. Anyways, do you know if the method in that video is for the model I have? Samsung Verizon SCH-I500.EH03, no SIM. Thanks.

      Delete
  5. This is an old thread and I don't know if anyone is still checking it, but I came into possession of an SCH-i500 (Verizon)and hoped to use it to practice on for rooting, as I did not want to start out on one of my working devices while unsure what I was doing. I extracted the files in the CWM archive and used the Heimdall flash command to flash them to the appropriate partitions, This successfully installed the CWM recovery, and the device was not otherwise bricked, although the Google apps no longer work properly for some reason.

    The real problem came with the SuperClean archive. I wrote it to an SD card and put it in the phone, but CWM would not recognize it as a valid installation file and refused to do anything with it. Looking at the internal contents of the archive, it seems radically different from the others and it is not clear to me where the files to flash even are, so manually flashing with Heimdall seems not to be an option. I guess I don't understand how you get an OS installation out of an archive such as that one.

    ReplyDelete
  6. Never mind, tried it a second time and it worked!

    ReplyDelete
    Replies
    1. But there's a catch, alas: the Market (app store) does not work. One can call it up, but upon choosing to download anything, it just hangs at the "starting download" message and will go no further. And the age of the OS apparently means that none of the third-party app stores or later Gapps versions can be installed. I was thinking of selling this device on ebay, but if it is as crippled as that I am not sure that is any real option. I, too, have investigated the Cyanogenmod option, but CWM throws error 0 at any attempt at installation; I have read that some older versions of CWM do not read the later OS installation files correctly due to some change in format (the details are over my head.) I don't know if a different recovery program might solve this.

      Delete