高通平台 efs.img_B的制作方法

在Android7.0以后的项目中,制作efs.img的方法如下:


1、添加开关--FEATURE_EFS_ENABLE_FACTORY_IMAGE_SECURITY_HOLE
modem_proc/build/ms/cust8976.gen.prodq.h
#define FEATURE_EFS_ENABLE_FACTORY_IMAGE_SECURITY_HOLE 


2、 修改相关文件
./modem_proc/core/storage/fs_tar/src/fs_signed_img_param.c 
FS_SIGNED_IMG_ROOT_HASH key fs_signed_img_param.c 
#ifndef FS_SIGNED_IMG_ROOT_HASH 
#define FS_SIGNED_IMG_ROOT_HASH \ 
- {0xd5, 0x85, 0x22, 0xcd, 0x60, 0x2a, 0x50, 0x1c, \ 
- 0x3a, 0x79, 0x8d, 0x20, 0x15, 0x33, 0xae, 0x31, \ 
- 0xf9, 0x24, 0x27, 0x2b, 0x0b, 0x76, 0xf1, 0x59, \ 
- 0xfe, 0x81, 0x75, 0x3b, 0x5f, 0xcf, 0xce, 0x60} 
+ {0xB5, 0x3F, 0xB2, 0x3D, 0x19, 0x53, 0xDE, 0xCB, \
+ 0x95, 0x92, 0x8F, 0xE6, 0x57, 0x55, 0x6C, 0xEA, \
+ 0x6E, 0xDA, 0xB3, 0x44, 0x4D, 0xC7, 0x08, 0xC0, \
+ 0x19, 0x05, 0x7C, 0xBA, 0xF8, 0xC6, 0x2D, 0x4A}






and dummy_key in fs_tar.c 
Modem/./core/storage/fs_tar/src/fs_tar.c 
/* THE BELOW DUMMY KEY SHOULD NOT BE MODIFIED */ 
uint8 fs_dummy_key[] = \
- {0xd5, 0x85, 0x22, 0xcd, 0x60, 0x2a, 0x50, 0x1c, \
- 0x3a, 0x79, 0x8d, 0x20, 0x15, 0x33, 0xae, 0x31, \
- 0xf9, 0x24, 0x27, 0x2b, 0x0b, 0x76, 0xf1, 0x59, \
- 0xfe, 0x81, 0x75, 0x3b, 0x5f, 0xcf, 0xce, 0x60}; 
+ {0xB5, 0x3F, 0xB2, 0x3D, 0x19, 0x53, 0xDE, 0xCB, \
+ 0x95, 0x92, 0x8F, 0xE6, 0x57, 0x55, 0x6C, 0xEA, \
+ 0x6E, 0xDA, 0xB3, 0x44, 0x4D, 0xC7, 0x08, 0xC0, \
+ 0x19, 0x05, 0x7C, 0xBA, 0xF8, 0xC6, 0x2D, 0x4A};




4、添加开关 "FEATURE_FS_TAR_ALLOW_DUMMY_KEY" in fs_tar.c  
#define FEATURE_FS_TAR_ALLOW_DUMMY_KEY
 
5、 改变 sw_id and hw_id 
 at ~\common\sectools\config\8976\8976_secimage.xml
@@ -33,7 +33,7 @@ 
<num_root_certs>1</num_root_certs> 


<!--MSM8956:0x009B00E1, MSM8976: 0x009900E1--> 
- <msm_part>0x009900E1</msm_part> 
+ <msm_part>0x00000000</msm_part> 
<oem_id>0x0000</oem_id> 
<model_id>0x0000</model_id> 
<debug>0x0000000000000002</debug> 
@@ -418,7 +418,7 @@ 


<image sign_id="efs_tar" name="fs_image.tar.gz.mbn" image_type="mbn_40b"> 
<general_properties_overrides> 
- <sw_id>0x000000000000001B</sw_id> 
+ <sw_id>0x0000000000000000</sw_id> 
</general_properties_overrides> 
</image> 
注意:这里的两个值和./modem_proc/core/storage/fs_tar/src/fs_signed_img_param.c 
中的宏对应 
#ifndef FS_SIGNED_IMG_MSM_HW_ID 
#define FS_SIGNED_IMG_MSM_HW_ID 0x0000000000000000 
#endif 


#ifndef FS_SIGNED_IMG_SOFTWARE_ID 
#define FS_SIGNED_IMG_SOFTWARE_ID 0x0000000000000000 
#endif 


6.编译modem版本


7.down 编译好的bin文件 down之前擦掉分区
adb reboot bootloader
fastboot erase modemst1(modemst2/fsg/fsc)
fastboot reboot


adb reboot bootloader
fastboot flash modem NON-HLOS.bin
fastboot reboot


8. QPST down qcn文件(rf提供)
 
9.. 在~\modem_proc\core\storage\tools下执行:
    perl efsreadimage.pl -z , 生成 fs_image.tar.gz 文件 
 
    到~\common\sectools目录下然后执行下列命令:
    python sectools.py mbngen -i ../../modem_proc/core/storage/tools/fs_image.tar.gz -t efs_tar_40 -o ../../modem_proc/core/storage/tools/ -g 
   签名:
    python sectools.py secimage -p 8976 -i ../../modem_proc/core/storage/tools/fs_image.tar.gz.mbn -g efs_tar -o . -sa


10.
把~\common\sectools\8976\efs_tar下的fs_image.tar.gz.mbn和
~\modem_proc\build\ms\bin\8976.gen.prod下的efs_image_meta.bin复制到~\modem_proc\core\bsp\efs_image_header\tools下
执行:
python efs_image_create.py efs_image_meta.bin fs_image.tar.gz.mbn  生成 fs_image.tar.gz.mbn.img文件.


11. 验证img文件是否正确
依次执行下列命令:
adb reboot bootloader
fastboot erase modemst1(modemst2/fsg/fsc)
fastboot flash fsg fs_image.tar.gz.mbn.img
fastboot reboot 
查看手机状态是否正常,NV项是否正常。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值