LinuxQuestions.org
Visit the LQ Articles and Editorials section
Go Back   LinuxQuestions.org > Blogs > jere21
User Name
Password

Notices

Rate this Entry

Update Samsung Galaxy GT-I9000 to CyanogenMod

Posted 09-22-2012 at 08:55 AM by jere21
Updated 12-28-2012 at 11:47 AM by jere21

Keep in mid the usual safety measures...

This is were I started from:
Code:
Modellnummer: GT-I9000
Firmware-version: 2.2.1
Basisbandversion: I9000XXJPY
Kernel-Version: 2.6.32.9 root@SEP-51 #1
Buildnummer: FROYO.XXJPY
For later use:
Power off the phone, then restart into ...
Recovery Mode Vol Up+PWR+Home (once CanogenMod is installed you get an entry for this in the shutdown menu :-) . The ClockworkMod Recovery is a menu which allows you to format some stuff, install a zip from the internal phone storage, do backups, .... Needed for step 3, installing CyanogenMod.)
Download Mode Vol Down+PWR+Home (you get a yellow with “Downloading…” after using the combo on booting, needed for step 2, installing the ClockworkMod Recovery)
... continue to hold all three until the screen flashes, then release all buttons.

Rooting means getting root (administrator) access to the phone. Unfortunately the smartphone world seems to think that this should not be done, voids your warranty and therefore can only be done by installing something. I'd prefer reboot&password - a smartphone is just a computer, owned by me, isn't it!? On the brighter side, rooting is done in the following process, I guess when flashing the Clockwork Mod recovery kernel.

