Saturday, October 15, 2022

Programming and Conversion of VBF Format File

         在汽车行业中,整车厂大多采用自己定义的二进制软件编码规范来确保软件物料的安全性和品牌旗下的通用性,典型例子如 PSA 家的 .ulp 文件和 Volvo/Geely/Ford/Mazda 家的 .vbf 文件,这些都是基于嵌入式行业内通用的二进制目标文件 .s19/ .hex 等进行自定义规则修改,增加了不同的加密和压缩算法。  

        In the automotive industry, OEMs mostly use their own-defined binary software coding specifications to ensure the security of software materials and the versatility of their brands. Typical examples are PSA's .ulp files and Volvo/Geely/Ford/Mazda's .ulp files. .vbf files, these are modified with custom rules based on the common binary object files .s19/.hex in the embedded industry, adding different encryption and compression algorithms.      

        VBF(Versatile Binary Format)是一种整车厂常用的一种固件发行文件格式,由沃尔沃,福特,马自达等几个厂家所主导的一种格式。这种格式无法使用我们常规的烧录器进行芯片的烧录,通常需要进行转化。当然,厂家内部会有一套完善的工具软件来解决互相转换的问题,但是受一些条件的限制,外部却不是那么容易。VBF一般由两段内容组成,前面一段是ASCII码,构成一个头文件,后面一段是二进制码,是原始的烧录二进制文件,将两者结合一起就构成了厂家自有的格式文件。下面是一段例子。

        VBF (Versatile Binary Format) is a firmware distribution file format commonly used by OEMs, a format dominated by Volvo, Ford, Mazda and other manufacturers. This format cannot be used for chip programming with our conventional programmer, and usually requires conversion. Of course, there will be a complete set of tools and software inside the manufacturer to solve the problem of mutual conversion, but limited by some conditions, it is not so easy outside. VBF is generally composed of two sections. The first section is ASCII code, which constitutes a header file, and the second section is binary code, which is the original programming binary file. Combining the two forms the manufacturer's own format file. Below is an example.



header {



    //*                  Volvo Car Corporation


    //*      VBF Convert ver. 5.0.0 example file


    //*                        DO NOT EDIT !





    //*                        Comments



    // Application program for the DIM.




    // Software part number

       sw_part_number = ”98765432”;


    // Software part type: Executable

       Sw_version = “AA”


    // Software part type: Executable

       sw_part_type = EXE;


    // ECU address used for: DIM Driver Information Module

       ecu_address = 0x0123;


    // Start address for flash sector(s)

       erase = { { 0x2000, 0x200 },

               { 0x4000, 0x200 },

               { 0x6000, 0x200 } };

//Root hash value

verification_block_root_hash = 0x85F4346439C464812C528F26DCBF6C467225C61AACC57544BFC9F9340F92D5B7;


      //Start address of the hash table

      verification_block_start = 0x5FF00;


      //Length of the hash table

      verification_block_length = 0xcc;



    // Blocks:   24

    // Bytes:    2105

       file_checksum = 0x29058C73;

} <binary data>



        On the basis of obtaining the manufacturer's agreement, this VBF file can also be upgraded directly through the CAN bus. Of course, the premise is that the bootloader has been burned in advance. In this way, the speed is relatively slow, and it also requires the support of the manufacturer.

        第二种比较通用的方式呢,就是将这种VBF文件还原成嵌入式领域通用的HEX文件或S19文件,然后再使用通用烧录器进行烧录与校验。这种还原方式,有很多网友有写一些Python脚本去实现。最安全可靠的,还是推荐使用Volvo官方出品的VBF Tool,也就是下图所示的工具包,但是官方工具包一般需要得到官方授权。

        The second more common way is to restore this VBF file to a HEX file or S19 file which is commonly used in the embedded field, and then use a universal programmer for programming and verification. Many netizens have written some Python scripts to implement this restoration method. The safest and most reliable way is to use the VBF Tool officially produced by Volvo, which is the toolkit shown in the figure below, but the official tool kit generally requires official authorization and license.

        We have a little experience in processing VBF files and burning convenience (also stepped on some pits). After a period of hard and excellent exploration, we have designed a software algorithm that can convert VBF files to HEX files or S19 files freely and lossless, in order to facilitate the programming management and design of the production line.

        在烧写方面有需要咨询的,可以邮件联系我们 support@itestgroup.com或。
        If you need consultation on programming, you can email us at or, Click here for contact window. (