summaryrefslogtreecommitdiffstats
path: root/utils
AgeCommit message (Collapse)AuthorFilesLines
2023-11-09hwstub lib: Introduce framework for device filteringMarcin Bukat4-16/+83
The rationale behind this was ability to filter usb device by bus numer and device address. This allows to connect with selected device in case there is more then one connected device implementing hwstub interface. For now only USB backend makes use of this but the foundation is generic and can be easily extended to other backends. Change-Id: I618cfdeeb09162d5fa1002db00e40ea17c43e727
2023-10-24FS13397: Fix ipodpatcher standalone buildSolomon Peachy1-1/+2
Patch from revo Change-Id: Ic41191c389d21861dec94f38418420d60f2596c3
2023-09-28ATJ213x: minor changes to hwstub portMarcin Bukat3-13/+12
1) Make use of $gp addressing. This saves some bin size and makes code slightly faster. 2) Substitute jr with simple j instruction in exception handling. Code is small and j can easily encode target address. 3) Remove nop after eret in interrupt handler. According to mips32r2 ISA manual eret does not have branch delay slot. Change-Id: If63feb12eef189f08f7b50c832a8091be5e6f570
2023-09-27ATJ213x: Convert register description to v2 formatMarcin Bukat2-1100/+4813
2023-09-27hwstub: Remove code duplication in ATJ213x exception handlingMarcin Bukat1-48/+9
2023-09-27hwstub: Force alignment of the context bufferMarcin Bukat1-13/+14
Exception handling code assumes at least word alignment of the context buffer. So far we were lucky that compiler placed it correctly but after compiler upgrade I was hit by the bug caused by missalignment of the context buffer. Credit goes to pamaury
2023-05-22FS#13551: Correct the native name for the Slovak language (in rbutil)Solomon Peachy1-1/+1
Change-Id: I01281b2ac8c8112e44d5fb6da208b18f703ba92e
2023-05-17atjboottool: gzipped fw files, option for big-endian fw, clarify ECIES in fwuNikita Burnashev7-320/+502
Added fw modifications required to unpack real world player dumps. Documented more fwu header fields, magic numbers and finite field arithmetics (extended Euclidean for inverse, long division for reducing modulo field_poly). v3 encryption used is standard RC4 with the key additionally ciphered by the Elliptic Curve Integrated Encryption Scheme. Either sect233k1 (NIST K-233) or sect163r2 (NIST B-163) curves can be used, with the former overwhelmingly prevailing, being hardwired in SDK's maker.exe. Using a private/public key scheme is superfluous because both are stored in the firmware, with the added level of complexity likely serving the purpose of obfuscation. The private key is generated at random with each invokation. None of KDF or MAC from ECIES are used, RC4 key is directly xored with the shared secret. The random number r used to calculate rG isn't stored, but that's unimportant since only krG == rkG is actually used in the encryption. Change-Id: Ieacf8cc744bc90c7c5582dd724b2c10a41bfc191
2023-03-21makefiles: Suppress stray backslash warnings with grep 3.8Aidan MacDonald1-1/+1
GNU grep 3.8 warns about "\#" when compiling. The "#" has to be escaped for Makefiles and shell, but it isn't special to grep so grep thinks it's an invalid escape sequence. Change-Id: Ieb2607d42b7daa1939ca0101b915ec0c7afd4298
2022-07-11rbutil: Try to use system-wide QuaZIP in preference to building our ownJames Le Cuirot3-35/+43
QuaZIP is included in several major Linux distributions and packaging policies strongly oppose bundling of libraries. Change-Id: I8d454784dc4b244f4dd8aa18deb3350a29aaab77
2022-06-12Rockbox Utility: updated Czech translationPavel Rzehák1-115/+90
translated missing strings and revised existing Change-Id: I96b8e3ecb678715c04748b56e7038e96aa6536cc
2022-04-18rbutil: Bump to 1.5.1.rbutil_1.5.1Dominik Riebeling2-2/+2
Change-Id: Idfc846ee1922271a709a097989c7a9a31e9d7279
2022-04-18rbutil: Fix progress dialog abort changed too early.Dominik Riebeling1-1/+0
Don't change the abort button to Ok after a successful bootloader install, this will be done by the following steps. Change-Id: I4275de1f44bddf0580b10b36240a36a43daa68d0
2022-04-18rbutil: Update changelog.Dominik Riebeling1-0/+7
Change-Id: I0d3ad4cba8cc5393d86cf2b96fc755ad6ec90b01
2022-04-18rbutil: run lupdate on all translations.Dominik Riebeling14-6275/+10330
Change-Id: I676cddf93724e07790cd393b697c127928f3949b
2022-04-18rbutil: Make zip install log less noisy.Dominik Riebeling1-3/+6
No need to show a separate entry when a cached file has been used, do it the same way as bootloader downloads do. Change-Id: I42a21a37474a778975e82af0102e0152677a0343
2022-04-18rbutil: Make "Info" tab more responsive.Dominik Riebeling1-30/+22
Loading the information can take a bit depending on the speed of the disk. To make the application not appear as frozen update the UI more often, and display a "Loading" text during data retrieval. Change-Id: I012487d031ea71e62b583ca1c40220ea709e7034
2022-04-17rbutil: Fix uninstall not updating install log.Dominik Riebeling1-3/+1
Change-Id: Icd71f1a2de73d23c6580523de8c810b5a10a194b
2022-04-17rbutil: Enable themes install depending on theme selection.Dominik Riebeling6-41/+17
Don't store the "Install Themes" option. Automatically enable themes installation if the themes selection has at least one entry selected instead. Change-Id: Ib46e8b53b0204555b79dea51545dd7c380f003ff
2022-04-17rbutil: Use references to avoid creating temporary objects.Dominik Riebeling14-25/+24
Get rid of some unnecessary object creating / copying by using references. Change-Id: Ia44e34f6f66d230caa9af7ef7c0eca73be12de2a
2022-04-17rbutil: Move bootloader file check to base class.Dominik Riebeling4-36/+24
Avoid constructing the bootloader file path in the caller. Pass filename list and mountpoint separately so it can directly fall back to the mountpoint. Change some functions to use references instead of creating temporary objects. Change-Id: I09c9d755553a32de3d02a42a8ce1fcb94f831b2a
2022-04-15rbutil: Fix bootloader installation for various players.Dominik Riebeling2-1/+4
Reworking handling of player specific data (static player configuration, as well as information retrieved from the server) changed the behaviour on a non-present configuration entry. This eventually caused the mountpoint not being set for players that don't have a bootloader file on disk. Fixing this accidentially removed the default-if-not-found handling for the bootloader file. Restore the old default value behaviour for both cases. Change-Id: I627782ccdef198619fb507f8b09a64811b3bd18f
2022-04-14rbutil: Improve progress & responsiveness on (un)install.Dominik Riebeling2-5/+13
- When uninstalling update the log file only at the end of removing all files. This gives a major speed improveness since othewise the log file is written after each file. This slows down things notably, especially on slow disks. - Explicitly update the UI during install zip extraction. Avoids progress seemingly hanging due to the UI not getting updated often enough. Change-Id: Ib353a92e02a7038d6e55f5f88dcfb5085602c0f2
2022-04-14rbutil: Use progress bar on uninstall.Dominik Riebeling1-1/+2
When uninstalling parts with lots of small files the process can take quite some time. Update the progress accordingly. Change-Id: Iecc4553b36abbc1cf9652a325ccb29b62a7fc4cc
2022-04-14rbutil: Make QtMultimedia an optional component.Dominik Riebeling2-3/+9
We only use it for playing the TTS sample so it's not too important. Since this is a separate Qt module it might not be installed, so make it optional. Change-Id: I2c91dd5d587c8a984525b2297bbe7d597b816b4f
2022-04-14rbutil: Fix sansapatcher bootloader install on Windows.Dominik Riebeling4-20/+27
During bootloader installation sansapatcher disk access is accidentially set up twice. This is not a problem except on Windows, which will abort with a "permission denied" error. This is basically the same problem as for ipodpatcher bootloader install. Change-Id: I03220e17d0e00a15fff23c02aba7da93d4781964
2022-04-13rbutil: Fix ipodpatcher bootloader install on Windows.Dominik Riebeling3-13/+17
During bootloader installation ipodpatcher disk access is accidentially set up twice. This is not a problem except on Windows, which will abort with a "permission denied" error. Change-Id: I9a835ef0d49f24df741b7b2909c4bd87cb1c8341
2022-03-27rbutil: Bump to 1.5.0.rbutil_1.5.0Dominik Riebeling2-3/+3
Change-Id: I074da5a2ce33b65d554a7de22a993e536e93f48d
2022-03-27rbutil: Update german translation.Dominik Riebeling1-246/+329
Change-Id: I5c5cd8a0496dced977c4ed1e7189d43c1b0314f1
2022-03-27rbutil: Fix langstat script.Dominik Riebeling1-20/+19
Change-Id: I323b0e8dbf87f1d53881f5b89f26c5906796fde4
2022-03-26rbutil: Fix Qt6 Windows build.Dominik Riebeling1-2/+4
It seems Qt6 doesn't require explicit linking to QSvgIconPlugin anymore, and cmake has trouble finding it. On native Windows builds it isn't required, so remove it. Change-Id: I87651f51ab212511947ab9fca3297b0dff276577
2022-03-26rbutil: Fix implicit type conversion on Windows.Dominik Riebeling1-1/+1
Change-Id: I30c5edd5ce0344c47c0f9514eda830a2be8992c4
2022-03-23rbutil: Fix build info list handling with Qt6.Dominik Riebeling2-10/+14
With Qt6 we need to check the type differently or we'd convert a stringlist to a string. Change-Id: I00a7a73535503b97f40edb51099a332902e881e0
2022-03-23rbutil: Disable TTS test on Qt6.Dominik Riebeling1-3/+3
Qt6 has QMultimedia, but QSound has been removed. It's only use for playing a TTS test sample. Disable that for now. Change-Id: Id3b5c834f9579a43e390c0c00a4c1a35b59182bd
2022-03-23rbutil: Qt6 fixes.Dominik Riebeling4-6/+22
Change-Id: Ied6bdf1c5269b53ccfedc1d80f3f3f0d6b4011da
2022-03-23rbutil: Fix TalkGenerator string correction.Dominik Riebeling2-15/+15
- Fix regexp case insensitive option being inverted. - Pass more objects by reference. - Some const-ness. Change-Id: I1c77ad22ab1e505c8dce8c083d9c52e76a6860be
2022-03-23rbutil: Remove unnecessary Q_OBJECT.Dominik Riebeling1-2/+0
PlayerBuildInfo uses no signals/slots, so we don't need Q_OBJECT. Change-Id: If4e264b733d912ecda3659ea0e1abb9d2b56950e
2022-03-23rbutil: Test for talkgenerator string correction.Dominik Riebeling4-0/+209
Change-Id: I4c21dbbdae492938061883f1694f9c0f7b6b0fd9
2022-03-20rbutil: Minor code cleanup.Dominik Riebeling2-7/+8
Change-Id: Ia1b05747e64b2122cfe17ee0c2f7bf5477f3ba09
2022-03-20rbutil: Replace use of QRegExp with QRegularExpression.Dominik Riebeling3-11/+11
Change-Id: Ie89057a9857bc66612cb15fef81d3ca6c3e71b4c
2022-03-20rbutil: Fix TTS "waiting for engine" appearing randomly.Dominik Riebeling4-24/+24
QProgressDialog shows / hides itself automatically based on the progress value set, so calling hide() directly doesn't prevent the dialog from showing itself. Change the logic to set a value instead. Fixes the progress dialog sometimes appearing in situations where it wasn't used at all. Change-Id: Ifef063f31b7f888bb74f180dea0679e81cc5c8fe
2022-03-20rbutil: Rework Festival TTS integration.Dominik Riebeling1-40/+48
When communicating with Festival via socket don't assume readAll() would read all data we expect. We can only read the data that has been sent by the server so far, and this is not necessarily complete. This notably improves the configuration dialog response and reliably. Change-Id: I9a812f03df785fb3ad32783a8573a2c86dc317ed
2022-03-19rbutil: Remove use of deprecated QSignalMapper.Dominik Riebeling2-175/+91
With Qt5 we can now use lambdas instead. Change-Id: I00fe9c355d72ef9987c61c7a36a810d6eca311bc
2022-03-19rbutil: Change all download links to https.Dominik Riebeling2-13/+14
Change-Id: I682c8e7cf4eb5d525aa64a4bbf864aa9eb7e73dc
2022-03-19rbutil: Handle SSL certificate errors on first request.Dominik Riebeling4-1/+70
Qt uses the systems certificate store. On old(er) systems the root certificate might not be present, so checking the certificate from the rockbox.org server might fail. On startup we try to download the build-info file. If this fails with a certificate error allow the user to temporarily accept the rockbox.org certificate for all successive requests. Change-Id: I459e12d53286aaedea4db659d90a5e057c56801f
2022-03-19rbutil: HttpGet: Return NetworkError in done signal.Dominik Riebeling13-46/+35
Return the status value instead of simply a bool. Change-Id: I2bffaac0087418656e80c74dc352011a4ea32ab1
2022-03-13utils: Work around windeployqt bug.Dominik Riebeling1-3/+6
For Qt versions less than 5.14 MinGW windeployqt requires passing --release or --debug to pick the correct libs to deploy. For newer version this must not be passed, or otherwise windeployqt errors out. Use a conditional expression to only add the parameter for older Qt versions. Change-Id: I7afe2b77e9829e989adaeeb7c7499d5955926da2
2022-03-12utils: Fix windeployqt step once more.Dominik Riebeling1-1/+1
The path was actually correct before, the filename wasn't. Change-Id: Ia7f1e5c171fbca22733bdbbcfd8844ade597f650
2022-03-12utils: Fix windeployqt call in cmake deploy step.Dominik Riebeling1-1/+1
Change-Id: I295704796cf4dab32010844369b3a5492bf20e2a
2022-03-12rbutil: Fix installing fonts / manual for development builds.Dominik Riebeling3-19/+48
For development builds we provide a download URL, but use the daily build files. Those require the version of the daily build to be set when expanding the URL string. Change-Id: Ie6dcf38f7e86527217edc01ee11a20758a178622