6. Чтение конфигурации Выполняется чтение конфигурации разделов из содержащегося в IMAGEWTY-образе файла dlinfo.fex. Исходный код функции чтения dlinfo.fex int sprite_card_fetch_download_map(sunxi_download_info *dl_map) { imgitemhd = Img_OpenItem(imghd, "12345678", "1234567890DLINFO"); if(!imgitemhd) return -1; debug("try to read item dl map"); if(!Img_ReadItem(imghd, imgitemhd, (void *)dl_map, sizeof(sunxi_download_info))) { printf("sunxi sprite error : read dl map failed"); return -1; } Img_CloseItem(imghd, imgitemhd); imgitemhd = NULL; // Проверяем корректность полученной длины return sunxi_sprite_verify_dlmap(dl_map); } Содержимое этого бинарного файла соответствует текстовому файлу конфигурации sys_partition.fex, из которого взяты только разделы, имеющие в конфигурации имя загружаемого файла. Таких разделов всего 10. Текстовый файл разделов sys_partition.fex Прочитанный dlinfo.fex выводится на терминал в виде дампа функцией __dump_dlmap(dl_map): void __dump_dlmap(sunxi_download_info *dl_info) { dl_one_part_info *part_info; u32 i; char buffer[32]; printf("*************DOWNLOAD MAP DUMP************\n"); printf("total download part %d\n", dl_info->download_count); for (part_info = dl_info->one_part_info, i = 0; i < dl_info->download_count; i++, part_info++) { memset(buffer, 0, 32); memcpy(buffer, part_info->name, 16); printf("download part[%d] name :%s\n", i, buffer); memset(buffer, 0, 32); memcpy(buffer, part_info->dl_filename, 16); printf("download part[%d] download file :%s\n", i, buffer); memset(buffer, 0, 32); memcpy(buffer, part_info->vf_filename, 16); printf("download part[%d] verify file :%s\n", i, buffer); printf("download part[%d] lenlo :0x%x\n", i, part_info->lenlo); printf("download part[%d] addrlo :0x%x\n", i, part_info->addrlo); printf("download part[%d] encrypt :0x%x\n", i, part_info->encrypt); printf("download part[%d] verify :0x%x\n", i, part_info->verify); } } Сравнение этого дампа (см. лог ниже) с содержимым текстового файла sys_partition.fex показывает, что из файла использованы строки таблицы, содержащие непустой параметр downloadfile. Текстовый файл разделов sys_partition.fex Лог: Чтение конфигурации [05.308]fetch download map *************DOWNLOAD MAP DUMP************ total download part 10 download part[0] name :bootloader_a download part[0] download file :BOOT-RESOURCE_FE download part[0] verify file :VBOOT-RESOURCE_F download part[0] lenlo :0x10000 download part[0] addrlo :0x8000 download part[0] encrypt :0x0 download part[0] verify :0x1 download part[1] name :env_a download part[1] download file :ENV_FEX000000000 download part[1] verify file :VENV_FEX00000000 download part[1] lenlo :0x200 download part[1] addrlo :0x28000 download part[1] encrypt :0x0 download part[1] verify :0x1 download part[2] name :boot_a download part[2] download file :BOOT_FEX00000000 download part[2] verify file :VBOOT_FEX0000000 download part[2] lenlo :0x20000 download part[2] addrlo :0x28400 download part[2] encrypt :0x0 download part[2] verify :0x1 download part[3] name :vendor_boot_a download part[3] download file :VENDOR_BOOT_FEX0 download part[3] verify file :VVENDOR_BOOT_FEX download part[3] lenlo :0x10000 download part[3] addrlo :0x68400 download part[3] encrypt :0x0 download part[3] verify :0x1 download part[4] name :super download part[4] download file :SUPER_FEX0000000 download part[4] verify file :VSUPER_FEX000000 download part[4] lenlo :0x600000 download part[4] addrlo :0x88400 download part[4] encrypt :0x0 download part[4] verify :0x1 download part[5] name :misc download part[5] download file :MISC_FEX00000000 download part[5] verify file :VMISC_FEX0000000 download part[5] lenlo :0x8000 download part[5] addrlo :0x688400 download part[5] encrypt :0x0 download part[5] verify :0x1 download part[6] name :vbmeta_a download part[6] download file :VBMETA_FEX000000 download part[6] verify file :VVBMETA_FEX00000 download part[6] lenlo :0x100 download part[6] addrlo :0x690400 download part[6] encrypt :0x0 download part[6] verify :0x1 download part[7] name :vbmeta_system_a download part[7] download file :VBMETA_SYSTEM_FE download part[7] verify file :VVBMETA_SYSTEM_F download part[7] lenlo :0x80 download part[7] addrlo :0x690600 download part[7] encrypt :0x0 download part[7] verify :0x1 download part[8] name :vbmeta_vendor_a download part[8] download file :VBMETA_VENDOR_FE download part[8] verify file :VVBMETA_VENDOR_F download part[8] lenlo :0x80 download part[8] addrlo :0x690700 download part[8] encrypt :0x0 download part[8] verify :0x1 download part[9] name :dtbo_a download part[9] download file :DTBO_FEX00000000 download part[9] verify file :VDTBO_FEX0000000 download part[9] lenlo :0x1000 download part[9] addrlo :0x6a8400 download part[9] encrypt :0x0 download part[9] verify :0x1 |