[XPERIA X1 General] fards:
Looks like the hardware keyboard layout is controlled by

eT9.Rhodium.wwe.kmap.txt

it's editable, I'm playing with it!

is there a kovsky one in the stock roms??

here's a comparison with the RAPHAEL one.

// N O T E: This file must be saved as Unicode

//
// This file contains the virtual keys mapping table for the
// Raphael device World-Wide English QWERTY layout.

// The mapping table is defined as follows
//
// VK_TPOUND = 0x78
// VK_TSTAR = 0x77
// VK_TAB = 0x09
//
// We do not support escape value yet. So the key/char values should be
// entered explicitly or by encoding start with 0x
//
// Format:
// {VK VK1 VK2 CH1 CH2}
// VK -> value from keyboard driver
// VK1 -> key mapped, interpret by IME
// VK2 -> key to interpret when for press and hold
// CH1 -> symbols produced by Fn + key
// CH2 -> symbols in 123 mode
// CH4 -> Key Index

//{1 1 1 ! ! 0xff}
//{2 2 2 @ @ 0xff}
//{3 3 3 # # 0xff}
//{4 4 4 $ $ 0xff}
//{5 5 5 % % 0xff}
//{6 6 6 ^ ^ 0xff}
//{7 7 7 & & 0xff}
//{8 8 8 * * 0xff}
//{9 9 9 ( ( 0xff}
//{0 0 0 ) ) 0xff}
//{- - - _ _ 0xff}
//{= = = + + 0xff}

{0x09 0x09 0x00 0x00 0x00 0xff}	// TAB - 0x09 = VK_TAB

{Q Q Q Q Q 0x00}
{W W W W W 0x01}
{E E E E E 0x02}
{R R R R R 0x03}
{T T T T T 0x04}
{Y Y Y Y Y 0x05}
{U U U U U 0x06}
{I I I I I 0x07}
{O O O O O 0x08}
{P P P P P 0x09}

{0x08 0x08 0x08 0x2E 0x2E 0xff}	// BACKSPACE - 0x08 = VK_BACK, 0x2E = VK_DELETE

{0x14 0x14 0x14 0x00 0x00 0xff}	// CAPS - 0x14 = VK_CAPITAL

{A A A A A 0x0a}
{S S S S S 0x0b}
{D D D D D 0x0c}
{F F F F F 0x0d}
{G G G G G 0x0e}
{H H H H H 0x0f}
{J J J J J 0x10}
{K K K K K 0x11}
{L L L L L 0x12}

{0xF2 0x0D 0x00 0x00 0x00 0xff}	// ENTER - 0x0D = VK_RETURN

{0xA0 0x10 0x10 0x00 0x00 0xff}	// SHIFT - 0xA0 = VK_LSHIFT, 0x10 = VK_SHIFT

{Z Z Z Z Z 0x13}
{X X X X X 0x14}
{C C C C C 0x15}
{V V V V V 0x16}
{B B B B B 0x17}
{N N N N N 0x18}
{M M M M M 0x19}
//{/ / / ? ? 0xff}

{0xF1 0x26 0x26 0x21 0x21 0xff}	// UP - 0x26 = VK_UP, 0x21 = VK_PRIOR (PAGE UP)

{0xA2 0x11 0x00 0x00 0x00 0xff}	// CTRL - 0xA2 = VK_LCONTROL, 0x11 = VK_CONTROL
{0xEC 0xEC 0x00 0x00 0x00 0xff}	// FN - 0xEC = FN
{0xEB 0xEB 0x00 0x00 0x00 0xff}	// SMS - 0xEB = SMS/T
{0xEF 0xEF 0x00 0x00 0x00 0xff}	// MSG - 0xEF = MSG
{0xE6 0xE6 0x00 0x00 0x00 0xff}	// SYM	- 0xE6
{0xEA 0x12 0x00 0x00 0x00 0xff}	// T9 Menu	- 0x12
{0x20 0x20 0x20 0x00 0x00 0xff}	// SPACE - 0x20 = VK_SPACE

//{, , , ' ' 0xff}
//{. . . " " 0xff}

