[Android General] ludoo:
Driver installation is not hard, you only need the vcom drivers to install from sp flash tool. Don't install them yourself: remove the battery and disconnect the usb cable, put the battery back in without turning the phone on, connect the cable and windows should pick up the vcom interface and ask you for a driver. Don't let it choose a driver, point the wizard to the folder where you unpacked the vcom drivers. Then follow the sp flash tool guides on xda.

---------- Post added at 01:10 PM ---------- Previous post was at 01:02 PM ----------

Forgot, another method is copyying all the img files on the sdcard, connecting via adb, then using dd.

The list of partitions is here (from /proc/dumchar_info)

Part_Name	Size	StartAddr	Type	MapTo
preloader 0x0000000000600000 0x0000000000000000 2 /dev/misc-sd
mbr 0x0000000000080000 0x0000000000000000 2 /dev/block/mmcblk0
ebr1 0x0000000000080000 0x0000000000080000 2 /dev/block/mmcblk0p1
pmt 0x0000000000400000 0x0000000000100000 2 /dev/block/mmcblk0
pro_info 0x0000000000300000 0x0000000000500000 2 /dev/block/mmcblk0
nvram 0x0000000000500000 0x0000000000800000 2 /dev/block/mmcblk0
protect_f 0x0000000000a00000 0x0000000000d00000 2 /dev/block/mmcblk0p2
protect_s 0x0000000000a00000 0x0000000001700000 2 /dev/block/mmcblk0p3
seccfg 0x0000000000020000 0x0000000002100000 2 /dev/block/mmcblk0
uboot 0x0000000000060000 0x0000000002120000 2 /dev/block/mmcblk0
bootimg 0x0000000000600000 0x0000000002180000 2 /dev/block/mmcblk0
recovery 0x0000000000600000 0x0000000002780000 2 /dev/block/mmcblk0
sec_ro 0x0000000000600000 0x0000000002d80000 2 /dev/block/mmcblk0p4
misc 0x0000000000080000 0x0000000003380000 2 /dev/block/mmcblk0
logo 0x0000000000300000 0x0000000003400000 2 /dev/block/mmcblk0
ebr2 0x0000000000080000 0x0000000003700000 2 /dev/block/mmcblk0
expdb 0x0000000000a00000 0x0000000003780000 2 /dev/block/mmcblk0
android 0x0000000022600000 0x0000000004180000 2 /dev/block/mmcblk0p5
cache 0x0000000007e00000 0x0000000026780000 2 /dev/block/mmcblk0p6
usrdata 0x000000003ae00000 0x000000002e580000 2 /dev/block/mmcblk0p7
fat 0x000000016eda0000 0x0000000069380000 2 /dev/block/mmcblk0p8
bmtpool 0x0000000001500000 0x00000000ff9f00a8 2 /dev/block/mmcblk0
Part_Name:Partition name you should open;
Size:size of partition
StartAddr:Start Address of partition;
Type:Type of partition(MTD=1,EMMC=2)
MapTo:actual device you operate

If you have a partition, like for android (/system) use that, otherwise you need to use the raw device and control the offset and size. Let's say you want to flash recovery, the following line gives you all the info you need:

recovery 0x0000000000600000 0x0000000002780000 2 /dev/block/mmcblk0

which are the device name, and memory address from where to start flashing, memory address needs to be converted to decimal, and divided by block size (4k):

# device /dev/block/mmcblk0
# size 0x0000000000600000 = 6291456 bytes / 4096 bytes = 1536 blocks
# start 0x0000000002780000 = 41418752 bytes / 4096 bytes = 10112 blocks
# backup recovery
dd if=/dev/block/mmcblk0 of=/sdcard/recovery.img bs=4096 count=1536 skip=10112
# flash recovery, no need for count as recovery.img has a finite size
dd if=/sdcard/recovery.img of=/dev/block/mmcblk0 bs=4096 seek=10112