When using --stdout-errors, the messages written to stdout contained garbage.
Inside vfprintf(), each va_arg() consumes one entry from the va_args.
Trying to use the same va_args variable again results in undefined behavior
as subsequent va_arg() invocations continue to read from memory past the
actual variable space.
Instead, a copy has to be made with va_copy() and this be used for
outputting to stdout.
After each bulk transfer sent containing an Odin/Loke protocol packet, we now
send through a zero length bulk transfer. This is required for newer devices to
function correctly.
- Partitions were being excluded from flashing (and UI) if the block-count
was zero. Instead this is now done using a new IsFlashable() method
which checks if the partition name is not blank.
- PitData::Pack() was packing the partition name where it should have been
packing the "flash filename". This resulted in incorrect PIT files being
flashed to the device.
- As a result of the above two points, there are no "known boot
partitions", and hence boot partitions are not automatically flashed
last.
- Made partitions flash in the order in order in which partition arguments
are specified. Hence, it's recommended that you specify boot partitions
last.
- Added --usb-level argument that can be used for debugging libusbx, or
flashing issues in general.
- Removed generally non-functional firmware dumping behaviour.
- Removed auto-resume functionality - Although this feature was definitely
nice to have; I believe it may be responsible for flashing compatibility
issues for a variety of devices.
- As a result of the above. In order perform another action after a
--no-reboot action, you must provide the --resume flag.
- Heimdall Frontend also has support for specifying the --resume flag
via a GUI. Heimdall Frontend also tries to keep track of your actions
and enable "Resume" automatically after a "No Reboot" action.
- Refactored quite a few of the actions, and code responsible for flashing
(particularly PIT file flashing).
- Bumped version to 1.4RC3 *however* this commit is not yet an official
release candidate. It's still a WIP. In particular build files still
have not been updated for Linux and OS X.