summaryrefslogtreecommitdiff
path: root/rbutil (follow)
Commit message (Collapse)AuthorAge
* mkimxboot: fix compilation issues with crypto libCástor Muñoz2017-06-24
| | | | Change-Id: Ic81583dc7e872d332cbd4fd87143579cceeda484
* mks5lboot: updatesCástor Muñoz2017-06-19
| | | | | | | | | | - fix Makefile to allow cross compilation - Windows: use Sleep() instead of nanosleep() - Windows: libusb now is optional - OS X: use IOKit instead of libusb - small rework on the DFU API Change-Id: Ia4b07012c098ad608594e15f6effe9c9d2164b9b
* ipodpatcher: remove external ddk/ntddscsi.h dependencyCástor Muñoz2017-06-19
| | | | Change-Id: Ib614f4181fe29ef04fcf64f90e37edc3a064270a
* mks5lboot v1.0 - dualboot installer for s5l8702 targetsCástor Muñoz2017-04-14
| | | | | | | | | | | A tool to install/uninstall a bootloader into a s5l8702 based device: - iPod Classic 6G - iPod Nano 3G (TODO) See mks5lboot/README for detailed info. Change-Id: I451d2aaff34509ebd356e4660647e5222c5d3409
* imxtools/sbtools: switch SHA1 implementation to Crypto++Amaury Pouly2017-01-16
| | | | | | | The current implementation was custom and super slow. Since we use Crypto++ anyway, we might as well get use a good implementation. Change-Id: I761ad7401653471e54000e1c2bc3d9882378112f
* imxtools/sbtools: switch AES implementation to Crypto++Amaury Pouly2017-01-16
| | | | | | | | Instead of having our own copy of the AES code, use a good library to do that. Crypto++ is well-maintained, supports a lot of ciphers, works on many OSes, and is optimized for many architectures. Change-Id: I7d7d24b47993206d7338c5f9bac8bbdd3915a667
* imxtools/sbtools: rework cryptographyAmaury Pouly2017-01-16
| | | | | | | | | | It was a mess, a mix of crypto_* and cbc_mac calls. I made everything call crypto functions, and also separate key setup from cryptographic operations, this will be useful to speed up the code in the upcoming commits. Drop support for "usbotp" key, since the crypto code for that was never mainlined and we can always get the keys from a device as long as we have code execution (using the DCP debug registers). Change-Id: I7aa24d12207ffb744225d1b9cc7cb1dc7281dd22
* imxtools: rework key/IV overriding logicAmaury Pouly2017-01-16
| | | | | | | The overriding of the IV and real key should be the exception, there is no need to manually set them to false. Change-Id: Id66754f20a79aa5c1a991839345d1242e0aa587d
* mkimxboot: add NWZ-E380 firmware 1.00.200Amaury Pouly2017-01-02
| | | | Change-Id: I0c949a464a0e5880d1215db571aac402ca81eae9
* mkimxboot: implement firmware unpatchingAmaury Pouly2017-01-02
| | | | Change-Id: Idfd68c06f89cdef8e95865e3ff177a6daa072c1a
* imxtools: completely rework patching logic to prepare unpatchingAmaury Pouly2017-01-02
| | | | | | | | | | | The old code was working but a mess to maintain. The new code is cleaner and always simpler handling of all the different options. Extraction of the OF is no longer a standalone function but just one particular output type. This commit prepares the ground for firmware "unpatching" (aka OF extraction from patched OF). The patching code itself did not change so this commit should still produce the exact same images as before. Change-Id: I3840793d4b78b8435e38c08f558840925085ead1
* mkimxboot: add the concept of soft MD5 sumAmaury Pouly2017-01-02
| | | | Change-Id: I7e83218ce0dccc1f4c4a7a6bb9c1df00dacf260b
* mkimxboot: don't forget to pass model if given on command lineAmaury Pouly2016-12-19
| | | | Change-Id: I1d20b38ff5b0f337d9a2eef6e2e1d6c170aabce7
* Fix linking with C++ files.Dominik Riebeling2016-12-16
| | | | | | | | | | | | When linking with C++ files the linker also needs to link against the C++ libraries. This is done automatically when invoking the compiler upon linking. Since we don't want C++ dependencies on C-only projects we check if we actually have C++ files and use either the C or C++ compiler. Rename CFLAGS since it's now used for both C and C++ compiler and add dedicated CFLAGS, CXXFLAGS and LDFLAGS variables. Change-Id: I9cc068a8038f21e8fd96b20173a8f790e6ab4b6e
* Support C++ in libtools.make and rewrite dependency handling.Dominik Riebeling2016-12-16
| | | | | | | | | | | | | | - Change suffix of objects and depencency files to keep the original file suffix. This makes it easy to distinguish between C and C++ files when building and avoids implicit make rules trying to build in a way we don't want to. - Implicitly handle dependencies instead of having an explicit rule. Simplifies things a bit. - Support C++ files by adding an explicit rule for them. With keeping the original file suffixes this becomes quite simple. To use C++ files simply add them to SOURCES (or LIBSOURCES). Change-Id: I22c56a6e153e281cfa675e91ad4a70fd18e2c43c
* Don't add LIBSOURCES to SOURCES.Dominik Riebeling2016-12-16
| | | | | | | | | | | Split source files for library and stand-alone binary and use library as dependency when building the stand-alone binary. This avoids dependencies getting added multiple times. Remove outdated RBARCH handling, we always create fat binaries on OS X these days. Change-Id: Ia15a731296edcbe90869a1bf66dda2c3d6c7e317
* Create local file URL using QUrl.Dominik Riebeling2016-12-16
| | | | | | | Don't construct the local file URL from string. On Windows the URL needs to start with file:/// instead of file://. QUrl handles this. Change-Id: I3dea29a8d368ebdc20eeff6b1f1cf5058d1b5d05
* Fix various unit test compilation.Dominik Riebeling2016-12-16
| | | | | | There's now a dependency on Logger.h, add stub folder to includes to stub it. Change-Id: I1afdc6bd878182b03cb3c1f3538779eaa9f83f28
* imx233: add capability to boot OF or updater instead of RockboxAmaury Pouly2016-12-12
| | | | | | | | | | | | | | | | This commit adds the necessary code in the dualboot stub (bootloader) to let rockbox control the boot process. In particular, rockbox can now choose if the next boot will be normal (boot rockbox or OF on magic key), to OF or to updater. The intents (to be added in follow-up commits) are: 1) Let the user more easily reboot to the OF. On some targets it is not trivial, especially in USB mode. 2) Automatically reboot to updater when the user drop firmware.sb at the root of the drive (currently, the user needs to do that in OF USB mode) 3) Document this OF magic Change-Id: I86df651dec048c318c6a22de74abb8c6b41aa9ad
* imx233: fix dualboot, forgot a fileAmaury Pouly2016-09-22
| | | | Change-Id: I8d5817d75f76a201c3a8b76db0d1e11f71548179
* imx233: fix dualboot stubsAmaury Pouly2016-09-22
| | | | | | | They did not compile anymore after the register hearder rework. This change only fixes the syntax, the generated binaries are exactly identical. Change-Id: Iec2347aa3deb1ddfe2ca36f0db1e481c4e2d329c
* rbutil: add abort signal for bootloader install/uninstallCástor Muñoz2016-08-15
| | | | | | | | During the bootloader install/uninstall process, a signal is emitted when "Abort" button is pressed, the installers can attach this signal and cancel the process. Change-Id: I7f297b8031d7a2d93da0022081aaef03ef041baf
* rbutil: show progress bar during bootloader uninstallCástor Muñoz2016-08-15
| | | | | | | | Useful for targets that needs multi-stage uninstall. On current targets (with Uninstall capability) the progress is updated to 100% when bootloader uninstall is successfully finished. Change-Id: I61be1c4f5cfc2d2f35fa5005962be9703888447d
* rbutil: enable "done" signal on bootloader uninstallCástor Muñoz2016-08-15
| | | | | | | This allows to implement multi-stage uninstallers. Should not affect the behaviour on current targets. Change-Id: Idf8aec5caf76cf9317798890d094a7cebdbcabec
* mkimxboot: remove code for NWZ-370/380Amaury Pouly2016-05-25
| | | | | | | | Since the stub code is shared with NWZ-360, it enables the pullup for the hold button, but the NWZ-370/380 doesn't have a hold button so don't compile this code in, it could potentially have unexpected effets or increase consumption Change-Id: I28c8aa40fc7f9373593ff105fb6df557a6f57ccd
* mkimxboot: make cross compiler for dualboot stubs overridableAmaury Pouly2016-05-25
| | | | Change-Id: I90d2048f622b355eae7091e536b940b2ac828583
* Reverting 4327cbc9b8886eMihail Zenkov2016-05-04
| | | | | | I do testing incorrectly: fix don't work as expected. Change-Id: Ie32672ec213861c02295ae0a14e22b9ca9035585
* C2X0v2: use GPIO to check button state in dualbootMihail Zenkov2016-05-03
| | | | | | | C240v2 freeze on booting OF if SD card inserted. Use GPIO instead DBOP should help. Change-Id: Idec0028040f91c6d2c7c04327ca0e1af204f58eb
* Fix wrong typecast in test.Dominik Riebeling2016-03-27
| | | | Change-Id: I01acae450bcbb9c9e2b45d3ee62817b9256540c3
* Improve handling of Qt5 subversions on OS X.Dominik Riebeling2016-03-27
| | | | | | | | Qt 5.6 on OS X requires targeting at least OS X 10.7, while for earlier versions we can still target 10.6. Handle this case and inform the user about the used target version. Change-Id: I78e426037e2966241ab9a63105e04e7366b469ed
* Use Gestalt to get number of CPUs on OS X.Dominik Riebeling2016-03-27
| | | | | | | | | MPProcessors has been deprecated with 10.7. When targeting 10.7 (required when building with Qt 5.6 on OS X) this causes a warning. Use Gestalt instead (Gestalt has been deprecated with 10.8, but when targeting 10.7 this doesn't cause a warning, and Gestalt is used for other values as well). Change-Id: Iaf82147ad47115e228f5c08f8198a6a7e92102a3
* Fix compile warning on OS X.Dominik Riebeling2016-03-27
| | | | | | | Current clang on OS X suggests placing parens so add them (-Wbitwise-op-parentheses enabled by default). Change-Id: I31b49386aa184fe27f72f7f58909b97524d96f44
* Fix C++11 compile error with version strings.Dominik Riebeling2016-03-27
| | | | | | | | C++11 requires a space between literal and identifier. When compiling with Qt 5.6 on OS X C++11 support is automatically enabled, causing an error due to this. Change-Id: Ifbedc894a3cef23fc67ed1da75558e92e44d1077
* Fix building with Qt 4.7.Dominik Riebeling2016-01-17
| | | | | | | | | | | QUrl::isLocalFile() is available starting with Qt 4.8. We can safely check for a file:// url instead. Qt 4.8 dropped support for OS X 10.4 / 10.5. Since we're still supporting those we need to keep using Qt 4.7 on OS X. We might want to consider requiring at least 10.6 on OS X with the next major release of Rockbox Utility. Change-Id: I18998fe3c7a38773479bc7a1c32ca6e4966359e9
* Fix uninstallation for mi4 based bootloader installs.Dominik Riebeling2016-01-17
| | | | | | | | On case sensitive systems (i.e. Linux) uninstalling the bootloader could fail when renaming the original bootloader file back. Fix this by using the case-resolved filename. Change-Id: I504656f70e7ccc7c0752f5252ddb14a625131f5b
* Return process IDs in Utils::findRunningProcess().Dominik Riebeling2016-01-17
| | | | | | | | Rework to return mapping between (filtered) process names and their pid values (if running). Note that this functionality is not implemented for Linux (but as it's mostly intended to detect Itunes currently not needed on that platform). Change-Id: Ie348bfed46bda390f469c37635a96c75e5782616
* Add color to trace debug output.Dominik Riebeling2016-01-17
| | | | Change-Id: Id2c90220ab695a8195af50cdea8437b49744f720
* rbutil: fix writing to rbutil.log after bootloader uninstallCástor Muñoz2016-01-17
| | | | Change-Id: I722d4d5a83fc57bd8df33bfb23a0ab16e5ac4861
* rbutil: fix resolveDevicename() on WindowsCástor Muñoz2016-01-17
| | | | | | | | Solves some eject issues (FSCTL_LOCK_VOLUMEN ioctl failures) ocurring when resolveDevicename() is ejecuted prior to ejectDevice(), tested with Qt5. Change-Id: Iff9240abd9d2f71bec1a1070f4ef194916e13b65
* Handle mixed case in Windows USB ID detection.Cástor Muñoz2015-12-20
| | | | | | | | | Windows XP might use mixed case in hardware ID (VID / PID) string. Cherry-picked from G#1221. Change-Id: I86fa63e050cd9b9de5a1beac65b81028e0f86a9d Signed-off-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
* Fix and extend HttpGet unit test again.Dominik Riebeling2015-12-20
| | | | | | | Fix wrong initialization (why did that compile?) and add check for progress signal. Change-Id: I83a193252afcf66acaa333750b0ac2ef83e38478
* Fix compiling HttpGet unit test.Dominik Riebeling2015-12-18
| | | | | | Provide a stub for Logger class to make the test compile. Change-Id: I142eaf443c1f9026506100b82c9341e83b619ab6
* Use random port for HttpGet unit tests.Dominik Riebeling2015-12-18
| | | | | | | | Make local HttpDaemon for testing use a random unused port instead of a fixed one. Avoids possible issues with the port chosen already being used on the local machine. Change-Id: I1ca10b7e5ce198350e14321afc50c36d78b1c0b4
* Add documentation to HttpGet and remove unnecessary return value.Dominik Riebeling2015-12-18
| | | | | | | HttpGet::getFile() always returns the same value. Remove the return value since it isn't necessary. Add some missing function documentation comments. Change-Id: I1cee242211272a996437b10dbc8de791b3fc3d67
* Add support file:// URLs in HttpGet.Dominik Riebeling2015-12-18
| | | | | | | | QNetworkAccessManager can handle file:// URLs without additional work. Make HttpGet aware of that so you can now also use it to retrieve file:// URLs. Add a unit test for it as well. Change-Id: If64b57453460b70bca9e5b0c725bb78344617bcd
* Fix static compilation with Qt5.Cástor Muñoz2015-12-18
| | | | | | | | Qt5 uses a different name for the accessibility plugin. Cherry-picked from G#1221. Change-Id: If32eafa053a176ba24b4595826593023ed808164 Signed-off-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
* Fix USB IDs for Sansa c200v2.Dominik Riebeling2015-06-20
| | | | | | | The wrong IDs made a connected c200v1 get detected as c200v1 and c200v2 in MTP mode. Change-Id: I9048910ca9d768b17b9d23e4679c96d9ab8d6831
* Win32: fix possible crash when listing USB devices.Dominik Riebeling2015-06-07
| | | | | | | | | Make sure to handle if retrieving the device description ends up with a NULL data buffer pointer. Also switch handling the retrieved string using QString. Fixes a crash reported in the forums. Change-Id: I6e95a411308e85656cd78ddcecb1bcee165864d0
* Make lrelease detection work on Windows.Dominik Riebeling2015-05-30
| | | | | | Make sure to expand variable before testing. Change-Id: I6b6f11782677c178fe3f2209f84887084940976a
* Make lrelease detection work on Windows.Dominik Riebeling2015-05-30
| | | | | | | Windows doesn't have which, so building natively on Windows didn't create translations anymore. Use a which-less approach instead. Change-Id: I7b4c40b26d68da54277a148e8e2d76ac81061c8b