{0xF5 0x25 0x25 0x00 0x00 0xff}	// LEFT - 0x25 = VK_LEFT
{0xF3 0x28 0x28 0x22 0x22 0xff}	// DOWN - 0x28 = VK_DOWN, 0x22 = VK_NEXT (PAGE DOWN)
{0xF4 0x27 0x27 0x00 0x00 0xff}	// RIGHT - 0x27 = VK_RIGHT

and the Rhodium (diamond2) one

//
// N O T E: This file must be saved as Unicode

//
// This file contains the virtual keys mapping table for the
// Raphael device World-Wide English QWERTY layout.

// The mapping table is defined as follows
//
// VK_TPOUND = 0x78
// VK_TSTAR = 0x77
// VK_TAB = 0x09
//
// We do not support escape value yet. So the key/char values should be
// entered explicitly or by encoding start with 0x
//
// Format:
// {VK VK1 VK2 CH1 CH2}
// VK -> value from keyboard driver
// VK1 -> key mapped, interpret by IME
// VK2 -> key to interpret when for press and hold
// CH1 -> symbols produced by Fn + key
// CH2 -> symbols in 123 mode
// CH4 -> Key Index

// Row 1
{1 1 1 ! ! 0xff}
{2 2 2 @ @ 0xff}
{3 3 3 # # 0xff}
{4 4 4 $ $ 0xff}
{5 5 5 % % 0xff}
{6 6 6 ^ ^ 0xff}
{7 7 7 & & 0xff}
{8 8 8 * * 0xff}
{9 9 9 ( ( 0xff}
{0 0 0 ) ) 0xff}

// Row 2
{Q Q Q 0x00 0x00 0x00}
{W W W £ £ 0x01}
{E E E € € 0x02}
{R R R 0x00 0x00 0x03}
{T T T 0x00 0x00 0x04}
{Y Y Y 0x00 0x00 0x05}
{U U U + + 0x06}
{I I I = = 0x07}
{O O O - - 0x08}
{P P P _ _ 0x09}

// Row 3
{A A A 0x00 0x00 0x0a}
{S S S 0x00 0x00 0x0b}
{D D D 0x00 0x00 0x0c}
{F F F 0x00 0x00 0x0d}
{G G G 0x00 0x00 0x0e}
{H H H ; ; 0x0f}
{J J J : : 0x10}
{K K K ' ' 0x11}
{L L L " " 0x12}
{0x08 0x08 0x08 0x2E 0x2E 0xff}	// BACKSPACE - 0x08 = VK_BACK, 0x2E = VK_DELETE

// Row 4
{0x10 0x10 0x10 0x14 0x00 0xff}	// CAPS - 0x14 = VK_CAPITAL
{Z Z Z 0x00 0x00 0x13}
{X X X 0x00 0x00 0x14}
{C C C 0x00 0x00 0x15}
{V V V 0x00 0x00 0x16}
{B B B \ \ 0x17}
{N N N / / 0x18}
{M M M ? ? 0x19}
{0x26 0x26 0x26 0xF021 0xF021 0xff}	// UP - 0x26 = VK_UP, 0x21 = VK_PRIOR (PAGE UP)
{0xF5 0x0D 0x00 0x00 0x00 0xff}	// ENTER - 0x0D = VK_RETURN

// Row 5
{0xEC 0xEC 0x00 0x00 0x00 0xff}	// FN - 0xEC = FN
{0xF2 0xF2 0x00 0x00 0x00 0xff}	// MSG - 0xF2 = MSG
{0xEB 0x93 0x00 0x00 0x00 0xff} // SMS - 0x93 = SMS
{0xBC , , 0xE9 0x00 0xff} // SYM - 0xE9
{0x20 0x20 0x20 0x12 0x20 0xff}	// SPACE - 0x20 = VK_SPACE, 0x12 = XT9 Menu
{0xBE . . 0x00 0x00 0xff}
{0x25 0x25 0x25 0x92 0x00 0xff}	// LEFT - 0x25 = VK_LEFT
{0x28 0x28 0x28 0xF022 0xF022 0xff}	// DOWN - 0x28 = VK_DOWN, 0x22 = VK_NEXT (PAGE DOWN)
{0x27 0x27 0x27 0xF3 0x00 0xff}	// RIGHT - 0x27 = VK_RIGHT

{0xE9 0xE9 0xE9 0x00 0x00 0xff} // SYM - 0xE9