首先手机root且安装busybox和超级终端软件,这里不提供自己百度一大堆
一.制作scatter
示范
PRELOADER 0x0
{
}
MBR 0x600000
{
}
EBR1 0x680000
{
}
__NODL_PMT 0x700000
{
} __NODL_PRO_INFO 0xb00000
{
}
__NODL_NVRAM 0xe00000
{
}
__NODL_PROTECT_F 0x1300000
{
}
__NODL_PROTECT_S 0x1d00000
{
}
__NODL_SECCFG 0x2700000
{
}
UBOOT 0x2720000
{
}
BOOTIMG 0x2780000
{
}
RECOVERY 0x2d80000
{
}
SEC_RO 0x3780000
{
}
__NODL_MISC 0x3d80000
{
}
LOGO 0x3e00000
{
}
EBR2 0x4100000
{
}
__NODL_OPPO_CUSTOM 0x4180000
{
}
__NODL_EXPDB 0x4280000
{
}
ANDROID 0x4c80000
{
}
CACHE 0x3cd80000
{
}
USRDATA 0x44b80000
{
}
FAT 0x84b80000
{
}
可以直接从官方卡刷包提取或在超级终端输入
dd if=/proc/dumchar_info of=/mnt/sdcard/partition.txt bs=10000c count=1
然后在手机内存卡里找到partition.txt用编辑器打开,会发现所有分区的大小和地址都在这里,然后就自己算出分区表即可,提示:第一个分区的地址为0x0,那么第x个分区的地址就是前一个分区的地址加上该x分区的大小,示范如果要算出mbr的地址,查看下表perloader大小为0x600000,那么mbr的实际地址为0x0+0x600000=0x600000,ebr1的地址为0x600000+0x80000=0x680000,其他的自己算吧。
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 0x0000000000a00000 0x0000000002780000 2 /dev/block/mmcblk0
sec_ro 0x0000000000600000 0x0000000003180000 2 /dev/block/mmcblk0p4
misc 0x0000000000080000 0x0000000003780000 2 /dev/block/mmcblk0
logo 0x0000000000300000 0x0000000003800000 2 /dev/block/mmcblk0
ebr2 0x0000000000080000 0x0000000003b00000 2 /dev/block/mmcblk0
oppo_custom 0x0000000000100000 0x0000000003b80000 2 /dev/block/mmcblk0
expdb 0x0000000000a00000 0x0000000003c80000 2 /dev/block/mmcblk0
android 0x0000000038100000 0x0000000004680000 2 /dev/block/mmcblk0p5
cache 0x0000000007e00000 0x000000003c780000 2 /dev/block/mmcblk0p6
usrdata 0x0000000040000000 0x0000000044580000 2 /dev/block/mmcblk0p7
fat 0x00000000631a0000 0x0000000084580000 2 /dev/block/mmcblk0p8
bmtpool 0x0000000001500000 0x00000000ff9f00a8 2 /dev/block/mmcblk0
Part_Nameartition 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
二,提取线刷资料
查看分区表_nodl_开头的不用提取
打开超级终端
输入su按回车
1.ebr1
实际大小为0.5k,由于各个机型不一样,所以提取约20k即可
dd if=/dev/ebr1 of=/mnt/sdcard/ebr1.bin bs=20000c count=1
2.ebr2
实际大小为0.5k,由于各个机型不一样,所以提取约20k即可
dd if=/dev/ebr2 of=/mnt/sdcard/ebr2.bin bs=20000c count=1
3.preloader
实际大小为约128k,所以提取128k即可
dd if=/dev/preloader of=/mnt/sdcard/OPPO/preloader.bin bs=512c count=256 skip=4
4.dsp_bl
dd if=/dev/dsp_bl of=/mnt/sdcard/dsp_bl.bin bs=512c count=64
5.sec_ro
实际大小约10k,由于各个机型不一样,所以提取约100k即可
dd if=/dev/sec_ro of=/mnt/sdcard/secro.bin bs=100000c count=1
6.mbr
实际大小为0.5k,由于各个机型不一样,所以提取约20k即可
dd if=/dev/mbr of=/mnt/sdcard/mbr.bin bs=20000c count=1
7.uboot
由于各个机型不一样,所以提取约1000k即可
dd if=/dev/uboot of=/mnt/sdcard/uboot.bin bs=1000000c count=1
8.boot
由于各个机型不一样,所以提取约5m即可
dd if=/dev/bootimg of=/mnt/sdcard/boot.img bs=5291456c count=1
9.logo
由于各个机型不一样,所以提取约2m即可
dd if=/dev/logo of=/mnt/sdcard/OPPO/logo.bin bs=200000c count=1
10.recovery
由于各个机型不一样,所以提取约7.5m即可
dd if=/dev/recovery of=/mnt/sdcard/recovery.img bs=7800000c count=1
其他例如system,cache等就不用提取了吧,因为比较大,谁会把整个手机的闪存格式化,提取上面的资料刷入手机后进去rec刷官方rom即可
还有这两个分区也备份一下以不时之用
pmt
dd if=/dev/pmt of=/mnt/sdcard/pmt.bin bs=2000000c count=1
nvram
dd if=/dev/nvram of=/mnt/sdcard/nvr