[XPERIA X10 Android Development] biktor_gj:
People with limited knowledge about the phone, please do not attempt any of the things I say on my posts, unless you want to break your phone

Just a note for Jerpelea and Bin4ry...

Been playing with the cmdline at the recovery image...

Did you see, that when you brick the phone with a broken recovery image (ok, not broken, but with an invalid signature or crc), usb does still work?

I did notice, and I noticed another thing... linux kernel is still running! And USB connection is available too!

Now the thing is I'm not too sure wich function is working.

These are the devices I've seen so far:

Vendor: always 0xfce :: Sony Ericsson Mobile Communications

Device:

Normal (phone bootup complete): 0xe12e

Bootloader: 0xadde

Broken recovery: 0xd12e

Now, from the kernel sources:

.product_id = 0xE12E,
.functions	= 0x01, /* 000001 */	},
{
.product_id = 0xD12E,
#ifdef CONFIG_ES209RA_USB_DEV_FUNCS
.functions	= 0x1F, /* 011111 */
#else
.functions	= 0x03, /* 000011 */

Now, from the available usb functions declared on the kernel

{"mass_storage", 0},
{"adb", 1},
{"modem", 2},
{"nmea", 3},
{"diag", 4},
{"ethernet", 5},

So I guess what this means is when recovery isn't able to start, OR, when the bootloader fails to check a signature of one of the files (and I think that being able to flash a recovery image with an invalid signature is one of the best things that could happen to us) wich are already flashed, the thing activates a generic usb hub, from wich it opens access to the rest of usb functions (5+4+3+2+1=0xF).

Just so you know, my modification to the recovery was a little too much for it, as I changed the full size of the file instead of keeping it on it's original one, so I may have overflowed something. Still testing if I can make it look for root device on mmcblk0p1 (no luck yet)

Second note: I didn't touch the kernel code, just the init sequence...

Still working on it guys!

EDIT: Ok, It seems it's not automatic, since now I can't get that device to showup again:

Diagnostics:

root@eleonor:/lib/modules/2.6.32-22-generic/kernel/drivers/usb/serial# lsusb
Bus 002 Device 003: ID 090c:6200 Feiya Technology Corp.
Bus 002 Device 002: ID 046d:c408 Logitech, Inc. Marble Mouse (4-button)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 012: ID 0fce:d12e Sony Ericsson Mobile Communications AB
Bus 001 Device 004: ID 05ac:0221 Apple, Inc. Keyboard (Aluminium) (ISO)
Bus 001 Device 003: ID 05ac:1006 Apple, Inc. Hub in Aluminum Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Normal:

root@eleonor:/lib/modules/2.6.32-22-generic/kernel/drivers/usb/serial# lsusb
Bus 002 Device 003: ID 090c:6200 Feiya Technology Corp.
Bus 002 Device 002: ID 046d:c408 Logitech, Inc. Marble Mouse (4-button)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 020: ID 0fce:e12e Sony Ericsson Mobile Communications AB
Bus 001 Device 004: ID 05ac:0221 Apple, Inc. Keyboard (Aluminium) (ISO)
Bus 001 Device 003: ID 05ac:1006 Apple, Inc. Hub in Aluminum Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Maybe I need some key combination to make it work...