Following http://wiki.cyanogenmod.com/wiki/Sam...l_Update_Guide
  1. Backups and preparation
    1. I missed to make any backups except syncing to google (only saved my contacts, but not my calendar). I also missed to make system backup, ...
    2. Hint: Do step 3.1 and 3.2 now (download and save cm...zip to internal phone storage. (Or do that later in recovery mode.)
  2. Installing the ClockworkMod Recovery
    1. I had Froyo 2.2.1, so don't use http://cmw.22aaf3.com/aries/gt-i9000...e-speedmod.tar but speedmod kernel froyo from http://touristinparadise.blogspot.de...speedmod.html:
    2. Heimdall

      heimdall-flash(-frontend) is in the official Debian repository since Nov. 2012. Install them.

      Get Heimdall from http://www.glassechidna.com.au/products/heimdall/ (like Samsung's odin. Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung Galaxy S devices.)
      Current 2.3.2 might not support all devices (not verified), so use 2.3.1
      Install debs from https://github.com/Benjamin-Dobell/Heimdall
      Code:
      wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall_1.3.1_amd64.deb
      wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.3.1_amd64.deb


      From /usr/share/doc/heimdall/README.gz
      Code:
      heimdall help
      Here is an example that does a full flash and repartition on a GT-I9000:
      Code:
      heimdall flash --repartition --pit s1_odin_20100512.pit --factoryfs factoryfs.rfs --cache cache.rfs --dbdata dbdata.rfs --primary-boot boot.bin --secondary-boot Sbl.bin --param param.lfs --kernel zImage --modem modem.bin
      Heimdall's firmware package format is just a regular TAR archive compressed with gzip. The only two real requirements are that a valid firmware.xml must be included.

    3. Power off the Samsung Galaxy S and connect the microUSB to the computer but not the Samsung Galaxy S.
    4. Power off and restart the phone in Download mode.
    5. Connect phone to microUSB.
    6. On the computer, open terminal and run the following command from the Heimdall directory:
      Code:
      $ tar xvf speedmod-kernel-k13e-500hz.tar
      $ heimdall flash --kernel zImage
      Heimdall v1.3.1, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
      http://www.glassechidna.com.au
      
      This software is provided free of charge. Copying and redistribution is
      encouraged.
      
      If you appreciate this software and you would like to support future
      development please consider donating:
      http://www.glassechidna.com.au/donate/
      
      Initialising connection...
      Detecting device...
      Claiming interface...
      Attempt failed. Detaching driver...
      Claiming interface again...
      Setting up interface...
      
      Checking if protocol is initialised...
      Protocol is not initialised.
      Initialising protocol...
      Handshaking with Loke...
      
      Beginning session...
      Session begun with device of type: 0
      
      Downloading device's PIT file...
      PIT file download sucessful
      
      Uploading KERNEL
      100%
      KERNEL upload successful
      Ending session...
      Rebooting device...
      Re-attaching kernel driver...
      A blue transfer bar will appear on the phone showing the kernel being transferred. The device will reboot automatically.
      The Samsung Galaxy S now has the ClockworkMod Recovery installed. Continue to the next section.
      Note: At this point I couldn't boot anymore. Perhaps because I first flashed the wrong kernel.
  3. Flashing CyanogenMod
    1. Download the latest version of CyanogenMod from http://wiki.cyanogenmod.com/wiki/Dev...msung_Galaxy_S

      There are 2 stable versions available, both install fine. I now use 9.1.0:
      wget http://get.cm/get/jenkins/2836/cm-7.2.0-galaxysmtd.zip
      Code:
      Android-Version 2.3.7
      Baseband-Version I9000XXJVK
      Kernel-Version: 2.6.35.14-g3088622
      Mod-Version: CyanogenMod-7.2.0-galaxysmtd
      Build-Datum 2012-06-15
      Build-Nummer: GWK74
      
      Battery Usage (after 30 minutes of testing) ...
      Android-System (or OS!?) 31%
      wget http://get.cm/get/jenkins/7080/cm-9.1.0-galaxysmtd.zip
      Code:
      Android-Version 4.0.4
      Baseband-Version I9000XXJVK
      Kernel-Version: 3.0.8-g2311908
      Mod-Version: CyanogenMod-9.1.0-galaxysmtd
      Build-Datum 2012-08-28
      Build-Nummer: cm_galaxysmtd-userdebug 4.0.4 IMM76L eng..20120828.152451 test-keys
      
      Battery Usage (after 30 minutes of testing)
      Android-System (or OS!?) 6%
      Optional: Download the Google Apps (Gmail, Maps, Android Market, ...) for the device from http://wiki.cyanogenmod.com/wiki/Lat...on#Google_Apps
      Code:
      wget wget http://cmw.22aaf3.com/gapps/gapps-gb-20110828-signed.zip #cm7
      wget http://cmw.22aaf3.com/gapps/gapps-ics-20120317-signed.zip # cm9
    2. [Couldn't do this now, because I can't boot normally. Maybe should have done this as very first step after making backups!? Anyway, this can also be done in the recovery mode, see below, phew.] Place the cm....zip file on the root of the internal memory.
      Optional: Place the Google Apps .zip on the root of the internal memory also.
    3. Reboot in recovery mode (took me some time and nerves, until I had the correct timing, before it was in a loop (logo - black screen), busy clock started but froze, ...
      Don't worry, even flashing the wrong ClockworkMod Recovery kernel first didn't hurt.
    4. Once the device boots into the ClockworkMod Recovery, use the side volume buttons to move around, and either the power button or the trackball to select.
    5. Select the option to Wipe data/factory reset.
    6. Then select the option to Wipe cache partition.
    7. Now I Selected on the phone to mount usb storage and copied from the computer the cm....zip to / of the phone.
    8. Select install zip from sdcard
    9. Select choose zip from sdcard
    10. Select the CyanogenMod cm....zip.
    11. installation takes a while with changing screens, just wait a few minutes... Then it rebooted automatically into new Cyanogenmod.
  4. Backup
    Reboot into recovery and make a backup now.
    (Probably) by simply changing the screen backlight settings I got my phone into a bootloop, hooray for the backup. Do it often!
  5. WIP: New modem for better battery and signal
    To improve battery lasting, phone quality (oh, I hope for that!) and signal, install a new modem. Test several and install the one with the best signal.

    The Cyanogen provided links list is quite short.

    Search the xda-developers modems thread for your country to get a list of candidates (for Germany). Download them to the phone, reboot in recovery and flash the zip (no risk with this).

    Test several modems. Take care to have identical testing conditions (phone place). The higher the absolute signal strength (db) the better (I guess, unfortunately the results are not informative, ... I'm stuck with this task. Was JVK selected automatically as best suited for me?).
    Forget speedtest.net, you get very varying results for the identical modem.

    Really not sure about this topic:
    • The thread normally just mentions 3 letters (e.g. JVK), but strangely not all start with XX, no idea...
    • There are only links named "cm7..." but they work for CM9, too.


    Table description:
    Modem name
    filename | -db at a defined placed | db range observed |
    with filename:
    • radio-cm-7-GalaxyS-***-signed.zip is from the xda thread
    • Cyanogen provided link is from Canogen wiki
    Code:
    XXJVK
        originally provided in cm9          |87|81-93|not tested on fixed place
        Cyanogen provided link              |77|79-91|
    XXJVT
        radio-cm-7-GalaxyS-JVT-signed.zip   |77|75-85|
    XXJVU
        radio-cm-7-GalaxyS-JVU-signed.zip   |77|75-85|
    SRJV1
        radio-cm-7-GalaxyS-SRJV1-signed.zip |77|75-89|
    XXJVR
        radio-cm-7-GalaxyS-JVR-signed.zip   |77|77-85|
    BVJJPG
        Cyanogen provided link              |77|77-85|
        radio-cm-7-GalaxyS-JPG-signed.zip   |77|77-83|
        radio-cm-7-GalaxyS-BVJJPG-signed.zip|77|77-83|
  6. New modem for better battery and signal
  7. Additional Installed apps (feel free to report better alternatives)
    • Endomondo Sports Tracker (Endomondo)
    • Barcode: QR Barcode Scanner (Warriors)
    • DB Fahrplan + Ticket
    • GPS: Gps Status
    • Swype (similar): TouchPal Keyboard+German Pack (CooTek
    • Calendar: aCalendar (Tapir Apps UG)
    • Audio Player (needed for .wav): Android Music Player (JRTStudio)
    • Video Player: MX Player (J2 Interactive)
    • Maps (Google)
  8. Backup, after every installed app or changed system settings. Just do it.
Appendix: Heimdall Frontend Print Jit:
Code:
Beginning session...
Session begun with device of type: 0

Downloading device's PIT file...
PIT file download sucessful

Entry Count: 13
Unknown 1: 1
Unknown 2: 0
Unknown 3: 7508
Unknown 4: 65
Unknown 5: 64224
Unknown 6: 18
Unknown 7: 55304
Unknown 8: 67


--- Entry #0 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 0
Partition Flags: 0 (R)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 1
Unknown 2: 6684783
Unknown 3: 2097268
Partition Name: IBL+PBL
Filename: boot.bin


--- Entry #1 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 1
Partition Flags: 0 (R)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 1
Unknown 2: 0
Unknown 3: 0
Partition Name: PIT
Filename: 


--- Entry #2 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 20
Partition Flags: 2 (R/W)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 40
Unknown 2: 0
Unknown 3: 0
Partition Name: EFS
Filename: efs.rfs


--- Entry #3 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 3
Partition Flags: 0 (R)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 5
Unknown 2: 0
Unknown 3: 0
Partition Name: SBL
Filename: sbl.bin


--- Entry #4 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 4
Partition Flags: 0 (R)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 5
Unknown 2: 0
Unknown 3: 0
Partition Name: SBL2
Filename: sbl.bin


--- Entry #5 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 21
Partition Flags: 2 (R/W)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 20
Unknown 2: 0
Unknown 3: 0
Partition Name: PARAM
Filename: param.lfs


--- Entry #6 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 6
Partition Flags: 0 (R)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 30
Unknown 2: 0
Unknown 3: 0
Partition Name: KERNEL
Filename: zImage


--- Entry #7 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 7
Partition Flags: 0 (R)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 30
Unknown 2: 0
Unknown 3: 0
Partition Name: RECOVERY
Filename: zImage


--- Entry #8 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 22
Partition Flags: 2 (R/W)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 1146
Unknown 2: 0
Unknown 3: 0
Partition Name: FACTORYFS
Filename: factoryfs.rfs


--- Entry #9 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 23
Partition Flags: 2 (R/W)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 536
Unknown 2: 0
Unknown 3: 0
Partition Name: DBDATAFS
Filename: dbdata.rfs


--- Entry #10 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 24
Partition Flags: 2 (R/W)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 140
Unknown 2: 0
Unknown 3: 0
Partition Name: CACHE
Filename: cache.rfs


--- Entry #11 ---
Unused: No
Partition Type: 0 (RFS)
Partition Identifier: 11
Partition Flags: 0 (R)
Unknown 1: 0
Partition Block Size: 256
Partition Block Count: 50
Unknown 2: 0
Unknown 3: 0
Partition Name: MODEM
Filename: modem.bin


--- Entry #12 ---
Unused: Yes
Partition Type: 1 (Unknown)
Partition Identifier: 11
Partition Flags: 0 (R)
Unknown 1: 0
Partition Block Size: 0
Partition Block Count: 0
Unknown 2: 0
Unknown 3: 0
Partition Name: 
Filename: 

Ending session...
Rebooting device...
Re-attaching kernel driver...
Posted in Uncategorized
Views 5982 Comments 0
« Prev     Main     Next »
Total Comments 0

Comments

 

  



All times are GMT -5. The time now is 06:53 PM.

Main Menu
Advertisement

My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration