Category Archives: Featured

Featured posts

How to install Android Ice Cream Sandwich (ICS) on Xperia X10 Mini Pro

ICS on Sony Ericsson Xperia X10 Mini Pro!

Let’s be honest: starting from zero it’s a huge process, but it’s possible.
This procedure is a bit complicated and needs some skills.
I can do (and I did) almost everything from GNU/Linux.

Prerequisites (my starting point)

  • a full backup done: you’ll lose your phone data
  • the phone must run the stock image.
    Latest 2.1.1.A.0.6 SE firmware is required for bootloader unlocking procedure.
    If you are running an unofficial ROM, you can check my preferred way to restore stock ROM. Firmware 2.1.1.C.0.0 is reported to work, too, but I can’t confirm it
  • phone must run baseband M76XX-TSNCJOLYM-53404015
  • a pc running Ubuntu Linux 12.04 64bit (32bit is reported to work too)
  • adb installed and runnable from the pc
  • standard USB cable

All needed software

  • FlashTool
    I used flashtool-0.8.0.0-linux.tar.7z
    You can find this tool on its official page http://androxyde.github.com/Flashtool/
  • msm7227.7z, see xda forum for download links
  • a bash script I wrote to run msm7227 from GNU/Linux. Download here
  • kernel image
    I used U20_nAa-ics-04_2.6.29.6-nAa-ics-04.ftf
    Download links on Google Code official pages. Kernel file names for our device start with “U20” string and they contain “ics” string as well
  • MiniCM9 ROM
    I used MiniCM9-3.0.3-mimmi.zip
    Download links on Google Code official pages. Be carefull, we have a device with codename “mimmi”
  • Google Apps (also known as gapps)
    I used gapps-ics-20120317-signed.zip
    You can find download links on goo.im official pages. Pick gapps for “ics”

What you’ll get

A super clean phone (no data and crappy bloatware).
One of the most recent mobile operating system: Android Ice Cream Sandwich.
All the goodies provided by CyanogenMod: the ROM I installed is MiniCM9.

Everything working great: camera, wifi etc. (I admit I have to check tethering…).

Disclaimer

I AM NOT RESPONSIBLE IF YOU BRICK / RUIN YOUR PHONE IN ANY WAY.
BASIC COMPUTER SKILLS REQUIRED.
PROCEED WITH CAUTION.

The instructions are provided only to show how reached my goal.
Please follow them at your own risk. Stop if you are not in my same situation.

Procedure summary

We have basically 3 things to do:

  1. unlock bootloader
  2. install custom kernel (suitable for ICS)
  3. install ICS ROM + Google Apps

Without an unlocked bootloader, you can’t install a custom kernel.
Without a custom kernel, you can’t install ICS.

0. Copy needed files on the phone

As pointed out by Fabian in his comment, it’s safer to copy the files you’ll use at the end of the procedure when your phone is still fully functional.

So, connect the device to your pc, use it as an external storage and copy these files on the sdcard

  • MiniCM9-3.0.3-mimmi.zip
  • gapps-ics-20120317-signed.zip

1. Unlock bootloader

I presume you’re starting from the very beginning, so I think you have a locked bootloader.

To fix this situation you’ll need some software:

  • msm7227.7z
  • my script: msm7227_semc.sh

This is the most difficult and dangerous step. The risk is that the phone get bricked. Be careful.

Probably you should read the full story here. There are reported some incompatible situations. If you have never unlocked your bootloader, probably you can go on as I did.

The software you downloaded is written for Windows types of operating systems.
I rewrote the cmd script and made a bash script.
Many kudos to xda forum user “the_laser”, I just translated his work.

You have to follow these steps:

  1. unpack archive in a new folder
    $ 7z x -omsm7227 msm7227.7z
  2. uncompress and copy my script in the same folder
    $ mv msm7227_semc.sh msm7227/
  3. connect the phone to an USB port
  4. enable debug USB on the phone itself
  5. run the script
    $ cd msm7227/
    $ ./msm7227_semc.sh
    see my output

2. Install custom kernel

You have successfully unlocked your bootloader and now you can now install a custom kernel.
You’ll need flashtool utility and the ftf image file containing the kernel to flash and the recovery software.

  • FlashTool
  • kernel image file

Follow these steps:

  1. uncompress and untar flashtool
    $ 7z x -oflashtool flashtool-0.8.0.0-linux.tar.7z
    $ tar -C flashtool -xf flashtool/FlashTool-0.8.0.0-linux.tar
    $ rm flashtool/FlashTool-0.8.0.0-linux.tar
  2. launch FlashTool, it’s a java tool with a simple GUI
  3. drag on the main window the ftf file
  4. follow the instructions
  5. at the end the program will tell you that the phone will reboot. It’s not true, so disconnect the USB cable
  6. wait 5 seconds
  7. boot the phone and repeatly push the back button to enter recovery menu.
    ClockworkMod must be installed and should come up.
    You must see nAa kernel logo.
    if CWM menu doesn’t appear you must retry with a reboot (at the moment the phone is unusable)

If you find yourself in troubles, keep in mind that everything can be repaired with a full system restore through SEUS.

3. Install MiniCM9 and the Google Apps

We are almost at the end.
At this time you have an useless phone which cannot even properly boot.
It’s time to flash MiniCM9.

