Tag Archives: CyanogenMod

HowTo: install ClockworkMod Recovery on Xperia X10 Mini Pro using GNU/Linux

Prerequisites

I can show you my situation, I can’t confirm that my guide is usable in different cases:

  • sim unlocked, stock Xperia X10 Mini Pro device rooted (I used my guide)
  • firmware 2.1.1.A.0.6
  • baseband M76XX-TSNCJOLYM-53404015
  • a pc with Ubuntu 11.10 64bit
  • fully functional adb (find more info here)

Disclaimer you must agree before you proceed

Please double check the requirements I wrote before you proceed and remember that:

  • I am not responsible if you brick / ruin your phone in any way;
  • some computer skills are required;
  • do a full backup of your data NOW, it’s not programmed, but you may loose them

Software requirements

CWMInstaller-Linux-v4.zip: download from here or from my mirror.

Do some backup before changing things

On your pc:
adb shell
on the device
# su
# mount -o remount,rw /dev/block/mtdblock0 /system
# cat /system/bin/chargemon > /system/bin/chargemon.original-backup

It’s time to get the job done

The package is done to allow anyone to easily install the whole thing, but I wasn’t able to use the script.
You can see what I did to manually achieve the result.

On your pc
$ unzip CWMInstaller-Linux-v4.zip
$ cd CWMInstaller-Linux/
$ adb push files/ /data/local/tmp

On the phone
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# cat /data/local/tmp/recovery.tar > /system/bin/recovery.tar
# cat /data/local/tmp/busybox > /system/bin/busybox
# cat /data/local/tmp/chargemon > /system/bin/chargemon
# chmod 755 /system/bin/recovery.tar
# chmod 755 /system/bin/chargemon
# chmod 755 /system/bin/busybox
# rm /data/local/tmp/chargemon /data/local/tmp/busybox /data/local/tmp/recovery.tar

Done!
# reboot

Test it making a real backup

When booting your phone and when the “Sony Ericsson” letters appear (not the logo), press and release continuously the “back” button.
Once you are in the CW recovery, use the volume keys to navigate upwards / downwards, the “home” or “camera” button to select, the “back” button to go back.

Go to “backup and restore“, “backup” and wait at least 3 minutes (on an empty device).

Conclusions

Now you are ready to install some new ROMs on your device.

References

HowTo: use Link2sd with Cyanogenmod 7.0.3

Here’s how I got Link2sd working on Nexus One with Cyanogenmod 7.0.3.

Preamble

I tried everything I found on the web (see here for example), but I had no success.

First of all here are the device details I got from “CurveFish DeviceInfo” app:

[System]
Model: Nexus One
Manufacturer: HTC
Device: passion
Product: passion
Brand: google
Bootloader ver.: 0.35.0017
CPI ABI: armeabi-v7a
CPI ABI 2: armeabi
Hardware: mahimahi
Radio: unknown
Kernel Version: 2.6.37.4-cyanogenmod-01332-g7f230e8
shade@toxygene )
#1 PREEMPT Tue Apr 12 12:54:14 EDT 2011
Build Number: GRI40
Release: 2.3.3
SDK: 10

Prerequisites

  • 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)
  • a Nexus One set up with Cyanogenmod 7.0.3 ROM
  • Link2sd app installed from Android Market

The problem

If you try to run Link2sd, you’ll receive these outputs:

 

 

 

 

 

 

The exact message is

mount: mounting /dev/block/vold/179:2 on /data/sdext2/ failed: Device or resource busy

Step by step guide

From your pc, connect the phone via adb (I prefer use bash for easy navigation through terminal).
You have to go to the init scripts path and umount /sd-ext/:
$ adb shell
# bash
localhost / # cd /system/etc/init.d
localhost init.d # ls -lAtr
-rwxr-x--- 1 root shell 925 Aug 1 2008 20userinit
-rwxr-x--- 1 root shell 272 Aug 1 2008 06mountdl
-rwxr-x--- 1 root shell 1452 Aug 1 2008 05mountsd
-rwxr-x--- 1 root shell 201 Aug 1 2008 04modules
-rwxr-x--- 1 root shell 229 Aug 1 2008 03firstboot
-rwxr-x--- 1 root shell 27 Aug 1 2008 01sysctl
-rwxr-x--- 1 root shell 365 Aug 1 2008 00banner
localhost init.d # umount /sd-ext/
localhost init.d #

Now run Link2sd from your phone and repeat the procedure:

 

 

 

 

 

 

Exit app, but don’t restart.
It’s time to restore /sd-ext/ on the phone (via adb) and check if we have the new init script from the app:
localhost init.d # mount /dev/block/mmcblk0p2 /sd-ext/
localhost init.d # cd /system/etc/init.d
localhost init.d # ls -lAtr
-rwxr-x--- 1 root shell 925 Aug 1 2008 20userinit
-rwxr-x--- 1 root shell 272 Aug 1 2008 06mountdl
-rwxr-x--- 1 root shell 1452 Aug 1 2008 05mountsd
-rwxr-x--- 1 root shell 201 Aug 1 2008 04modules
-rwxr-x--- 1 root shell 229 Aug 1 2008 03firstboot
-rwxr-x--- 1 root shell 27 Aug 1 2008 01sysctl
-rwxr-x--- 1 root shell 365 Aug 1 2008 00banner
-rwxr-x--- 1 root root 154 Aug 11 16:26 11link2sd
localhost init.d # cat 11link2sd
#!/system/bin/sh
#added by link2sd
sleep 2
mount -t ext2 -o rw /dev/block/vold/179:2 /data/sdext2
mount -t ext2 -o rw /dev/block/mmcblk0p2 /data/sdext2
localhost init.d #

The script has to be modified as here:
#!/system/bin/sh
#added by link2sd
sleep 2
#mount -t ext2 -o rw /dev/block/vold/179:2 /data/sdext2
#mount -t ext2 -o rw /dev/block/mmcblk0p2 /data/sdext2
#
mount -t ext2 -o bind /sd-ext/ /data/sdext2/

Pay attention to the highlighted parts!

For this purpose you can use vi, but first grant read/write permissions to the filesystem:
localhost init.d # mount -o rw,remount /system/
localhost init.d # vi 11link2sd

Verify your work and restore filesystem permissions:
localhost init.d # cat 11link2sd
#!/system/bin/sh
#added by link2sd
sleep 2
#mount -t ext2 -o rw /dev/block/vold/179:2 /data/sdext2
#mount -t ext2 -o rw /dev/block/mmcblk0p2 /data/sdext2
#
mount -t ext2 -o bind /sd-ext/ /data/sdext2/
localhost init.d # mount -o ro,remount /system/
localhost init.d #

Run the script:
localhost init.d # ./11link2sd
localhost init.d #

Verify Link2sd

Choose an application with a widget (in standard Android system, apps with widget cannot be moved to SD).

For this test I used Evernote.
In Link2sd I clicked the “Create link” button.

 

 

 

 

 

 

Now try to use the widget

 

 

 

 

 

 

Done