Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Universal Control: Advanced option available after patch but linked device not available #948

Open
x43x61x69 opened this issue Feb 7, 2022 · 30 comments
Labels
back-end Core functionality bug Something isn't working help wanted Extra attention is needed

Comments

@x43x61x69
Copy link

Machine Model

Other/Non-Applicable

Application Version

Latest Release

Application Variant

TUI (Text User Interface)

Have you verified whether this issue has been opened before? If no, your issue will be closed

true

Have you verified whether this issue is covered in our guide? ie. Troubleshooting and Legacy Acceleration pages

true

Have you already verified this is a patcher bug and not a macOS bug on our discord servers?

true

Is this issue with a 3rd party application?

false

What versions of macOS are you seeing the problem on?

macOS 12, Monterey

Where does this issue happen?

Within macOS (After Logging in)

What is the Issue?

  • OCLP 0.4.2 description said it should unlock Universal Control on Monterey native Macs.
  • I installed OCLP on MacBookAir7,2, which did enabled the "Advanced" option in Display.
  • However, there's no "linked" devices listed on the MacBook Air nor on the M1 Max MacBook Pro nearby. Mirrored display (via AirPlay works, tho).

What steps have you taken to troubleshoot this?

No response

@x43x61x69 x43x61x69 added the bug Something isn't working label Feb 7, 2022
@Ausdauersportler
Copy link
Collaborator

AFAIK you need 12.3beta to use UC.

@x43x61x69
Copy link
Author

x43x61x69 commented Feb 7, 2022

AFAIK you need 12.3beta to use UC.

Both device were on 12.3 beta. I did test UC with the same M1 Max MacBook Pro with another Mac Pro and an iPad and it worked.

@Z1mDMan
Copy link

Z1mDMan commented Feb 7, 2022

I have the same issue with MacBookAir7,1 12.3 beta, 0.4.2

@khronokernel
Copy link
Member

Have you verified this with iPadOS devices? Even on non-blacklisted models, no models appear for myself . Looking online, others have reported great success between iPad and Mac, but Mac to Mac seems hit or miss for others as well

@Z1mDMan
Copy link

Z1mDMan commented Feb 7, 2022

I have luck with MacBookAir5,1 Mac Mini 6,1 iPad Pro 2018 11” model. I have also been able to use M1 MacBookAir with all these. Only one I’m having issues with (besides an old white MacBook 5,2 and not expecting that one to work) is the MacBookAir 7,1
All the ones that work, work between all the others. I can use trackpad/mouse/keyboard on any of them to move between the others.

@loongchh
Copy link

loongchh commented Feb 8, 2022

Same issue with a MacBookPro11,4 and an iPad11,3 (iPad Air 3rd gen). Both on the latest betas (macOS 12.3 & iPadOS 15.4) with OCLP 0.4.2 installed.

@410-dev
Copy link

410-dev commented Feb 9, 2022

Same issue here. OCLP 0.4.2 installed to MacBookPro12,1 (13 inch MacBook Pro 2015), but does not link to neither iPad Pro 11 inch 2nd gen nor MacBookPro16,1 (16 inch MacBook Pro 2019). All system runs macOS 12.3 beta and iPadOS 15.4 beta.

@steverae68
Copy link

steverae68 commented Feb 9, 2022 via email

@steverice
Copy link

FWIW this is working for me between a MacBookPro11,3 (Haswell) and an iPad Pro 5th generation.

@steverae68
Copy link

steverae68 commented Feb 9, 2022 via email

@khronokernel
Copy link
Member

Verify this build:

Note you will need to be signed into Github to download, otherwise 404

@steverae68
Copy link

steverae68 commented Feb 9, 2022 via email

@khronokernel
Copy link
Member

Quite a shame, I can't use Universal Control at all even on my MacBookPro18,3 and an iPad6,7 so debugging is extra difficult. Hopefully Beta 2 will resolve that.

I suppose you can monitor console to figure out why it's having troubles. Perhaps it'll give some insight as to who's throwing a tantrum. Additionally you can see if it's patching the binary correctly:

  • Grab Hex Fiend
  • Open /System/Library/CoreServices/UniversalControl.app/Contents/MacOS/UniversalControl and see if NacBoookPro is there
    • Note there's 2 slices in the binary, first reference of the models will be the Intel slice and what gets loaded into cs_validate_page

Note that UniversalControl.app is only launched when signed into iCloud, and we do our patching in memory on launch:
Screen Shot 2022-02-09 at 11 49 14 AM

@khronokernel khronokernel added back-end Core functionality help wanted Extra attention is needed labels Feb 9, 2022
@steverae68
Copy link

steverae68 commented Feb 9, 2022 via email

@loongchh
Copy link

loongchh commented Feb 9, 2022

Quite a shame, I can't use Universal Control at all even on my MacBookPro18,3 and an iPad6,7 so debugging is extra difficult. Hopefully Beta 2 will resolve that.

I suppose you can monitor console to figure out why it's having troubles. Perhaps it'll give some insight as to who's throwing a tantrum. Additionally you can see if it's patching the binary correctly:

  • Grab Hex Fiend

  • Open /System/Library/CoreServices/UniversalControl.app/Contents/MacOS/UniversalControl and see if NacBoookPro is there

    • Note there's 2 slices in the binary, first reference of the models will be the Intel slice and what gets loaded into cs_validate_page

Note that UniversalControl.app is only launched when signed into iCloud, and we do our patching in memory on launch: !

