[Sony Ericsson XPERIA X10 Mini] ff0000.it:
Hi all,

i'm very happy to finally see our hated boot loader unlocked!

By the way i was following the_laser steps to unlock it but i'm on a GNU/Linux machine

(Archlinux) so i tried the Virtualbox way noticing that "s1tool" for checking if the phone

is unlockable or not works fine but the batch "msm7227_semc.cmd" isn't at all (maybe

"adb" doesn't communicate very well through Virtualbox USB virtualization, i don't know),

so i port the batch as a shell script and it works.

It's not good to keep it in my laptop so here it is:

#!/bin/sh

#
# msm7227_semc.sh - a simple step-by-step port of msm7227_semc.cmd
# by the_laser@XDA
#
# 2011 - Alessandro "ff0000.it" Massignan
#

COUNT=0

function error ()
{
MESSAGE=$1
echo "Error: ${MESSAGE}"
exit 1
}

function step ()
{
COUNT=$(( COUNT + 1 ))
MESSAGE=$1
printf "\n${COUNT}. ${MESSAGE}"
read
}

cat <<EOF

******************************************************
*** Process requires standard Android 2.x firmware ***
*** -= now it's up to you! ;-) =- ***
******************************************************

EOF

step "searching for 'adb' executable"
_WHICH=`which which 2>/dev/null` || { error "Missing tool: which"; }
_ADB=`${_WHICH} adb 2>/dev/null` || { error "Missing tool: adb"; }

step "getting root priviledges"
echo "waiting for device..."
$_ADB wait-for-device
echo "pushing exploit..."
$_ADB push bootTools/rageagainstthecage /data/local/tmp/expl || \
{ error "Failed to push the exploit"; }
$_ADB shell "chmod 777 /data/local/tmp/expl" || \
{ error "Failed to change permission on exploit"; }
echo "executing exploit..."
$_ADB shell "/data/local/tmp/expl" || \
{ error "Failed to execute the exploit"; }
echo "waiting for device..."
$_ADB wait-for-device

step "removing NAND MPU restrictions via SEMC backdoor (this is permanent)"
$_ADB push bootTools/fixPart /data/local/tmp/fixPart || \
{ error "Failed to push the backdoor"; }
$_ADB shell "chmod 777 /data/local/tmp/fixPart" || \
{ error "Failed to change permission on backdoor"; }
$_ADB shell "/data/local/tmp/fixPart" || \
{ error "Failed to execute the backdoor"; }
echo "Rebooting..."
$_ADB shell reboot
echo "Waiting for device..."
$_ADB wait-for-device

step "re-getting root priviledges (wait for complete boot process)"
$_ADB shell "/data/local/tmp/expl" || { exit 1; }
echo "Waiting..."
$_ADB wait-for-device

step "getting access to semcboot area"
$_ADB push bootTools/mapper_2.6.29.ko /data/local/tmp/mapper_2.6.29.ko || \
{ error "Failed to push maper module"; }
$_ADB shell "chmod 777 /data/local/tmp/mapper_2.6.29.ko" || \
{ error "Failed to change permission on mapper module"; }
$_ADB shell insmod /data/local/tmp/mapper_2.6.29.ko || \
{ "Failed to load maper module into kernel"; }

step "writing semcboot"
$_ADB push my7227bootwrite_semcSL /data/local/tmp/my7227bootwrite_semcSL || \
{ error "Failed to push semcbooti data"; }
$_ADB shell "chmod 777 /data/local/tmp/my7227bootwrite_semcSL" || \
{ error "Failed to change permission on semcboot data"; }
$_ADB shell "/data/local/tmp/my7227bootwrite_semcSL" || \
{ error "Failed to execute semcboot data"; }

step "All done."

exit 0

copy this one and put it as msm7227_semc.sh in msm7227 directory (the one you obtain extracting the archive built by the_laser, http://xdaforums.com/showthread.php?t=1254225), enter the directory

and execute it:

root@regulus:msm7227# sh ./msm7227_semc.sh

******************************************************
*** Process requires standard Android 2.x firmware ***
*** -= now it's up to you! ;-) =- ***
******************************************************

1. searching for 'adb' executable

2. getting root priviledges
waiting for device...
pushing exploit...
2324 KB/s (585731 bytes in 0.246s)
executing exploit...
waiting for device...

3. removing NAND MPU restrictions via SEMC backdoor (this is permanent)
12 KB/s (3087 bytes in 0.240s)
success
Rebooting...
Waiting for device...

4. re-getting root priviledges (wait for complete boot process)
Waiting...

5. getting access to semcboot area
154 KB/s (8064 bytes in 0.051s)

6. writing semcboot
1294 KB/s (596916 bytes in 0.450s)
successfully wrote 0003ff00

7. All done.
root@regulus:msm7227#

*** each step has to be confirmed by pressing a key ***

It requires "adb" executable in one of the directory listed in $PATH variable.

It works for me so it has to work for you ;-)

Happy unlocking and endless kudos to the_laser :-),

ff0000