mtk利用nvram分区进行多屏兼容方案
1. 参考
[FAQ11409]通过预设在nvram里的数据实现lcm兼容的方案
2. 可以利用MTK工具SP_META去修改nvram分区,(注意:SP_META工具选择的数据库文件路径如下)

3. mtk的FAQ修改方法只适用Android4.x版本的。下面是MT6735-Android5.1上,自己实现的具体修改记录
bootable修改:
通过mtk SP_META去修改nvram分区(该分区包括了64字节的barcode、40字节IMEI),现在开辟了跟在barcode和IMEI的4个字节作为lcd识别区,不过只用了一个字节去区别屏,例如0x30就调用lcd0、0x31就调用lcd1...
diff --git a/bootloader/lk/dev/lcm/LT8911B_1080/LT8911B_1080.c b/bootloader/lk/dev/lcm/LT8911B_1080/LT8911B_1080.c
index aacf94e..0bd2416 100755
--- a/bootloader/lk/dev/lcm/LT8911B_1080/LT8911B_1080.c
+++ b/bootloader/lk/dev/lcm/LT8911B_1080/LT8911B_1080.c
@@ -1308,9 +1308,22 @@ resume_again_lk1:} }-
+extern u8 match_lcm[4];static void lcm_init(void){
+#if 1
+ // int i;
+ // for(i=0; i<5; i++){
+ // printf("BSK-lcm: %x \n",match_lcm[i]);
+ // }
+ if(match_lcm[0] == 0x30){
+ printf("BSK-lcm: match LT8911B_1080 succeed!\n");
+ }else{
+ printf("BSK-lcm: not match LT8911B_1080!\n");
+ return;
+ }
+#endif
+#if 1 unsigned int num = 0;#ifdef BUILD_LK
@@ -1407,7 +1420,16 @@ lcm_init();static unsigned int lcm_compare_id(void){ int ret;
- ret=LT8911_ChipID();
+ //ret=LT8911_ChipID();
+#if 1
+ if(match_lcm[0] == 0x30){
+ ret = 1;
+ printf("BSK-lcm: match LT8911B_1080 succeed!\n");
+ }else{
+ ret = 0;
+ printf("BSK-lcm: not match LT8911B_1080!\n");
+ }
+#endifreturn (ret == 1)?1:0;}diff --git a/bootloader/lk/dev/lcm/LT8911EXB_1080/LT8911EXB_1080.c b/bootloader/lk/dev/lcm/LT8911EXB_1080/LT8911EXB_1080.c
index 9802e7a..1d1b7e0 100755
--- a/bootloader/lk/dev/lcm/LT8911EXB_1080/LT8911EXB_1080.c
+++ b/bootloader/lk/dev/lcm/LT8911EXB_1080/LT8911EXB_1080.c
@@ -855,9 +855,22 @@ void lcm_init_exb(void)}}-
+extern u8 match_lcm[4];static void lcm_init(void){
+#if 1
+ // int i;
+ // for(i=0; i<5; i++){
+ // printf("BSK-lcm: %x \n",match_lcm[i]);
+ // }
+ if(match_lcm[0] == 0x31){
+ printf("BSK-lcm: match LT8911EXB_1080 succeed!\n");
+ }else{
+ printf("BSK-lcm: not match LT8911EXB_1080!\n");
+ return;
+ }
+#endif
+#if 1 unsigned int num = 0;@@ -942,7 +955,16 @@ lcm_init();static unsigned int lcm_compare_id(void){ int ret;
- ret=LT8911_ChipID();
+ //ret=LT8911_ChipID();
+#if 1
+ if(match_lcm[0] == 0x31){
+ ret = 1;
+ printf("BSK-lcm: match LT8911EXB_1080 succeed!\n");
+ }else{
+ ret = 0;
+ printf("BSK-lcm: not match LT8911EXB_1080!\n");
+ }
+#endifreturn (ret == 1)?1:0;}diff --git a/bootloader/lk/dev/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c b/bootloader/lk/dev/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
index f8f6342..1711f99 100755
--- a/bootloader/lk/dev/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
+++ b/bootloader/lk/dev/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
@@ -87,7 +87,7 @@ static LCM_UTIL_FUNCS lcm_util = {0};#define UDELAY(n) (lcm_util.udelay(n))#define MDELAY(n) (lcm_util.mdelay(n))-void printdec_u32(int temp)
+static void printdec_u32(int temp){printf("%d\n",temp);}
@@ -1091,8 +1091,22 @@ void LT9211_Pattern_Config(void)LT9211_VideoCheckDebug();}+extern u8 match_lcm[4];static void lcm_init(void){
+#if 1
+ // int i;
+ // for(i=0; i<5; i++){
+ // printf("BSK-lcm: %x \n",match_lcm[i]);
+ // }
+ if(match_lcm[0] == 0x32){
+ printf("BSK-lcm: match LT9211EXB_1920_540 succeed!\n");
+ }else{
+ printf("BSK-lcm: not match LT9211EXB_1920_540!\n");
+ return;
+ }
+#endif
+#if 1 unsigned int num = 0;@@ -1155,7 +1169,16 @@ lcm_init();static unsigned int lcm_compare_id(void){ int ret;
- ret=LT9211_ChipID();
+ //ret=LT9211_ChipID();
+#if 1
+ if(match_lcm[0] == 0x32){
+ ret = 1;
+ printf("BSK-lcm: match LT9211EXB_1920_540 succeed!\n");
+ }else{
+ ret = 0;
+ printf("BSK-lcm: not match LT9211EXB_1920_540!\n");
+ }
+#endif return (ret == 1)?1:0;}diff --git a/bootloader/lk/kernel/main.c b/bootloader/lk/kernel/main.c
old mode 100644
new mode 100755
index d2f957c..a2740fa
--- a/bootloader/lk/kernel/main.c
+++ b/bootloader/lk/kernel/main.c
@@ -39,7 +39,11 @@#include #endif-
+#if(1)
+#include
+BOOT_ARGUMENT *g_boot_arg;
+//BOOT_ARGUMENT boot_addr;
+#endifextern void *__ctor_list;extern void *__ctor_end;
@@ -71,6 +75,7 @@ static void call_constructors(void)}}+u8 match_lcm[4] = {0};/* called from crt0.S */void kmain(void) __NO_RETURN __EXTERNALLY_VISIBLE;void kmain(void)
@@ -96,7 +101,14 @@ void kmain(void)target_early_init();dprintf(INFO, "welcome to lk\n\n");
-
+#if(1)
+ //strncpy(lcm_name,g_boot_arg->flag,5);
+ int i = 0;
+ for(i=0; i<4; i++){
+ *(match_lcm+i) = g_boot_arg->match_lcm[i];
+ dprintf(INFO, "BSK-lcm: %x \n",*(match_lcm+i));
+ }
+#endif// deal with any static constructorsdprintf(SPEW, "calling constructors\n");call_constructors();
diff --git a/bootloader/lk/platform/mt6735/include/platform/boot_mode.h b/bootloader/lk/platform/mt6735/include/platform/boot_mode.h
old mode 100644
new mode 100755
index 4625775..d27bf2f
--- a/bootloader/lk/platform/mt6735/include/platform/boot_mode.h
+++ b/bootloader/lk/platform/mt6735/include/platform/boot_mode.h
@@ -154,6 +154,7 @@ typedef struct {u32 kernel_boot_opt;u32 non_secure_sram_addr;u32 non_secure_sram_size;
+ u8 match_lcm[4];} BOOT_ARGUMENT;@@ -308,6 +309,12 @@ struct boot_tag_sram_info {u32 non_secure_sram_size;};+/* sram lcm-info */
+#define BOOT_TAG_LCM_INFO 0x88610013
+struct boot_tag_lcm_info {
+ u8 match_lcm[4];
+};
+struct boot_tag_header {u32 size;u32 tag;
@@ -334,6 +341,7 @@ struct boot_tag {struct boot_tag_boot_opt boot_opt;struct boot_tag_sram_info sram_info;struct boot_tag_ptp ptp_volt;
+ struct boot_tag_lcm_info lcm_info;} u;};diff --git a/bootloader/lk/platform/mt6735/platform.c b/bootloader/lk/platform/mt6735/platform.c
old mode 100644
new mode 100755
index 6e49b3b..783aaf8
--- a/bootloader/lk/platform/mt6735/platform.c
+++ b/bootloader/lk/platform/mt6735/platform.c
@@ -192,6 +192,9 @@ int dram_init(void)case BOOT_TAG_PTP: memcpy(&g_boot_arg->ptp_volt_info, &tags->u.ptp_volt.ptp_volt_info, sizeof(ptp_info_t));break;
+ case BOOT_TAG_LCM_INFO:
+ for(i=0; i<4; i++)
+ g_boot_arg->match_lcm[i] = tags->u.lcm_info.match_lcm[i];default:break;}
@@ -567,6 +570,8 @@ int kernel_charging_boot(void)}#endif+extern u8 match_lcm[4];
+extern void LT9211_Config(void);void platform_init(void){#ifdef LK_PROFILING
@@ -859,6 +864,11 @@ void platform_init(void)#ifdef LK_PROFILINGdprintf(INFO, "[PROFILE] ------- platform_init takes %d ms -------- \n", (int)get_timer(time_platform_init));#endif
+
+ if(match_lcm[0] == 0x32){
+ dprintf(INFO,"BSK-lcm: Register LT9211EXB_1920_540-LT9211 I2c Config \n");
+ LT9211_Config();
+ }}void platform_uninit(void)
diff --git a/bootloader/lk/project/aeon6735_65c_s_l1.mk b/bootloader/lk/project/aeon6735_65c_s_l1.mk
index ed00161..13a42bd 100755
--- a/bootloader/lk/project/aeon6735_65c_s_l1.mk
+++ b/bootloader/lk/project/aeon6735_65c_s_l1.mk
@@ -11,7 +11,7 @@ DEFINES += MTK_NEW_COMBO_EMMC_SUPPORTMTK_KERNEL_POWER_OFF_CHARGING = noMTK_LCM_PHYSICAL_ROTATION = 0#CUSTOM_LK_LCM="hx8392a_dsi_cmd"
-CUSTOM_LK_LCM=LT8911B_1080 LT8911EXB_1080
+CUSTOM_LK_LCM=LT8911B_1080 LT8911EXB_1080 LT9211EXB_1920_540#hx8392a_dsi_cmd = yes#FASTBOOT_USE_G_ORIGINAL_PROTOCOL = yes
diff --git a/bootloader/preloader/platform/mt6735/src/core/main.c b/bootloader/preloader/platform/mt6735/src/core/main.c
old mode 100644
new mode 100755
index ff407d8..7b79fdc
--- a/bootloader/preloader/platform/mt6735/src/core/main.c
+++ b/bootloader/preloader/platform/mt6735/src/core/main.c
@@ -134,6 +134,86 @@ static void bldr_pre_process(void)BOOTING_TIME_PROFILING_LOG("Sec lib init");}+u8 match_lcm[4] = {0};
+static bool bldr_read_proinfo(void)
+{
+/*默认屏选择*/
+#define BSK_NVRAM_LCM_DATA 1
+#if (BSK_NVRAM_LCM_DATA == 0)//LT8911B_1080
+ u8 w_buf[4] = {0x30,0,0,0};
+#elif (BSK_NVRAM_LCM_DATA == 1)//LT8911EXB_1080
+ u8 w_buf[4] = {0x31,0,0,0};
+#elif (BSK_NVRAM_LCM_DATA == 2)//LT9211EXB_1920_540
+ u8 w_buf[4] = {0x32,0,0,0};
+#elif (BSK_NVRAM_LCM_DATA == 3)//xxx
+ u8 w_buf[4] = {0x33,0,0,0};
+#else
+ u8 w_buf[4] = {0x30,0,0,0};
+#endif
+
+ u8 i = 0;
+
+ /*read subarea head info*/
+ blkdev_t *bootdev;
+ if (NULL == (bootdev = blkdev_get(CFG_BOOT_DEV))) {
+ print("BSK-lcm: %s can't find boot device(%d)\n", MOD, CFG_BOOT_DEV);
+ /* FIXME, should change to global error code */
+ return -1;
+ }
+
+ char *name = "proinfo";
+ part_t *part = part_get(name);
+ if (NULL == part) {
+ print("BSK-lcm: %s %s partition not found\n", MOD, name);
+ return -1;
+ }
+
+ /*read nvram*/
+ u8 buf[120] = {0};
+ u32 offset = 0;
+ u64 src = (u64)(part->start_sect * bootdev->blksz) + offset;
+ if (blkdev_read(bootdev, src, sizeof(buf), buf, part->part_id) != 0){
+ printf("BSK-lcm: [%s] bootdev(%d) read error (%s)\n", MOD, bootdev->type, part->info->name);
+ return -1;
+ }
+
+ /*判断nvRAM是否有值,如果没有就使用默认屏*/
+ for(i=0;i<4;i++)
+ *(match_lcm+i) = buf[104+i];//barcode:64 + IMEI:40
+
+ if(match_lcm[0] == 0 && match_lcm[1] == 0 && match_lcm[2] == 0 && match_lcm[3] == 0){
+ printf("BSK-lcm: user default value");
+
+ /*write nvram => must 4byte align!!!*/
+ offset = 104;//barcode:64 + IMEI:40 + x
+ src = (u64)(part->start_sect * bootdev->blksz) + offset;
+ if(blkdev_write(bootdev, src, sizeof(w_buf), w_buf, part->part_id) != 0){
+ printf("BSK-lcm: [%s] bootdev(%d) write error (%s)\n", MOD, bootdev->type, part->info->name);
+ }
+
+ offset = 0;
+ src = (u64)(part->start_sect * bootdev->blksz) + offset;
+ if (blkdev_read(bootdev, src, sizeof(buf), buf, part->part_id) != 0){
+ printf("BSK-lcm: [%s] bootdev(%d) read error (%s)\n", MOD, bootdev->type, part->info->name);
+ return -1;
+ }
+ }
+
+ /*print dispose data*/
+#if(0)
+ i = 0;
+ while( i < sizeof(buf)){
+ print("BSK-lcm: %x %x %x %x %x %x %x %x\n", buf[i], buf[i+1], buf[i+2],
+ buf[i+3], buf[i+4], buf[i+5], buf[i+6], buf[i+7]);
+ i += 8;
+ }
+#endif
+
+ //memcpy(lcm_name, &buf[104], 5);
+ for(i=0;i<4;i++)
+ *(match_lcm+i) = buf[104+i];//barcode:64 + IMEI:40
+}
+static void bldr_post_process(void){platform_post_init();
@@ -736,7 +816,7 @@ void main(u32 *arg)print("%s Second Bootloader Load Failed\n", MOD);goto error;}
-
+ bldr_read_proinfo();bldr_post_process();#ifdef SLTmt_usb_phy_recover();
diff --git a/bootloader/preloader/platform/mt6735/src/drivers/inc/platform.h b/bootloader/preloader/platform/mt6735/src/drivers/inc/platform.h
old mode 100644
new mode 100755
index 3e2e4a5..01ac6bc
--- a/bootloader/preloader/platform/mt6735/src/drivers/inc/platform.h
+++ b/bootloader/preloader/platform/mt6735/src/drivers/inc/platform.h
@@ -288,6 +288,7 @@ typedef struct {u32 kernel_boot_opt;u32 non_secure_sram_addr;u32 non_secure_sram_size;
+ u8 match_lcm[4];} boot_arg_t;typedef enum {
@@ -469,6 +470,12 @@ struct boot_tag_sram_info {u32 non_secure_sram_size;};+/* sram lcm-info */
+#define BOOT_TAG_LCM_INFO 0x88610013
+struct boot_tag_lcm_info {
+ u8 match_lcm[4];
+};
+struct boot_tag_header {u32 size;u32 tag;
@@ -494,6 +501,7 @@ typedef struct {struct boot_tag_boot_opt boot_opt;struct boot_tag_sram_info sram_info;struct boot_tag_ptp ptp_volt;
+ struct boot_tag_lcm_info lcm_info;} u;}boot_tag;diff --git a/bootloader/preloader/platform/mt6735/src/drivers/platform.c b/bootloader/preloader/platform/mt6735/src/drivers/platform.c
old mode 100644
new mode 100755
index 1cbed1f..d8b119a
--- a/bootloader/preloader/platform/mt6735/src/drivers/platform.c
+++ b/bootloader/preloader/platform/mt6735/src/drivers/platform.c
@@ -405,6 +405,7 @@ void platform_vusb_on(void)return;}+extern u8 match_lcm[4];#if CFG_BOOT_ARGUMENT_BY_ATAGvoid platform_set_boot_args_by_atag(unsigned *ptr){
@@ -574,6 +575,18 @@ void platform_set_boot_args_by_atag(unsigned *ptr)print("NONSEC SRAM Addr: 0x%x\n", tags->u.sram_info.non_secure_sram_addr);print("NONSEC SRAM Size: 0x%x\n", tags->u.sram_info.non_secure_sram_size);+#if(1)
+ tags = ptr;
+ tags->hdr.size = boot_tag_size(boot_tag_lcm_info);
+ tags->hdr.tag = BOOT_TAG_LCM_INFO;
+
+ for(i=0; i<4; i++){
+ tags->u.lcm_info.match_lcm[i] = *(match_lcm+i);
+ print("BSK-lcm: %x \n",tags->u.lcm_info.match_lcm[i]);
+ }
+ ptr += tags->hdr.size;
+#endif
+/* END */*ptr++ = 0;*ptr++ = 0;
kernel-3.10修改:
主要是兼容3个屏的驱动
diff --git a/arch/arm64/configs/aeon6735_65c_s_l1_defconfig b/arch/arm64/configs/aeon6735_65c_s_l1_defconfig
index f083049..e628750 100755
--- a/arch/arm64/configs/aeon6735_65c_s_l1_defconfig
+++ b/arch/arm64/configs/aeon6735_65c_s_l1_defconfig
@@ -1036,8 +1036,8 @@ CONFIG_CUSTOM_KERNEL_GLANCE_GESTURE_SENSOR=""CONFIG_CUSTOM_KERNEL_IMGSENSOR="hm2131_mipi_yuv pr2000_mipi_yuv"CONFIG_CUSTOM_KERNEL_CAM_CAL_DRV=""#CONFIG_CUSTOM_KERNEL_LCM="hx8392a_dsi_cmd"
-#CONFIG_CUSTOM_KERNEL_LCM="LT8911B_1080"
-CONFIG_CUSTOM_KERNEL_LCM="LT8911B_1080 LT8911EXB_1080"
+#CONFIG_CUSTOM_KERNEL_LCM="LT8911B_1080"
+CONFIG_CUSTOM_KERNEL_LCM="LT8911B_1080 LT8911EXB_1080 LT9211EXB_1920_540"CONFIG_CUSTOM_KERNEL_FLASHLIGHT="constant_flashlight"CONFIG_CUSTOM_KERNEL_EXTMD=""CONFIG_CUSTOM_KERNEL_SSW="ssw_single_v2"
diff --git a/drivers/misc/mediatek/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c b/drivers/misc/mediatek/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
index 1cffe1b..52a4b77 100755
--- a/drivers/misc/mediatek/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
+++ b/drivers/misc/mediatek/lcm/LT9211EXB_1920_540/LT9211EXB_1920_540.c
@@ -64,8 +64,10 @@ struct video_timing video_1920x720_60Hz ={148, 44, 88,1920, 2200, 28, 5, 1extern int lt9211_i2c_write(u8 addr, u8 data);extern int lt9211_i2c_read(u8 addr, u8 *data);#define LT9211_LOG printk
- #define LT9211_REG_WRITE(add, data) k_lt9211b_write_byte(add, data)
- #define LT9211_REG_READ(add) k_lt9211b_read_byte(add)
+ #define LT9211_REG_WRITE(add, data) //k_lt9211b_write_byte(add, data)
+ #define LT9211_REG_READ(add) //k_lt9211b_read_byte(add)
+ #define LT9211_REG_READ(add) lcm_lt9211_i2c_read(add)
+extern int lcm_i2c_suspend(void);extern int lcm_i2c_resume(void);
@@ -282,7 +284,7 @@ static u32 lcm_lt9211_i2c_read(u8 addr)u8 u4Reg = 0;u8 ret_code = 0;- ret_code = lt9211_i2c_read(addr, &u4Reg); //kernel need
+ //ret_code = lt9211_i2c_read(addr, &u4Reg); //kernel needif (ret_code != 0){return ret_code;
@@ -293,7 +295,7 @@ static u32 lcm_lt9211_i2c_read(u8 addr)#endif-#if 1
+#if 0void LT9211_Config(void);static void lcd_reset(unsigned char enabled);
@@ -1364,7 +1366,7 @@ void LT9211_Pattern_Config(void)static void lcm_init(void){
-#if 1
+#if 0 unsigned int num = 0;int ret;
diff --git a/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c b/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c
index ca46dea..27c98c7 100755
--- a/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c
+++ b/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c
@@ -17,9 +17,6 @@#else#define LCD_DEBUG(fmt) printk(fmt)#endif
-extern LCM_DRIVER LT8911B_1080_lcm_drv;
-extern LCM_DRIVER LT8911EXB_1080_lcm_drv;
-extern LCM_DRIVER LT9211EXB_1920_540_lcm_drv;extern LCM_DRIVER otm1282a_hd720_dsi_vdo_60hz_lcm_drv;extern LCM_DRIVER otm1282a_hd720_dsi_vdo_lcm_drv;extern LCM_DRIVER vvx10f008b00_wuxga_dsi_vdo_lcm_drv;
@@ -241,6 +238,11 @@ extern LCM_DRIVER st7789h2_dbi_lcm_drv;extern LCM_DRIVER K11_WXGA_JD9362_QCH_lcm_drv;+extern LCM_DRIVER LT8911B_1080_lcm_drv;
+extern LCM_DRIVER LT8911EXB_1080_lcm_drv;
+extern LCM_DRIVER LT9211EXB_1920_540_lcm_drv;
+
+LCM_DRIVER* lcm_driver_list[] ={#if defined(OTM1284A_HD720_DSI_VDO_TM)
@@ -1089,20 +1091,22 @@ LCM_DRIVER* lcm_driver_list[] =#if defined(ST7789H2_DBI)&st7789h2_dbi_lcm_drv,#endif
-#if defined(LT8911EXB_1080)
- <8911EXB_1080_lcm_drv,
-#endif
-
-#if defined(LT9211EXB_1920_540)
- <9211EXB_1920_540_lcm_drv,
-#endif #if defined(K11_WXGA_JD9362_QCH)&K11_WXGA_JD9362_QCH_lcm_drv,#endif
+#if defined(LT8911B_1080)<8911B_1080_lcm_drv,
-#endif
+#endif
+
+#if defined(LT8911EXB_1080)
+ <8911EXB_1080_lcm_drv,
+#endif
+
+#if defined(LT9211EXB_1920_540)
+ <9211EXB_1920_540_lcm_drv,
+#endif};#define LCM_COMPILE_ASSERT(condition) LCM_COMPILE_ASSERT_X(condition, __LINE__)
diff --git a/drivers/misc/mediatek/videox/mt6735/disp_lcm.c b/drivers/misc/mediatek/videox/mt6735/disp_lcm.c
old mode 100644
new mode 100755
index 225114c..44c0c94
--- a/drivers/misc/mediatek/videox/mt6735/disp_lcm.c
+++ b/drivers/misc/mediatek/videox/mt6735/disp_lcm.c
@@ -216,11 +216,13 @@ disp_lcm_handle* disp_lcm_probe(char* plcm_name, LCM_INTERFACE_ID lcm_id)for(i=0;i<_lcm_count();i++){lcm_drv = lcm_driver_list[i];
+ DISPCHECK("BSK-lcm: support lcm_driver_list[%d] = %s\n",i,lcm_drv->name);if(!strcmp(lcm_drv->name, plcm_name)){isLCMFound = true;isLCMInited = true;lcmindex = i;
+ DISPCHECK("BSK-lcm: match Succeed => lcm_driver_list[%d] = %s\n",i,lcm_drv->name);break;}}
vendor修改:
使用和剩余nvram分区大小修改:
diff --git a/mediatek/proprietary/custom/aeon6735_65c_s_l1/cgen/cfgfileinc/CFG_PRODUCT_INFO_File.h b/mediatek/proprietary/custom/aeon6735_65c_s_l1/cgen/cfgfileinc/CFG_PRODUCT_INFO_File.h
index 1f2e100..8e6a78c 100644
--- a/mediatek/proprietary/custom/aeon6735_65c_s_l1/cgen/cfgfileinc/CFG_PRODUCT_INFO_File.h
+++ b/mediatek/proprietary/custom/aeon6735_65c_s_l1/cgen/cfgfileinc/CFG_PRODUCT_INFO_File.h
@@ -73,7 +73,8 @@ typedef structtypedef struct{unsigned char barcode[64];nvram_ef_imei_imeisv_struct IMEI[4];
- unsigned char reserved[1024-40-64];
+ unsigned char match_lcm[4];
+ unsigned char reserved[1024-40-64-4];}PRODUCT_INFO;//the record size and number of PRODUCT_INFO nvram file
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
