* Fix segfault when file to flash does not exist
* Rename some fields in the flashing protocol, MMC4096 seem to be UFS,
and what I thought was the protocol number seem to be the number of
logical units in the storage
Except for general cleanup we have these functional changes:
* Change printed pit header: last unknown number seem to be the Odin
protocol version.
* Only run libusb_reset_device on ubuntu: on some distros/devices
resetting the device causes the handshake to fail (observered for
degaswifi/SM-T230).
Testing on 32bit arm have weird issues where the build failed if
run/continued without configuring again.
With these scripts we also require less files, no .c files in cmake/.
One downside is that we now require at least Visual Studio
2005 (MSVCR80) for compiling on windows (and there's no check for this
currently).
Use QRandomGenerator instead. Fixes compilation warning:
/home/grimler/Heimdall/heimdall-frontend/source/Packaging.cpp: In static member function ‘static QString HeimdallFrontend::Packaging::ClashlessFilename(const QList<HeimdallFrontend::FileInfo>&, const QString&)’:
/home/grimler/Heimdall/heimdall-frontend/source/Packaging.cpp:910:34: warning: ‘int qrand()’ is deprecated: use QRandomGenerator instead [-Wdeprecated-declarations]
910 | filename.append(QChar(qrand() % ('Z' - 'A' + 1) + 'A'));
| ^
In file included from /usr/include/qt/QtCore/qchar.h:43,
from /usr/include/qt/QtCore/qstring.h:49,
from /usr/include/qt/QtCore/qdatetime.h:44,
from /usr/include/qt/QtCore/QDateTime:1,
from /home/grimler/Heimdall/heimdall-frontend/source/Packaging.cpp:32:
/usr/include/qt/QtCore/qglobal.h:1274:80: note: declared here
1274 | Q_CORE_EXPORT QT_DEPRECATED_VERSION_X_5_15("use QRandomGenerator instead") int qrand();
| ^~~~~
Use QString::asprintf instead. Fixes compilation warning:
/home/grimler/Heimdall/heimdall-frontend/source/mainwindow.cpp: In member function ‘void HeimdallFrontend::MainWindow::StartFlash()’:
/home/grimler/Heimdall/heimdall-frontend/source/mainwindow.cpp:925:53: warning: ‘QString& QString::sprintf(const char*, ...)’ is deprecated: Use asprintf(), arg() or QTextStream instead [-Wdeprecated-declarations]
925 | flag.sprintf("--%u", fileInfos[i].GetPartitionId());
| ^
In file included from /usr/include/qt/QtCore/qcoreapplication.h:44,
from /usr/include/qt/QtCore/QCoreApplication:1,
from /home/grimler/Heimdall/heimdall-frontend/source/mainwindow.cpp:22:
/usr/include/qt/QtCore/qstring.h:393:14: note: declared here
393 | QString &sprintf(const char *format, ...) Q_ATTRIBUTE_FORMAT_PRINTF(2, 3);
|
The resume boolean did not have a default value set. Consequently if the
memory address containing the boolean was already non-null it resulted in
the heimdall CLI binary being called with the --resume flag even though
the Resume check-box in the UI was not checked.
- 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.
- Massive refactoring.
- Support for Qualcomm based devices.
- Print PIT from file.
- Use partition names as arguments e.g. --HIDDEN, --KERNEL, --MOVINAND etc.
- Heimdall Frontend UI improvements.
- And much more...
- Improved the no-reboot functionality, you no longer have to reboot to
flash more files.
- Fixed repartitioning functionality (thanks XDA user psych0phobia
for finding the problem!)