Customizing Samsung Galaxy S II (I9100) under Linux

I’ve got SGS2 and it’s damn cool. But that’s not enough. I really have to pimp it up/down to arrive at a device that I can call mine. Looks like Cyanogen mod that claims to be fully open source will be my goal.

So this is where I’m going to keep track of my progress and document the procedure.

Some links and tools to start:

To get phone info needed for proper images etc. you’d have to dial:


in “phone” app.

Follow [ROM + Guide]Official i9100 KE7/KE8/KF1/KF3/KF4/KF2/KF3 download and Root Guide and get your stock ROM and Kernel if you’re as paranoid as me.

Now the rooting…

  • Get the CF-Root. I used CF-Root-SGS2_XW_XEU_KE7-v4.0-CWM4
  • extract zip, extract tar inside and get zImage file
  • Shut down the phone
  • Make sure USB is not plugged in
  • boot phone in download mode ( “Vol down”+”HOME”+”Power”)
  • plug USB back in
  • In Heimdall use above zImage to flash it over to SGS2
  • phone reboots
  • on boot you’re presented with ugly yellow warning sign – click “Vol down” to bypass it

Immediate actions:

  1. Backup!
    1. boot device into “Recovery mode”: “Vol up” + “Home” + “Power”
    2. follow the menu


Disable Fast Dormancy:

  1. Dial


  2. Press Disable Fast Dormancy
  3. Press Exit


VillainROM is available for SGS2 now so I had to try it. Now that I was comfortable with Heimdall operations following VillainROM Flashing Instructions was really straight-forward:

  • CF-Root – I’ve got that already
  • upload VillainROM .zip file to phone’s SD card
  • disonnect the phone from PC
  • shut down the phone
  • boot into recovery mode (“Vol up”+”Home”+”Power”)
  • from ClockWorkMod launch backup
  • once backup is done – “wipe data/factory reset” and “wipe cache” (I suspect that’s the step that killed ALL data on the phone, including photos etc.)
  • “Install zip from SD” – locate VillainROM .zip file on SD and proceed
  • reboot phone into VillainROM (takes a while on first boot)
  • from booted VillainROM – install VRTweaks
  • Launch VRTweaks (it requires internet connection)
  • from VRTweaks install “Symlink fix”
  • reboot
  • mount freshly rebooted phone from PC
  • copy CF-Root .zip to the phone
  • launch CWM
  • from CWM flash kernel using CF-Root .zip file from above
  • reboot (automatic)
  • download MODEM file
  • reboot into “Download mode” (“Vol Down”+”Home”+”Power”)
  • flash modem file onto the phone
  • reboot (automatic)

Now that VillainROM is there: backup! Launch CWM app and initiate backup from there – you can give backup custom name from here vs “Recovery mode” where it’s predefined timestamp.

I got fed up with “Yellow Warning sign” on boot so I followed the steps to get rid of it:

  • find out which stock kernel is your phone running
  • download stock ROM and MODEM
  • extract Stock ROM (first .zip then .tar – you’ll end up with bunch of .img files and zImage – you will need zImage)
  • make sure your VRTweaks installed
  • from VRTweaks run SymlinkFix and reboot into Download Mode (“Vol Down”+”Home”+”Power”)
  • in Download Mode flash above extracted kernel with Heimdall
  • reboot
  • extract CF-Root .zip/.tar file until you get to zImage
  • upload CF-Root’s zImage to the phone
  • from CWM app flash CF-Root zImage

Now it’s a good time for another backup – we’re so far ahead – it would be a shame to lose things now.

After all that I had VillainROM running on my phone. VillainROM however turned out to be not as funky as I hoped it will be. Issues I have discovered:

  • for some strange reason it wakes up camera on certain operations (which stock ROM doesn’t do)
  • there is no Russian Keyboard layout
  • browser doesn’t respond to pinch-zoom actions and “hangs” in some odd state

Constant clicking from the camera made me re-think my strategy and I decided to fall back to Stock Firmware (and discover that on-board data files are gone, d’oh! It’s not an issue if I had backed it up onto PC, which I didn’t)

Cognition S2

Now that I’ve gone through all the trouble above flashing new images is a piece of cake. Download ROM and flash it via ClockWorkMod’s Recovery Mode:

  • download ROM
  • copy it over to the phone
  • reboot phone into Recovery Mode (“Vol Up”+”Home”+”Power”)
  • select “install zip from sdcard”
  • locate .zip
  • flash

note that as a result CWM Recovery Mode version has been bumped (to and volume keys are used for moving around and “Power” is used for selection vs’s “Home”.

Cognition looked OK, but statusbar icons were constantly changing colors, some of the original Widgets on Samsung that I’ve got used to are gone.

LiteningROM 1.5

For flashing this with Heimdall you need to extract the .RAR, then extract the tar.md5 (it’s just a tar), then use resulting

  • factoryfs.img
  • modem.bin
  • zImage

and plug them into appropriate fields in Heimdall. Looks like supplied kernel brought back Yellow Warning Sign.

After flashing phone did make that clicking sound it made with VillainROM but only on boot so I can possibly live with that.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.