<program file_name="userdata.img" label="userdata" start_sector="4456448" num_partition_sectors="8388608" physical_partition_number="0" size_in_KB="4194304"/> </data> | Attribute | Type | Description | |-----------|------|-------------| | file_name | string | Name of the image file (relative to the flash tool's working directory). | | label | string | Partition name (e.g., modem , persist , cache ). | | start_sector | integer | Logical sector address where the partition begins. Sector size is typically 512 or 4096 bytes. | | num_partition_sectors | integer | Total sectors allocated to this partition. | | physical_partition_number | integer | Physical storage device index (0 = primary eMMC/UFS). | | size_in_KB | integer | Optional validation field; must match num_partition_sectors * sector_size / 1024 . | | sector_size (implicit) | integer | Not always explicit; defaults to device-reported value (usually 512). | 5. Relationship with patch0.xml While rawprogram0.xml defines where to write, patch0.xml defines what to fix after writing—for example, updating partition table headers, GPT checksums, or Android Verified Boot (AVB) footers. The flash tool processes rawprogram0.xml first, then applies patches sequentially. 6. Common Errors & Debugging | Error Message | Likely Cause | |---------------|---------------| | Failed to find file: rawprogram0.xml | Missing manifest or incorrect working directory. | | Sector out of range | start_sector exceeds device capacity. | | Partition label mismatch | label does not match bootloader's GPT or SBL expectations. | | XML parse error: unexpected token | Malformed XML (e.g., missing closing tag, unescaped characters). |
cat /proc/partitions sudo sgdisk -p /dev/block/mmcblk0 End of Paper rawprogram0.xml flash tool
<?xml version="1.0" encoding="UTF-8"?> <data> <program file_name="boot.img" label="boot" start_sector="131072" num_partition_sectors="131072" physical_partition_number="0" size_in_KB="65536"/> <program file_name="system.img" label="system" start_sector="262144" num_partition_sectors="4194304" physical_partition_number="0" size_in_KB="2097152"/> <program file_name="userdata
<data> <program file_name="NON-HLOS.bin" label="modem" start_sector="2048" num_partition_sectors="262144" physical_partition_number="0"/> </data> Sector size is typically 512 or 4096 bytes