FHD : full high definition,1920 x 1080,全高清
logo.bin
1 0000000: 8816 8858 130d 3000 6c6f 676f 0000 0000 ...X..0.logo.... 2 0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 3 0000020: 0000 0000 0000 0000 ffff ffff ffff ffff ................ 4 0000030: 8916 8958 0002 0000 0100 0000 0000 0000 ...X............ 5 0000040: 0000 0000 1000 0000 0000 0000 0000 0000 ................ 6 0000050: ffff ffff ffff ffff ffff ffff ffff ffff ................ 7 0000060: ffff ffff ffff ffff ffff ffff ffff ffff ................ 8 0000070: ffff ffff ffff ffff ffff ffff ffff ffff ................ 9 0000080: ffff ffff ffff ffff ffff ffff ffff ffff ................ 10 0000090: ffff ffff ffff ffff ffff ffff ffff ffff ................ 11 00000a0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 12 00000b0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 13 00000c0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 14 00000d0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 15 00000e0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 16 00000f0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 17 0000100: ffff ffff ffff ffff ffff ffff ffff ffff ................ 18 0000110: ffff ffff ffff ffff ffff ffff ffff ffff ................ 19 0000120: ffff ffff ffff ffff ffff ffff ffff ffff ................ 20 0000130: ffff ffff ffff ffff ffff ffff ffff ffff ................ 21 0000140: ffff ffff ffff ffff ffff ffff ffff ffff ................ 22 0000150: ffff ffff ffff ffff ffff ffff ffff ffff ................ 23 0000160: ffff ffff ffff ffff ffff ffff ffff ffff ................ 24 0000170: ffff ffff ffff ffff ffff ffff ffff ffff ................ 25 0000180: ffff ffff ffff ffff ffff ffff ffff ffff ................ 26 0000190: ffff ffff ffff ffff ffff ffff ffff ffff ................ 27 00001a0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 28 00001b0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 29 00001c0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 30 00001d0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 31 00001e0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 32 00001f0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 33 0000200: 3900 0000 130d 3000 ec00 0000 5e71 0000 9.....0.....^q.. 34 0000210: 3aa6 0c00 3558 0d00 b0d1 0e00 72d5 0e00 :...5X......r... 35 0000220: 9cd6 0e00 1cda 0e00 86de 0e00 3ee1 0e00 ............>... 36 0000230: 38e5 0e00 ece9 0e00 11ec 0e00 24f1 0e00 8...........$... 37 0000240: eff5 0e00 85fb 0e00 8716 0f00 6833 0f00 ............h3.. 38 0000250: 4e50 0f00 3d6a 0f00 2182 0f00 7399 0f00 NP..=j..!...s... 39 0000260: 2eb3 0f00 4ccf 0f00 f2eb 0f00 dd07 1000 ....L........... 40 0000270: 51a3 1000 3e43 1100 62e3 1100 2d7e 1200 Q...>C..b...-~.. 41 0000280: 1c16 1300 e4ac 1300 8f46 1400 4ae4 1400 .........F..J... 42 0000290: 7d83 1500 3b22 1600 2daa 1600 5fac 1600 }...;"..-..._... 43 00002a0: 0d48 1700 0cbb 1700 a127 1b00 55dd 1d00 .H.......‘..U... ..................................................................... ..................................................................... ..................................................................... 196847 0300ee0: 4551 1445 5114 4551 1445 5114 4551 1445 EQ.EQ.EQ.EQ.EQ.E 196848 0300ef0: 5114 4551 1445 5114 4551 1445 5114 4551 Q.EQ.EQ.EQ.EQ.EQ 196849 0300f00: 1445 5114 4551 1445 5114 4539 9a7f 0167 .EQ.EQ.EQ.E9...g 196850 0300f10: 0c47 cf00 0000 0000 0000 0000 0000 0000 .G.............. 196851 0300f20: 0a
0x200 = 00000039,代表這個 logo.bin 由39 個圖片組成。
0x204 = 00300d13,代表這個 logo.bin 的 length,
0x300F20 代表 logo.bin 的 bytes size
但為什麼 300d13 和 300f20 不一致呢?
是否是因為加了其它資訊?
0x300F20 - 0x300d13 = 0x20D
待解決?
待續!
關機充電動畫如以下4張,
特地將會變動的水波紋獨立出來看較易理解。
下面是在描述 畫數字及電池容量圖案的 LCM 上的啟始點。
130 #if defined(FHD) || defined(CU_FHD) || defined(CMCC_FHD) || defined(CT_FHD) || defined(CMCC_LTE_FHD) || defined(CT_LTE_FHD) || defined(CU_LTE_FHD) 131 // fhd 1080*1920 132 133 // battery capacity rectangle 134 #define CAPACITY_LEFT (387) // battery capacity center 135 #define CAPACITY_TOP (802) 136 #define CAPACITY_RIGHT (691) 137 #define CAPACITY_BOTTOM (1292) 138 139 // first number rectangle 140 #define NUMBER_LEFT (351+84) // number 141 #define NUMBER_TOP (479) 142 #define NUMBER_RIGHT (435+84) 143 #define NUMBER_BOTTOM (600) 144 145 // % rectangle 146 #define PERCENT_LEFT (519+84) // percent number_left + 2*number_width 147 #define PERCENT_TOP (479) 148 #define PERCENT_RIGHT (627+84) 149 #define PERCENT_BOTTOM (600) 150 151 // top animation part 152 // youchihwang 153 #define TOP_ANIMATION_LEFT (387) // top animation 154 #define TOP_ANIMATION_TOP (100) 155 #define TOP_ANIMATION_RIGHT (691) 156 #define TOP_ANIMATION_BOTTOM (152)
133 // battery capacity rectangle 134 #define CAPACITY_LEFT (387) // battery capacity center 135 #define CAPACITY_TOP (802) 136 #define CAPACITY_RIGHT (691) 137 #define CAPACITY_BOTTOM (1292)
139 // first number rectangle 140 #define NUMBER_LEFT (351+84) // number 141 #define NUMBER_TOP (479) 142 #define NUMBER_RIGHT (435+84) 143 #define NUMBER_BOTTOM (600)
145 // % rectangle 146 #define PERCENT_LEFT (519+84) // percent number_left + 2*number_width 147 #define PERCENT_TOP (479) 148 #define PERCENT_RIGHT (627+84) 149 #define PERCENT_BOTTOM (600)
這是水波紋動畫的大小size,不是啟始點。
151 // top animation part 152 #define TOP_ANIMATION_LEFT (387) // top animation 153 #define TOP_ANIMATION_TOP (100) 154 #define TOP_ANIMATION_RIGHT (691) 155 #define TOP_ANIMATION_BOTTOM (152)
linux_repo/vendor/mediatek/proprietary/external/libshowlogo/show_animation_common.c 66 /* 67 * Check logo.bin address if valid, and get logo related info 68 * 69 */ 70 int check_logo_index_valid(unsigned int index, void * logo_addr, LOGO_PARA_T * logo_info) 71 { 72 unsigned int *pinfo = (unsigned int*)logo_addr; 73 logo_info->logonum = pinfo[0]; 74 75 SLOGD("[show_animation_common: %s %d]logonum =%d, index =%d\n", __FUNCTION__,__LINE__,logo_info->logonum, index); 76 if (index >= logo_info->logonum) 77 { 78 SLOGE("[show_animation_common: %s %d]unsupported logo, index =%d\n", __FUNCTION__,__LINE__, index); 79 return CHECK_LOGO_BIN_ERROR; 80 81 } 82 // SLOGD("show_animation_common, pinfo[1]=%d, pinfo[2+index]=%d, pinfo[3+index]=%d, pinfo[3+index] - pinfo[2+index]= %d, pinfo[1] - pinfo[2+index] =%d \n", 83 // pinfo[1],pinfo[2+index],pinfo[3+index], pinfo[3+index] - pinfo[2+index],pinfo[1] - pinfo[2+index]); 84 85 if(index < logo_info->logonum - 1) // // ex:以第5張圖為例, // logolen = pinfo[3+5] - pinfo[2+5] // 以上算法是屬於相對的, // 原先假設 pinfo[2+5] 是 picture 4 raw data 的 end address. // 原先假設 pinfo[3+5] 是 picture 5 raw data 的 end address. // 相減 為 picture 5 raw data 的長度, // 但看了 90 行的code,推理 pinfo[2+5] 應是 picture 5 raw data 在 logo.bin 的相對啟始位置。 // 所以 pinfo[3+5] 則是 picture 5 raw data 在 logo.bin 的相對啟始位置。 // 86 logo_info->logolen = pinfo[3+index] - pinfo[2+index]; 87 else 88 logo_info->logolen = pinfo[1] - pinfo[2+index]; 89 // // 取出 picture 的 raw data, // logo_addr :logo.bin 在系統的啟始位置 // pinfo[2+index] :第 index 圖在 logo.bin 的相對啟始位置 // logo_addr + pinfo[2+index]:第 index 圖在整個系統的啟始位置 90 logo_info->inaddr = (unsigned int)logo_addr + pinfo[2+index]; 91 SLOGD("show_animation_common, in_addr=0x%08x, logolen=%d\n", 92 logo_info->inaddr, logo_info->logolen); 93 94 return CHECK_LOGO_BIN_OK; 95 }
繼續編輯
待續
时间: 2024-10-27 07:09:25