[RELEASE] CrystalRCM - payload pusher for macOS that works out of the box (no lib installs)

mistyhands

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
Age
101
XP
112
Country
Saint Kitts and Nevis
banner.png


I've made a simple GUI fusee-launcher frontend for macOS that has statically linked libUSB, and as such works without having to install anything else. It's a universal binary, so will work natively on M1 or Intel Macs. If any issues arise, please feel free to create one on git or post here. The only downside is the DMG download is ~18MB which is probably a bit large for something this simple.

EDIT: I've updated it with Python that I built for 10.9. Please test version 0.1.1 if you're on macOS below 12.1!

Download | Source



It's also possible to build libusb then create the .app yourself, instructions are in the repo. I plan to add bundled payloads / the option for auto-updating payloads soon, and in the future a version made in Xcode to produce a smaller app.
 
Last edited by mistyhands,

thesjaakspoiler

Well-Known Member
Member
Joined
Nov 20, 2018
Messages
602
Trophies
0
Age
122
XP
795
Country
Afghanistan
This is what I was missing on my Mac!
But could you maybe check the dmg?
After dragging the CrystalDMG to my Applications folder, it says that CrystalRCM is damaged and cannot be opened.
Hopefully it's just something minor.
I'm on MacOS Catalina 10.15.6.
 

TheDoctah

New Member
Newbie
Joined
Jan 26, 2022
Messages
1
Trophies
0
XP
6
Country
Canada
Nice work. I literally keep windows specifically for my switch. I've been using the web launchers but this would make life easier. Thanks
 

mistyhands

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
Age
101
XP
112
Country
Saint Kitts and Nevis
This is what I was missing on my Mac!
But could you maybe check the dmg?
After dragging the CrystalDMG to my Applications folder, it says that CrystalRCM is damaged and cannot be opened.
Hopefully it's just something minor.
I'm on MacOS Catalina 10.15.6.
So sorry about this, I'm on Monterey** and I don't think there's a way to test on older OS X versions.

Having looked into it, there seems to be an issue pre-10.7 relating to which Python binary it uses. Tomorrow I'll try and make an additional release, and I can ping you when I do if you'd like. I'm unsure if this even applies to Catalina but it should be a quick fix, as the app builder seems to base it on the current system version.

the issue is the python binary is built to support macOS >= 11.0 on my system. I'll rebuild python itself later today to support older versions.
 
Last edited by mistyhands,

protomouse

Well-Known Member
Newcomer
Joined
Feb 1, 2014
Messages
49
Trophies
0
Age
34
XP
481
Country
Cheers for this! I have a machine running Catalina with Xcode on it. Could have a stab at building the app. I'm surprised you're even able to package Apple Silicon binaries on Mojave. That release is hella old!
 

Tumbleweed

Well-Known Member
Member
Joined
Jul 29, 2018
Messages
143
Trophies
0
Age
38
XP
1,079
Country
Italy
So sorry about this, I'm on Mojave and I don't think there's a way to test on older OS X versions.

Having looked into it, there seems to be an issue pre-10.7 relating to which Python binary it uses. Tomorrow I'll try and make an additional release, and I can ping you when I do if you'd like. I'm unsure if this even applies to Catalina but it should be a quick fix, as the app builder seems to base it on the current system version.

Catalina is not older... Mojave is 10.14.x I'm running Catalina 10.15.7 and same as the other guy running it 10.15.6.. DMG is damaged...
 

mistyhands

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
Age
101
XP
112
Country
Saint Kitts and Nevis
Catalina is not older... Mojave is 10.14.x I'm running Catalina 10.15.7 and same as the other guy running it 10.15.6.. DMG is damaged...
Sorry, I got the version names/numbers mixed up.

After looking into it, the python binary on my system has a minimum version of 11.0 based on otool output, and I'm running 12.1.

I'm going to build python for older macOS when I have the time later today or tomorrow, for now, the current solution for versions below 11.0 is to create the .app yourself, and py2app will use the python version on your system. But I'll have a build out ASAP for macOS < 11
 
  • Like
Reactions: Tumbleweed

mistyhands

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
Age
101
XP
112
Country
Saint Kitts and Nevis
Cheers for this! I have a machine running Catalina with Xcode on it. Could have a stab at building the app. I'm surprised you're even able to package Apple Silicon binaries on Mojave. That release is hella old!
Honestly, I messed up the OS version names lol. I'm on Monterey, that's my bad.
 
  • Like
Reactions: Tumbleweed

protomouse

Well-Known Member
Newcomer
Joined
Feb 1, 2014
Messages
49
Trophies
0
Age
34
XP
481
Country
Honestly, I messed up the OS version names lol. I'm on Monteafter rey, that's my bad.

Haha, I much prefer their old cat naming scheme.

Anyway, something about .app's signature seems off:

Code:
% pkgutil --check-signature /Applications/CrystalRCM.app
Package "CrystalRCM":
   Status: package is invalid (checksum did not verify)

Code:
% spctl --assess --raw --type exec /Applications/CrystalRCM.app
/Applications/CrystalRCM.app: a sealed resource is missing or invalid

I think the issue may be that the packaging script is deleting stuff from the app bundle after it has been signed. You could solve this by signing it explicitly at the end of the script, replacing the broken signature.

