在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项是否正常。
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项是否正常。