[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
166
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
947
Trophies
0
Age
124
XP
1,454
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
166
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
166
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
166
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
166
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
  • No one is chatting at the moment.
  • K3Nv2 @ K3Nv2:
    [He will] only make $1.5 million per night after taxes. Poor guy
  • BigOnYa @ BigOnYa:
    My stupid computer chair keeps slowly going down, but I don't notice it goes down, until I'm like reaching up to my desk. I just bought this f er last year.
  • BakerMan @ BakerMan:
    Does Bruno Mars is gay?
  • BigOnYa @ BigOnYa:
    K3nv2 would know...
  • K3Nv2 @ K3Nv2:
    Only for Bakers
    +1
  • BigOnYa @ BigOnYa:
    I heard he has a Wario fetish, but only if no Wizards are around.
  • BigOnYa @ BigOnYa:
    jk with you Bakerman, much love. fist bump.
  • K3Nv2 @ K3Nv2:
    He really knows how to kneed the dough
  • BigOnYa @ BigOnYa:
    Man. I can't wait til CTGP 8 comes out on Switch, been waiting forever.
  • BigOnYa @ BigOnYa:
    Boners Makes me wanna play Duck Hunt NES
    +1
  • K3Nv2 @ K3Nv2:
    Pooping nice
  • BigOnYa @ BigOnYa:
    What is a "Poop de Boop"? I've heard it mentioned several times now but have no idea and can't find anything online bout it. Is it a British term for restroom/bathroom or something?
  • Psionic Roshambo @ Psionic Roshambo:
    It is a perfume
    +1
  • K3Nv2 @ K3Nv2:
    Why do we have virgin islands if it's populated
    +1
  • BigOnYa @ BigOnYa:
    They should change the name to K3Nv2's Mom islands. (Or before he responds, My Wifeys Islands)
  • K3Nv2 @ K3Nv2:
    Nah me saying that's more predictable than you talking about my mom
    +1
  • K3Nv2 @ K3Nv2:
    Hence urewifes so predictable she'd buy every man on the virgin islands
  • K3Nv2 @ K3Nv2:
    Or they buy her
  • BigOnYa @ BigOnYa:
    true dat, on that note I'ma try go get some myself, peace!
  • K3Nv2 @ K3Nv2:
    Guess she doesn't need to be bought she has your money
    +1
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/-GDjDECLDG0?si=MNEjk8rkmioj1xE2