Updating the Samsung Galaxy i7500 using Linux

By | April 15, 2011

The Galaxy i7500 was the first android phone built by Samsung. I got this phone some while ago and I wanted to update to a more recent android version (the original firmware ships version 1.6), but unfortunately, Samsung doesn’t give any support nor updates. Thus, if you want to update the firmware, you can use a non-official firmware.

In this post I try to explain how to do this when your host/PC is a Linux machine.
The procedure described here is partially based in the quite uselful Easy guide to update to Galaxo or GAOSP! written by DaSchmarotzer that explains how to update this phone but using a Windows based machine.

Download

Get all the needed files:

Put everything in place

First of all, create a backup of your data. The SD card (pictures, music, etc) won’t be touched, but other important info like your contacts will be erased. If you have a Gmail account you just can synchronize your contacts for uploading them to your account and once you finish the update you can synchronize it again for downloading them to the phone.

Unpack the android SDK wherever you want. I put all the downloaded files in /home/android/.

Decompress the android SDK. The directory /home/android/android-sdk-linux_x86 will be created.

Change to the directory /home/android/android-sdk-linux_x86/tools

Move the file fastboot.zip inside the /home/android/android-sdk-linux_x86/tools directory and decompress it. A new file called fastboot will be created.
Give it execution permissions:

chmod +x fastboot

Connect your phone via USB and mount its SD card.
Copy the chosen ROM and Gapps files to the phone’s SD card.
Umount the SD card.
Turn off the phone, but leave it connected to the PC using the USB cable.

Now we have all the downloaded files in the required locations.

Manipulate the i7500 flash with fastboot

We have to tell the phone’s bootloader how to load our files. fastboot can write a new bootloader image (recovery-6.5.1.img) that allow us to do exactly that plus several other operations.

Before executing fastboot, we need to tell udev through its rules that we’re the owner of the usb device with vendors ID 18d1 (Google Inc.) and 04e8 (Samsung Electronics Co., Ltd).
You have to do these steps as root.
Change username to the username you use for logging in your system.

Create the file /etc/udev/rules.d/50.android.rules with the following content

SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666", OWNER="username"

Create the file /etc/udev/rules.d/90.android.rules with the following content

SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666", OWNER="username"

Reload udev’s rules

$ reload udev

As a normal user, add the /tools directory where fastboot is located to your PATH environment variable.

$ export PATH=$PATH:/home/android/android-sdk-linux_x86/tools

Change to the /home/android/android-sdk-linux_x86/tools directory and write the following command without pressing enter.

$ fastboot flash recovery recovery-6.5.1.img 

You’ll press it after booting the phone in fastboot mode. Do so by pressing and holding both the Call button (bottom left) and the Power button (bottom right) at the same time until you see on the phone that you are in fastboot mode. You’ll have about 15 seconds to press enter on the shell. If it works, you’ll see in the shell this output:

sending 'recovery' (3080 KB)... OKAY
writing 'recovery'... OKAY

In the phone’s display you’ll see something like this:

Android fastboot

Android fastboot

At this point we have a new bootloader image in the phone’s flash that allow us to do custom operations.

Turn off your phone. I had problems for turning it off, so I removed the battery and put it again.

Updating to the new firmware

Boot the phone, but this time in recovery mode. Do so by holding the Lower volume button, the Call button and the Power button. If it works, you’ll see a green menu with lots of choices:

Android recovery mode

Android recovery mode

Select the Nandroid backup option and press the Home button to confirm. Then just follow the instructions on-screen. I chose slot 1 when asked which slot to use.

Select Wipe data/Factory reset. It’s going to erase all your applications and settings, but it shouldn’t touch anything saved on your SD card. It’s important to do so, else the phone will not work properly.

Select Apply any zip. Select either the GAOSP or the Galaxo zip files, depending on your choice. This will take a bit since it was to copy 60 or 49MB, respectively.

Select Fix package permissions.

Select Apply any zip again but this time pick the Gapps, which will restore the Google Applications on your phone.

Now you can reboot by selecting the first option Reboot system.

Notice: It could happen that the phone freezes during the booting procedure in the android or gaosp boot screen. Wait for ~10 minutes, and then if it’s still stuck, pull out the battery and boot again.
If it still doesn’t work, repeat the procedure described in this section Updating to the new firmware.

Btw, sorry for the images quality. I’ll change them with better ones.

That’s it!

References

Leave a Reply

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