If you followed all steps, you are now in ClockworkMod Recovery menu.

ClockworkMod on Xperia X10 Mini Pro (nAa kernel)

On the step number 0, you should have copied the files on the phone’s SD card. It’s time to use them.
If you skipped that part, you can still do the job via Recovery:

  1. connect the phone to the pc
  2. choose “Mounts and Storage”
  3. choose the last item “mount USB storage”
  4. copy the files I mentioned
  5. umount storage from the pc
  6. choose “umount” from Recovery menu

Follow these steps:

  1. choose “wipe data/factory reset” than confirm
  2. choose “wipe cache partition” than confirm
  3. choose “Advanced” -> “Wipe Dalvik Cache” than confirm
  4. go back
  5. choose “install zip from sdcard” -> “choose zip from sdcard” -> find “MiniCM9-3.0.3-mimmi.zip” and confirm
  6. choose “choose zip from sdcard” -> find “gapps-ics-20120317-signed.zip” and confirm
  7. go back
  8. choose “reboot system now”

The first boot can be a little slower. I saw nAa logo, than CyanogenMod boot animation for about 5 mintes, than the first use Android wizard.

Conclusions

If everything went well we reached our goal.
I found that ICS for Xperia X10 Mini Pro is fast and stable.

You can always revert back with a full restore or you can just install a different ROM.

References

HowTo: root your Xperia x10 mini pro 2.1.1.A.0.6 – 2.1-update1

In this post I’m going to show you how I manually achieved root on this device.

Preamble

I tried every possible automated tool I found (z4root, SuperOneClick), but I had no luck.
My setup involves a GNU/Linux box and this may be the cause.
First of all here are the device details I got from “CurveFish DeviceInfo” app:
Model: U20i
Manufacturer: Sony Ericsson
Device: U20i
Product: U20i_1238-0129
Brand: SEMC
CPI ABI: armeabi
Kernel Version: 2.6.29
SEMCUser@SEMCHost )
#1 PREEMPT Fri Dec 17 18:35:45 2010
Build Number: 2.1.1.A.0.6
Release: 2.1-update1
SDK: 7

Full log here Xperia X10 Mini Pro.deviceinfo.txt.

Prerequisites

Here’s the required tools:

  • a PC (mine is powered by Ubuntu 11.04 Natty Narwhal)
  • an usb cable for your mobile
  • adb configured and  running on the PC (find more info here)

Software used:

Once you have all the necessary stuff, we can start!

Step by step guide

  1. Start putting device in “debug mode”: Settings – Applications – Development – USB debugging
  2. Connect device to pc using usb cable and start adb with
    adb shell
    You may to choose “Charge phone”, so you can still access your sdcard within the phone.
  3. Check you can write in this specific directory:
    $ cd /sqlite_stmt_journals
    $ touch testfile
    $ ls -l
    -rw-rw-rw- shell    shell           0 2011-08-02 16:23 testfile
    $ rm testfile
    $ ls -l
    $ exit
  4. If everything went ok, put the needed files in the previous directory; from your pc terminal type:
    $ adb push psneuter /sqlite_stmt_journals
    3157 KB/s (585731 bytes in 0.181s)
    $ adb push su-v2 /sqlite_stmt_journals/su
    630 KB/s (26264 bytes in 0.040s)
    $ adb push Superuser_2.3.6.1.apk /sqlite_stmt_journals
    3533 KB/s (196521 bytes in 0.054s)
  5. Prepare the software on the phone:
    $ adb shell
    $ cd /sqlite_stmt_journals
    $ ls -l
    -rw-rw-rw- shell    shell      196521 2011-08-03 13:16 Superuser_2.3.6.1.apk
    -rw-rw-rw- shell    shell       26264 2011-08-03 13:16 su
    -rw-rw-rw- shell    shell      585731 2011-08-03 13:15 psneuter
    $ chmod 755 psneuter
  6. Now you can exec psneuter. You will lose the active shell.
    You could see this message or not, that’s not a problem:$ ./psneuter
    property service neutered.
    killing adbd. (should restart in a second or two)

    Your phone will detach and reattach usb connection automatically.
  7. Once more you have to connect to the device with adb shell, but you’ll see a different prompt:$ adb shell
    # id
    uid=0(root) gid=0(root)
  8. Now we have a temporary access to root user via adb.
    Let’s do the trick on the system:
    # mount -o remount,rw /dev/block/mtdblock0 /system
    # mkdir /system/xbin
    # chmod 755 /system/xbin
    # cat /sqlite_stmt_journals/su > /system/xbin/su
    # chmod 6755 /system/xbin/su
    # ls -l /system/xbin/su
    -rwsr-sr-x root root 26264 2011-08-02 18:19 su
    # cat /sqlite_stmt_journals/Superuser_2.3.6.1.apk > /system/app/Superuser_2.3.6.1.apk
    # chmod 777 /system/app/Superuser_2.3.6.1.apk
  9. It’s time to reboot:
    # reboot

That’s it.

Verify

One easy way to verify the process is to install “Android Terminal Emulator” from market and type:
$ su
#

if you get the Superuser popup and the right prompt “#” it’s all ok.

Further reading

Why don’t you install ClockworkMod Recovery now?

Maybe Ice Cream Sandwich?