Home Forum Blog Private Support Courses

My Experience Creating A PAC File For The Hisense A5 Pro CC (HLTE203T)

Frankly, I didn’t really need a PAC file, as I had other free and paid tools to service this phone besides the Research/Upgrade/Factory Download tools, but I decided to create one from scratch for tools that don’t support this model, don’t allow me to load individual FDLs, but allow me to load a PAC file as the loader source….and out of curiosity of course :).

Things I Needed

  1. FDL 1&2 + their addresses (Got that from TomKing062 )
  2. BMAConfig.xml (Had to create one)
  3. Firmware Dump (Got that from spd_dump)

Creating a BMAConfig.xml

Creating a PAC file (quickly) with the Research Download tool required me to use an older version (R23.19.3301) and a BMA Config file. Here’s a video guide:

See the video below or @ https://youtu.be/FB7sgrudXdk

I used the Infinix X6816C’s BMA Config as my base due to its similar chipset of Unisoc T610 (ums512) and of the Hisense E70 (HLTE262E) running on s9863a as a brand reference, since brands tend to repeat patterns across models.

My BMAConfig.xml looked like this:

<?xml version="1.0" encoding="UTF-8"?>
<!--  FlashTypeID: 0, means Nor Flash;1, means Nand Flash       -->
<!--  File-Flag: 0, means this file need not  input file path   -->
<!--             1, means this file need input file path        -->
<!--  File-CheckFlag: 0, this file is optional                  -->
<!--                  1, must select this file                  -->
<!--                  2, means not check this file in pack      -->
<!--  Mode: 0, not uesed; 1, means nand page size and oob care  -->
<!--  File-Type: MasterImage,means it will add BOOT_PARAM       -->
<!--             and OS_INFO information to file                -->
<!--  File-ID: Can not be changed,it is used by tools           -->
<!--  File-IDAlias: This is  for GUI display can be changed     -->
<BMAConfig>
	<ProductList>
		<Product name="ums5121h10">
			<SchemeName>ums5121h10</SchemeName>
			<FlashTypeID>1</FlashTypeID>
			<Mode>0</Mode>
			<PowerOff>1</PowerOff>
			<APR>1</APR>
			<NVBackup backup="1">
				<NVItem name="Calibration" backup="1">
					<ID>0xFFFFFFFF</ID>
					<BackupFlag use="1">
						<NVFlag name="Replace" check="0"></NVFlag>
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="IMEI" backup="1">
					<ID>0xFFFFFFFF</ID>
					<BackupFlag use="0"></BackupFlag>
				</NVItem>
				<NVItem name="TD_Calibration" backup="1">
					<ID>0xFFFFFFFF</ID>
					<BackupFlag use="1">
						<NVFlag name="Replace" check="0"></NVFlag>
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Calibration" backup="1">
					<ID>0xA05</ID>
					<BackupFlag use="1">
						<NVFlag name="Replace" check="0"></NVFlag>
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band1" backup="1">
					<ID>0x9C4</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band2" backup="1">
					<ID>0xA04</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band3" backup="1">
					<ID>0x9C8</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band4" backup="1">
					<ID>0x9C9</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band5" backup="1">
					<ID>0x9CA</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band6" backup="1">
					<ID>0x9CB</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band7" backup="1">
					<ID>0x9CC</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band8" backup="1">
					<ID>0x9CD</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band9" backup="1">
					<ID>0x9CE</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band10" backup="1">
					<ID>0x9CF</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band11" backup="1">
					<ID>0x9D0</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band12" backup="1">
					<ID>0x9D1</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band13" backup="1">
					<ID>0x9D2</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band14" backup="1">
					<ID>0x9D3</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band15" backup="1">
					<ID>0x9D4</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band16" backup="1">
					<ID>0x9D5</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band17" backup="1">
					<ID>0x9D6</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band18" backup="1">
					<ID>0x9D7</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band19" backup="1">
					<ID>0xA01</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band20" backup="1">
					<ID>0xA02</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band21" backup="1">
					<ID>0xA08</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band22" backup="1">
					<ID>0xA09</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="LTE_Cali_Band23" backup="1">
					<ID>0xA0A</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="W_Calibration" backup="1">
					<ID>0x12D</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="AFC" backup="1">
					<ID>0x9C7</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="GSMgc_Cali" backup="1">
					<ID>0x4</ID>
					<BackupFlag use="1">
						<NVFlag name="Replace" check="0"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="SUBSIDY_BLOB" backup="1">
					<ID>0x91B</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="SUBSIDY_PUBKEY" backup="1">
					<ID>0x91D</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<!--<NVItem name="SIMLOCK_SIGN" backup="1"><ID>0x1A3</ID><BackupFlag use="1"><NVFlag name="Continue" check="1"></NVFlag></BackupFlag></NVItem><NVItem name="SIMLOCK_PK" backup="1"><ID>0x1A4</ID><BackupFlag use="1"><NVFlag name="Continue" check="1"></NVFlag></BackupFlag></NVItem><NVItem name="SIMLOCK_CUSTOMIZE_DATA" backup="1"><ID>0x1F0</ID><BackupFlag use="1"><NVFlag name="Continue" check="1"></NVFlag></BackupFlag></NVItem><NVItem name="SIMLOCK_USER_DATA" backup="1"><ID>0x1F1</ID><BackupFlag use="1"><NVFlag name="Continue" check="1"></NVFlag></BackupFlag></NVItem><NVItem name="SIMLOCK_NVCONTROL_KEY" backup="1"><ID>0x1F2</ID><BackupFlag use="1"><NVFlag name="Continue" check="1"></NVFlag></BackupFlag></NVItem><NVItem name="SIMLOCK_KEY" backup="1"><ID>0x1F4</ID><BackupFlag use="1"><NVFlag name="Continue" check="1"></NVFlag></BackupFlag></NVItem><NVItem name="SIMLOCK_CFG" backup="1"><ID>0x7E4</ID><BackupFlag use="1"><NVFlag name="Continue" check="1"></NVFlag></BackupFlag></NVItem>-->
				<NVItem name="SECURITY_DATA_PK" backup="1">
					<ID>0x91E</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="SECURITY_DATA_SIGN" backup="1">
					<ID>0x91F</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="GSM_rf_8psk_tx_gain_table" backup="1">
					<ID>0xAA3</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="NV_CARLIBRATION_CRC" backup="1">
					<ID>0x1AE</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
				<NVItem name="IMEI_SIGN" backup="1">
					<ID>0x1A6</ID>
					<BackupFlag use="1">
						<NVFlag name="Continue" check="1"></NVFlag>
					</BackupFlag>
				</NVItem>
			</NVBackup>
			<Partitions>
				<Partition id="prodnv" size="10"/>
				<Partition id="miscdata" size="1"/>
				<Partition id="recovery" size="40"/>
				<Partition id="misc" size="1"/>
				<Partition id="trustos" size="6"/>
				<Partition id="trustos_bak" size="6"/>
				<Partition id="sml" size="1"/>
				<Partition id="sml_bak" size="1"/>
				<Partition id="uboot" size="1"/>
				<Partition id="uboot_bak" size="1"/>
				<Partition id="uboot_log" size="4"/>
				<Partition id="logo" size="8"/>
				<Partition id="fbootlogo" size="8"/>
				<Partition id="l_fixnv1" size="2"/>
				<Partition id="l_fixnv2" size="2"/>
				<Partition id="l_runtimenv1" size="2"/>
				<Partition id="l_runtimenv2" size="2"/>
				<Partition id="gnssmodem" size="1"/>
				<Partition id="wcnmodem" size="10"/>
				<Partition id="persist" size="2"/>
				<Partition id="l_modem" size="25"/>
				<Partition id="l_deltanv" size="1"/>
				<Partition id="l_gdsp" size="10"/>
				<Partition id="l_ldsp" size="20"/>
				<Partition id="lgdsp" size="6"/>
				<Partition id="l_cdsp" size="1"/>
				<Partition id="pm_sys" size="1"/>
				<Partition id="teecfg" size="1"/>
				<Partition id="teecfg_bak" size="1"/>
				<Partition id="boot" size="35"/>
				<Partition id="dtbo" size="8"/>
				<Partition id="tpf" size="8"/>
				<Partition id="flag" size="1"/>
				<Partition id="phonelog" size="100"/>
				<Partition id="kdebuginfo" size="200"/>
				<Partition id="databackup" size="50"/>
				<Partition id="prospecfg" size="1"/>
				<Partition id="reserve" size="10"/>
				<Partition id="kdebug" size="10"/>
				<Partition id="super" size="9216"/>
				<Partition id="cache" size="256"/>
				<Partition id="socko" size="75"/>
				<Partition id="odmko" size="25"/>
				<Partition id="vbmeta" size="1"/>
				<Partition id="vbmeta_bak" size="1"/>
				<Partition id="metadata" size="16"/>
				<Partition id="sysdumpdb" size="10"/>
				<Partition id="vbmeta_system" size="1"/>
				<Partition id="vbmeta_vendor" size="1"/>
				<Partition id="userdata" size="0xffffffff"/>
			</Partitions>
			<ProductComment/>
		</Product>
	</ProductList>
	<SchemeList>
		<Scheme name="ums5121h10">
			<File>
				<ID>FDL</ID>
				<IDAlias>FDL1</IDAlias>
				<Type>FDL</Type>
				<Block>
					<Base>0x00005500</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>1</CheckFlag>
				<Description>First nand flash download image file</Description>
			</File>
			<File>
				<ID>FDL2</ID>
				<IDAlias>FDL2</IDAlias>
				<Type>NAND_FDL</Type>
				<Block>
					<Base>0x9EFFFE00</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>1</CheckFlag>
				<Description>Second nand flash download image file</Description>
			</File>
			<File>
				<ID>EraseSPL</ID>
				<IDAlias>EraseSPL</IDAlias>
				<Type>EraseFlash2</Type>
				<Block id="splloader">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>0</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>Erase spl section</Description>
			</File>
			<File backup="1">
				<ID>PRODNV</ID>
				<IDAlias>PRODNV</IDAlias>
				<Type>CODE2</Type>
				<Block id="prodnv">
					<Base>0x0</Base>
					<Size>0xA00000</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>prodnv file</Description>
			</File>
			<File backup="1">
				<ID>PhaseCheck</ID>
				<IDAlias>PhaseCheck</IDAlias>
				<Type>MiscDataCode2</Type>
				<Block id="miscdata">
					<Base>0x0</Base>
					<Size>0x100000</Size>
				</Block>
				<Flag>0</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>miscdata(phase check) section</Description>
			</File>
			<File>
				<ID>EraseUBOOTLOG</ID>
				<IDAlias>EraseUBOOTLOG</IDAlias>
				<Type>EraseFlash2</Type>
				<Block id="uboot_log">
					<Base>0x0</Base>
					<Base>0x0</Base>
				</Block>
				<Flag>0</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>Erase UBootloader log section</Description>
			</File>
			<File>
				<ID>SPLLoader</ID>
				<IDAlias>SPL_LOADER</IDAlias>
				<Type>UBOOT_LOADER2</Type>
				<Block id="splloader">
					<Base>0x80000000</Base>
					<Base>0x0</Base>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>0</CheckFlag>
				<Description>spl image file</Description>
			</File>
			<File>
				<ID>MISCDATA</ID>
				<IDAlias>MISCDATA</IDAlias>
				<Type>CODE2</Type>
				<Block id="miscdata">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>miscdata file</Description>
			</File>
			<File>
				<ID>RECOVERY</ID>
				<IDAlias>RECOVERY</IDAlias>
				<Type>CODE2</Type>
				<Block id="recovery">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>recovery file</Description>
			</File>
			<File>
				<ID>MISC</ID>
				<IDAlias>MISC</IDAlias>
				<Type>EraseFlash2</Type>
				<Block id="misc">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>misc file</Description>
			</File>
			<File>
				<ID>TRUSTOS</ID>
				<IDAlias>TRUSTOS</IDAlias>
				<Type>CODE2</Type>
				<Block id="trustos">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>trustos file</Description>
			</File>
			<File>
				<ID>TRUSTOS_BAK</ID>
				<IDAlias>TRUSTOS_BAK</IDAlias>
				<Type>CODE2</Type>
				<Block id="trustos_bak">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>trustos_bak file</Description>
			</File>
			<File>
				<ID>SML</ID>
				<IDAlias>SML</IDAlias>
				<Type>CODE2</Type>
				<Block id="sml">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>sml file</Description>
			</File>
			<File>
				<ID>SML_BAK</ID>
				<IDAlias>SML_BAK</IDAlias>
				<Type>CODE2</Type>
				<Block id="sml_bak">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>sml_bak file</Description>
			</File>
			<File>
				<ID>UBOOT</ID>
				<IDAlias>UBOOT</IDAlias>
				<Type>UBOOT_LOADER2</Type>
				<Block id="uboot">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>uboot file</Description>
			</File>
			<File>
				<ID>UBOOT_BAK</ID>
				<IDAlias>UBOOT_BAK</IDAlias>
				<Type>UBOOT_LOADER2</Type>
				<Block id="uboot_bak">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>uboot_bak file</Description>
			</File>
			<File>
				<ID>UBOOT_LOG</ID>
				<IDAlias>UBOOT_LOG</IDAlias>
				<Type>CODE2</Type>
				<Block id="uboot_log">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>uboot_log file</Description>
			</File>
			<File>
				<ID>LOGO</ID>
				<IDAlias>LOGO</IDAlias>
				<Type>CODE2</Type>
				<Block id="logo">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>logo file</Description>
			</File>
			<File>
				<ID>FBOOTLOGO</ID>
				<IDAlias>FBOOTLOGO</IDAlias>
				<Type>CODE2</Type>
				<Block id="fbootlogo">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>fbootlogo file</Description>
			</File>
			<File>
				<ID backup="1" CheckCali="GSM,WCDMA,LTE">L_FIXNV1</ID>
				<IDAlias>L_FIXNV1</IDAlias>
				<Type>NV_COMM</Type>
				<Block id="l_fixnv1">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_fixnv1 file</Description>
			</File>
			<File>
				<ID>L_FIXNV2</ID>
				<IDAlias>L_FIXNV2</IDAlias>
				<Type>CODE2</Type>
				<Block id="l_fixnv2">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_fixnv2 file</Description>
			</File>
			<File>
				<ID>L_RUNTIMENV1</ID>
				<IDAlias>L_RUNTIMENV1</IDAlias>
				<Type>EraseFlash2</Type>
				<Block id="l_runtimenv1">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_runtimenv1 file</Description>
			</File>
			<File>
				<ID>L_RUNTIMENV2</ID>
				<IDAlias>L_RUNTIMENV2</IDAlias>
				<Type>CODE2</Type>
				<Block id="l_runtimenv2">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_runtimenv2 file</Description>
			</File>
			<File>
				<ID>GNSSMODEM</ID>
				<IDAlias>GNSSMODEM</IDAlias>
				<Type>CODE2</Type>
				<Block id="gnssmodem">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>gnssmodem file</Description>
			</File>
			<File>
				<ID>WCNMODEM</ID>
				<IDAlias>WCNMODEM</IDAlias>
				<Type>CODE2</Type>
				<Block id="wcnmodem">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>wcnmodem file</Description>
			</File>
			<File>
				<ID>PERSIST</ID>
				<IDAlias>PERSIST</IDAlias>
				<Type>YAFFS_IMG2</Type>
				<Block id="persist">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>persist file</Description>
			</File>
			<File>
				<ID>L_MODEM</ID>
				<IDAlias>L_MODEM</IDAlias>
				<Type>CODE2</Type>
				<Block id="l_modem">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_modem file</Description>
			</File>
			<File>
				<ID>L_DELTANV</ID>
				<IDAlias>L_DELTANV</IDAlias>
				<Type>CODE2</Type>
				<Block id="l_deltanv">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_deltanv file</Description>
			</File>
			<File>
				<ID>L_GDSP</ID>
				<IDAlias>L_GDSP</IDAlias>
				<Type>CODE2</Type>
				<Block id="l_gdsp">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_gdsp file</Description>
			</File>
			<File>
				<ID>L_LDSP</ID>
				<IDAlias>L_LDSP</IDAlias>
				<Type>CODE2</Type>
				<Block id="l_ldsp">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_ldsp file</Description>
			</File>
			<File>
				<ID>L_AGDSP</ID>
				<IDAlias>L_AGDSP</IDAlias>
				<Type>CODE2</Type>
				<Block id="l_agdsp">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_agdsp file</Description>
			</File>
			<File>
				<ID>L_CDSP</ID>
				<IDAlias>L_CDSP</IDAlias>
				<Type>CODE2</Type>
				<Block id="l_cdsp">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>l_cdsp file</Description>
			</File>
			<File>
				<ID>PM_SYS</ID>
				<IDAlias>PM_SYS</IDAlias>
				<Type>CODE2</Type>
				<Block id="pm_sys">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>pm_sys file</Description>
			</File>
			<File>
				<ID>TEECFG</ID>
				<IDAlias>TEECFG</IDAlias>
				<Type>CODE2</Type>
				<Block id="teecfg">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>teecfg file</Description>
			</File>
			<File>
				<ID>TEECFG_BAK</ID>
				<IDAlias>TEECFG_BAK</IDAlias>
				<Type>CODE2</Type>
				<Block id="teecfg_bak">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>teecfg_bak file</Description>
			</File>
			<File>
				<ID>BOOT</ID>
				<IDAlias>BOOT</IDAlias>
				<Type>CODE2</Type>
				<Block id="boot">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>boot file</Description>
			</File>
			<File>
				<ID>DTBO</ID>
				<IDAlias>DTBO</IDAlias>
				<Type>CODE2</Type>
				<Block id="dtbo">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>dtbo file</Description>
			</File>
			<File>
				<ID>TPF</ID>
				<IDAlias>TPF</IDAlias>
				<Type>CODE2</Type>
				<Block id="tpf">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>tpf file</Description>
			</File>
			<File>
				<ID>FLAG</ID>
				<IDAlias>FLAG</IDAlias>
				<Type>CODE2</Type>
				<Block id="flag">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>flag file</Description>
			</File>
			<File>
				<ID>PHONELOG</ID>
				<IDAlias>PHONELOG</IDAlias>
				<Type>CODE2</Type>
				<Block id="phonelog">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>phonelog file</Description>
			</File>
			<File>
				<ID>KDEBUGINFO</ID>
				<IDAlias>KDEBUGINFO</IDAlias>
				<Type>CODE2</Type>
				<Block id="kdebuginfo">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>kdebuginfo file</Description>
			</File>
			<File>
				<ID>DATABACKUP</ID>
				<IDAlias>DATABACKUP</IDAlias>
				<Type>CODE2</Type>
				<Block id="databackup">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>databackup file</Description>
			</File>
			<File>
				<ID>PROSPECFG</ID>
				<IDAlias>PROSPECFG</IDAlias>
				<Type>CODE2</Type>
				<Block id="prospecfg">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>prospecfg file</Description>
			</File>
			<File>
				<ID>RESERVE</ID>
				<IDAlias>RESERVE</IDAlias>
				<Type>CODE2</Type>
				<Block id="reserve">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>reserve file</Description>
			</File>
			<File>
				<ID>KDEBUG</ID>
				<IDAlias>KDEBUG</IDAlias>
				<Type>CODE2</Type>
				<Block id="kdebug">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>kdebug file</Description>
			</File>
			<File>
				<ID>SUPER</ID>
				<IDAlias>SUPER</IDAlias>
				<Type>YAFFS_IMG2</Type>
				<Block id="super">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>super file</Description>
			</File>
			<File>
				<ID>CACHE</ID>
				<IDAlias>CACHE</IDAlias>
				<Type>YAFFS_IMG2</Type>
				<Block id="cache">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>cache file</Description>
			</File>
			<File>
				<ID>SOCKO</ID>
				<IDAlias>SOCKO</IDAlias>
				<Type>CODE2</Type>
				<Block id="socko">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>socko file</Description>
			</File>
			<File>
				<ID>ODMKO</ID>
				<IDAlias>ODMKO</IDAlias>
				<Type>YAFFS_IMG2</Type>
				<Block id="odmko">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>odmko file</Description>
			</File>
			<File>
				<ID>VBMETA</ID>
				<IDAlias>VBMETA</IDAlias>
				<Type>CODE2</Type>
				<Block id="vbmeta">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>vbmeta file</Description>
			</File>
			<File>
				<ID>VBMETA_BAK</ID>
				<IDAlias>VBMETA_BAK</IDAlias>
				<Type>CODE2</Type>
				<Block id="vbmeta_bak">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>vbmeta_bak file</Description>
			</File>
			<File>
				<ID>METADATA</ID>
				<IDAlias>METADATA</IDAlias>
				<Type>EraseFlash2</Type>
				<Block id="metadata">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>metadata file</Description>
			</File>
			<File>
				<ID>SYSDUMPDB</ID>
				<IDAlias>SYSDUMPDB</IDAlias>
				<Type>EraseFlash2</Type>
				<Block id="sysdumpdb">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>sysdumpdb file</Description>
			</File>
			<File>
				<ID>VBMETA_SYSTEM</ID>
				<IDAlias>VBMETA_SYSTEM</IDAlias>
				<Type>CODE2</Type>
				<Block id="vbmeta_system">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>vbmeta_system file</Description>
			</File>
			<File>
				<ID>VBMETA_VENDOR</ID>
				<IDAlias>VBMETA_VENDOR</IDAlias>
				<Type>CODE2</Type>
				<Block id="vbmeta_vendor">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>vbmeta_vendor file</Description>
			</File>
			<File>
				<ID>USERDATA</ID>
				<IDAlias>USERDATA</IDAlias>
				<Type>YAFFS_IMG2</Type>
				<Block id="userdata">
					<Base>0x0</Base>
					<Size>0x0</Size>
				</Block>
				<Flag>1</Flag>
				<CheckFlag>2</CheckFlag>
				<Description>userdata file</Description>
			</File>
		</Scheme>
	</SchemeList>
</BMAConfig>

Populating the PAC file

I loaded the FDLs, Prodnv and Persist once the BMAConfig was recognised, then packed the PAC file. This created a base PAC file, which allows you to load files to partitions you wish to flash.

I created a full PAC (loaded all partitions) and flashed it in Infinity CM2 and Research Download Tool (R23). I unchecked repartition/update PMT; flashing went well and the phone booted up fine.

Observation

The device got stuck in fastboot whenever I ticked the repartition option while flashing, so there’s still something to fix. To get the device to boot up normally again, I had to run the repartition command in spd_dump using my partitions_*.xml file:

spd_dump exec_addr 0x3ee8 fdl fdl1-dl.bin 0x5500 fdl uboot-mod.bin 0x9efffe00 exec repartition partitions.xml reset

Disclaimer

This is an experimental PAC file and is not meant to replace your factory PAC/firmware/dump. Use it with discretion and avoid repartitioning using the PAC.

Hisense A5 Pro CC demo PAC: https://mega.nz/file/RhIXzCiL#misEiUPz7K8y8dxx_YDU7EVR8lTAL6STBvPBcl93UXk

Leave a Comment

Your email address will not be published. Required fields are marked *

Document
WhTlYt
Scroll to Top