Commit graph

1696 commits

Author SHA1 Message Date
Amaury Pouly
a983859291 imx233: add capability to boot OF or updater instead of Rockbox
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
2016-12-12 12:03:08 +01:00
Amaury Pouly
1c4373fd1f imx233: fix dualboot, forgot a file
Change-Id: I8d5817d75f76a201c3a8b76db0d1e11f71548179
2016-09-22 21:31:29 +01:00
Amaury Pouly
673ee48675 imx233: fix dualboot stubs
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
2016-09-22 21:03:31 +01:00
Cástor Muñoz
40ce2b4133 rbutil: add abort signal for bootloader install/uninstall
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
2016-08-15 20:14:25 +02:00
Cástor Muñoz
e4af97300d rbutil: show progress bar during bootloader uninstall
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
2016-08-15 20:12:32 +02:00
Cástor Muñoz
5a673d6df2 rbutil: enable "done" signal on bootloader uninstall
This allows to implement multi-stage uninstallers. Should not affect
the behaviour on current targets.

Change-Id: Idf8aec5caf76cf9317798890d094a7cebdbcabec
2016-08-15 20:10:59 +02:00
Amaury Pouly
a6b4bf3a33 mkimxboot: remove code for NWZ-370/380
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
2016-05-25 23:29:04 +01:00
Amaury Pouly
b40ad7d269 mkimxboot: make cross compiler for dualboot stubs overridable
Change-Id: I90d2048f622b355eae7091e536b940b2ac828583
2016-05-25 23:28:25 +01:00
Mihail Zenkov
2a1e9eb8a8 Reverting 4327cbc9b8
I do testing incorrectly: fix don't work as expected.

Change-Id: Ie32672ec213861c02295ae0a14e22b9ca9035585
2016-05-04 01:34:08 +00:00
Mihail Zenkov
4327cbc9b8 C2X0v2: use GPIO to check button state in dualboot
C240v2 freeze on booting OF if SD card inserted. Use GPIO instead DBOP should
help.

Change-Id: Idec0028040f91c6d2c7c04327ca0e1af204f58eb
2016-05-03 17:41:36 +02:00
Dominik Riebeling
ee567d8579 Fix wrong typecast in test.
Change-Id: I01acae450bcbb9c9e2b45d3ee62817b9256540c3
2016-03-27 12:38:18 +02:00
Dominik Riebeling
bbb46a885d Improve handling of Qt5 subversions on OS X.
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
2016-03-27 12:38:18 +02:00
Dominik Riebeling
32aaa52ed4 Use Gestalt to get number of CPUs on OS X.
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
2016-03-27 12:38:17 +02:00
Dominik Riebeling
8624392f7e Fix compile warning on OS X.
Current clang on OS X suggests placing parens so add them
(-Wbitwise-op-parentheses enabled by default).

Change-Id: I31b49386aa184fe27f72f7f58909b97524d96f44
2016-03-27 12:38:17 +02:00
Dominik Riebeling
7cc6d85df9 Fix C++11 compile error with version strings.
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
2016-03-27 12:38:17 +02:00
Dominik Riebeling
1015088d90 Fix building with Qt 4.7.
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
2016-01-17 20:47:08 +01:00
Dominik Riebeling
5c027e3b5c Fix uninstallation for mi4 based bootloader installs.
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
2016-01-17 19:18:26 +01:00
Dominik Riebeling
537f9a4ab6 Return process IDs in Utils::findRunningProcess().
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
2016-01-17 19:18:26 +01:00
Dominik Riebeling
3b089b439f Add color to trace debug output.
Change-Id: Id2c90220ab695a8195af50cdea8437b49744f720
2016-01-17 19:18:26 +01:00
Cástor Muñoz
610b80b9ca rbutil: fix writing to rbutil.log after bootloader uninstall
Change-Id: I722d4d5a83fc57bd8df33bfb23a0ab16e5ac4861
2016-01-17 19:16:53 +01:00
Cástor Muñoz
0992092a0f rbutil: fix resolveDevicename() on Windows
Solves some eject issues (FSCTL_LOCK_VOLUMEN ioctl failures) ocurring
when resolveDevicename() is ejecuted prior to ejectDevice(), tested
with Qt5.

Change-Id: Iff9240abd9d2f71bec1a1070f4ef194916e13b65
2016-01-17 18:47:51 +01:00
Cástor Muñoz
ad65f8cc71 Handle mixed case in Windows USB ID detection.
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>
2015-12-20 12:25:41 +01:00
Dominik Riebeling
7d7359ae63 Fix and extend HttpGet unit test again.
Fix wrong initialization (why did that compile?) and add check for progress
signal.

Change-Id: I83a193252afcf66acaa333750b0ac2ef83e38478
2015-12-20 11:10:18 +01:00
Dominik Riebeling
70baf0f7be Fix compiling HttpGet unit test.
Provide a stub for Logger class to make the test compile.

