Recovery 下mi debug方法

来源:互联网 发布:java软件工程师就业班 编辑:程序博客网 时间:2024/06/04 19:52

Recovery 下mi debug注意事项:

 

1.     不管是android .mi,mboot的owner,请无伦如何自己准备一份android 5.1环境,没有环境并不是rd的理由,不要等有mantis时喊没有环境。

2.     Recovery下的mi是删掉了dfb功能 ,一切与dfb有关的code,都通过宏隔开了,与Android下mi唯一的区别也就是这个,recovery下用的buildsetting是build_MI_Curry_9380AK_DVB_4k2k_recovery_bionic_cma.sh

3.     Recovery mi是把mi的.so与 bin档打包到recovery.img中,这个东西可以看作是一个boot.img.所以你直接在板子上修改文档重启后是不起作用的,因为开机中会把recovery分区load 到内存,你的修改相当于只是改了内存中的文件,重启后就没有了。

4.     如何修改recovery中的文件呢。两种方法

1)    .如果修改mi,请把mi切到对应的版本,修改后,sourcebuild_MI_Curry_9380AK_DVB_4k2k_recovery_bionic_cma.sh,编译出mi.把生成的MI_project/out/curry/arm-linux-androideabi/tmp_image与lmr1-mstar-master/device/mstar/ponkan/recovery用工具对比,把tvservice和tvconfig的差异合过去,(合之前也一定要把AN切到对应的版本,如果系统起不来请一定要确定版本是否一致),然后再编译make  recoveryimage,获得recovery.img烧到板子上。

2)    第二种方法简单些,找release android owner(目前c2 android owner是mango-hm.huang)要对应版本的ramdisk-recovery.img,解压mkrecovery.rar,把拿到的ramdisk-recovery.img 拷贝到mkrecovery下,还要拿到当前版本的kernel,方法是把AN切到对应版本,如果是32bit的image就是lmr1-mstar-master/device/mstar/ponkan/kernel32/kernel,

64bit是lmr1-mstar-master/device/mstar/ponkan/kernel,把kernel也放到mkrecovery下,执行mkramdisk_open.sh,会看到生成了ramdisk_make文件夹,把方法1中修改的mi也合到mkrecovery\ramdisk_make\tvservice与mkrecovery\ramdisk_make\tmp\tvconfig下,再执行mkramdisk_close.sh.。最后执行mkboot.sh就会生成对应的recovery.img.

 

有一个要注意的地方,mkboot.sh中的

./mkimage -A arm -O linux -T multi -C none -a 0x20280000 -e0x20280000 -n 'MStar-linux' -d$PRODUCT_OUT/kernel:$PRODUCT_OUT/ramdisk-recovery.img $PRODUCT_OUT/recovery.img

 

0x20280000 -e 0x20280000这两上参数可能是20208000,这个可以看kernel启动过程中LoadAddress,按照这个填写就OK了

##Booting kernel from Legacy Image at 24D00000 ...

   Image Name:  MStar-linux(recovery)

   Image Type:  ARM Linux Multi-File Image (uncompressed)

   Data Size:   36564070 Bytes = 34.9 MiB

   Load Address: 20208000

0 0