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

prayerie

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
XP
167
Country
United Kingdom
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 prayerie,

thesjaakspoiler

Well-Known Member
Member
Joined
Nov 20, 2018
Messages
968
Trophies
0
Age
124
XP
1,474
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
26
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
 

prayerie

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
XP
167
Country
United Kingdom
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 prayerie,

protomouse

Well-Known Member
Newcomer
Joined
Feb 1, 2014
Messages
49
Trophies
0
Age
36
XP
493
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
165
Trophies
0
Age
39
XP
1,448
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...
 

prayerie

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
XP
167
Country
United Kingdom
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

prayerie

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
XP
167
Country
United Kingdom
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
36
XP
493
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,

prayerie

Member
OP
Newcomer
Joined
May 30, 2016
Messages
19
Trophies
0
XP
167
Country
United Kingdom
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

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • SylverReZ @ SylverReZ:
    Had a ton of bugs and often crashed. It even didn't support DOS compatibility with older games. :feelsbadman:
  • SylverReZ @ SylverReZ:
    I only grew up with Windows XP because I was lucky.
  • RedColoredStars @ RedColoredStars:
    I downloaded XP on dialup when it came out. Overnights for like a week. cuz I couldn't tie up the phone line during the day. It was so awesome and worked so great going from ME to XP.
  • K3Nv2 @ K3Nv2:
    Vga pins were a dick
  • K3Nv2 @ K3Nv2:
    I kind of want down a large pizza at 10am then crash out
  • ZeroT21 @ ZeroT21:
    Having pizza all day? done it
  • K3Nv2 @ K3Nv2:
    Nah pizza hut open at 10:30
  • ZeroT21 @ ZeroT21:
    just buy a stack of pizza and keep the rest you don't need yet frozen
  • K3Nv2 @ K3Nv2:
    Or buy frozen pizza
  • ZeroT21 @ ZeroT21:
    I buy the regular kind, not the frozen stuff
  • ZeroT21 @ ZeroT21:
    supermarket pizza is ass
  • K3Nv2 @ K3Nv2:
    x65 would just yell at me
  • ZeroT21 @ ZeroT21:
    sounds ok, he didn't pull a gun out ,so...
  • K3Nv2 @ K3Nv2:
    $12 large any style pizza deal
  • K3Nv2 @ K3Nv2:
    Each bite is a $1 well spent
  • SylverReZ @ SylverReZ:
    @ZeroT21, Agreed. I hate oven pizza, only from pizza place.
    +1
  • K3Nv2 @ K3Nv2:
    Nah I can still go for totinos
  • RedColoredStars @ RedColoredStars:
    i like totinos party pizzas. lol.
  • RedColoredStars @ RedColoredStars:
    the cracker-like crust is great on those
  • RedColoredStars @ RedColoredStars:
    My neighbor and I are going to make this next month....
  • SylverReZ @ SylverReZ:
    Tiger crust is great.
  • K3Nv2 @ K3Nv2:
    I'm beefing with a neighbor currently each time I ask him for help with something he makes bs excuses then ignores my calls text but seems to randomly speak when I'm done with the project after doing things to help him
  • RedColoredStars @ RedColoredStars:
    DiGiorno Crispy Pan Pizza tasted pretty dang close to Pizza hut pan pizza, but Im not sure if theyve been discontinued or not. Havent seen them locally for a couple of months now.
  • RedColoredStars @ RedColoredStars:
    The croissant crust is still available though, but not quite as good imo.
    RedColoredStars @ RedColoredStars: The croissant crust is still available though, but not quite as good imo.