Skip to content

1nchen/XcodeLLMEligible

 
 

Repository files navigation

Darwin Eligibility Override

This project aims to achieve permanent use of Xcode LLM/Apple Intelligence on any Mac without disabling System Integrity Protection (SIP) or only disabling it once.

Note

Xcode LLM is only supported on macOS 15.0 Beta and later.

Apple Intelligence is only supported on macOS 15.1 Beta and later.

Screenshot

Notes

this project is for learning and research purposes only.

If you choose to use this project, you do so at your own risk and are responsible for compliance with any applicable laws.

The author of this project is not responsible for any consequences that may arise from your use of this project.

Usage

Method 1: util tool (Recommended)

Note

It works on macOS 15 Beta 1 ~ Beta 6 and macOS 15.1 Beta 1 ~ Beta 2.

There is a known issue on macOS 15 Beta 7 #22. It required you keeping SIP disabled to work.

Need one time SIP disable + "amfi_get_out_of_my_way=1" set boot-args in during the script.

Tip

If you have issue on how to disable SIP or set boot-args, see Manual Execution section for more detail.

# Force XcodeLLM to be eligiable
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- install util xcodellm
# Force Apple Intelligence to be eligiable
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- install util greymatter
# Or you can force all to be eligiable
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- install util all

Method 2: override file

Note

It works on macOS 15 Beta 1 ~ Beta 6 and macOS 15.1 Beta 1 ~ Beta 2.

There is a known issue on macOS 15 Beta 7 #22. It required you keeping SIP disabled to work.

Should work on macOS 15.x release as long as Apple does not remove or change the override feature of eligibility service.

No SIP disabled needed in total.

# Override XcodeLLM only
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- install override xcodellm
# Override Apple Intelligence only
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- install override greymatter
# Override all elibility
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- install override all

Note

The override file method is mutually exclusive. If you want to override both, please use "all" as key / the 3rd command.

Uninstall

Method 1: util tool

# For XcodeLLM:
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- uninstall util xcodellm
# For Apple Intelligence
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- uninstall util greymatter 

Method 2: override file

# For XcodeLLM:
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- uninstall override xcodellm
# For Apple Intelligence
curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- uninstall override greymatter 

Manual Execution

Method 1: util tool (Recommended)

  1. Disable SIP in recovery mode with csrutil disable
  2. Add boot argument by sudo nvram boot-args="amfi_get_out_of_my_way=1" and reboot
  3. Download eligibility_util from the release page and execute the following command
# For XcodeLLM:
./eligibility_util forceDomainAnswer --domain-name OS_ELIGIBILITY_DOMAIN_XCODE_LLM --answer 4
# For Apple Intelligence
./eligibility_util forceDomainAnswer --domain-name OS_ELIGIBILITY_DOMAIN_GREYMATTER --answer 4
  1. Enable SIP in recovery mode with csrutil enable and reboot.
  2. Remove boot argument by sudo nvram -d boot-args

Read Disabling and Enabling System Integrity Protection if you are unfamiliar with SIP operation.

You can only set boot-args in recovery mode or normal mode with SIP disabled.

After setting boot-args, remember to reboot to make the change take effect.

Tip

For more technical detail, see Kyle-Ye/eligibility

Method 2: override file

No SIP disabled needed in total.

  1. Download the corresponding *.eligibility_overrides.data file from the release page and rename it to eligibility_overrides.data

For Xcode LLM, download xcodellm.eligibility_overrides.data

For Apple Intelligence, download greymatter.eligibility_overrides.data

  1. Find the correct container uuid for eligibilityd under /private/var/root/Library/Daemon\ Containers

List all container uuid by the following command:

sudo ls /private/var/root/Library/Daemon\ Containers
  1. Move downloaded file in the first step to the Data/Library/Caches/NeverRestore/ folder of the corresponding Deamon container. If you are not sure which one is the correct container directory for eligibilityd, you can try it one by one or add the downloaded files to all Deamon containers.
sudo mkdir /private/var/root/Library/Daemon\ Containers/<UUID>/Data/Library/Caches/NeverRestore
sudo cp eligibility_overrides.data /private/var/root/Library/Daemon\ Containers/<UUID>/Data/Library/Caches/NeverRestore/
  1. Relaunch the eligibilityd service
sudo pkill -9 eligibilityd
sudo launchctl kickstart -k system/com.apple.eligibilityd

Trouble Shooting

Tip

The difference of eligibility_util and eligibility_util_sip is that the former is for SIP disabled environment and the latter is for SIP enabled environment.

Issue of Method 1: util tool

curl -L https://raw.githubusercontent.com/Kyle-Ye/XcodeLLMEligible/release/0.2/scripts/override.sh | bash -s -- doctor

Issue of Method 2: override file

If you are unable to access the Daemon Container related folders, please check if the terminal app you are using has full disk access permission.

Path: Settings.app > Security & Privacy > Full Disk Access -> Add your terminal app to the list and enable it.

Other Xcode LLM related issue

  1. Confirom the override is working and you have the correct answer.
./eligibility_util_sip getDomainAnswer --domain-name OS_ELIGIBILITY_DOMAIN_XCODE_LLM
  1. Reenable SIP and then open Xcode to download Model.

See detail for #4

Other Apple Intelligence related issue

Important

Suggestions:

  1. Log in with a US Apple ID
  2. Set Region to United States and English as the primary language
  3. Set English (United States) as your Siri language
  1. Confirom the override is working and you have the correct answer.
./eligibility_util_sip getDomainAnswer --domain-name OS_ELIGIBILITY_DOMAIN_GREYMATTER
  1. Go to Setting.app and choose "Apple Intelligence & Siri", click "Join Apple Intelligence Waitlist" button.

Step2

  1. You'll see "Joined Waitlist" label and wait for a while.

Step3

  1. You'll see "Preparing" label and wait for a while.

Step4

  1. You'll receive "Apple Intelligence is Here" notification.

Step5

  1. You can now turn on Apple Intelligence to use it.

Step6

Related links

Star History

Star History Chart

License

MIT. See LICENSE file.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%