Change-Id: I142eaf443c1f9026506100b82c9341e83b619ab6
2015-12-18 23:42:18 +01:00
Dominik Riebeling
7e7fd0c7b8 Use random port for HttpGet unit tests.
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
2015-12-18 23:42:18 +01:00
Dominik Riebeling
79d513dd7e Add documentation to HttpGet and remove unnecessary return value.
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
2015-12-18 23:42:18 +01:00
Dominik Riebeling
d24a9ea3b2 Add support file:// URLs in HttpGet.
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
2015-12-18 23:42:17 +01:00
Cástor Muñoz
4627d4b56e Fix static compilation with Qt5.
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>
2015-12-18 23:42:17 +01:00
Dominik Riebeling
226922efe3 Fix USB IDs for Sansa c200v2.
The wrong IDs made a connected c200v1 get detected as c200v1 and c200v2 in MTP
mode.

Change-Id: I9048910ca9d768b17b9d23e4679c96d9ab8d6831
2015-06-20 20:42:59 +02:00
Dominik Riebeling
4c4c645d82 Win32: fix possible crash when listing USB devices.
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
2015-06-07 22:25:54 +02:00
Dominik Riebeling
e606ee42c2 Make lrelease detection work on Windows.
Make sure to expand variable before testing.

Change-Id: I6b6f11782677c178fe3f2209f84887084940976a
2015-05-30 19:16:11 +02:00
Dominik Riebeling
ef21b30454 Make lrelease detection work on Windows.
Windows doesn't have which, so building natively on Windows didn't create
translations anymore. Use a which-less approach instead.

Change-Id: I7b4c40b26d68da54277a148e8e2d76ac81061c8b
2015-05-30 19:01:33 +02:00
Dominik Riebeling
47d053735b Initially scroll to changelog end.
Since currently new entries are at the bottom scroll down when opening the
changelog window.

Change-Id: I3cec84f5d9251e268c34335d8032dd11f42098ae
2015-05-18 22:48:54 +02:00
Dominik Riebeling
a213c1828f Extend project file message output and always run lrelease.
Check for lrelease and always try to run it if found. If not found show a
warning. This avoids build problems for certain setups which previously
required -config dbg to complete.

Change-Id: I60f0f49adc8455743afc5e4d23294ce0729f38d2
2015-05-18 22:44:36 +02:00
Dominik Riebeling
5db55387b9 Fix building with MSVC.
MSVC doesn't like function style call to the logger.

Change-Id: I98480442cafbec6728198e5f3bc40f992d4ea477
2015-05-14 22:18:58 +02:00
Dominik Riebeling
44fcebb988 Fix libs path for building with MSVC.
Change-Id: Iaa0a20c8bff1faaa191de70d6f02c62dafec1591
2015-05-13 23:00:49 +02:00
Dominik Riebeling
d1598cfa85 Add information about compiler used to startup log.
Change-Id: I47442ea0458461d0ae0a1af40e7719f8543b1992
2015-05-02 16:52:14 +02:00
Dominik Riebeling
09a25deeea Apply -Wno-unused-local-typedefs for gcc only.
Change-Id: I098882ea1c1a3f5265a763046400d79aed8eb43f
2015-05-02 16:52:14 +02:00
Dominik Riebeling
9ecfe6151b Separate logger / quazip project file parts.
Move to separate project include file for better readability and reusability.

Change-Id: If75805be8fad4aec8ede600f5c616a9412ac0505
2015-05-02 16:52:14 +02:00
Dominik Riebeling
b230cf3aa2 Update quazip to release 0.7.1.
Update to latest quazip release. Note that quazip is now LGPL and not GPL /
LGPL dual licensed anymore.

Change-Id: Ie1e975b5b546dd31218eef9df472527493fe81e0
2015-05-02 16:52:14 +02:00
Dominik Riebeling
d4fee36971 Remove unnecessary Id line.
Change-Id: I48428eb1e455a841f9f1295cf6a61631bd925977
2015-05-02 16:52:13 +02:00
Dominik Riebeling
4fb4de362c Update german translation.
Change-Id: Ieb9b94d39009db4954df05cc1f54161b76b44f61
2015-05-02 16:52:13 +02:00
Dominik Riebeling
72b81c2559 Improve update check information dialog.
Show the user both the current and updated version.

Change-Id: Ief693cce020a39a0c79bf2705da4a44b7bd15928
2015-05-02 16:52:13 +02:00
Dominik Riebeling
43b1ccffcc Add note to boot OF for update with OF on uninstallation.
Change-Id: Ia2955ecc9616eaa91644970ef81320e23a7970a0
2015-05-02 16:52:13 +02:00
Amaury Pouly
98a69ec500 mkimxboot: fix usage message
Change-Id: I7a7a2c56c434525ac242f447dd8bb287d5fc69eb
2015-03-08 22:57:29 +01:00
Семён Жуковский
1865efc021 Update Russian and French rbutil translations.
Change-Id: I52a42309b27b44463061f36a98b131d82a58a293
2015-02-22 13:30:48 +01:00
Udo Schläpfer
cef17e3d59 iBasso DX50/DX90: Rockbox loader, replacement for original firmware MangoPlayer.
This loader is needed to use Rockbox on iBasso DX50/DX90 devices. It replaces
/system/bin/MangoPlayer.