Hi, thanks for helping. Re: 2, I did see the NacBooks when inspecting the binary (on MacBookPro11,4).

Screen Shot 2022-02-10 at 7 54 05

@steverae68
Copy link

I wonder if its possible to change the reference to MacBookPro12,1 in this file to something else to make the OS not block it.... ? although I believe this is what the patcher does ... obviously there must be other constraints that cause this not to work ...

@khronokernel
Copy link
Member

As a "alternative" solution, you can spoof a different Mac:

  • Level: Moderate
  • Model: Macmin8,1 (or any other model that's not blacklisted)
  • Allow Native Spoofs: True

Only warning is that iCloud will require you to resign in as it will think you have a different Mac (even though serials remain untouched).

I would only recommend this if you must have Universal Control. You have a native model, generally best to play to its strengths while Apple keeps them alive


Screen Shot 2022-02-09 at 5 03 43 PM

@410-dev
Copy link

410-dev commented Feb 10, 2022

This method works very well after two restarts.

I used this method on my MacBookPro12,1 to link with MacBookPro16,1.

I used OC SMBIOS Setting to set the model to MacBookPro16,1.

After setting, building, and installing it, I restarted my device.
I logged in again and synced with Apple ID, but the linking option does not appear.
I restarted my device again, and it fully works.

Thank you for the alternative solution!

@x43x61x69
Copy link
Author

As a "alternative" solution, you can spoof a different Mac:

  • Level: Moderate
  • Model: Macmin8,1 (or any other model that's not blacklisted)
  • Allow Native Spoofs: True

Only warning is that iCloud will require you to resign in as it will think you have a different Mac (even though serials remain untouched).

I would only recommend this if you must have Universal Control. You have a native model, generally best to play to its strengths while Apple keeps them alive

Screen Shot 2022-02-09 at 5 03 43 PM

It might be able to make it work, but could also break other things and make the system even more unstable.

But if this can indeed fix the problem, that means something were not patched to make it fully working.

@Z1mDMan
Copy link

Z1mDMan commented Feb 10, 2022

Verify this build:

Note you will need to be signed into Github to download, otherwise 404

Tried this build and no change. I will try the alternative method mentioned on my MBA7,1 and report back.

@Z1mDMan
Copy link

Z1mDMan commented Feb 10, 2022

Tried the alternative method using MacBookAir8,1 for my MacBookAir7,1 and even after logging into iCloud and rebooting I still don't have the option to use UC. I will try another reboot, maybe it takes a few?

@Z1mDMan
Copy link

Z1mDMan commented Feb 10, 2022

I tried the alternative method spoofing MBA8,1 and MacMini8,1 on the MBA7,1 and I still don't have the UC option from other Macs (that work with other Macs and iPad Pro) I have everything showing in Display settings that I would expect to see however it's not talking.

@khronokernel
Copy link
Member

So after staring at console stream for too many hours, found the culprit:

Screen Shot 2022-02-10 at 9 48 57 AM

Both sides check for the model identifier, thus meaning we need to patch the outgoing model. Realistically this is very difficult to do with simple bin-patching in userspace, and can only be resolved efficiently via spoofing. I'll research more however doubt there will be a clean solution for this outside of OS wide model override from OpenCore

@steverae68
Copy link

steverae68 commented Feb 10, 2022 via email

@khronokernel
Copy link
Member

However, the system info still shows as 12,1 MacBook Pro, not 13,1 I choose in the OCLP patcher……

Read the instructions provided carefully. You must do moderate spoof and have "Allow native spoofs" toggled

@Z1mDMan
Copy link

Z1mDMan commented Feb 10, 2022

So after staring at console stream for too many hours, found the culprit:

Screen Shot 2022-02-10 at 9 48 57 AM

Both sides check for the model identifier, thus meaning we need to patch the outgoing model. Realistically this is very difficult to do with simple bin-patching in userspace, and can only be resolved efficiently via spoofing. I'll research more however doubt there will be a clean solution for this outside of OS wide model override from OpenCore

Thank you khronokernel! This at least gives us a smoking gun and possible fix in the future. Appreciate all the hard work you devs do! Willing to test things whenever for you.

@khronokernel
Copy link
Member

Appreciate all the hard work you devs do! Willing to test things whenever for you.

Thank you! Your words are very much appreciated, feel like I sink too much time into this project haha. Though will still research more and comment here whether there's any new developments.

One alternative solution to this is to just patch UniversalControl on all machines using it, however this limits Universal Control solely to Intel Macs as that's all OpenCore/FeatureUnlock can support. If there's interest for this, I can implement though I assume for the majority the appeal is the iPad to Mac connection.

@Z1mDMan
Copy link

Z1mDMan commented Feb 10, 2022

I would be interested in at least a toggle for this. Thanks again!

khronokernel added a commit to acidanthera/FeatureUnlock that referenced this issue Feb 10, 2022
@steverae68
Copy link

steverae68 commented Feb 10, 2022 via email

@kaii-zen
Copy link

Spoofing my MacBookPro11,4 as MacBookPro13,1 resulted in UC working but killed HDMI output both directly from MacBook as well as through a Belkin Thunderbolt2 breakout box that has an HDMI output. Spoofing as MacBookPro14,1 resulted in UC and HDMI working but only when plugged directly to the MacBook. None of the breakout box's outputs seem to be working (checked USB, HDMI and Ethernet). Led me to believe that the TB2 output was disabled. However, plugging a firewire audio interface with an Apple TB to FW adapter did work fine so idk 🤷‍♀️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
back-end Core functionality bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

9 participants