First off, this mod is NOT for users, but is helpful for developers only that would like to do cool stuff (i.e. port new kernels, etc.). Do not start hacking your phone unless you know what you are doing.
The msm7227 has RS232 serial connection which is accessed via /dev/ttyMSM2. The issue is getting the pins on the board right, and this is because there is great confusion online about the actual pinout for these semc devices (probably because nobody has actually grabbed serial tty on them).
- Solder iron, solder, flux (you know, the cool stuff :P)
- Small wires, single core ideally - not too large to avoid noise
- Multimeter: useful for checking if you've sorted pins that you are soldering (happens all the time :P)
- Steady hand, patience (I lack those actually)
- A 3.3V TTL RS232 adapter. I'm using the FT232RL USB to Serial board which works flawlessly. You could come up with other solutions too if you are into electronics via MAX232 or Arduino.
Important: do NOT wire the phone to the serial port of you PC - it can potentially burn up your phone!
Be careful while soldering, don't let the iron for too much time on the connector or you'll end up destroying it (as I did for two connectors while reverse engineering where the tty pins are).
So here's the pinout on the X8:
The connection should be like so:
Phone <-> Serial Adapter Tx <-> Rx Rx <-> Tx GND <-> GND
Once soldered and connected, you can use any tty program under linux or windows that you like. E.g. minicom (linux) works great for me, it picks up the bootloader / kernel output instantly.
Connection details: Port: /dev/ttyUSB0, baud: 115200-8N1
Some cosmetics for harnessing the added wires:
Some interesting stuff now... here's the log from the moment the power button is pressed, until the kernel picks up:
S1 Boot stage 1 CONF_FUSE 0-4 = 0x0077fd4d 0x00040447 0x2004080f 0xb79cc2de 0x00000180 HW_REVISION_NUMBER = 0x203c00e1 OEM_ID = 0x00000001 SEMCSEC Secure Bootstrap "1229-3593 S1Boot MSM7227 CRH1099189_R8A029" (2010-06-01 12:17) Detected memories: SMI CS0: UNKNOWN 32MB LPDDR (SR 0x0000) EBI1 CS0: UNKNOWN 32MB LPDDR (SR 0x0000) EBI1 CS1: UNKNOWN 32MB LPDDR (SR 0x0000) EBI2 CS0: Samsung 512MB NAND (0x00ec 0x00bc) PMIC initialization iterations=0x00000001 bq24180 charger IC rev 1.1 detected OTP User segment locked OTP User segment locked TA @ 0x08100000 (8*128kB) Hardware Config: verification OK MSN=CB511K1YZM IMEI=XXXXXXXXXXXXXX OTP User segment locked Service Mode Config From TA (ver 1.0): KEYS:1 USB:eek:N SERVICEMODE:USB SERVICE_PIN:ENABLED VBus is low (not a "chinese charger"), SoftService is not asserted... TA_ReadData FlaFla is set S1 BOOT waiting for USB connection s1_main_loop: No Service mode comm interface found! Configuring long press:500 plf_bootos MSM7227 Startup reason before override: PWRKEY WDOG Overriding default boot partitions: reason=0x00000011, mArm=0x00000005, aDsp=0x00000008, aArm=0x00000003 Partition table contents: PartID Descr Attribs StartBlock NumBlocks UsedAs 0x00000001 S1Boot 0x00000022 0x00000000 0x00000008 0x00000002 TA 0x00000001 0x00000008 0x00000008 0x00000005 ModemSW 0x40000022 0x00000030 0x000000c0 mARM image 0x00000003 Linux 0x40000001 0x00000120 0x00000040 aARM image 0x0000000f Cache 0x80000001 0x000007d0 0x00000190 0x00000010 AppsLog 0xc0000001 0x00000ffe 0x00000002 0x0000000b FOTA0 0x40000022 0x00000010 0x00000010 0x0000000c FOTA1 0x40000022 0x00000020 0x00000010 0x00000006 ModemFS 0x40000001 0x000000f0 0x00000030 mARM-FS image 0x00000009 UserData 0xc0000001 0x00000960 0x0000069e 0x00000004 AppsFS1 0x80000001 0x00000160 0x00000670 ARM ELF image (0x0028), entry point @ 0x0db00000 SIN Verification of aARM failed! ARM ELF image (0x0028), entry point @ 0x00208000 plf_ta_cmd_params() Boot parameters found in config data Commandline:serialno=CB511K1YZM console=ttyMSM0 startup=0x00000011. Warmboot address calculated: 0x00200000 NAND MPU Partition 0 start:0x00000160 end:0x00000960 NAND MPU Partition 1 start:0x00000960 end:0x00001000 NAND MPU ON according to partition table Jumping to code @ 0x0db00000, goodbye and thanks for all the fish... Linux version 220.127.116.11-nAa-jb-03 (nobodyAtall@hydra) (gcc version 4.7.3 20121106 (prerelease) (Linaro GCC 4.7-2012.11) ) #1 PREEMPT Sat 2