It expects
- the original firmware MangoPlayer as /system/bin/MangoPlayer_original
- the chooser.bmp file as /system/chooser.bmp
- the rbmissing.bmp file as /system/rbmissing.bmp
- the usb.bmp file as  /system/usb.bmp
- Rockbox in /mnt/sdcard/.rockbox/ (internal device storage accessable via USB)

On first boot or if the device is booted with the hold switch engaged (upper,
locked position) this loader will let the user choose between Rockbox and the
orginal firmware MangoPlayer. It remembers the last choice and will start the
choosen player an following boots.

In the chooser screen
- the device can be powered off with a power button long press.
- Rockbox can be startet with the "Next/Fast Forward" button or by touching the
right part of the touchscreen.
- the orginal firmware MangoPlayer can be startet with the "Previous/Rewind"
button or by touching the left part of the touchscreen.

If Rockbox can not be found/executed than a "Rockbox is missing" screen will be
shown and the orginal firmware MangoPlayer will be started after 30 seconds.

This loader will (try to) restart Rockbox or the orginal firmware MangoPlayer if
something unexpected happens.

This loader can be installed via a customized firmware image (update.img) or
manually via the Android Debug Bridge (if you get adbd started on the device).

This is a rewrite and code clean up of the original submission, eliminating the
need for a custom Android Vold. This loader "knows", when Rockbox has exited due
to a USB mass storage connection remounting /mnt/sdcard and acts accordingly,
displaying a "USB connection" screen while waiting to restart Rockbox.

Change-Id: I2698e173437f9c7aa1ff40649a290220e2ee0439
2015-02-02 21:01:00 +01:00
Thomas Jarosch
2a3e1628a5 Limit more variables to file scope
Change-Id: I30219d626316776eb73b4205d63376fa3dbc6361
2015-01-11 21:40:51 +01:00
Simon Rothen
0b5ad60c26 Introducing Targets iBasso DX50 & iBasso DX90
The port to for this two targets has been entirely developped by Ilia Sergachev (alias Il or xzcc). His source
can be found at https://bitbucket.org/isergachev/rockbox . The few necesary modifications for the DX90 port
was done by headwhacker form head-fi.org. Unfortunately i could not try out the final state of the DX90 port.
The port is hosted on android (without java) as standalone app. The official Firmware is required to run this port.
Ilia did modify the source files for the "android" target in the rockbox source to make the DX port work. The work I did
was to separate the code for DX50 (&DX90) from the android target.
On this Target Ilia used source from tinyalsa from AOSP. I did not touch that part of the code because I do not understand it.
What else I changed from Ilias sources besides the separation from the target "android":
* removed a dirty hack to keep backlight off
* changed value battery meter to voltage battery meter
* made all plugins compile (named target as "standalone") and added keymaps
* i added the graphics for the manual but did not do anything else for the manual yet
* minor optimizations

known bugs:
* timers are slowed donw when playback is active (tinyalsa related?)
* some minor bugs

Things to do:
* The main prolem will be how to install the app correctly. A guy called DOC2008 added a CWM (by androtab.info) to the
  official firmware and Ilia made a CWM installation script and a dualboot selector (rbutils/ibassoboot, build with
  ndk-build). We will have to find a way to install rockbox in a proper way without breaking any copyrights.
  Maybe ADB is an option but it is not enable with OF by default. Patching the OF is probably the way to go.
* All the wiki and manual

to build:
needed: android ndk installed, android sdk installed with additional build-tools 19.1.0 installed

./tools/configure
select iBasso DX50 or iBasso DX90
make -j apk

the content of rockbox.zip/.rockbox needs to be copied to /system/rockbox/app_rockbox/rockbox/ (rockbox app not needed)
the content of libs/armeabi to /system/rockbox/lib/ (rockbox app needed)

The boot selector is needed as /system/bin/MangoPlayer and the iBasso app as /system/bin/MangoPlayer_original. There
is also the "vold" file. The one from OF does not work with DX50 rockbox (DX90 works!?), the one from Ilia is necessary.

Until we have found a proper way to install it, it can only be installed following the instructions of Ilia on his
bitbucket page, using the CWM-OF and his installation script package.

Change-Id: Ic4faaf84824c162aabcc08e492cee6e0068719d0
Reviewed-on: http://gerrit.rockbox.org/941
Tested: Chiwen Chang <rock1104.tw@yahoo.com.tw>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-18 18:19:01 +02:00
Dominik Riebeling
79a56fabb9 Compile imxtools as gnu99 standard.
With current MinGW using c99 as standard the compiler causes problems with some
types.  Use gnu99 standard instead which doesn't do this.

Change-Id: I731f58025645ae88ac226593a2b2a62140285ee8
2014-06-30 17:58:37 +02:00