italomandara / CXPatcher

A patcher to upgrade Crossover dependencies and improve compatibility
GNU General Public License v3.0
831 stars 22 forks source link

Crossover doesn't read external ssd after patch #146

Open jtaii opened 8 months ago

jtaii commented 8 months ago

Crossover doesn't read any content in my SSD and can't access my main steamlibrary after patching it. I tried giving both steam and crossover full disk access in the settings but the SSD still wont show its contents.

Gcenx commented 8 months ago

Please reference the image found in the following release https://github.com/italomandara/CXPatcher/releases/tag/V0.4.1

QYQSDTC commented 8 months ago

Similar problem with V0.4.2, when I run with options --env WINEMSYNC=1 MTL_HUD_ENABLED=1, it can not load my external drive.

italomandara commented 8 months ago

it's a known issue to give the permissions to access the drive try "run command..." and then select any executable of any game in your external drive. you just need to do it once.

MysticalOS commented 8 months ago

Is this why it can't find bottles on external volume after patching? Explains my original issue i closed and new issue i was about to open (i tried the new user enterable custom bottle location and that doesn't work either, if bottle is on external volume) this sadly still makes the patcher kinda useless even with specifying custom bottle location. I can't "run command" cause I have no bottles on anything but external volumes.

When did this break though. like i said patched crossover used to access external volume bottles just fine. on Sonoma. 🤷‍♂️

EDIT: Confirmed that the patcher did correctly write [EnvironmentVariables] "CX_BOTTLE_PATH"="/Volumes/Winedows/CrossoverPatched"

where folder is, but it doesn't load it at all on launch.

MysticalOS commented 8 months ago

I've tried granting full disk access. I've tried granting developer mode (god access basically). once crossover is patched it's like it's utterly forbidden from seeing an external disk. I even tried creating a symbolic link pointing to external disk that wasn't on an external disk, and macOS still forbid the patched app from seeing it. it's still strange cause I can take every single lib, framework, inf and manually copying it into app and it doesn't upset macOS security policy, what else does patcher do besides replace files? does it have to tamper the actual executable to patch out auto update?

italomandara commented 8 months ago

I'm able to access and use bottles on my external volume, so i can't replicate the issue, have you checked the permissions? What is your volume's file system?

italomandara commented 8 months ago

try this: in your Crossover.app bundle go to Contents rename _CodeSignature_disabled -> _CodeSignature CodeResources_disabled -> CodeResources close and open again the patched crossover

MysticalOS commented 8 months ago

Sorry I didn't get back, I'll try in a few days. gonna be slammed for a few and not have time to play with retesting it

Ralsei34 commented 8 months ago

try this: in your Crossover.app bundle go to Contents rename _CodeSignature_disabled -> _CodeSignature CodeResources_disabled -> CodeResources close and open again the patched crossover

After that crossover won't launch

italomandara commented 8 months ago

try this: in your Crossover.app bundle go to Contents rename _CodeSignature_disabled -> _CodeSignature CodeResources_disabled -> CodeResources close and open again the patched crossover

After that crossover won't launch

Right it seems like once you disable it it can't be re-enabled I'll make an option to not disable that in the patcher

italomandara commented 8 months ago

I think when we remove the code signature, the app loses the entitlements, so you either re-allow the app to access the volumes by running any game in that volume once using run command... or we give the possibility to not disable the signature which is being worked here: https://github.com/italomandara/CXPatcher/pull/147/files

MysticalOS commented 8 months ago

Toggled the signature option off. still immediately loses access to external volumes and bottles on patching with no way to get it back. 🤷‍♂️

I don't know what's going on cause I can literally replace every file patcher does manually and this doesn't happen. every lib every config everything manually swapped and it's fine.

EDIT, fixed it I also had to delete the plist change too and now it's got it's permissions back. so it seems to be an issue with both changing signature AND plist. so I guess fixing it would be that if you toggle off "remove signature" it should also not change plist

italomandara commented 8 months ago

The plist info change is to block auto update so it isn't relevant to the signature. Anyone who had permissions issues was able to fix it by running an exe via the menu (me included). Not sure why this is still happening to you.

MysticalOS commented 8 months ago

My problem is that to run an exe, you need working bottles, all of mine are on external volume, so crossover is just in a unusable state without being able to request new permissions, but undoing plist change on top of signature change being off did let existing permissions seem to keep working, so I have a workable solution now at least :D

italomandara commented 8 months ago

My problem is that to run an exe, you need working bottles, all of mine are on external volume, so crossover is just in a unusable state without being able to request new permissions, but undoing plist change on top of signature change being off did let existing permissions seem to keep working, so I have a workable solution now at least :D

I made that an option will be added in the next release

italomandara commented 8 months ago

Another workaround, try this: -don't use the custom bottle path in your external drive use the standard separate path. -create an empty bottle. -in the folder of the external drive you want your bottles stored bottle put any .exe file that can be run via crossover. -open crossover right click the empty boottle and click 'run command' and run that exe in your external drive. -it should ask for permissions, allow everything. -remove the empty bottle -close crossover -repatch with your custom path in the external folder

In theory you only need to do this once.

italomandara commented 7 months ago

The solution is unchecking this option and repatch: Screenshot 2023-11-17 at 10 37 58

italomandara commented 1 month ago

@MysticalOS could to try this Pre-Release to see if it fixes the External HD path issue please?

MysticalOS commented 1 month ago

If it's regarding https://github.com/italomandara/CXPatcher/commit/ceba6eda07107cb23978ef5c7aae5fa6a69d9ad7

it wouldn't work on my system. codesign has been busted for ages and i've no idea why. when it runs it complains no valid codesigning authorities even though I have several valid developer ones. xcode works fine but the codesign sub process is just fubared

I'm also using the wine 9.6 based preview fully to help get that early feedback in :D

italomandara commented 1 month ago

If it's regarding [ceba6ed]

correct

Write commented 1 month ago

Hello, I just googled the issue and stumbled upon this, I can confirm latest pre-release does allow me to use my external disk again. Thanks a lot.