Code:
% codesign -fs protomouse --deep /Applications/CrystalRCM.app
/Applications/CrystalRCM.app: replacing existing signature

Code:
% pkgutil --check-signature /Applications/CrystalRCM.app
Package "CrystalRCM":
   Status: signed by untrusted certificate
   Certificate Chain:
    1. protomouse
       Expires: 2023-01-26 16:16:21 +0000
       SHA256 Fingerprint:
           5B 06 BC 89 EF 97 7E 18 46 93 DA BC F4 28 38 65 E2 45 61 1A 94 35
           AE 24 76 21 D5 88 8D AD 24 CC

I believe the app will appear as untrusted without a legit Apple Developer certificate, but should still be runnable.

For now, there exists a workaround to allow the app to run despite a bad signature:
Code:
sudo xattr -rds com.apple.quarantine /Applications/CrystalRCM.app
 
Last edited by protomouse,

mistyhands

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
Age
101
XP
112
Country
Saint Kitts and Nevis
Haha, I much prefer their old cat naming scheme.

Anyway, something about .app's signature seems off:

Code:
% pkgutil --check-signature /Applications/CrystalRCM.app
Package "CrystalRCM":
   Status: package is invalid (checksum did not verify)

Code:
% spctl --assess --raw --type exec /Applications/CrystalRCM.app
/Applications/CrystalRCM.app: a sealed resource is missing or invalid

I think the issue may be that the packaging script is deleting stuff from the app bundle after it has been signed. You could solve this by signing it explicitly at the end of the script, replacing the broken signature.

Code:
% codesign -fs protomouse --deep /Applications/CrystalRCM.app
/Applications/CrystalRCM.app: replacing existing signature

Code:
% pkgutil --check-signature /Applications/CrystalRCM.app
Package "CrystalRCM":
   Status: signed by untrusted certificate
   Certificate Chain:
    1. protomouse
       Expires: 2023-01-26 16:16:21 +0000
       SHA256 Fingerprint:
           5B 06 BC 89 EF 97 7E 18 46 93 DA BC F4 28 38 65 E2 45 61 1A 94 35
           AE 24 76 21 D5 88 8D AD 24 CC

I believe the app will appear as untrusted without a legit Apple Developer certificate, but should still be runnable.

For now, there exists a workaround to allow the app to run despite a bad signature:
Code:
sudo xattr -rds com.apple.quarantine /Applications/CrystalRCM.app
Same, I have no idea about all these mountains lol

Anyway, thanks so much. I've made a new build with Python (and libusb) built for 10.9. Hopefully it should work! I also codesigned it, I'll have to add a notice for that into the script, or maybe an option.
 
  • Like
Reactions: protomouse
General chit-chat
Help Users
  • No one is chatting at the moment.
  • mthrnite @ mthrnite:
    praise be to gabe
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    It do be quite nice
    Gift
  • mthrnite @ mthrnite:
    i'll have to be content to play marioland on my BRAND NEW USEFUL FUNCTION MULTI GAME EMBODIED chinese trash
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    Great for emulation, and runs PC games better than my GPD Win 3 lol
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    Which I suppose I should get rid of at this point
    Gift
  • mthrnite @ mthrnite:
    i keep evertying till it's one big blue piece of battery crust
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    Yummy, that's the best part
    Gift
  • Gift
  • gudenau @ gudenau:
    I love how GBATemp randomly
    logs me out.
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Take the hint, man
    Gift
  • KenniesNewName @ KenniesNewName:
    @Tom Bombadildo, upgrade the SSD init?
    Gift
  • KenniesNewName @ KenniesNewName:
    Apparently we have ancestors called Homo erectus
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    It was quite literally the first thing I did with it, never even turned it on with the stock 64GB lol
    Gift
  • Dark_Phoras @ Dark_Phoras:
    And several species of human existed, only sapiens survived
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    Nabbed 512GB for like $70
    Gift
  • KenniesNewName @ KenniesNewName:
    Ye I see them on eBay for about$60 but all are refurbished can't be that bad to get refurbished ones off eBay
    Gift
  • KenniesNewName @ KenniesNewName:
    Plan on getting a m.2 drive and 512gb SD card for roms
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    I've been looking into designing a small casing in the back of it actually, trying to integrate another 2230 M.2 slot along with as small a USB-C dock I can find to sort of make a plug and play M.2->USB expansion myself
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    Expand the storage with faster NVMe, and also have charging and maybe a micro HDMI port
    Gift
  • Tom Bombadildo @ Tom Bombadildo:
    But haven't had a whole lot of time to actually finish anything
    Gift
  • KenniesNewName @ KenniesNewName:
    Let me know if you managed anything I've thought about that being possible as well it would be nice to have that and maybe a built in mini HDMI port with 4 usbs
    Gift
  • KenniesNewName @ KenniesNewName:
    But freaking valve pushed my order to July even though I pre-ordered two days after release :angry:
    Gift
  • KenniesNewName @ KenniesNewName:
    I'll review it :tpi:
    Gift
  • KenniesNewName @ KenniesNewName:
    Won't be long before freaking china floods AliExpress with attachments
    Gift
  • smurgburglar @ smurgburglar:
    how do i get rid of or change the text underneath my username?
    Gift
    smurgburglar @ smurgburglar: how do i get rid of or change the text underneath my username?