summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Conrad <dconrad@fastmail.com>2024-09-14 14:34:21 -0500
committerSolomon Peachy <pizza@shaftnet.org>2024-09-24 10:48:58 -0400
commit5d2692375d32f7cd2c87d94c1f2b0ee62840765b (patch)
treeaf6ebb77724e1f285184a060bcd038aa878623ae
parentf0c208554c5ccf628965c0b4b1415ac04789876e (diff)
downloadrockbox-5d2692375d32f7cd2c87d94c1f2b0ee62840765b.tar.gz
rockbox-5d2692375d32f7cd2c87d94c1f2b0ee62840765b.zip
rbutil: Add erosqnative
- Give each brand its own entry, and make ranges of OF versions correspond to hardware changes. - Temporarily disabled target aigoerosq. - Post-install hint enabled. - Added pre-install hint function - Added optional parameter themename, in case the target name does not match the themesite name. - Made Port Status (statusAsString()) only care about platform string prior to first '.' - Manual: Remove note that rbutil does not support this model Issues: - Cannot uninstall the bootloader - manual instructions are available Change-Id: I574aad7943ea3d1e543e9449f68240446fec0709
-rw-r--r--manual/getting_started/installation.tex2
-rw-r--r--utils/rbutilqt/base/bootloaderinstallhelper.cpp31
-rw-r--r--utils/rbutilqt/base/bootloaderinstallhelper.h1
-rw-r--r--utils/rbutilqt/base/playerbuildinfo.cpp3
-rw-r--r--utils/rbutilqt/base/playerbuildinfo.h1
-rw-r--r--utils/rbutilqt/changelog.txt3
-rw-r--r--utils/rbutilqt/gui/selectiveinstallwidget.cpp11
-rw-r--r--utils/rbutilqt/gui/selectiveinstallwidget.h1
-rw-r--r--utils/rbutilqt/rbutil.ini117
-rw-r--r--utils/rbutilqt/rbutilqt.cpp1
-rw-r--r--utils/rbutilqt/themesinstallwindow.cpp9
-rw-r--r--utils/rbutilqt/version.h2
12 files changed, 170 insertions, 12 deletions
diff --git a/manual/getting_started/installation.tex b/manual/getting_started/installation.tex
index 169943e0a3..c5a5cf37de 100644
--- a/manual/getting_started/installation.tex
+++ b/manual/getting_started/installation.tex
@@ -327,7 +327,7 @@ people. Rockbox Utility is a graphical application that does almost everything
327for you. However, should you encounter a problem, then the manual way is 327for you. However, should you encounter a problem, then the manual way is
328still available to you.\\ 328still available to you.\\
329 329
330\opt{gigabeats,fiiom3k,shanlingq1,erosqnative}{ 330\opt{gigabeats,fiiom3k,shanlingq1}{
331 \note{The automated install is not yet available for the 331 \note{The automated install is not yet available for the
332 \playerlongtype{}. For now you can use the manual method to install Rockbox. 332 \playerlongtype{}. For now you can use the manual method to install Rockbox.
333 Please still read the section on the automatic install as it explains 333 Please still read the section on the automatic install as it explains
diff --git a/utils/rbutilqt/base/bootloaderinstallhelper.cpp b/utils/rbutilqt/base/bootloaderinstallhelper.cpp
index 4a1b24883b..34fcefc5bc 100644
--- a/utils/rbutilqt/base/bootloaderinstallhelper.cpp
+++ b/utils/rbutilqt/base/bootloaderinstallhelper.cpp
@@ -97,6 +97,34 @@ BootloaderInstallBase::Capabilities
97 return caps; 97 return caps;
98} 98}
99 99
100//! @brief Return pre install hints string.
101//! @param model model string
102//! @return hints.
103QString BootloaderInstallHelper::preinstallHints(QString model)
104{
105 bool hint = false;
106 QString msg = QObject::tr("Before Bootloader installation begins, "
107 "Please check the following:");
108
109 msg += "<ol>";
110 if(model.contains("erosqnative")) {
111 hint = true;
112 msg += QObject::tr("<li>Ensure your SD card is formatted as FAT. "
113 "exFAT is <i>not</i> supported. You can reformat using the "
114 "Original Firmware on your player if need be. It is located "
115 "under (System Settings --> Reset --> Format TF Card).</li>"
116 "<li>Please use a quality SD card from a reputable source. "
117 "The SD cards that come bundled with players are often of "
118 "substandard quality and may cause issues.</li>");
119 }
120 msg += "</ol>";
121
122 if(hint)
123 return msg;
124 else
125 return QString();
126}
127
100 128
101//! @brief Return post install hints string. 129//! @brief Return post install hints string.
102//! @param model model string 130//! @param model model string
@@ -114,7 +142,8 @@ QString BootloaderInstallHelper::postinstallHints(QString model)
114 } 142 }
115 if(model == "iriverh100" || model == "iriverh120" || model == "iriverh300" 143 if(model == "iriverh100" || model == "iriverh120" || model == "iriverh300"
116 || model == "ondavx747" || model == "agptekrocker" 144 || model == "ondavx747" || model == "agptekrocker"
117 || model == "xduoox3" || model == "xduoox3ii" || model == "xduoox20") { 145 || model == "xduoox3" || model == "xduoox3ii" || model == "xduoox20"
146 || model.contains("erosqnative")) {
118 hint = true; 147 hint = true;
119 msg += QObject::tr("<li>Reboot your player into the original firmware.</li>" 148 msg += QObject::tr("<li>Reboot your player into the original firmware.</li>"
120 "<li>Perform a firmware upgrade using the update functionality " 149 "<li>Perform a firmware upgrade using the update functionality "
diff --git a/utils/rbutilqt/base/bootloaderinstallhelper.h b/utils/rbutilqt/base/bootloaderinstallhelper.h
index 9b6fed0866..4b912cd5d5 100644
--- a/utils/rbutilqt/base/bootloaderinstallhelper.h
+++ b/utils/rbutilqt/base/bootloaderinstallhelper.h
@@ -30,6 +30,7 @@ class BootloaderInstallHelper : public QObject
30 public: 30 public:
31 static BootloaderInstallBase* createBootloaderInstaller(QObject* parent, QString type); 31 static BootloaderInstallBase* createBootloaderInstaller(QObject* parent, QString type);
32 static BootloaderInstallBase::Capabilities bootloaderInstallerCapabilities(QObject *parent, QString type); 32 static BootloaderInstallBase::Capabilities bootloaderInstallerCapabilities(QObject *parent, QString type);
33 static QString preinstallHints(QString model);
33 static QString postinstallHints(QString model); 34 static QString postinstallHints(QString model);
34}; 35};
35 36
diff --git a/utils/rbutilqt/base/playerbuildinfo.cpp b/utils/rbutilqt/base/playerbuildinfo.cpp
index 7edb7f750c..1673f73d6b 100644
--- a/utils/rbutilqt/base/playerbuildinfo.cpp
+++ b/utils/rbutilqt/base/playerbuildinfo.cpp
@@ -67,6 +67,7 @@ const static struct {
67 { PlayerBuildInfo::Encoder, ":target:/encoder" }, 67 { PlayerBuildInfo::Encoder, ":target:/encoder" },
68 { PlayerBuildInfo::Brand, ":target:/brand" }, 68 { PlayerBuildInfo::Brand, ":target:/brand" },
69 { PlayerBuildInfo::PlayerPicture, ":target:/playerpic" }, 69 { PlayerBuildInfo::PlayerPicture, ":target:/playerpic" },
70 { PlayerBuildInfo::ThemeName, ":target:/themename" },
70 { PlayerBuildInfo::TargetNamesAll, "_targets/all" }, 71 { PlayerBuildInfo::TargetNamesAll, "_targets/all" },
71 { PlayerBuildInfo::TargetNamesEnabled, "_targets/enabled" }, 72 { PlayerBuildInfo::TargetNamesEnabled, "_targets/enabled" },
72 { PlayerBuildInfo::LanguageInfo, "languages/:target:" }, 73 { PlayerBuildInfo::LanguageInfo, "languages/:target:" },
@@ -332,7 +333,7 @@ QVariant PlayerBuildInfo::value(SystemUrl item)
332QString PlayerBuildInfo::statusAsString(QString platform) 333QString PlayerBuildInfo::statusAsString(QString platform)
333{ 334{
334 QString result; 335 QString result;
335 switch(value(BuildStatus, platform).toInt()) 336 switch(value(BuildStatus, platform.split('.').at(0)).toInt())
336 { 337 {
337 case STATUS_RETIRED: 338 case STATUS_RETIRED:
338 result = tr("Stable (Retired)"); 339 result = tr("Stable (Retired)");
diff --git a/utils/rbutilqt/base/playerbuildinfo.h b/utils/rbutilqt/base/playerbuildinfo.h
index 38f6662e09..8b7e5934d1 100644
--- a/utils/rbutilqt/base/playerbuildinfo.h
+++ b/utils/rbutilqt/base/playerbuildinfo.h
@@ -67,6 +67,7 @@ public:
67 Encoder, 67 Encoder,
68 Brand, 68 Brand,
69 PlayerPicture, 69 PlayerPicture,
70 ThemeName,
70 71
71 TargetNamesAll, 72 TargetNamesAll,
72 TargetNamesEnabled, 73 TargetNamesEnabled,
diff --git a/utils/rbutilqt/changelog.txt b/utils/rbutilqt/changelog.txt
index 705395b5f0..e08cc48c7f 100644
--- a/utils/rbutilqt/changelog.txt
+++ b/utils/rbutilqt/changelog.txt
@@ -48,3 +48,6 @@ Version 1.5.1
48* Improve responsiveness on install / uninstall. 48* Improve responsiveness on install / uninstall.
49* Enable Themes installation if themes are selected. 49* Enable Themes installation if themes are selected.
50 50
51Version 1.5.2
52* Add support for Native Port to AIGO Eros Q and various clones
53* Make Hosted Port to AIGO Eros Q and various clones "disabled" (can be reenabled by checking the "show disabled targets" checkbox)
diff --git a/utils/rbutilqt/gui/selectiveinstallwidget.cpp b/utils/rbutilqt/gui/selectiveinstallwidget.cpp
index 639e03308a..91e4fcf1cf 100644
--- a/utils/rbutilqt/gui/selectiveinstallwidget.cpp
+++ b/utils/rbutilqt/gui/selectiveinstallwidget.cpp
@@ -409,6 +409,17 @@ void SelectiveInstallWidget::installBootloader(void)
409 } 409 }
410} 410}
411 411
412void SelectiveInstallWidget::installBootloaderHints()
413{
414 if(ui.bootloaderCheckbox->isChecked()) {
415 QString msg = BootloaderInstallHelper::preinstallHints(
416 RbSettings::value(RbSettings::Platform).toString());
417 if(!msg.isEmpty()) {
418 QMessageBox::information(this, tr("Manual steps required"), msg);
419 }
420 }
421}
422
412void SelectiveInstallWidget::installBootloaderPost() 423void SelectiveInstallWidget::installBootloaderPost()
413{ 424{
414 // don't do anything if no bootloader install has been done. 425 // don't do anything if no bootloader install has been done.
diff --git a/utils/rbutilqt/gui/selectiveinstallwidget.h b/utils/rbutilqt/gui/selectiveinstallwidget.h
index d430cecb10..64083497a0 100644
--- a/utils/rbutilqt/gui/selectiveinstallwidget.h
+++ b/utils/rbutilqt/gui/selectiveinstallwidget.h
@@ -31,6 +31,7 @@ class SelectiveInstallWidget : public QWidget
31 Q_OBJECT 31 Q_OBJECT
32 public: 32 public:
33 SelectiveInstallWidget(QWidget* parent = nullptr); 33 SelectiveInstallWidget(QWidget* parent = nullptr);
34 void installBootloaderHints(void);
34 35
35 public slots: 36 public slots:
36 void updateVersion(void); 37 void updateVersion(void);
diff --git a/utils/rbutilqt/rbutil.ini b/utils/rbutilqt/rbutil.ini
index 41f6cd9758..339878a4b5 100644
--- a/utils/rbutilqt/rbutil.ini
+++ b/utils/rbutilqt/rbutil.ini
@@ -79,6 +79,14 @@ platform135=aigoerosq.agptekh3
79platform136=aigoerosq.hifiwalkerh2 79platform136=aigoerosq.hifiwalkerh2
80platform137=aigoerosq.hifiwalkerh2.v13 80platform137=aigoerosq.hifiwalkerh2.v13
81platform138=aigoerosq.surfansf20 81platform138=aigoerosq.surfansf20
82; default erosqnative should be most recent hardware revision
83platform139=erosqnative.hw3
84platform140=erosqnative.hw3.hifiwalkerh2
85platform141=erosqnative.hw3.surfansf20
86platform142=erosqnative.hw1hw2
87platform143=erosqnative.hw1hw2.hifiwalkerh2
88platform144=erosqnative.hw1hw2.hifiwalkerh2.v13
89platform145=erosqnative.hw1hw2.surfansf20
82 90
83; devices sections 91; devices sections
84; 92;
@@ -784,7 +792,7 @@ playerpic=agptekrocker
784encoder=rbspeex 792encoder=rbspeex
785 793
786[aigoerosq] 794[aigoerosq]
787name="AIGO Eros Q" 795name="AIGO Eros Q (Hosted)"
788bootloadermethod=bspatch 796bootloadermethod=bspatch
789bootloadername=/aigo/EROSQ-v18.bsdiff 797bootloadername=/aigo/EROSQ-v18.bsdiff
790bootloaderfile=/update.upt 798bootloaderfile=/update.upt
@@ -795,9 +803,10 @@ usbid=0xc5020023 ; shared across EROS Q/K series
795usberror= 803usberror=
796playerpic=aigoerosq 804playerpic=aigoerosq
797encoder=rbspeex 805encoder=rbspeex
806status=disabled
798 807
799[aigoerosq.k] 808[aigoerosq.k]
800name="AIGO Eros K" 809name="AIGO Eros K (Hosted)"
801bootloadermethod=bspatch 810bootloadermethod=bspatch
802bootloadername=/aigo/EROSK-v13.bsdiff 811bootloadername=/aigo/EROSK-v13.bsdiff
803bootloaderfile=/update.upt 812bootloaderfile=/update.upt
@@ -808,9 +817,10 @@ usbid=0xc5020023 ; shared across EROS Q/K series
808usberror= 817usberror=
809playerpic=aigoerosk 818playerpic=aigoerosk
810encoder=rbspeex 819encoder=rbspeex
820status=disabled
811 821
812[aigoerosq.agptekh3] 822[aigoerosq.agptekh3]
813name="AGPTek H3" 823name="AGPTek H3 (Hosted)"
814bootloadermethod=bspatch 824bootloadermethod=bspatch
815bootloadername=/agptek/H3-20180905.bsdiff 825bootloadername=/agptek/H3-20180905.bsdiff
816bootloaderfile=/update.upt 826bootloaderfile=/update.upt
@@ -821,9 +831,10 @@ usbid=0xc5020023 ; shared across EROS Q / K series
821usberror= 831usberror=
822playerpic=aigoerosk 832playerpic=aigoerosk
823encoder=rbspeex 833encoder=rbspeex
834status=disabled
824 835
825[aigoerosq.surfansf20] 836[aigoerosq.surfansf20]
826name="Surfans F20" 837name="Surfans F20 (Hosted)"
827bootloadermethod=bspatch 838bootloadermethod=bspatch
828bootloadername=/surfans/F20-v22.bsdiff 839bootloadername=/surfans/F20-v22.bsdiff
829bootloaderfile=/update.upt 840bootloaderfile=/update.upt
@@ -834,9 +845,10 @@ usbid=0xc5020023 ; shared across EROS Q / K series
834usberror= 845usberror=
835playerpic=aigoerosk 846playerpic=aigoerosk
836encoder=rbspeex 847encoder=rbspeex
848status=disabled
837 849
838[aigoerosq.hifiwalkerh2] 850[aigoerosq.hifiwalkerh2]
839name="HIFI WALKER H2" 851name="HIFI WALKER H2 (Hosted)"
840bootloadermethod=bspatch 852bootloadermethod=bspatch
841bootloadername=/hifiwalker/H2-v12.bsdiff 853bootloadername=/hifiwalker/H2-v12.bsdiff
842bootloaderfile=/update.upt 854bootloaderfile=/update.upt
@@ -847,9 +859,10 @@ usbid=0xc5020023 ; shared across EROS Q / K series
847usberror= 859usberror=
848playerpic=aigoerosq 860playerpic=aigoerosq
849encoder=rbspeex 861encoder=rbspeex
862status=disabled
850 863
851[aigoerosq.hifiwalkerh2.v13] 864[aigoerosq.hifiwalkerh2.v13]
852name="HIFI WALKER H2 (v1.3+)" 865name="HIFI WALKER H2 (v1.3+) (Hosted)"
853bootloadermethod=file 866bootloadermethod=file
854bootloadername=/hifiwalker/H2-v13-patched.upt 867bootloadername=/hifiwalker/H2-v13-patched.upt
855bootloaderfile=/update.upt 868bootloaderfile=/update.upt
@@ -859,6 +872,98 @@ usbid=0xc5020023 ; shared across EROS Q / K series
859usberror= 872usberror=
860playerpic=aigoerosq 873playerpic=aigoerosq
861encoder=rbspeex 874encoder=rbspeex
875status=disabled
876
877[erosqnative.hw3]
878name="AIGO Eros Q V2.1"
879bootloadermethod=file
880bootloadername=/aigo/native/erosqnative-hw3-erosq.upt
881bootloaderfile=/update.upt
882manualname=erosqnative
883themename=aigoerosq
884brand=AIGO/EROS
885usbid=0xc5020023 ; shared across EROS Q / K series
886usberror=
887playerpic=aigoerosq
888encoder=rbspeex
889
890[erosqnative.hw3.hifiwalkerh2]
891name="HIFI WALKER H2 V1.7 - V1.8"
892bootloadermethod=file
893bootloadername=/aigo/native/erosqnative-hw3-erosq.upt
894bootloaderfile=/update.upt
895manualname=erosqnative
896themename=aigoerosq
897brand=HIFI WALKER
898usbid=0xc5020023 ; shared across EROS Q / K series
899usberror=
900playerpic=aigoerosq
901encoder=rbspeex
902
903[erosqnative.hw3.surfansf20]
904name="Surfans F20 V3.0 - V3.3"
905bootloadermethod=file
906bootloadername=/aigo/native/erosqnative-hw3-erosq.upt
907bootloaderfile=/update.upt
908manualname=erosqnative
909themename=aigoerosq
910brand=Surfans
911usbid=0xc5020023 ; shared across EROS Q / K series
912usberror=
913playerpic=aigoerosk
914encoder=rbspeex
915
916[erosqnative.hw1hw2]
917name="AIGO Eros Q V1.8 - V2.0"
918bootloadermethod=file
919bootloadername=/aigo/native/erosqnative-hw1hw2-erosq.upt
920bootloaderfile=/update.upt
921manualname=erosqnative
922themename=aigoerosq
923brand=AIGO/EROS
924usbid=0xc5020023 ; shared across EROS Q / K series
925usberror=
926playerpic=aigoerosq
927encoder=rbspeex
928
929[erosqnative.hw1hw2.hifiwalkerh2]
930name="HIFI WALKER H2 V1.1 - V1.2, V1.4 - V1.6"
931bootloadermethod=file
932bootloadername=/aigo/native/erosqnative-hw1hw2-erosq.upt
933bootloaderfile=/update.upt
934manualname=erosqnative
935themename=aigoerosq
936brand=HIFI WALKER
937usbid=0xc5020023 ; shared across EROS Q / K series
938usberror=
939playerpic=aigoerosq
940encoder=rbspeex
941
942[erosqnative.hw1hw2.hifiwalkerh2.v13]
943name="HIFI WALKER H2 V1.3"
944bootloadermethod=file
945bootloadername=/aigo/native/erosqnative-hw1hw2-eros_h2.upt
946bootloaderfile=/update.upt
947manualname=erosqnative
948themename=aigoerosq
949brand=HIFI WALKER
950usbid=0xc5020023 ; shared across EROS Q / K series
951usberror=
952playerpic=aigoerosq
953encoder=rbspeex
954
955[erosqnative.hw1hw2.surfansf20]
956name="Surfans F20 V2.2 - V2.7"
957bootloadermethod=file
958bootloadername=/aigo/native/erosqnative-hw1hw2-erosq.upt
959bootloaderfile=/update.upt
960manualname=erosqnative
961themename=aigoerosq
962brand=Surfans
963usbid=0xc5020023 ; shared across EROS Q / K series
964usberror=
965playerpic=aigoerosk
966encoder=rbspeex
862 967
863; incompatible devices sections 968; incompatible devices sections
864; each section uses a USB VID / PID string as section name. 969; each section uses a USB VID / PID string as section name.
diff --git a/utils/rbutilqt/rbutilqt.cpp b/utils/rbutilqt/rbutilqt.cpp
index f5872f268e..b6446dda26 100644
--- a/utils/rbutilqt/rbutilqt.cpp
+++ b/utils/rbutilqt/rbutilqt.cpp
@@ -366,6 +366,7 @@ void RbUtilQt::configDialog()
366{ 366{
367 Config *cw = new Config(this); 367 Config *cw = new Config(this);
368 connect(cw, &Config::settingsUpdated, this, &RbUtilQt::updateSettings); 368 connect(cw, &Config::settingsUpdated, this, &RbUtilQt::updateSettings);
369 connect(cw, &Config::settingsUpdated, selectiveinstallwidget, &SelectiveInstallWidget::installBootloaderHints);
369 cw->show(); 370 cw->show();
370} 371}
371 372
diff --git a/utils/rbutilqt/themesinstallwindow.cpp b/utils/rbutilqt/themesinstallwindow.cpp
index 3dd564c5e5..1c4281d25b 100644
--- a/utils/rbutilqt/themesinstallwindow.cpp
+++ b/utils/rbutilqt/themesinstallwindow.cpp
@@ -85,8 +85,13 @@ void ThemesInstallWindow::downloadInfo()
85 themesInfo.close(); 85 themesInfo.close();
86 86
87 QString infoUrl = PlayerBuildInfo::instance()->value(PlayerBuildInfo::ThemesInfoUrl).toString(); 87 QString infoUrl = PlayerBuildInfo::instance()->value(PlayerBuildInfo::ThemesInfoUrl).toString();
88 infoUrl.replace("%TARGET%", 88 if (PlayerBuildInfo::instance()->value(PlayerBuildInfo::ThemeName).toString() != "") {
89 RbSettings::value(RbSettings::CurrentPlatform).toString().split(".").at(0)); 89 infoUrl.replace("%TARGET%",
90 PlayerBuildInfo::instance()->value(PlayerBuildInfo::ThemeName).toString());
91 } else {
92 infoUrl.replace("%TARGET%",
93 RbSettings::value(RbSettings::CurrentPlatform).toString().split(".").at(0));
94 }
90 infoUrl.replace("%REVISION%", installInfo.revision()); 95 infoUrl.replace("%REVISION%", installInfo.revision());
91 infoUrl.replace("%RELEASE%", installInfo.release()); 96 infoUrl.replace("%RELEASE%", installInfo.release());
92 infoUrl.replace("%RBUTILVER%", VERSION); 97 infoUrl.replace("%RBUTILVER%", VERSION);
diff --git a/utils/rbutilqt/version.h b/utils/rbutilqt/version.h
index c55a4d845c..15812132fa 100644
--- a/utils/rbutilqt/version.h
+++ b/utils/rbutilqt/version.h
@@ -34,7 +34,7 @@
34// combined differently. 34// combined differently.
35#define VERSION_MAJOR 1 35#define VERSION_MAJOR 1
36#define VERSION_MINOR 5 36#define VERSION_MINOR 5
37#define VERSION_MICRO 1 37#define VERSION_MICRO 2
38#define VERSION_PATCH 0 38#define VERSION_PATCH 0
39#define STR(x) #x 39#define STR(x) #x
40#define VERSIONSTRING(a, b, c) STR(a) "." STR(b) "." STR(c) 40#define VERSIONSTRING(a, b, c) STR(a) "." STR(b) "." STR(c)