Compare commits
357 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8683e4e27 | ||
|
|
7bb4aea2c0 | ||
|
|
30375b869b | ||
|
|
5c207e0a2b | ||
|
|
92324ede72 | ||
|
|
158dac6ab4 | ||
|
|
dfc4a7b2fc | ||
|
|
b205f7943a | ||
|
|
1163aaa4bd | ||
|
|
3dcf20f0c2 | ||
|
|
8502ec5f78 | ||
|
|
54616ea385 | ||
|
|
d1f9170390 | ||
|
|
d4d16c3e56 | ||
|
|
751bdceafd | ||
|
|
80dcea163f | ||
|
|
c2eef22f2d | ||
|
|
299fed997d | ||
|
|
711c512258 | ||
|
|
07b9a1a2c6 | ||
|
|
c78506501f | ||
|
|
5612837492 | ||
|
|
80644bfbd4 | ||
|
|
b924e427e2 | ||
|
|
0cbd1422fe | ||
|
|
461f9ddb9b | ||
|
|
b2e5037c2e | ||
|
|
be3e7da342 | ||
|
|
b4830dfd0b | ||
|
|
b8bdab3576 | ||
|
|
a56f3af99c | ||
|
|
0e969ee6cd | ||
|
|
0bd3ce595d | ||
|
|
ea05912b6b | ||
|
|
a756058006 | ||
|
|
bd3985ce6c | ||
|
|
1e80691c67 | ||
|
|
023fec03aa | ||
|
|
64b9e7ada6 | ||
|
|
efda41fb3a | ||
|
|
77fccad046 | ||
|
|
cc914aadc1 | ||
|
|
5ea1b5075b | ||
|
|
41295e4cb2 | ||
|
|
7d5eea977d | ||
|
|
65fc232a25 | ||
|
|
43a708d3ae | ||
|
|
c8bb3a3e93 | ||
|
|
7e236f06e5 | ||
|
|
cc1b8781ab | ||
|
|
6553562e53 | ||
|
|
31812f0485 | ||
|
|
7ecf9ff151 | ||
|
|
54b4c27d4a | ||
|
|
7ed691993c | ||
|
|
14de472b6a | ||
|
|
fd67032afe | ||
|
|
cb808dc7ca | ||
|
|
3a65f005fe | ||
|
|
a0978dfd20 | ||
|
|
e701b5b851 | ||
|
|
4cc2dab964 | ||
|
|
ca44ba775a | ||
|
|
b2bb32f988 | ||
|
|
0956ad0d3d | ||
|
|
bf7b63c1be | ||
|
|
c34781bb3c | ||
|
|
e962f2bb8f | ||
|
|
a381f1d3bb | ||
|
|
4b6125d583 | ||
|
|
dfa396f385 | ||
|
|
3fc7424086 | ||
|
|
c37e035b6d | ||
|
|
0b21472ccb | ||
|
|
f66f16441b | ||
|
|
f512b7336a | ||
|
|
e35b115b81 | ||
|
|
dfe64e95b2 | ||
|
|
e626c79c81 | ||
|
|
98b08432fa | ||
|
|
7a7f1ce090 | ||
|
|
78f191dd5b | ||
|
|
e9e72d9641 | ||
|
|
a2500e50c2 | ||
|
|
6d917fbc29 | ||
|
|
c9cb6db0e4 | ||
|
|
0d72f46cb4 | ||
|
|
3884ca77d5 | ||
|
|
66a2d67ed9 | ||
|
|
5ed5f3aa15 | ||
|
|
86af9e96f4 | ||
|
|
5b97685274 | ||
|
|
3c929edd4b | ||
|
|
dfec8f2d72 | ||
|
|
5ff1110e90 | ||
|
|
9b5d25b2be | ||
|
|
0e25f2f3cf | ||
|
|
ee0b04f05b | ||
|
|
3c08127013 | ||
|
|
a17ca2c330 | ||
|
|
0cb2c84968 | ||
|
|
aa8643f247 | ||
|
|
554925d311 | ||
|
|
fbd7150c00 | ||
|
|
8233e15e42 | ||
|
|
7c21628ea2 | ||
|
|
118853cd46 | ||
|
|
7e29758fea | ||
|
|
a8f56c1ec8 | ||
|
|
79cd9c76f8 | ||
|
|
fc7656bb25 | ||
|
|
e3ec7f7137 | ||
|
|
1f2ee627f4 | ||
|
|
91f5d9778c | ||
|
|
fbcf958ead | ||
|
|
0d402c4dba | ||
|
|
b51beb8707 | ||
|
|
90bc9d81bf | ||
|
|
5eaa1d0317 | ||
|
|
6b81af3f66 | ||
|
|
04d6aada33 | ||
|
|
acd84bc5c2 | ||
|
|
37769e052a | ||
|
|
d94ffc1472 | ||
|
|
5c9a0c74d4 | ||
|
|
6e20a51d8f | ||
|
|
e0284bffe6 | ||
|
|
2b6d318cfd | ||
|
|
faadb3f740 | ||
|
|
d6a82f08a0 | ||
|
|
3b22a593dd | ||
|
|
56501818a9 | ||
|
|
52225e15b2 | ||
|
|
f75f1aa87a | ||
|
|
e30f8be03d | ||
|
|
fd2662717c | ||
|
|
83cffeb1e5 | ||
|
|
ca734ff055 | ||
|
|
67ddb619c7 | ||
|
|
36b584dc41 | ||
|
|
bf86619e82 | ||
|
|
4acf8b1a67 | ||
|
|
5298c4ecb8 | ||
|
|
be5f9114af | ||
|
|
b1df91cac3 | ||
|
|
60221edb07 | ||
|
|
779d348853 | ||
|
|
fcc0516b6a | ||
|
|
f840e30f36 | ||
|
|
24e645fb07 | ||
|
|
a519d66e90 | ||
|
|
5af6c4ac54 | ||
|
|
57eb61cb9a | ||
|
|
b2b9cc7686 | ||
|
|
5d07311892 | ||
|
|
889b5f3c71 | ||
|
|
eef336ab62 | ||
|
|
c37aa306fd | ||
|
|
48380afdd5 | ||
|
|
1486859d79 | ||
|
|
9a4085ca50 | ||
|
|
936febe2e4 | ||
|
|
3ad2c538be | ||
|
|
f705affcae | ||
|
|
2546e9167f | ||
|
|
f84828483b | ||
|
|
4bfe8b1038 | ||
|
|
89765a6c5f | ||
|
|
4c043ab6dc | ||
|
|
8efc702077 | ||
|
|
90cc87702d | ||
|
|
b27007d55c | ||
|
|
0368ab00b7 | ||
|
|
606dc03b2b | ||
|
|
1799691348 | ||
|
|
fda3a1724d | ||
|
|
b320980aef | ||
|
|
874a0557e3 | ||
|
|
8db9cab06c | ||
|
|
d73f8979eb | ||
|
|
87bdc65e6c | ||
|
|
e325f6a25b | ||
|
|
21b2f86654 | ||
|
|
afb91b8b4f | ||
|
|
2ace124880 | ||
|
|
6b92640b64 | ||
|
|
6689817872 | ||
|
|
15bcfa7b79 | ||
|
|
a5afbc6420 | ||
|
|
da32e3bfcf | ||
|
|
822464a0bf | ||
|
|
b42169f980 | ||
|
|
dd17f5da29 | ||
|
|
9f3d3453df | ||
|
|
95521e2225 | ||
|
|
924cac7577 | ||
|
|
c83e926e7d | ||
|
|
4929715830 | ||
|
|
8fc1bf9572 | ||
|
|
875e77b0d1 | ||
|
|
31bfdc755c | ||
|
|
4424209d3e | ||
|
|
75ca458747 | ||
|
|
7e08d3afc1 | ||
|
|
24a0817890 | ||
|
|
0072cd2988 | ||
|
|
5696dcd934 | ||
|
|
3ac7964fb0 | ||
|
|
dc4238fb09 | ||
|
|
d68d04fd8c | ||
|
|
08852b8f4c | ||
|
|
7463d56ffc | ||
|
|
377b0dd797 | ||
|
|
ec683f21a4 | ||
|
|
dabe66e052 | ||
|
|
91f3b94992 | ||
|
|
699ccd50c5 | ||
|
|
491b5fe078 | ||
|
|
5db6be9828 | ||
|
|
e3871d5c35 | ||
|
|
11a427ef01 | ||
|
|
5c54276a85 | ||
|
|
7f9311c175 | ||
|
|
e4682f6307 | ||
|
|
bc88ed27d1 | ||
|
|
113156c94c | ||
|
|
99879bdcfc | ||
|
|
e1cb78fa0b | ||
|
|
6109d8c92f | ||
|
|
b473d189dd | ||
|
|
3b89fc2950 | ||
|
|
707cc5c45f | ||
|
|
80e5c38ee7 | ||
|
|
1b4fd73673 | ||
|
|
aec3bf4d08 | ||
|
|
1b76b68a1b | ||
|
|
1190e169cb | ||
|
|
ca2fd695b3 | ||
|
|
9669196a07 | ||
|
|
88696c7047 | ||
|
|
8706959f65 | ||
|
|
a63d1953b4 | ||
|
|
6d129505ea | ||
|
|
f12028aa84 | ||
|
|
cf2a58e6bf | ||
|
|
6bc36c737c | ||
|
|
5f07e9ffd9 | ||
|
|
9f4d96d446 | ||
|
|
0ff6a18e83 | ||
|
|
a153b500b9 | ||
|
|
db617db1fd | ||
|
|
69e50aeb6d | ||
|
|
eaa686e045 | ||
|
|
6381910639 | ||
|
|
68d25d30b4 | ||
|
|
16a666e836 | ||
|
|
5e91ea181b | ||
|
|
f4e487c648 | ||
|
|
d1fbeba50f | ||
|
|
8c138658e2 | ||
|
|
729feba2ba | ||
|
|
978d2fda26 | ||
|
|
5e0354531a | ||
|
|
19ed65968d | ||
|
|
b3ad321922 | ||
|
|
5aee1aa60f | ||
|
|
ab22a225c4 | ||
|
|
a97a32730a | ||
|
|
ecde9ce077 | ||
|
|
c3dfc35692 | ||
|
|
cfa5175c72 | ||
|
|
e591f912b9 | ||
|
|
17c130112e | ||
|
|
0b3e45f7ba | ||
|
|
fa89865552 | ||
|
|
f58de2e000 | ||
|
|
f9c1d96aea | ||
|
|
30121d869f | ||
|
|
bb62eded77 | ||
|
|
dd43a0f243 | ||
|
|
ce6195529b | ||
|
|
f26e494450 | ||
|
|
1d336f9dcf | ||
|
|
82fe98a93c | ||
|
|
ee15a55876 | ||
|
|
47a2f71612 | ||
|
|
12e0ffff71 | ||
|
|
d7f3bb7d53 | ||
|
|
06e0e9a2c0 | ||
|
|
12998bc7e1 | ||
|
|
68d13775d9 | ||
|
|
86694de7df | ||
|
|
2d9403c524 | ||
|
|
664b7ddcd4 | ||
|
|
96fd706ead | ||
|
|
a0fa3a8808 | ||
|
|
27383b5bc7 | ||
|
|
4a8f61a01d | ||
|
|
75c6d10089 | ||
|
|
d62e6fda43 | ||
|
|
ee77f76c3a | ||
|
|
ae2a015c67 | ||
|
|
9cbfe5be6a | ||
|
|
3aa6e76c15 | ||
|
|
0484e8e18c | ||
|
|
5a4ee57034 | ||
|
|
e20bc2aca5 | ||
|
|
4d9325b238 | ||
|
|
84bd66fd92 | ||
|
|
b6297d6b63 | ||
|
|
f6ef7583ee | ||
|
|
e8d2b4f63e | ||
|
|
e210c0cbe6 | ||
|
|
9184302c18 | ||
|
|
fdfbbf6ae1 | ||
|
|
4f9abbaa49 | ||
|
|
f524c4441b | ||
|
|
5ca30e8ffe | ||
|
|
5742f745b1 | ||
|
|
91d20b2ad0 | ||
|
|
8272c092ad | ||
|
|
3790555dec | ||
|
|
3537725a13 | ||
|
|
991a089c45 | ||
|
|
8a6faa0836 | ||
|
|
8e1923ee21 | ||
|
|
a2f73a7bdc | ||
|
|
2164463e3b | ||
|
|
a980ba95f9 | ||
|
|
a70b18dd50 | ||
|
|
e33997320b | ||
|
|
b9a5ba7897 | ||
|
|
c0350e036e | ||
|
|
a5f489d48b | ||
|
|
426c572ce2 | ||
|
|
9f4ac80083 | ||
|
|
2e613600de | ||
|
|
3a28ba699f | ||
|
|
fe359f7ea6 | ||
|
|
0e07273c8e | ||
|
|
8b41cc6ff5 | ||
|
|
d563011c72 | ||
|
|
06824e6757 | ||
|
|
cc8bff1e1f | ||
|
|
6102bba478 | ||
|
|
dd40ddc452 | ||
|
|
8d02a7984d | ||
|
|
61281f597a | ||
|
|
11e795026b | ||
|
|
d58e0e3972 | ||
|
|
453703d402 | ||
|
|
dfb84ec72b | ||
|
|
8f98cac918 | ||
|
|
c053fb7244 | ||
|
|
0ccb2c74d2 | ||
|
|
2683b7a7f0 | ||
|
|
86dcf9fb5b |
2
.flake8
@@ -1,4 +1,4 @@
|
||||
[flake8]
|
||||
extend-ignore = E501, E203
|
||||
per-file-ignores =
|
||||
Resources/Constants.py:E704
|
||||
Resources/constants.py:E704
|
||||
36
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -1,6 +1,5 @@
|
||||
name: Bug Report
|
||||
description: File a bug report
|
||||
title: "[Bug]: "
|
||||
labels: [bug]
|
||||
body:
|
||||
- type: markdown
|
||||
@@ -101,6 +100,39 @@ body:
|
||||
- Other/Non-Applicable
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: verify-previously-reported
|
||||
attributes:
|
||||
label: Have you verified whether this issue has been opened before? If no, your issue will be closed
|
||||
description: If no, your issue will be closed. We'd appreciate it if users check with Github Issue's search before filing (https://github.com/dortania/OpenCore-Legacy-Patcher/issues?q=is%3Aissue)
|
||||
multiple: true
|
||||
options:
|
||||
- 'true'
|
||||
- 'false'
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: verify-guide
|
||||
attributes:
|
||||
label: Have you verified whether this issue is covered in our guide? ie. Troubleshooting and Legacy Acceleration pages
|
||||
description: If no, your issue will be closed. We'd appreciate it if users check with Guide before filing (https://dortania.github.io/OpenCore-Legacy-Patcher/)
|
||||
multiple: true
|
||||
options:
|
||||
- 'true'
|
||||
- 'false'
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: 3rd-party-application
|
||||
attributes:
|
||||
label: Is this issue with a 3rd party application?
|
||||
description: If yes, please move discussions onto forums. We're unable to dedicate time to working on every single application that may be broken in macOS. Only file issues if you have a fix you'd like to add to our project
|
||||
multiple: true
|
||||
options:
|
||||
- 'true'
|
||||
- 'false'
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os-version
|
||||
attributes:
|
||||
@@ -132,7 +164,7 @@ body:
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What is the Isssue?
|
||||
label: What is the Issue?
|
||||
description: Additionally, explain what you expected to happen?
|
||||
value: "Please clearly explain the issue"
|
||||
validations:
|
||||
|
||||
17
.github/workflows/build-app-offline.yml
vendored
@@ -10,17 +10,24 @@ jobs:
|
||||
build:
|
||||
name: Build Offline TUI
|
||||
runs-on: x86_64_mojave
|
||||
env:
|
||||
branch: ${{ github.event.ref }}
|
||||
commiturl: ${{ github.event.head_commit.url }}
|
||||
commitdate: ${{ github.event.head_commit.timestamp }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: python3 create-offline-build.py
|
||||
- run: python3 create_offline_build.py
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/pyinstaller OpenCore-Patcher.spec
|
||||
- run: python3 ./payloads/binary.py $branch $commiturl $commitdate
|
||||
- run: ./after_pyinstaller.sh
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||
- run: cd dist; zip -r ../OpenCore-Patcher-TUI-Offline.app.zip OpenCore-Patcher.app
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements ./payloads/entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||
- run: cd dist; zip -r ../OpenCore-Patcher-TUI.app.zip OpenCore-Patcher.app
|
||||
- run: ./../sign-tui.sh
|
||||
- run: mv ./OpenCore-Patcher-TUI.app.zip ./OpenCore-Patcher-TUI-Offline.app.zip
|
||||
- name: Upload App to Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: OpenCore-Patcher-TUI-Offline.app
|
||||
name: OpenCore-Patcher-TUI.app (Offline)
|
||||
path: OpenCore-Patcher-TUI-Offline.app.zip
|
||||
|
||||
- name: Upload to Release
|
||||
@@ -28,6 +35,6 @@ jobs:
|
||||
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: OpenCore-Patcher-TUI.app.zip
|
||||
file: OpenCore-Patcher-TUI-Offline.app.zip
|
||||
tag: ${{ github.ref }}
|
||||
file_glob: true
|
||||
|
||||
40
.github/workflows/build-app-wxpython-offline.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
name: CI - Build wxPython Offline
|
||||
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build wxPython Offline
|
||||
runs-on: x86_64_mojave
|
||||
env:
|
||||
branch: ${{ github.event.ref }}
|
||||
commiturl: ${{ github.event.head_commit.url }}
|
||||
commitdate: ${{ github.event.head_commit.timestamp }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: python3 create_offline_build.py
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/pyinstaller OpenCore-Patcher-GUI.spec
|
||||
- run: python3 ./payloads/binary.py $branch $commiturl $commitdate
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements ./payloads/entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||
- run: cd dist; zip -r ../OpenCore-Patcher-wxPython.app.zip OpenCore-Patcher.app
|
||||
- run: ./../sign-wxpython.sh
|
||||
- run: mv ./OpenCore-Patcher-wxPython.app.zip ./OpenCore-Patcher-GUI-Offline.app.zip
|
||||
- name: Upload App to Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: OpenCore-Patcher.app (GUI Offline)
|
||||
path: OpenCore-Patcher-GUI-Offline.app.zip
|
||||
- name: Upload to Release
|
||||
if: github.event_name == 'release'
|
||||
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: OpenCore-Patcher-GUI-Offline.app.zip
|
||||
tag: ${{ github.ref }}
|
||||
file_glob: true
|
||||
- name: Validate OpenCore
|
||||
run: ./dist/OpenCore-Patcher.app/Contents/MacOS/OpenCore-Patcher --validate
|
||||
37
.github/workflows/build-app-wxpython.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: CI - Build wxPython
|
||||
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build wxPython
|
||||
runs-on: x86_64_mojave
|
||||
env:
|
||||
branch: ${{ github.event.ref }}
|
||||
commiturl: ${{ github.event.head_commit.url }}
|
||||
commitdate: ${{ github.event.head_commit.timestamp }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/pyinstaller OpenCore-Patcher-GUI.spec
|
||||
- run: python3 ./payloads/binary.py $branch $commiturl $commitdate
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements ./payloads/entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||
- run: cd dist; zip -r ../OpenCore-Patcher-wxPython.app.zip OpenCore-Patcher.app
|
||||
- run: ./../sign-wxpython.sh
|
||||
- run: mv ./OpenCore-Patcher-wxPython.app.zip ./OpenCore-Patcher-GUI.app.zip
|
||||
- name: Upload App to Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: OpenCore-Patcher.app (GUI)
|
||||
path: OpenCore-Patcher-GUI.app.zip
|
||||
- name: Upload to Release
|
||||
if: github.event_name == 'release'
|
||||
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: OpenCore-Patcher-GUI.app.zip
|
||||
tag: ${{ github.ref }}
|
||||
file_glob: true
|
||||
8
.github/workflows/build-app.yml
vendored
@@ -10,12 +10,16 @@ jobs:
|
||||
build:
|
||||
name: Build TUI
|
||||
runs-on: x86_64_mojave
|
||||
env:
|
||||
branch: ${{ github.event.ref }}
|
||||
commiturl: ${{ github.event.head_commit.url }}
|
||||
commitdate: ${{ github.event.head_commit.timestamp }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/pyinstaller OpenCore-Patcher.spec
|
||||
- run: python3 ./payloads/binary.py $branch $commiturl $commitdate
|
||||
- run: ./after_pyinstaller.sh
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements ./payloads/entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||
- run: cd dist; zip -r ../OpenCore-Patcher-TUI.app.zip OpenCore-Patcher.app
|
||||
- run: ./../sign-tui.sh
|
||||
- name: Upload App to Artifacts
|
||||
|
||||
50
.github/workflows/build-gui.yml
vendored
@@ -1,50 +0,0 @@
|
||||
name: CI - Build GUI
|
||||
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build GUI
|
||||
runs-on: x86_64_mojave
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/pyinstaller OCLP-CLI.spec
|
||||
- run: cd dist; cp OCLP-CLI ../; cd ..
|
||||
- run: zip OCLP-CLI.zip OCLP-CLI
|
||||
- name: Download latest nightly OCLP-GUI
|
||||
run: curl -S -L https://nightly.link/dortania/OCLP-GUI/workflows/build-app/master/OpenCore-Patcher-GUI.app.zip --output ./OpenCore-Patcher-GUI.app.zip
|
||||
- run: unzip -o OpenCore-Patcher-GUI.app.zip
|
||||
- run: unzip OpenCore-Patcher-GUI.app.zip; rm OpenCore-Patcher-GUI.app.zip
|
||||
- name: Merge new GUI
|
||||
run: cp OCLP-CLI OpenCore\ Patcher.app/Contents/Resources/
|
||||
- run: python3 merge_gui.py
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements entitlements.plist -o runtime "OpenCore Patcher.app/Contents/Resources/OCLP-CLI"'
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements entitlements.plist -o runtime "OpenCore Patcher.app/Contents/Resources/oclpd"'
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements entitlements.plist -o runtime "OpenCore Patcher.app"'
|
||||
- run: ditto -c -k --sequesterRsrc --keepParent OpenCore\ Patcher.app OpenCore-Patcher-GUI.app.zip
|
||||
- run: ./../sign-gui.sh
|
||||
- name: Upload GUI to Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: OpenCore-Patcher-GUI.app
|
||||
path: OpenCore-Patcher-GUI.app.zip
|
||||
- name: Upload CLI to Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: OCLP-CLI
|
||||
path: OCLP-CLI.zip
|
||||
- name: Upload to Release
|
||||
if: github.event_name == 'release'
|
||||
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: OpenCore-Patcher-GUI.app.zip
|
||||
tag: ${{ github.ref }}
|
||||
file_glob: true
|
||||
- name: Validate OpenCore
|
||||
run: ./OCLP-CLI --validate
|
||||
7
.gitignore
vendored
@@ -2,6 +2,9 @@
|
||||
OCLP-GUI.command
|
||||
/payloads/Apple
|
||||
/payloads/*.zip
|
||||
/payloads/BuildManifest.plist
|
||||
/payloads/*.sucatalog
|
||||
/payloads/*.pkg
|
||||
/payloads/__MACOSX
|
||||
/App
|
||||
/Build-Folder
|
||||
@@ -16,4 +19,6 @@ __pycache__/
|
||||
/docs/.vuepress/.config.js.swp
|
||||
/docs/yarn.lock
|
||||
/docs/yarn-error.log
|
||||
/docs/node_modules/
|
||||
/docs/node_modules/
|
||||
/payloads/List.txt
|
||||
/payloads/Installer.sh
|
||||
|
||||
144
CHANGELOG.md
@@ -1,5 +1,148 @@
|
||||
# OpenCore Legacy Patcher changelog
|
||||
|
||||
## 0.4.1
|
||||
- Add XHCI Boot Support to pre-UEFI 2.0 Macs
|
||||
- Applicable to pre-Ivy Macs with upgraded USB 3.0 controllers, allows USB 3.0 boot
|
||||
- Credit to Jazzzny for research and testing
|
||||
- Drivers stripped from MacPro6,1 firmware
|
||||
- Resolve OCLP-Helper dyld crash
|
||||
|
||||
## 0.4.0
|
||||
- Resolves Install USB Creation using incorrect installer
|
||||
- Resolves `installer` failing to extract InstallAssistant in older OSes
|
||||
- Resolves certain Samsung NVMe drives appearing as external on Mac Pros
|
||||
- Add FeatureUnlock configurability
|
||||
- Add NVRAM WriteFlash configurability for degarded/fragile systems
|
||||
- Add `ThirdPartyDrives` quirk configurability
|
||||
- Resolve Skylight dylib injection issue
|
||||
- Increment Binaries:
|
||||
- OpenCore 0.7.7 - release
|
||||
- RestrictEvents 1.0.6 - release
|
||||
- FeatureUnlock 1.0.6 - rolling (1d0bc7b)
|
||||
- WhateverGreen 1.5.6 - release
|
||||
- Lilu 1.5.9 - release
|
||||
- gfxutil 1.8.2b - release
|
||||
- PatcherSupportPkg 0.2.9 - release
|
||||
- Re-add Content Caching support for VMM-spoofed systems
|
||||
- Add wxPython Based GUI
|
||||
- Superceeds Obj-C Based GUI
|
||||
- Both standard and offline builds provided
|
||||
- Allow optional spoofing on native Models
|
||||
- Recommended for systems that cannot update their firmware natively (ie. dead internal drive)
|
||||
- Add Dropbox fix for non-Metal on Monterey
|
||||
- Add App Update checks to GUI
|
||||
- If new version available, app will prompt on launch.
|
||||
- Configurable in Developer Settings
|
||||
- Resolved OS crashing on slow Macs with FeatureUnlock
|
||||
- Disable Windows GMUX support by default
|
||||
- Resolves brightness control issues on MacBookPro11,3 in Windows
|
||||
- Configurable in Developer Settings
|
||||
- Add Commit Data to Info.plist
|
||||
|
||||
## 0.3.3
|
||||
- Disable Asset Caching support with spoofless approach
|
||||
- Switch to Minimal or higher if required
|
||||
|
||||
## 0.3.2
|
||||
- Implement spoofless support (ie. no SMBIOS patching)
|
||||
- Requires macOS 11.3 or newer, for 11.2.3 and older use Minimal or higher spoofing
|
||||
- See additional notes before updating: [VMM usage notes](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/543#issuecomment-953441283)
|
||||
- Adjust SIP setting to better reflect current SIP usage
|
||||
- Resolve Monterey Bluetooth issues on user-upgraded BCM94331 BT4.0 modules
|
||||
- Fix iGPU-only iMac14,x display output when using Minimal/Moderate spoof
|
||||
- Increment Binaries:
|
||||
- OpenCore 0.7.6 - release
|
||||
- Lilu 1.5.8 - release
|
||||
- BrcmPatchRAM 2.6.1 - release
|
||||
- WhateverGreen 1.5.5 - release
|
||||
- PatcherSupportPkg 0.2.8 - release
|
||||
- FeatureUnlock 1.0.5 - rolling (9cf1e81)
|
||||
- Fix AirPlay to Mac on macOS 12.1
|
||||
- Add macOS InstallAssistant downloader to TUI
|
||||
- Resolve rare memory corruption due to FeatureUnlock
|
||||
- Raise SurPlus MaxKernel to 21.99.99
|
||||
- Fix Content Caching with spoofless usage
|
||||
- Allow disabling of ConnectDrivers
|
||||
- Aid with Hibernation on MacBookPro9,1/MacBookPro10,1
|
||||
- Add legacy iSight patch
|
||||
- Applicable for MacBook4,1/5,2
|
||||
- Affected Device IDs: 0x8300, 0x8501, 0x8503
|
||||
- Credit to parrotgeek1 for LegacyUSBVideoSupport
|
||||
- Fix Wifi Password prompt in Monterey on legacy wifi
|
||||
- Applicable for Atheros, BCM94328, BCM94322
|
||||
- Fix OpenCL Acceleration on Ivy Bridge and Kepler
|
||||
- Add Apple RAID Card support
|
||||
- Add Legacy GCN build support off model for MXM iMacs
|
||||
- Resolve 5k Display Output support on 5k iMacs and iMac Pro
|
||||
- Resolve NVMe Patching on 2016-2017 MacBook Pros
|
||||
- Enable Windows VMX support for Haswell and Broadwell MacBooks
|
||||
|
||||
## 0.3.1
|
||||
- Increment Binaries:
|
||||
- OpenCorePkg 0.7.4 release
|
||||
- RestrictEvents 1.0.5 release
|
||||
- WhateverGreen 1.5.4 release
|
||||
- Allow for setting custom SIP values via TUI
|
||||
- Drop `CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE` requirement for root patching
|
||||
- Lowers default SIP Disabled value to 0xA03
|
||||
- Update Legacy GMUX patchset to latest Sierra Secuirty Update
|
||||
- [Source](https://github.com/HackintoshHD/mbp5x-instant-gpu-switching)
|
||||
- Fix non-Metal acceleration crashing on 12.0.1
|
||||
- Yes Apple adding a notch broke our accel patches
|
||||
- Fix non-Metal Control Center crashing on 12.0 Beta 10+
|
||||
- Increment Binaries:
|
||||
- PatcherSupportPkg 0.1.12
|
||||
|
||||
## 0.3.0
|
||||
- Fix Nvidia Tesla Acceleration in Monterey Beta 7+
|
||||
- Add missing NVDAStartup
|
||||
- Allow configuring GMUX usage for Windows
|
||||
- Applicable for iGPU+dGPU MacBook Pros
|
||||
- Allow usage of legacy AppleHDA
|
||||
- Only use for machines that cannot achieve audio support normally
|
||||
- Main usage for Macs without boot screen output
|
||||
- Revert iMacPro1,1 SMBIOS usage on Mac Pros and Xserves
|
||||
- Resolves display output issues on Legacy GCN
|
||||
- Limit SIP bits flipped when disabled
|
||||
- 0xFEF -> 0xE03
|
||||
- `CSR_ALLOW_UNTRUSTED_KEXTS`
|
||||
- `CSR_ALLOW_UNRESTRICTED_FS`
|
||||
- `CSR_ALLOW_UNAPPROVED_KEXTS`
|
||||
- `CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE`
|
||||
- `CSR_ALLOW_UNAUTHENTICATED_ROOT`
|
||||
- Fix Kepler DisplayPort output
|
||||
- Apply `agdpmod=vit9696` patch
|
||||
- Add Syncretic's SurPlus 11.3+ Race Condition Patch
|
||||
- [Source](https://github.com/reenigneorcim/SurPlus)
|
||||
- Downgrade Nvidia Kepler Bundles to 11.0 Beta 3
|
||||
- Resolves crashing at high loads, credit to [Jackluke](https://github.com/jacklukem) for discovery
|
||||
- Add Legacy GMUX patchsets
|
||||
- Applicable for dual GPU MacBookPro5,x and demuxed MacBookPro8,x
|
||||
- Increment Binaries:
|
||||
- PatcherSupportPkg 0.1.7 release
|
||||
- RestrictEvents 1.0.5 rolling (2430ed0)
|
||||
- Limit MacBookPro6,2 G State
|
||||
- Works around crashing when switching GPUs
|
||||
- Fix OTA updates on T2 SMBIOS
|
||||
- Allow iMac13,x iGPU usage always
|
||||
- Due to both Kepler and Ivy needing root patching, no benefit to disable the iGPU
|
||||
- Refactor Hardware Model building
|
||||
- Resolve dGPU output on MacBookPro10,1
|
||||
- Add Panel ID `9cd6` for iMac11,3
|
||||
- Resolves Brightness control
|
||||
- Add AppleGVA patch set for HD3000 machines
|
||||
- Mainly applicable for iMac12,x and iGPU-only MacBooks
|
||||
- Add EFICheckDisabler
|
||||
- Based off stripped RestrictEvents.kext
|
||||
- Add SimpleMSR to disable missing battery throttling on Nehalem+ MacBooks
|
||||
- Implement software demux patch set for 2011 15/17" MacBook Pros
|
||||
- Alternative to hardware demux
|
||||
- Adds [AMDGPUWakeHandler](https://github.com/blackgate/AMDGPUWakeHandler)
|
||||
- Add Legacy GCN support for iMac11,x and iMac12,x with upgraded GPUs
|
||||
- Note: iMac12,x with legacy GCN will fail to wake
|
||||
- Fix Beta 10 Bluetooth
|
||||
- Works around new Broadcom/CSR vendor checks in `bluetoothd`
|
||||
|
||||
## 0.2.5
|
||||
|
||||
- Implement Latebloom configuration via command line tool
|
||||
@@ -34,6 +177,7 @@
|
||||
- System Preferences will not report settings however
|
||||
- Allow Root Volume Patched Systems to use FileVault 2
|
||||
- Requires macOS 11.3 (20E232) or newer
|
||||
- Unsupported on APFS ROM Patched Macs, revert to stock firmware to resolve
|
||||
- Add offline TUI build
|
||||
- Allows for root patching without network connection
|
||||
- Add Legacy Wireless support for Monterey
|
||||
|
||||
309
OCLP-CLI.command
@@ -1,309 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright (C) 2020-2021 Mykola Grymalyuk
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
import platform
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
|
||||
from Resources import Build, ModelArray, Constants, SysPatch, device_probe, Utilities, ModelExample
|
||||
|
||||
|
||||
class OpenCoreLegacyPatcher:
|
||||
def __init__(self):
|
||||
print("Loading...")
|
||||
Utilities.disable_cls()
|
||||
self.constants = Constants.Constants()
|
||||
self.constants.computer = device_probe.Computer.probe()
|
||||
self.computer = self.constants.computer
|
||||
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
||||
self.constants.detected_os_minor = int(platform.uname().release.partition(".")[2].partition(".")[0])
|
||||
detected_os_build: str = subprocess.run("sw_vers -buildVersion".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
self.constants.detected_os_build = detected_os_build
|
||||
|
||||
custom_cpu_model_value = Utilities.get_nvram("revcpuname", "4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102", decode=True)
|
||||
if custom_cpu_model_value is not None:
|
||||
# TODO: Fix to not use two separate variables
|
||||
self.constants.custom_cpu_model = 1
|
||||
self.constants.custom_cpu_model_value = custom_cpu_model_value.split("%00")[0]
|
||||
|
||||
if "-v" in (Utilities.get_nvram("boot-args") or ""):
|
||||
self.constants.verbose_debug = True
|
||||
|
||||
# Check if running in RecoveryOS
|
||||
self.constants.recovery_status = Utilities.check_recovery()
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
# Generic building args
|
||||
parser.add_argument("--build", help="Build OpenCore", action="store_true", required=False)
|
||||
parser.add_argument("--verbose", help="Enable verbose boot", action="store_true", required=False)
|
||||
parser.add_argument("--debug_oc", help="Enable OpenCore DEBUG", action="store_true", required=False)
|
||||
parser.add_argument("--debug_kext", help="Enable kext DEBUG", action="store_true", required=False)
|
||||
parser.add_argument("--hide_picker", help="Hide OpenCore picker", action="store_true", required=False)
|
||||
parser.add_argument("--disable_sip", help="Disable SIP", action="store_true", required=False)
|
||||
parser.add_argument("--disable_smb", help="Disable SecureBootModel", action="store_true", required=False)
|
||||
parser.add_argument("--vault", help="Enable OpenCore Vaulting", action="store_true", required=False)
|
||||
parser.add_argument("--support_all", help="Allow OpenCore on natively supported Models", action="store_true", required=False)
|
||||
parser.add_argument("--firewire", help="Enable FireWire Booting", action="store_true", required=False)
|
||||
parser.add_argument("--nvme", help="Enable NVMe Booting", action="store_true", required=False)
|
||||
parser.add_argument("--wlan", help="Enable Wake on WLAN support", action="store_true", required=False)
|
||||
# parser.add_argument("--disable_amfi", help="Disable AMFI", action="store_true", required=False)
|
||||
parser.add_argument("--moderate_smbios", help="Moderate SMBIOS Patching", action="store_true", required=False)
|
||||
parser.add_argument("--moj_cat_accel", help="Allow Root Patching on Mojave and Catalina", action="store_true", required=False)
|
||||
parser.add_argument("--disable_thunderbolt", help="Disable Thunderbolt on 2013-2014 MacBook Pros", action="store_true", required=False)
|
||||
|
||||
# Building args requiring value values (ie. --model iMac12,2)
|
||||
parser.add_argument("--model", action="store", help="Set custom model", required=False)
|
||||
parser.add_argument("--disk", action="store", help="Specifies disk to install to", required=False)
|
||||
parser.add_argument("--smbios_spoof", action="store", help="Set SMBIOS patching mode", required=False)
|
||||
parser.add_argument("--lb_delay", action="store", help="Set Latebloom delay in ms", required=False)
|
||||
parser.add_argument("--lb_range", action="store", help="Set Latebloom range in ms", required=False)
|
||||
parser.add_argument("--lb_debug", action="store", help="Set Latebloom debug", required=False)
|
||||
|
||||
# SysPatch args
|
||||
parser.add_argument("--patch_sys_vol", help="Patches root volume", action="store_true", required=False)
|
||||
parser.add_argument("--unpatch_sys_vol", help="Unpatches root volume, EXPERIMENTAL", action="store_true", required=False)
|
||||
# parser.add_argument("--patch_disk", action="store", help="Specifies disk to root patch", required=False)
|
||||
|
||||
parser.add_argument("--validate", help="Validate", action="store_true", required=False)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
self.constants.gui_mode = True
|
||||
self.constants.current_path = Path.cwd()
|
||||
|
||||
if getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS"):
|
||||
print("- Rerouting payloads location")
|
||||
self.constants.payload_path = sys._MEIPASS / Path("payloads")
|
||||
else:
|
||||
print("- Using default payloads location")
|
||||
|
||||
if args.disk:
|
||||
print(f"- Install Disk set: {args.disk}")
|
||||
self.constants.disk = args.disk
|
||||
if args.validate:
|
||||
self.validate()
|
||||
# if args.patch_disk:
|
||||
# print(f"- Patch Disk set: {args.patch_disk}")
|
||||
# self.constants.patch_disk = args.patch_disk
|
||||
if args.verbose:
|
||||
print("- Set verbose configuration")
|
||||
self.constants.verbose_debug = True
|
||||
if args.debug_oc:
|
||||
print("- Set OpenCore DEBUG configuration")
|
||||
self.constants.opencore_debug = True
|
||||
self.constants.opencore_build = "DEBUG"
|
||||
if args.debug_kext:
|
||||
print("- Set kext DEBUG configuration")
|
||||
self.constants.kext_debug = True
|
||||
if args.hide_picker:
|
||||
print("- Set HidePicker configuration")
|
||||
self.constants.showpicker = False
|
||||
if args.disable_sip:
|
||||
print("- Set Disable SIP configuration")
|
||||
self.constants.sip_status = False
|
||||
if args.disable_smb:
|
||||
print("- Set Disable SecureBootModel configuration")
|
||||
self.constants.secure_status = False
|
||||
if args.vault:
|
||||
print("- Set Vault configuration")
|
||||
self.constants.vault = True
|
||||
if args.firewire:
|
||||
print("- Set FireWire Boot configuration")
|
||||
self.constants.firewire_boot = True
|
||||
if args.nvme:
|
||||
print("- Set NVMe Boot configuration")
|
||||
self.constants.nvme_boot = True
|
||||
# if args.disable_amfi:
|
||||
# print("- Set Disable AMFI configuration")
|
||||
# self.constants.amfi_status = False
|
||||
if args.wlan:
|
||||
print("- Set Wake on WLAN configuration")
|
||||
self.constants.enable_wake_on_wlan = True
|
||||
if args.disable_thunderbolt:
|
||||
print("- Set Disable Thunderbolt configuration")
|
||||
self.constants.disable_thunderbolt = True
|
||||
if args.moderate_smbios:
|
||||
print("- Set Moderate SMBIOS Patching configuration")
|
||||
self.constants.serial_settings = "Moderate"
|
||||
if args.smbios_spoof:
|
||||
if args.smbios_spoof == "Minimal":
|
||||
self.constants.serial_settings = "Minimal"
|
||||
elif args.smbios_spoof == "Moderate":
|
||||
self.constants.serial_settings = "Moderate"
|
||||
elif args.smbios_spoof == "Advanced":
|
||||
self.constants.serial_settings = "Advanced"
|
||||
else:
|
||||
print(f"- Unknown SMBIOS arg passed: {args.smbios_spoof}")
|
||||
|
||||
if args.lb_delay:
|
||||
try:
|
||||
self.constants.latebloom_delay = int(args.lb_delay)
|
||||
print(f"- Set LateBloom delay: {args.lb_delay}")
|
||||
except ValueError:
|
||||
print(f"- Invalid LateBloom delay: {args.lb_delay}")
|
||||
|
||||
if args.lb_range:
|
||||
try:
|
||||
self.constants.latebloom_range = int(args.lb_range)
|
||||
print(f"- Set LateBloom range: {args.lb_range}")
|
||||
except ValueError:
|
||||
print(f"- Invalid LateBloom range: {args.lb_range}")
|
||||
|
||||
if args.lb_debug:
|
||||
try:
|
||||
self.constants.latebloom_debug = int(args.lb_debug)
|
||||
if self.constants.latebloom_debug in [0, 1]:
|
||||
print(f"- Set LateBloom debug: {args.lb_debug}")
|
||||
else:
|
||||
print(f"- Invalid LateBloom debug: {args.lb_debug}")
|
||||
except ValueError:
|
||||
print(f"- Invalid LateBloom range: {args.lb_debug}")
|
||||
|
||||
if args.support_all:
|
||||
print("- Building for natively supported model")
|
||||
self.constants.allow_oc_everywhere = True
|
||||
self.constants.serial_settings = "None"
|
||||
|
||||
if args.build:
|
||||
if args.model:
|
||||
print(f"- Using custom model: {args.model}")
|
||||
self.constants.custom_model = args.model
|
||||
self.set_defaults(self.constants.custom_model, False)
|
||||
self.build_opencore()
|
||||
elif self.computer.real_model not in ModelArray.SupportedSMBIOS and self.constants.allow_oc_everywhere is False:
|
||||
print(
|
||||
"""Your model is not supported by this patcher for running unsupported OSes!"
|
||||
|
||||
If you plan to create the USB for another machine, please select the "Change Model" option in the menu."""
|
||||
)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print(f"- Using detected model: {self.constants.computer.real_model}")
|
||||
self.set_defaults(self.constants.custom_model, True)
|
||||
self.build_opencore()
|
||||
if args.patch_sys_vol:
|
||||
if args.moj_cat_accel:
|
||||
print("- Set Mojave/Catalina root patch configuration")
|
||||
self.constants.moj_cat_accel = True
|
||||
print("- Set System Volume patching")
|
||||
self.patch_vol()
|
||||
elif args.unpatch_sys_vol:
|
||||
print("- Set System Volume unpatching")
|
||||
self.unpatch_vol()
|
||||
|
||||
def set_defaults(self, model, host_is_target):
|
||||
if host_is_target:
|
||||
if Utilities.check_metal_support(device_probe, self.computer) is False:
|
||||
self.constants.disable_cs_lv = True
|
||||
if self.computer.dgpu and self.computer.dgpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
||||
self.constants.sip_status = False
|
||||
self.constants.amfi_status = True
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
if (
|
||||
isinstance(self.computer.wifi, device_probe.Broadcom)
|
||||
and self.computer.wifi.chipset in [device_probe.Broadcom.Chipsets.AirPortBrcm4331, device_probe.Broadcom.Chipsets.AirPortBrcm43224]
|
||||
) or (isinstance(self.computer.wifi, device_probe.Atheros) and self.computer.wifi.chipset == device_probe.Atheros.Chipsets.AirPortAtheros40):
|
||||
self.constants.sip_status = False
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
elif model in ModelArray.LegacyGPU:
|
||||
self.constants.disable_cs_lv = True
|
||||
if model in ModelArray.LegacyGPU:
|
||||
if host_is_target and Utilities.check_metal_support(device_probe, self.computer) is True:
|
||||
# Building on device and we have a native, supported GPU
|
||||
if self.computer.dgpu and self.computer.dgpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
||||
self.constants.sip_status = False
|
||||
# self.constants.secure_status = True # Monterey
|
||||
self.constants.amfi_status = True
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
else:
|
||||
self.constants.sip_status = True
|
||||
# self.constants.secure_status = True # Monterey
|
||||
self.constants.amfi_status = True
|
||||
else:
|
||||
self.constants.sip_status = False # Unsigned kexts
|
||||
self.constants.secure_status = False # Root volume modified
|
||||
self.constants.amfi_status = False # Unsigned binaries
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
if model in ModelArray.ModernGPU:
|
||||
self.constants.sip_status = False # Unsigned kexts
|
||||
self.constants.secure_status = False # Modified root volume
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
# self.constants.amfi_status = True # Signed bundles, Don't need to explicitly set currently
|
||||
if model == "MacBook8,1":
|
||||
# MacBook8,1 has an odd bug where it cannot install Monterey with Minimal spoofing
|
||||
self.constants.serial_settings == "Moderate"
|
||||
|
||||
if self.constants.latebloom_delay == 0:
|
||||
self.constants.latebloom_delay, self.constants.latebloom_range, self.constants.latebloom_debug = Utilities.latebloom_detection(model)
|
||||
|
||||
if Utilities.get_nvram("gpu-power-prefs", "FA4CE28D-B62F-4C99-9CC3-6815686E30F9", decode=True):
|
||||
self.constants.allow_ts2_accel = False
|
||||
|
||||
def patch_vol(self):
|
||||
SysPatch.PatchSysVolume(self.constants.custom_model or self.constants.computer.real_model, self.constants).start_patch()
|
||||
|
||||
def unpatch_vol(self):
|
||||
SysPatch.PatchSysVolume(self.constants.custom_model or self.constants.computer.real_model, self.constants).start_unpatch()
|
||||
|
||||
def build_opencore(self):
|
||||
Build.BuildOpenCore(self.constants.custom_model or self.constants.computer.real_model, self.constants).build_opencore()
|
||||
|
||||
def install_opencore(self):
|
||||
Build.BuildOpenCore(self.constants.custom_model or self.constants.computer.real_model, self.constants).copy_efi()
|
||||
|
||||
def validate(self):
|
||||
# Runs through ocvalidate to check for errors
|
||||
|
||||
valid_dumps = [
|
||||
ModelExample.MacBookPro.MacBookPro92_Stock,
|
||||
# ModelExample.MacBookPro.MacBookPro171_Stock,
|
||||
# ModelExample.Macmini.Macmini91_Stock,
|
||||
ModelExample.iMac.iMac81_Stock,
|
||||
ModelExample.iMac.iMac112_Stock,
|
||||
ModelExample.iMac.iMac122_Upgraded,
|
||||
ModelExample.MacPro.MacPro31_Stock,
|
||||
ModelExample.MacPro.MacPro31_Upgrade,
|
||||
ModelExample.MacPro.MacPro31_Modern_AMD,
|
||||
ModelExample.MacPro.MacPro31_Modern_Kepler,
|
||||
ModelExample.MacPro.MacPro41_Upgrade,
|
||||
ModelExample.MacPro.MacPro41_Modern_AMD,
|
||||
ModelExample.MacPro.MacPro41_51__Flashed_Modern_AMD,
|
||||
]
|
||||
self.constants.validate = True
|
||||
|
||||
for model in ModelArray.SupportedSMBIOS:
|
||||
print(f"Validating predefined model: {model}")
|
||||
self.constants.custom_model = model
|
||||
self.build_opencore()
|
||||
result = subprocess.run([self.constants.ocvalidate_path, f"{self.constants.opencore_release_folder}/EFI/OC/config.plist"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
if result.returncode != 0:
|
||||
print("Error on build!")
|
||||
print(result.stdout.decode())
|
||||
raise Exception(f"Validation failed for predefined model: {model}")
|
||||
else:
|
||||
print(f"Validation succeeded for predefined model: {model}")
|
||||
|
||||
for model in valid_dumps:
|
||||
self.constants.computer = model
|
||||
self.computer = self.constants.computer
|
||||
self.constants.custom_model = ""
|
||||
print(f"Validating dumped model: {self.computer.real_model}")
|
||||
self.build_opencore()
|
||||
result = subprocess.run([self.constants.ocvalidate_path, f"{self.constants.opencore_release_folder}/EFI/OC/config.plist"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
if result.returncode != 0:
|
||||
print("Error on build!")
|
||||
print(result.stdout.decode())
|
||||
raise Exception(f"Validation failed for predefined model: {self.computer.real_model}")
|
||||
else:
|
||||
print(f"Validation succeeded for predefined model: {self.computer.real_model}")
|
||||
|
||||
|
||||
OpenCoreLegacyPatcher()
|
||||
|
||||
# Example arg for OCLP command line
|
||||
# ./OCLP-CLI --build --verbose --debug_oc --debug_kext --model iMac11,2
|
||||
@@ -1,35 +0,0 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
import sys, os
|
||||
sys.path.append(os.path.abspath(os.getcwd()))
|
||||
from Resources import Constants
|
||||
block_cipher = None
|
||||
|
||||
|
||||
a = Analysis(['OCLP-CLI.command'],
|
||||
pathex=['Resources'],
|
||||
binaries=[],
|
||||
datas=[('payloads', 'payloads')],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
noarchive=False)
|
||||
pyz = PYZ(a.pure, a.zipped_data,
|
||||
cipher=block_cipher)
|
||||
exe = EXE(pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.zipfiles,
|
||||
a.datas,
|
||||
[('u', None, 'OPTION')],
|
||||
name='OCLP-CLI',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=True )
|
||||
6
OpenCore-Patcher-GUI.command
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright (C) 2020-2022, Dhinak G, Mykola Grymalyuk
|
||||
from resources import main
|
||||
|
||||
if __name__ == '__main__':
|
||||
main.OpenCoreLegacyPatcher(True)
|
||||
55
OpenCore-Patcher-GUI.spec
Normal file
@@ -0,0 +1,55 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
|
||||
import sys, os, time, subprocess
|
||||
sys.path.append(os.path.abspath(os.getcwd()))
|
||||
from resources import constants
|
||||
block_cipher = None
|
||||
|
||||
|
||||
a = Analysis(['OpenCore-Patcher-GUI.command'],
|
||||
pathex=['resources', 'data', 'gui'],
|
||||
binaries=[],
|
||||
datas=[('payloads', 'payloads')],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
noarchive=False)
|
||||
pyz = PYZ(a.pure, a.zipped_data,
|
||||
cipher=block_cipher)
|
||||
|
||||
exe = EXE(pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.zipfiles,
|
||||
a.datas,
|
||||
[],
|
||||
name='OpenCore-Patcher',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None )
|
||||
app = BUNDLE(exe,
|
||||
name='OpenCore-Patcher.app',
|
||||
icon="payloads/OC-Patcher.icns",
|
||||
bundle_identifier="com.dortania.opencore-legacy-patcher-wxpython",
|
||||
info_plist={
|
||||
"CFBundleShortVersionString": constants.Constants().patcher_version,
|
||||
"NSHumanReadableCopyright": "Copyright 2020-2022 Dortania",
|
||||
"LSMinimumSystemVersion": "10.10.0",
|
||||
"NSRequiresAquaSystemAppearance": False,
|
||||
"NSHighResolutionCapable": True,
|
||||
"Build Date": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
|
||||
"BuildMachineOSBuild": subprocess.run("sw_vers -buildVersion".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode().strip(),
|
||||
})
|
||||
@@ -1,434 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright (C) 2020-2021, Dhinak G, Mykola Grymalyuk
|
||||
# Copyright (C) 2020-2022, Dhinak G, Mykola Grymalyuk
|
||||
from resources import main
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import platform
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from Resources import Build, CliMenu, Constants, ModelArray, SysPatch, Utilities, device_probe
|
||||
|
||||
|
||||
class OpenCoreLegacyPatcher:
|
||||
def __init__(self):
|
||||
print("Loading...")
|
||||
self.constants = Constants.Constants()
|
||||
self.constants.computer = device_probe.Computer.probe()
|
||||
self.computer = self.constants.computer
|
||||
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
||||
self.constants.detected_os_minor = int(platform.uname().release.partition(".")[2].partition(".")[0])
|
||||
detected_os_build: str = subprocess.run("sw_vers -buildVersion".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
self.constants.detected_os_build = detected_os_build
|
||||
self.set_defaults(self.computer.real_model, True)
|
||||
|
||||
def set_defaults(self, model, host_is_target):
|
||||
# Defaults
|
||||
self.constants.sip_status = True
|
||||
self.constants.secure_status = False # Default false for Monterey
|
||||
self.constants.amfi_status = True
|
||||
|
||||
if host_is_target:
|
||||
if Utilities.check_metal_support(device_probe, self.computer) is False:
|
||||
self.constants.disable_cs_lv = True
|
||||
if self.computer.dgpu and self.computer.dgpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
||||
self.constants.sip_status = False
|
||||
self.constants.amfi_status = True
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
if (
|
||||
isinstance(self.computer.wifi, device_probe.Broadcom)
|
||||
and self.computer.wifi.chipset in [device_probe.Broadcom.Chipsets.AirPortBrcm4331, device_probe.Broadcom.Chipsets.AirPortBrcm43224]
|
||||
) or (isinstance(self.computer.wifi, device_probe.Atheros) and self.computer.wifi.chipset == device_probe.Atheros.Chipsets.AirPortAtheros40):
|
||||
self.constants.sip_status = False
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
elif model in ModelArray.LegacyGPU:
|
||||
self.constants.disable_cs_lv = True
|
||||
|
||||
if model in ModelArray.LegacyGPU:
|
||||
if host_is_target and Utilities.check_metal_support(device_probe, self.computer) is True:
|
||||
# Building on device and we have a native, supported GPU
|
||||
if self.computer.dgpu and self.computer.dgpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
||||
self.constants.sip_status = False
|
||||
# self.constants.secure_status = True # Monterey
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
else:
|
||||
self.constants.sip_status = True
|
||||
# self.constants.secure_status = True # Monterey
|
||||
self.constants.amfi_status = True
|
||||
else:
|
||||
self.constants.sip_status = False # Unsigned kexts
|
||||
self.constants.secure_status = False # Root volume modified
|
||||
self.constants.amfi_status = False # Unsigned binaries
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
if model in ModelArray.ModernGPU:
|
||||
self.constants.sip_status = False # Unsigned kexts
|
||||
self.constants.secure_status = False # Modified root volume
|
||||
self.constants.allow_fv_root = True # Allow FileVault on broken seal
|
||||
# self.constants.amfi_status = True # Signed bundles, Don't need to explicitly set currently
|
||||
|
||||
|
||||
if model == "MacBook8,1":
|
||||
# MacBook8,1 has an odd bug where it cannot install Monterey with Minimal spoofing
|
||||
self.constants.serial_settings = "Moderate"
|
||||
|
||||
custom_cpu_model_value = Utilities.get_nvram("revcpuname", "4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102", decode=True)
|
||||
if custom_cpu_model_value is not None:
|
||||
# TODO: Fix to not use two separate variables
|
||||
self.constants.custom_cpu_model = 1
|
||||
self.constants.custom_cpu_model_value = custom_cpu_model_value.split("%00")[0]
|
||||
|
||||
if "-v" in (Utilities.get_nvram("boot-args") or ""):
|
||||
self.constants.verbose_debug = True
|
||||
|
||||
if Utilities.amfi_status() is False:
|
||||
self.constants.amfi_status = False
|
||||
|
||||
if Utilities.get_nvram("gpu-power-prefs", "FA4CE28D-B62F-4C99-9CC3-6815686E30F9", decode=True):
|
||||
self.constants.allow_ts2_accel = False
|
||||
|
||||
if self.constants.latebloom_delay == 0:
|
||||
self.constants.latebloom_delay, self.constants.latebloom_range, self.constants.latebloom_debug = Utilities.latebloom_detection(model)
|
||||
|
||||
if Utilities.get_nvram("gpu-power-prefs", "FA4CE28D-B62F-4C99-9CC3-6815686E30F9", decode=True):
|
||||
self.constants.allow_ts2_accel = False
|
||||
|
||||
# Check if running in RecoveryOS
|
||||
self.constants.recovery_status = Utilities.check_recovery()
|
||||
|
||||
def build_opencore(self):
|
||||
Build.BuildOpenCore(self.constants.custom_model or self.constants.computer.real_model, self.constants).build_opencore()
|
||||
|
||||
def install_opencore(self):
|
||||
Build.BuildOpenCore(self.constants.custom_model or self.constants.computer.real_model, self.constants).copy_efi()
|
||||
|
||||
def change_model(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Select Different Model"])
|
||||
print(
|
||||
"""
|
||||
Tip: Run the following command on the target machine to find the model identifier:
|
||||
|
||||
system_profiler SPHardwareDataType | grep 'Model Identifier'
|
||||
"""
|
||||
)
|
||||
self.constants.custom_model = input("Please enter the model identifier of the target machine: ").strip()
|
||||
if self.constants.custom_model not in ModelArray.SupportedSMBIOS:
|
||||
print(
|
||||
f"""
|
||||
{self.constants.custom_model} is not a valid SMBIOS Identifier for macOS {self.constants.os_support}!
|
||||
"""
|
||||
)
|
||||
print_models = input(f"Print list of valid options for macOS {self.constants.os_support}? (y/n)")
|
||||
if print_models.lower() in {"y", "yes"}:
|
||||
print("\n".join(ModelArray.SupportedSMBIOS))
|
||||
input("\nPress [ENTER] to continue")
|
||||
else:
|
||||
self.set_defaults(self.constants.custom_model, False)
|
||||
|
||||
def patcher_settings(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = ["Adjust Patcher Settings"]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
["Debug Settings", self.patcher_setting_debug],
|
||||
["Security Settings", self.patcher_settings_security],
|
||||
["SMBIOS Settings", self.patcher_settings_smbios],
|
||||
["Boot Volume Settings", self.patcher_settings_boot],
|
||||
["Miscellaneous Settings", self.patcher_settings_misc],
|
||||
["Dump detected hardware", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).dump_hardware],
|
||||
[
|
||||
f"Allow Accel on Mojave/Catalina:\tCurrently {self.constants.moj_cat_accel}",
|
||||
CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_moj_cat_patch,
|
||||
],
|
||||
[
|
||||
f"Allow OpenCore on native Models:\tCurrently {self.constants.allow_oc_everywhere}",
|
||||
CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_native_models,
|
||||
],
|
||||
["Advanced Settings, for developers only", self.advanced_patcher_settings],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
def patcher_setting_debug(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = ["Adjust Debug Settings"]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
[f"Enable Verbose Mode:\tCurrently {self.constants.verbose_debug}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_verbose],
|
||||
[f"Enable OpenCore DEBUG:\tCurrently {self.constants.opencore_debug}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_oc],
|
||||
[f"Enable Kext DEBUG:\t\tCurrently {self.constants.kext_debug}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_kext],
|
||||
] + (
|
||||
[
|
||||
[
|
||||
f"Set Latebloom args:\t\tDelay {self.constants.latebloom_delay}, Range {self.constants.latebloom_range}, Debug {self.constants.latebloom_debug}",
|
||||
CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).latebloom_settings,
|
||||
]
|
||||
]
|
||||
if ((self.constants.custom_model or self.computer.real_model) in ModelArray.PCIRaceCondition)
|
||||
else []
|
||||
)
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
def patcher_settings_security(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = ["Adjust Security Settings"]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
# [
|
||||
# f"Set Apple Mobile File Integrity (AMFI):\tCurrently {self.constants.amfi_status}",
|
||||
# CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).set_amfi,
|
||||
# ],
|
||||
[
|
||||
f"Set System Intrgity Protection (SIP):\tCurrently {self.constants.sip_status}",
|
||||
CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_sip,
|
||||
],
|
||||
[
|
||||
f"Set Secure Boot Model (SBM):\t\tCurrently {self.constants.secure_status}",
|
||||
CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_sbm,
|
||||
],
|
||||
[f"Set Vault Mode:\t\t\t\tCurrently {self.constants.vault}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_vault],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
def patcher_settings_smbios(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = ["Adjust SMBIOS Settings"]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
[f"Set SMBIOS Spoof Level:\tCurrently {self.constants.serial_settings}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_serial],
|
||||
[f"Set SMBIOS Spoof Model:\tCurrently {self.constants.override_smbios}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).set_smbios],
|
||||
[f"Set Custom name {self.constants.custom_cpu_model_value}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).custom_cpu],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
def patcher_settings_boot(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = ["Adjust Bootable Volume Settings"]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
[f"Set FireWire Boot:\tCurrently {self.constants.firewire_boot}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_firewire],
|
||||
[f"Set NVMe Boot:\tCurrently {self.constants.nvme_boot}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_nvme],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
def patcher_settings_misc(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = ["Adjust Miscellaneous Settings"]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
[f"Set ShowPicker Mode:\tCurrently {self.constants.showpicker}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_showpicker],
|
||||
[f"Set Wake on WLAN:\t\tCurrently {self.constants.enable_wake_on_wlan}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_wowl],
|
||||
[f"Set Ivy iMac iGPU:\t\tCurrently {self.constants.allow_ivy_igpu}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).allow_ivy],
|
||||
[f"Set TeraScale 2 Accel:\tCurrently {self.constants.allow_ts2_accel}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).terascale_2_accel],
|
||||
[
|
||||
f"Disable Thunderbolt:\tCurrently {self.constants.disable_thunderbolt}",
|
||||
CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).disable_thunderbolt,
|
||||
],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
def advanced_patcher_settings(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = ["Adjust Advanced Patcher Settings, for developers ONLY"]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
[f"Set Metal GPU Status:\t\tCurrently {self.constants.imac_vendor}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).change_metal],
|
||||
[f"Set DRM Preferences:\t\tCurrently {self.constants.drm_support}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).drm_setting],
|
||||
[f"Set Generic Bootstrap:\t\tCurrently {self.constants.boot_efi}", CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).bootstrap_setting],
|
||||
[
|
||||
f"Disable CPU Friend:\t\t\tCurrently {self.constants.disallow_cpufriend}",
|
||||
CliMenu.MenuOptions(self.constants.custom_model or self.computer.real_model, self.constants).disable_cpufriend,
|
||||
],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
def credits(self):
|
||||
Utilities.TUIOnlyPrint(
|
||||
["Credits"],
|
||||
"Press [Enter] to go back.\n",
|
||||
[
|
||||
"""Many thanks to the following:
|
||||
|
||||
- Acidanthera:\tOpenCore, kexts and other tools
|
||||
- Khronokernel:\tWriting and maintaining this patcher
|
||||
- DhinakG:\t\tWriting and maintaining this patcher
|
||||
- ASentientBot:\tLegacy Acceleration Patches
|
||||
- Ausdauersportler:\tLinking fixes for SNBGraphicsFB and AMDX3000
|
||||
- Syncretic:\t\tAAAMouSSE and telemetrap
|
||||
- cdf:\t\tNightShiftEnabler and Innie"""
|
||||
],
|
||||
).start()
|
||||
|
||||
def PatchVolume(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Patching System Volume"])
|
||||
big_sur = """Patches Root volume to fix misc issues such as:
|
||||
|
||||
- Non-Metal Graphics Acceleration
|
||||
- Intel: Ironlake - Sandy Bridge
|
||||
- Nvidia: Tesla - Fermi (8000-500 series)
|
||||
- AMD: TeraScale 1 and 2 (2000-6000 series)
|
||||
- Audio support for iMac7,1 and iMac8,1
|
||||
|
||||
WARNING: Root Volume Patching is still in active development, please
|
||||
have all important user data backed up. Note when the system volume
|
||||
is patched, you can no longer have Delta updates.
|
||||
|
||||
Supported Options:
|
||||
|
||||
1. Patch System Volume
|
||||
2. Unpatch System Volume (Experimental)
|
||||
B. Exit
|
||||
"""
|
||||
monterey = """Patches Root volume to fix misc issues such as:
|
||||
|
||||
- Metal Graphics Acceleration
|
||||
- Intel: Ivy Bridge (4000 series iGPUs)
|
||||
- Nvidia: Kepler (600-700)
|
||||
- Non-Metal Graphics Accelertation
|
||||
- Intel: Ironlake - Sandy Bridge
|
||||
- Nvidia: Tesla - Fermi (8000-500 series)
|
||||
- AMD: TeraScale 1 and 2 (2000-6000 series)
|
||||
- Audio support for iMac7,1 and iMac8,1
|
||||
- Wifi support for BCM94328, BCM94322 and Atheros cards
|
||||
|
||||
WARNING: Root Volume Patching is still in active development, please
|
||||
have all important user data backed up. Note when the system volume
|
||||
is patched, you can no longer have Delta updates.
|
||||
|
||||
Supported Options:
|
||||
|
||||
1. Patch System Volume
|
||||
2. Unpatch System Volume (Experimental)
|
||||
B. Exit
|
||||
"""
|
||||
mojave_catalina = """Patches Root volume to fix misc issues such as:
|
||||
|
||||
- Non-Metal Graphics Acceleration
|
||||
- Intel: Ironlake - Sandy Bridge
|
||||
- Nvidia: Tesla - Fermi (8000-500 series)
|
||||
- AMD: TeraScale 1 and 2 (2000-6000 series)
|
||||
- Audio support for iMac7,1 and iMac8,1
|
||||
|
||||
WARNING: Root Volume Patching is still in active development, please
|
||||
have all important user data backed up. Note when the system volume
|
||||
is patched, you can no longer have Delta updates.
|
||||
|
||||
Supported Options:
|
||||
|
||||
1. Patch System Volume
|
||||
2. Unpatch System Volume (Experimental)
|
||||
B. Exit
|
||||
"""
|
||||
|
||||
default = """
|
||||
This OS has no root patches available to apply, please ensure you're patching a booted
|
||||
install that requires root patches such as macOS Big Sur or Monterey
|
||||
|
||||
Supported Options:
|
||||
|
||||
B. Exit
|
||||
"""
|
||||
no_patch = False
|
||||
if self.constants.detected_os == self.constants.monterey:
|
||||
print(monterey)
|
||||
elif self.constants.detected_os == self.constants.big_sur:
|
||||
print(big_sur)
|
||||
elif self.constants.detected_os in [self.constants.mojave, self.constants.catalina] and self.constants.moj_cat_accel == True:
|
||||
print(mojave_catalina)
|
||||
else:
|
||||
print(default)
|
||||
no_patch = True
|
||||
change_menu = input("Patch System Volume?: ")
|
||||
if no_patch is not True and change_menu == "1":
|
||||
SysPatch.PatchSysVolume(self.constants.custom_model or self.computer.real_model, self.constants).start_patch()
|
||||
elif no_patch is not True and change_menu == "2":
|
||||
SysPatch.PatchSysVolume(self.constants.custom_model or self.computer.real_model, self.constants).start_unpatch()
|
||||
else:
|
||||
print("Returning to main menu")
|
||||
|
||||
def main_menu(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = [
|
||||
f"OpenCore Legacy Patcher v{self.constants.patcher_version}",
|
||||
f"Selected Model: {self.constants.custom_model or self.computer.real_model}",
|
||||
]
|
||||
|
||||
if (self.constants.custom_model or self.computer.real_model) not in ModelArray.SupportedSMBIOS and self.constants.allow_oc_everywhere is False:
|
||||
in_between = [
|
||||
"Your model is not supported by this patcher for running unsupported OSes!",
|
||||
"",
|
||||
'If you plan to create the USB for another machine, please select the \n"Change Model" option in the menu.',
|
||||
"",
|
||||
'If you want to run OCLP on a native Mac, please toggle \n"Allow OpenCore on native Models" in settings',
|
||||
]
|
||||
elif not self.constants.custom_model and self.computer.real_model == "iMac7,1" and "SSE4.1" not in self.computer.cpu.flags:
|
||||
in_between = [
|
||||
"Your model requires a CPU upgrade to a CPU supporting SSE4.1+ to be supported by this patcher!",
|
||||
"",
|
||||
f'If you plan to create the USB for another {self.computer.real_model} with SSE4.1+, please select the "Change Model" option in the menu.',
|
||||
]
|
||||
elif self.constants.custom_model == "iMac7,1":
|
||||
in_between = ["This model is supported", "However please ensure the CPU has been upgraded to support SSE4.1+"]
|
||||
else:
|
||||
in_between = ["This model is supported"]
|
||||
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", in_between=in_between, auto_number=True, top_level=True)
|
||||
|
||||
options = (
|
||||
[["Build OpenCore", self.build_opencore]]
|
||||
if ((self.constants.custom_model or self.computer.real_model) in ModelArray.SupportedSMBIOS) or self.constants.allow_oc_everywhere is True
|
||||
else []
|
||||
) + [
|
||||
["Install OpenCore to USB/internal drive", self.install_opencore],
|
||||
["Post-Install Volume Patch", self.PatchVolume],
|
||||
["Change Model", self.change_model],
|
||||
["Patcher Settings", self.patcher_settings],
|
||||
["Credits", self.credits],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
if getattr(sys, "frozen", False) and self.constants.recovery_status is False:
|
||||
subprocess.run("""osascript -e 'tell application "Terminal" to close first window' & exit""", shell=True)
|
||||
|
||||
|
||||
OpenCoreLegacyPatcher().main_menu()
|
||||
if __name__ == '__main__':
|
||||
main.OpenCoreLegacyPatcher()
|
||||
@@ -1,18 +1,18 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
import sys, os
|
||||
sys.path.append(os.path.abspath(os.getcwd()))
|
||||
from Resources import Constants
|
||||
from resources import constants
|
||||
block_cipher = None
|
||||
|
||||
|
||||
a = Analysis(['OpenCore-Patcher.command'],
|
||||
pathex=['Resources'],
|
||||
pathex=['resources', 'data'],
|
||||
binaries=[],
|
||||
datas=[('payloads', 'payloads')],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
excludes=['wxPython', 'wxpython'],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
@@ -35,10 +35,10 @@ exe = EXE(pyz,
|
||||
console=True )
|
||||
app = BUNDLE(exe,
|
||||
name='OpenCore-Patcher.app',
|
||||
icon="OC-Patcher.icns",
|
||||
icon="payloads/OC-Patcher.icns",
|
||||
bundle_identifier=None,
|
||||
info_plist={
|
||||
"CFBundleShortVersionString": Constants.Constants().patcher_version,
|
||||
"CFBundleShortVersionString": constants.Constants().patcher_version,
|
||||
"CFBundleExecutable": "MacOS/Launcher",
|
||||
"NSHumanReadableCopyright": "Copyright 2020-2021 Dortania"
|
||||
"NSHumanReadableCopyright": "Copyright 2020-2022 Dortania"
|
||||
})
|
||||
28
README.md
@@ -3,7 +3,7 @@
|
||||
<h1>OpenCore Legacy Patcher</h1>
|
||||
</div>
|
||||
|
||||
A python program with an [Objective-C GUI](https://github.com/dortania/OCLP-GUI) for building and booting [OpenCore](https://github.com/acidanthera/OpenCorePkg) on both legacy and modern Macs, see our in-depth [Guide](https://dortania.github.io/OpenCore-Legacy-Patcher/) for more information.
|
||||
A python program for building and booting [OpenCore](https://github.com/acidanthera/OpenCorePkg) on both legacy and modern Macs, see our in-depth [Guide](https://dortania.github.io/OpenCore-Legacy-Patcher/) for more information.
|
||||
|
||||
Supported features:
|
||||
|
||||
@@ -18,23 +18,19 @@ Note: Only clean-installs and upgrades are supported, macOS Big Sur installs alr
|
||||
|
||||
* You can however reinstall macOS with this patcher and retain your original data
|
||||
|
||||
Note 2: Currently OpenCore Legacy Patcher officially supports patching to run macOS 11, Big Sur installs. For older OSes, OpenCore may function however support is currently not provided from Dortania.
|
||||
Note 2: Currently OpenCore Legacy Patcher officially supports patching to run macOS Big Sur and Monterey installs. For older OSes, OpenCore may function however support is currently not provided from Dortania.
|
||||
|
||||
* For macOS Mojave and Catalina support, we recommend the use of [dosdude1's patchers](http://dosdude1.com)
|
||||
* macOS Monterey usage is provided however support is limited, currently recommended for users to run Big Sur for best compatibility
|
||||
|
||||
## Running from source
|
||||
|
||||
To run the project from source, see here: [Build and run from source](./SOURCE.md)
|
||||
|
||||
## Support
|
||||
|
||||
To get aid with the patcher, we recommend joining the [OpenCore Patcher Paradise Discord Server](https://discord.gg/rqdPgH8xSN). We're actively there and is the quickest way to receive help. For bigger issues such as patcher crashing on build and such, we recommend opening an issue right here on GitHub(Please review [How to debug with OpenCore](https://dortania.github.io/OpenCore-Legacy-Patcher/DEBUG.html) before opening issues):
|
||||
|
||||
* [OpenCore Legacy Patcher's Issue's tab](https://github.com/dortania/OpenCore-Legacy-Patcher/issues)
|
||||
|
||||
Nightly builds can be found here courteous of nightly.link:
|
||||
|
||||
* [Nightly OpenCore Patcher (GUI)](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-gui/main/OpenCore-Patcher-GUI.app.zip)
|
||||
* [Nightly OpenCore Patcher (TUI)](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-app/main/OpenCore-Patcher-TUI.app.zip)
|
||||
* [Offline Variant](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-app-offline/main/OpenCore-Patcher-TUI-Offline.app.zip) (No network connection needed on target Mac for Root Patching)
|
||||
* [Nightly OpenCore Patcher (CLI)](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-gui/main/OCLP-CLI.zip)
|
||||
To get aid with the patcher, we recommend joining the [OpenCore Patcher Paradise Discord Server](https://discord.gg/rqdPgH8xSN). We're actively there and is the quickest way to receive help. For bigger issues such as patcher crashing on build and such, we recommend opening an issue right here on GitHub
|
||||
|
||||
* Please review [How to debug with OpenCore](https://dortania.github.io/OpenCore-Legacy-Patcher/DEBUG.html) before opening issues
|
||||
|
||||
## Credits
|
||||
|
||||
@@ -55,14 +51,18 @@ Nightly builds can be found here courteous of nightly.link:
|
||||
* Mac Pro on OpenCore Patch set and documentation
|
||||
* [Innie](https://github.com/cdf/Innie) and [NightShiftEnabler](https://github.com/cdf/NightShiftEnabler)
|
||||
* [Syncretic](https://forums.macrumors.com/members/syncretic.1173816/)
|
||||
* [AAAMouSSE](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/) and [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707)
|
||||
* [AAAMouSSE](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/), [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707) and [SurPlus](https://github.com/reenigneorcim/SurPlus)
|
||||
* [dosdude1](https://github.com/dosdude1)
|
||||
* Main author of GUI
|
||||
* Development of previous patchers, laying out much of what needs to be patched
|
||||
* [parrotgeek1](https://github.com/parrotgeek1)
|
||||
* [VMM Patch Set](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/4a8f61a01da72b38a4b2250386cc4b497a31a839/payloads/Config/config.plist#L1222-L1281)
|
||||
* [BarryKN](https://github.com/BarryKN)
|
||||
* Development of previous patchers, laying out much of what needs to be patched
|
||||
* [mario_bros_tech](https://github.com/mariobrostech) and the rest of the Unsupported Mac Discord
|
||||
* Catalyst that started OpenCore Legacy Patcher
|
||||
* [arter97](https://github.com/arter97/)
|
||||
* [SimpleMSR](https://github.com/arter97/SimpleMSR/) to disable firmware throttling in Nehalem+ MacBooks without batteries
|
||||
* MacRumors and Unsupported Mac Communities
|
||||
* Endless testing, reporting issues
|
||||
* Apple
|
||||
|
||||
@@ -1,633 +0,0 @@
|
||||
# Handle misc CLI menu options
|
||||
# Copyright (C) 2020-2021, Dhinak G, Mykola Grymalyuk
|
||||
from __future__ import print_function
|
||||
import subprocess
|
||||
|
||||
from Resources import Constants, Utilities
|
||||
|
||||
|
||||
class MenuOptions:
|
||||
def __init__(self, model, versions):
|
||||
self.model = model
|
||||
self.constants: Constants.Constants = versions
|
||||
|
||||
def change_verbose(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set Verbose mode"])
|
||||
change_menu = input("Enable Verbose mode(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.verbose_debug = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.verbose_debug = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_verbose()
|
||||
|
||||
def change_oc(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set OpenCore DEBUG mode"])
|
||||
change_menu = input("Enable OpenCore DEBUG mode(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.opencore_debug = True
|
||||
self.constants.opencore_build = "DEBUG"
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.opencore_debug = False
|
||||
self.constants.opencore_build = "RELEASE"
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_oc()
|
||||
|
||||
def change_kext(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set Kext DEBUG mode"])
|
||||
change_menu = input("Enable Kext DEBUG mode(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.kext_debug = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.kext_debug = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_kext()
|
||||
|
||||
def change_metal(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Assume Metal GPU Always in iMac"])
|
||||
print(
|
||||
"""This is for iMacs that have upgraded Metal GPUs, otherwise
|
||||
Patcher assumes based on stock configuration (ie. iMac10,x-12,x)
|
||||
|
||||
Valid Options:
|
||||
|
||||
1. None(stock GPU)
|
||||
2. Nvidia GPU
|
||||
3. AMD GPU
|
||||
Q. Return to previous menu
|
||||
|
||||
Note: Patcher will detect whether hardware has been upgraded regardless, this
|
||||
option is for those patching on a different machine or OCLP cannot detect.
|
||||
"""
|
||||
)
|
||||
change_menu = input("Set GPU Patch type(ie. 1): ")
|
||||
if change_menu == "1":
|
||||
self.constants.metal_build = False
|
||||
self.constants.imac_vendor = "None"
|
||||
elif change_menu == "2":
|
||||
self.constants.metal_build = True
|
||||
self.constants.imac_vendor = "Nvidia"
|
||||
elif change_menu == "3":
|
||||
self.constants.metal_build = True
|
||||
self.constants.imac_vendor = "AMD"
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_metal()
|
||||
|
||||
def change_serial(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set SMBIOS Spoof Level"])
|
||||
print(
|
||||
"""This section is for setting how OpenCore generates the SMBIOS
|
||||
Recommended for adanced users who want control how serials are handled
|
||||
|
||||
Valid options:
|
||||
|
||||
1. Minimal:\tUse original serials and minimally update SMBIOS
|
||||
2. Moderate:\tReplace entire SMBIOS but keep original serials
|
||||
3. Advanced:\tReplace entire SMBIOS and generate new serials
|
||||
Q. Return to previous menu
|
||||
|
||||
Note: For new users we recommend leaving as default(1. Minimal)
|
||||
"""
|
||||
)
|
||||
change_menu = input("Set SMBIOS Spoof Level(ie. 1): ")
|
||||
if change_menu == "1":
|
||||
self.constants.serial_settings = "Minimal"
|
||||
elif change_menu == "2":
|
||||
self.constants.serial_settings = "Moderate"
|
||||
elif change_menu == "3":
|
||||
self.constants.serial_settings = "Advanced"
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_serial()
|
||||
|
||||
def change_showpicker(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set OpenCore Picker mode"])
|
||||
print(
|
||||
"""By default, OpenCore will show its boot picker each time on boot up,
|
||||
however this can be disabled by default and be shown on command by repeatedly
|
||||
pressing the "Esc" key
|
||||
"""
|
||||
)
|
||||
change_menu = input("Show OpenCore Picker by default(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.showpicker = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.showpicker = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_showpicker()
|
||||
|
||||
def change_vault(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set OpenCore Vaulting"])
|
||||
print(
|
||||
"""By default, this patcher will sign all your files and ensure none of the
|
||||
contents can be tampered with. However for more advanced users, you may
|
||||
want to be able to freely edit the config.plist and files.
|
||||
|
||||
Note: For security reasons, OpenShell will be disabled when Vault is set.
|
||||
|
||||
"""
|
||||
)
|
||||
change_menu = input("Enable Vault(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.vault = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.vault = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_vault()
|
||||
|
||||
def change_sip(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set System Integrity protection"])
|
||||
print(
|
||||
"""SIP is used to ensure proper secuirty measures are set,
|
||||
however to patch the root volume this must be disabled.
|
||||
Only disable is absolutely necessary. SIP value = 0xFEF
|
||||
|
||||
Valid options:
|
||||
|
||||
1. Enable SIP
|
||||
2. Disable SIP
|
||||
Q. Return to previous menu
|
||||
|
||||
"""
|
||||
)
|
||||
change_menu = input("Set SIP: ")
|
||||
if change_menu == "1":
|
||||
self.constants.sip_status = True
|
||||
elif change_menu == "2":
|
||||
self.constants.sip_status = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_sip()
|
||||
|
||||
def change_sbm(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set SecureBootModel"])
|
||||
print(
|
||||
"""SecureBootModel is used to ensure best firmware security,
|
||||
however to patch the root volume this must be disabled.
|
||||
Only disable is absolutely necessary. SIP value = 0xFEF
|
||||
|
||||
Valid options:
|
||||
|
||||
1. Enable SecureBootModel
|
||||
2. Disable SecureBootModel
|
||||
Q. Return to previous menu
|
||||
|
||||
"""
|
||||
)
|
||||
change_menu = input("Set SecureBootModel: ")
|
||||
if change_menu == "1":
|
||||
self.constants.secure_status = True
|
||||
elif change_menu == "2":
|
||||
self.constants.secure_status = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.change_sbm()
|
||||
|
||||
def set_amfi(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set AMFI"])
|
||||
print(
|
||||
"""Required for Root Patching non-Metal GPUs
|
||||
in macOS Big Sur. Without this, will receive kernel panic once
|
||||
Patcher finishes installing legacy acceleration patches.
|
||||
"""
|
||||
)
|
||||
change_menu = input("Disable AMFI(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.amfi_status = False
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.amfi_status = True
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.set_amfi()
|
||||
|
||||
def bootstrap_setting(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set Bootstrap method"])
|
||||
print(
|
||||
"""Sets OpenCore's bootstrap method, currently the patcher supports the
|
||||
following options.
|
||||
|
||||
Valid options:
|
||||
|
||||
1. System/Library/CoreServices/boot.efi (default)
|
||||
2. EFI/BOOT/BOOTx64.efi
|
||||
Q. Return to previous menu
|
||||
|
||||
Note: S*/L*/C*/boot.efi method is only installed to the EFI partition only
|
||||
and not to macOS itself.
|
||||
|
||||
Recommended to set to BOOTx64.efi in situations where your Mac cannot
|
||||
see the EFI Boot entry in the boot picker.
|
||||
|
||||
"""
|
||||
)
|
||||
change_menu = input("Set Bootstrap method: ")
|
||||
if change_menu == "1":
|
||||
self.constants.boot_efi = False
|
||||
elif change_menu == "2":
|
||||
self.constants.boot_efi = True
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.bootstrap_setting()
|
||||
|
||||
def drm_setting(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set DRM preferences"])
|
||||
print(
|
||||
"""Sets OpenCore's DRM preferences for iMac13,x and iMac14,x.
|
||||
In Big Sur, some DRM based content may be broken by
|
||||
default in AppleTV, Photobooth, etc.
|
||||
|
||||
To resolve, you can opt to disable Intel QuickSync support in
|
||||
favor of Nvidia's Software rendering. This can aid in DRM however
|
||||
greatly hampers Video rendering performance in Final Cut Pro and
|
||||
other programs relying on such features.
|
||||
|
||||
Recommend only disabling if absolutely required.
|
||||
"""
|
||||
)
|
||||
change_menu = input("Enable Nvidia's Software DRM rendering(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.drm_support = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.drm_support = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.drm_setting()
|
||||
|
||||
def allow_native_models(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow OpenCore on native Models"])
|
||||
print(
|
||||
"""Allows natively supported Macs to use OpenCore. Recommended
|
||||
for users with 3rd Party NVMe SSDs to achieve improved overall
|
||||
power usage.
|
||||
|
||||
"""
|
||||
)
|
||||
change_menu = input("Allow OpenCore on all Models(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.allow_oc_everywhere = True
|
||||
self.constants.serial_settings = "None"
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.allow_oc_everywhere = False
|
||||
self.constants.serial_settings = "Minimal"
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.allow_native_models()
|
||||
|
||||
def custom_cpu(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set custom CPU Model Name"])
|
||||
print(
|
||||
"""Change reported CPU Model name in About This Mac
|
||||
Custom names will report as follows:
|
||||
|
||||
1: Original Name: 2.5 Ghz Dual-Core Intel Core i5
|
||||
2. CPU name: Intel(R) Core(TM) i5-3210M CPU @ 2.50Ghz
|
||||
3. Custom Name: 2.5Ghz Cotton Candy (example)
|
||||
Q. Return to previous menu
|
||||
"""
|
||||
)
|
||||
if self.constants.custom_cpu_model_value == "":
|
||||
if self.constants.custom_cpu_model == 0:
|
||||
print("Currently using original name")
|
||||
else:
|
||||
print("Currently using CPU name")
|
||||
else:
|
||||
print(f"Custom CPU name currently: {self.constants.custom_cpu_model_value}")
|
||||
change_menu = input("Set custom CPU Name(1,2,3): ")
|
||||
if change_menu == "1":
|
||||
self.constants.custom_cpu_model = 2
|
||||
self.constants.custom_cpu_model_value = ""
|
||||
elif change_menu == "2":
|
||||
self.constants.custom_cpu_model = 0
|
||||
self.constants.custom_cpu_model_value = ""
|
||||
elif change_menu == "3":
|
||||
self.constants.custom_cpu_model = 1
|
||||
self.constants.custom_cpu_model_value = input("Enter new CPU Name: ")
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.custom_cpu()
|
||||
|
||||
def disable_cpufriend(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Disable CPU Friend?"])
|
||||
print(
|
||||
"""Only recommended for advanced users
|
||||
Disabling CPUFriend forces macOS into using a different
|
||||
Mac's power profile for CPUs and GPUs, which can harm the
|
||||
hardware
|
||||
"""
|
||||
)
|
||||
change_menu = input("Disable CPU Friend?(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.disallow_cpufriend = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.disallow_cpufriend = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.disable_cpufriend()
|
||||
|
||||
def set_smbios(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set SMBIOS Spoof Model"])
|
||||
print(
|
||||
"""Change model OpenCore spoofs Mac too
|
||||
|
||||
Valid options:
|
||||
1. Default set by OpenCore (Default)
|
||||
2. User Override
|
||||
3. Disable all spoofing (unsupported configuration)
|
||||
Q. Return to previous menu
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Set SMBIOS Spoof Model: ")
|
||||
if change_menu == "1":
|
||||
print("Setting SMBIOS spoof to default mode")
|
||||
self.constants.override_smbios = "Default"
|
||||
elif change_menu == "2":
|
||||
custom_smbios = input("Set new SMBIOS mode: ")
|
||||
try:
|
||||
test = self.constants.board_id[custom_smbios]
|
||||
self.constants.override_smbios = custom_smbios
|
||||
except KeyError:
|
||||
print("Unsupported SMBIOS, defaulting to Default setting")
|
||||
self.constants.override_smbios = "Default"
|
||||
elif change_menu == "3":
|
||||
print("Disabling SMBIOS spoof")
|
||||
self.constants.override_smbios = self.model
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.set_smbios()
|
||||
|
||||
def allow_firewire(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow FireWire Boot Support"])
|
||||
print(
|
||||
"""
|
||||
In macOS Catalina and newer, Apple restricted
|
||||
usage of FireWire devices to boot macOS for
|
||||
security concerns relating to DMA access.
|
||||
|
||||
If you are comfortable lowering the security,
|
||||
you can re-enable FireWire support for Catalina
|
||||
and newer.
|
||||
|
||||
Note: MacBook5,x-7,1 don't support FireWire boot
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Enable FireWire Boot support?(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.firewire_boot = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.firewire_boot = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.allow_firewire()
|
||||
|
||||
def allow_nvme(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow NVMe UEFI Support"])
|
||||
print(
|
||||
"""
|
||||
For machines not natively supporting NVMe,
|
||||
this option allows you to see and boot NVMe
|
||||
drive in OpenCore's picker
|
||||
|
||||
Not required if your machine natively supports NVMe
|
||||
|
||||
Note: You must have OpenCore on a bootable volume
|
||||
first, ie. USB or SATA drive. Once loaded,
|
||||
OpenCore will enable NVMe support in it's picker
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Enable NVMe Boot support?(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.nvme_boot = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.nvme_boot = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.allow_nvme()
|
||||
|
||||
def allow_wowl(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow Wake on WLAN"])
|
||||
print(
|
||||
"""
|
||||
Due to an unfortunate bug in macOS Big Sur+, Wake on WLAN is
|
||||
disabled by default for BCM943224, BCM94331 and BCM94360/2 chipsets.
|
||||
|
||||
This is due to Wake on WLAN creating network instability and in other cases
|
||||
halving network speeds. This issue is not replicable across machines however
|
||||
be prepared if enabling.
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Allow Wake on WLAN?(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.enable_wake_on_wlan = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.enable_wake_on_wlan = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.allow_wowl()
|
||||
|
||||
def allow_ivy(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow Ivy iMac iGPU"])
|
||||
print(
|
||||
"""
|
||||
For iMac13,x systems with a Nvidia dGPU, the iGPU is disabled by default to
|
||||
allow Delta Updates, FileVault, SIP and such on macOS Monterey. However due to
|
||||
this, DRM and QuickSync support may be broken.
|
||||
|
||||
Users can choose to override this option but be aware SIP must be
|
||||
disabled to run root patches to fix DRM and QuickSync.
|
||||
|
||||
Note: This does not apply for Big Sur, the iGPU can be renabled without
|
||||
consequence
|
||||
Note 2: This setting only affects iMac13,x with dGPUs
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Allow Ivy iMac iGPU?(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.allow_ivy_igpu = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.allow_ivy_igpu = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.allow_ivy()
|
||||
|
||||
def latebloom_settings(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set latebloom properties"])
|
||||
print(
|
||||
f"""
|
||||
Set latebloom properties, useful for debugging boot stalls on
|
||||
pre-Sandy Bridge Macs.
|
||||
|
||||
Valid options:
|
||||
|
||||
1. Set delay (currently: {self.constants.latebloom_delay}ms)
|
||||
2. Set range (currently: {self.constants.latebloom_range}ms)
|
||||
3. Set debug (currently: {bool(self.constants.latebloom_debug)})
|
||||
Q. Return to previous menu
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Select latebloom property(1/2/3): ")
|
||||
if change_menu == "1":
|
||||
try:
|
||||
self.constants.latebloom_delay = int(input("Set delay: "))
|
||||
except ValueError:
|
||||
input("Invalid value, press [ENTER] to continue")
|
||||
self.latebloom_settings()
|
||||
elif change_menu == "2":
|
||||
try:
|
||||
self.constants.latebloom_range = int(input("Set range: "))
|
||||
except ValueError:
|
||||
input("Invalid value, press [ENTER] to continue")
|
||||
self.latebloom_settings()
|
||||
elif change_menu == "3":
|
||||
try:
|
||||
print("Currently supports either 0(False) or 1(True)")
|
||||
latebloom_debug = int(input("Set debug(0/1): "))
|
||||
if latebloom_debug not in [0, 1]:
|
||||
input("Invalid value, press [ENTER] to continue")
|
||||
else:
|
||||
self.constants.latebloom_debug = latebloom_debug
|
||||
except ValueError:
|
||||
input("Invalid value, press [ENTER] to continue")
|
||||
self.latebloom_settings()
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.latebloom_settings()
|
||||
|
||||
def allow_moj_cat_patch(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow Root Patching on Mojave/Catalina"])
|
||||
print(
|
||||
"""
|
||||
This is an experimental option that allows the usage of legacy acceleration
|
||||
patches in Mojave and Catalina.
|
||||
|
||||
The main goal of this is to allow developers to better test patch sets as well
|
||||
as allow acceleration on TeraScale 2 machines. Not all features may be available
|
||||
(ie. GPU switching may not work, etc)
|
||||
|
||||
Note: for the average user, we recommend using dosdude1's legacy patcher:
|
||||
|
||||
- http://dosdude1.com/software.html
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Allow Root Patching on Mojave/Catalina?(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.moj_cat_accel = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.moj_cat_accel = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.allow_moj_cat_patch()
|
||||
|
||||
def disable_thunderbolt(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Disable Thunderbolt on 2013-14 MacBook Pros"])
|
||||
print(
|
||||
"""
|
||||
Some 2013-14 MacBook Pro's have issues with the built-in thunderbolt,
|
||||
resulting in kernel panics and random shutdowns.
|
||||
|
||||
To alliviate, you can disable the thunderbolt controller on MacBookPro11,x
|
||||
machines with this option.
|
||||
|
||||
Note: This option only works on MacBookPro11,x, file an issue if you know of
|
||||
other devices that benefit from this fix.
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Disable Thunderbolt?(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.disable_thunderbolt = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.disable_thunderbolt = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.disable_thunderbolt()
|
||||
|
||||
def terascale_2_accel(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set TeraScale 2 Acceleration"])
|
||||
print(
|
||||
"""
|
||||
By default this patcher will install TeraScale 2 acceleration, however
|
||||
for some laptops this may be undesired due to how degraded their dGPU
|
||||
is.
|
||||
|
||||
Disabling TeraScale 2 acceleration will instead install basic framebuffer
|
||||
support allowing for basic brightness control and let the HD3000 iGPU
|
||||
handle acceleration tasks.
|
||||
"""
|
||||
)
|
||||
|
||||
change_menu = input("Allow TeraScale 2 Acceleration?(y/n/q): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.allow_ts2_accel = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.allow_ts2_accel = False
|
||||
elif change_menu in {"q", "Q", "Quit", "quit"}:
|
||||
print("Returning to previous menu")
|
||||
else:
|
||||
self.terascale_2_accel()
|
||||
|
||||
def dump_hardware(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Dumping detected hardware"])
|
||||
print("")
|
||||
print(self.constants.computer)
|
||||
input("\nPress [ENTER] to exit: ")
|
||||
@@ -1,110 +0,0 @@
|
||||
FirmwareFeatures = {
|
||||
"iMac7,1": "0xC0001407",
|
||||
"iMac8,1": "0xC0001403",
|
||||
"iMac9,1": "0xC0001403",
|
||||
"iMac10,1": "0xE00DE137",
|
||||
"iMac11,1": "0xE00DE137",
|
||||
"iMac11,2": "0xC00C9423",
|
||||
"iMac11,3": "0xE00DE137",
|
||||
"iMac12,1": "0xE00DE137",
|
||||
"iMac12,2": "0xE00DE137",
|
||||
"iMac13,1": "0xE00DE137",
|
||||
"iMac13,2": "0xE00DE137",
|
||||
"iMac13,3": "0xE00DE137",
|
||||
"iMac14,1": "0xFB0FF577",
|
||||
"iMac14,2": "0xE00FE137",
|
||||
"iMac14,3": "0xE00FE137",
|
||||
"iMac14,4": "0xF00FE137",
|
||||
"iMac15,1": "0xF80FE137",
|
||||
"iMac16,1": "0xFC0FE137",
|
||||
"iMac16,2": "0xFC0FE137",
|
||||
"iMac17,1": "0xFC0FE137",
|
||||
"iMac18,1": "0xFD0FF576",
|
||||
"iMac18,2": "0xFD0FF576",
|
||||
"iMac18,3": "0xFD0FF576",
|
||||
"iMac19,1": "0xFD8FF576",
|
||||
"iMac19,2": "0xFD8FF576",
|
||||
"iMac20,1": "0xFD8FF576",
|
||||
"iMac20,2": "0xFD8FF576",
|
||||
"iMacPro1,1": "0xFD8FF53E",
|
||||
"MacBook3,1": "0xC0001407",
|
||||
"MacBook4,1": "0xC0001403",
|
||||
"MacBook5,1": "0xC0001403",
|
||||
"MacBook5,2": "0xC0001403",
|
||||
"MacBook6,1": "0xFC0FE13F",
|
||||
"MacBook7,1": "0xFC0FE13F",
|
||||
"MacBook8,1": "0xFC0FE13F",
|
||||
"MacBook9,1": "0xFC0FE13F",
|
||||
"MacBook10,1": "0xFC0FE13F",
|
||||
"MacBookAir1,1": "0xC0001403",
|
||||
"MacBookAir2,1": "0xC0001403",
|
||||
"MacBookAir3,1": "0xD00DE137",
|
||||
"MacBookAir3,2": "0xD00DE137",
|
||||
"MacBookAir4,1": "0xD00DE137",
|
||||
"MacBookAir4,2": "0xD00DE137",
|
||||
"MacBookAir5,1": "0xE00DE137",
|
||||
"MacBookAir5,2": "0xE00DE137",
|
||||
"MacBookAir6,1": "0xE00FE137",
|
||||
"MacBookAir6,2": "0xE00FE137",
|
||||
"MacBookAir7,1": "0xFF0FF576",
|
||||
"MacBookAir7,2": "0xFF0FF576",
|
||||
"MacBookAir8,1": "0xFD8FF42E",
|
||||
"MacBookAir8,2": "0xFD8FF42E",
|
||||
"MacBookAir9,1": "0xFFAFF06E",
|
||||
"MacBookPro3,1": "0xC0001407",
|
||||
"MacBookPro4,1": "0xC0001403",
|
||||
"MacBookPro5,1": "0xC0001403",
|
||||
"MacBookPro5,2": "0xC0001403",
|
||||
"MacBookPro5,3": "0xC0001403",
|
||||
"MacBookPro5,4": "0xC0001403",
|
||||
"MacBookPro5,5": "0xC0001403",
|
||||
"MacBookPro6,1": "0xC00DE137",
|
||||
"MacBookPro6,2": "0xC00DE137",
|
||||
"MacBookPro7,1": "0xC00DE137",
|
||||
"MacBookPro8,1": "0xC00DE137",
|
||||
"MacBookPro8,2": "0xC00DE137",
|
||||
"MacBookPro8,3": "0xC00DE137",
|
||||
"MacBookPro9,1": "0xC00DE137",
|
||||
"MacBookPro9,2": "0xC10DF577",
|
||||
"MacBookPro10,1": "0xE00DE137",
|
||||
"MacBookPro10,2": "0xE00DE137",
|
||||
"MacBookPro11,1": "0xEB0FF577",
|
||||
"MacBookPro11,2": "0xEB0FF577",
|
||||
"MacBookPro11,3": "0xEB0FF577",
|
||||
"MacBookPro11,4": "0xEB0FF577",
|
||||
"MacBookPro11,5": "0xEB0FF577",
|
||||
"MacBookPro12,1": "0xFD0FF576",
|
||||
"MacBookPro13,1": "0xFC0FE137",
|
||||
"MacBookPro13,2": "0xFC0FE137",
|
||||
"MacBookPro13,3": "0xFC0FE137",
|
||||
"MacBookPro14,1": "0xFF0FF57E",
|
||||
"MacBookPro14,2": "0xFF0FF57E",
|
||||
"MacBookPro14,3": "0xFF0FF57E",
|
||||
"MacBookPro15,1": "0xFD8FF426",
|
||||
"MacBookPro15,2": "0xFD8FF426",
|
||||
"MacBookPro15,3": "0xFD8FF426",
|
||||
"MacBookPro15,4": "0xFD8FF426",
|
||||
"MacBookPro16,1": "0xFDAFF066",
|
||||
"MacBookPro16,2": "0xFFAFF06E",
|
||||
"MacBookPro16,3": "0xFDAFF066",
|
||||
"MacBookPro16,4": "0xFDAFF066",
|
||||
"Macmini3,1": "0xC0001403",
|
||||
"Macmini4,1": "0xC00C9423",
|
||||
"Macmini5,1": "0xD00DE137",
|
||||
"Macmini5,2": "0xD00DE137",
|
||||
"Macmini5,3": "0xD00DE137",
|
||||
"Macmini6,1": "0xE00DE137",
|
||||
"Macmini6,2": "0xE00DE137",
|
||||
"Macmini7,1": "0xE00DE137",
|
||||
"Macmini8,1": "0xFD8FF466",
|
||||
"MacPro1,1": "0x80000015",
|
||||
"MacPro2,1": "0xC0000015",
|
||||
"MacPro3,1": "0xC0001403",
|
||||
"MacPro4,1": "0xE001F537",
|
||||
"MacPro5,1": "0xE80FE137",
|
||||
"MacPro6,1": "0xE90FF576",
|
||||
"MacPro7,1": "0xFDAFF066",
|
||||
"Xserve2,1": "0xC0001403",
|
||||
"Xserve3,1": "0xE001F537",
|
||||
"Dortania1,1": "0xFDAFF066",
|
||||
}
|
||||
81
SOURCE.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Build and run from source
|
||||
|
||||
OpenCore Legacy Patcher at its core is a python-based TUI/CLI based application. This means that to run the project from source, you simply need to invoke the OpenCore-Patcher.command file via Python.
|
||||
|
||||
For developers wishing to validate mainline changes, you may use these nightly links:
|
||||
|
||||
* [GUI (Graphical Based App)](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-app-wxpython/main/OpenCore-Patcher.app%20%28GUI%29.zip)
|
||||
* [GUI (Graphical Based App) - Offline Variant](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-app-wxpython-offline/main/OpenCore-Patcher.app%20%28GUI%20Offline%29.zip)
|
||||
* [TUI (Text Based App)](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-app/main/OpenCore-Patcher-TUI.app.zip)
|
||||
* [TUI (Text Based App) - Offline Variant](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-app-offline/main/OpenCore-Patcher-TUI.app%20%28Offline%29.zip)
|
||||
|
||||
**Warning**: These binaries should not be used without first consulting the [CHANGELOG](./CHANGELOG.md). Do not distribute these links in forums, instead direct to this file.
|
||||
|
||||
* Users running new builds of the project without understanding what has changed are at higher of bricking their installation as they do not read any warnings provided in the CHANGELOG. We wish to minimize these situations as much as possible.
|
||||
|
||||
## Getting Started
|
||||
|
||||
To start, ensure you have python 3.6 or newer installed. Additionally ensure that they were downloaded from the offical source, [python.org](https://www.python.org/downloads/macos/).
|
||||
|
||||
* Python installations either preinstalled or provided with Xcode/Xcode Tools are unsupported due to reliablility issues
|
||||
|
||||
Once Python is installed, open Terminal and run the following:
|
||||
|
||||
```sh
|
||||
# Move into a directory to store the project
|
||||
cd ~/Developer
|
||||
# Clone project
|
||||
git clone https://github.com/dortania/OpenCore-Legacy-Patcher
|
||||
# Move into Project directory
|
||||
cd ./OpenCore-Legacy-Patcher
|
||||
# Install Python dependacies used by the project
|
||||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
## Running OpenCore Legacy Patcher
|
||||
|
||||
To run the project from source, simply invoke via python3:
|
||||
|
||||
```sh
|
||||
# Launch TUI
|
||||
python3 OpenCore-Patcher.command
|
||||
```
|
||||
|
||||
```sh
|
||||
# Launch GUI
|
||||
python3 OpenCore-Patcher-GUI.command
|
||||
```
|
||||
|
||||
Note that the OpenCore-Patcher.command file can be run as both a TUI and a CLI utility for other programs to call. If no core arguments are passed, the TUI is initialized. Otherwise the CLI will start:
|
||||
|
||||
```sh
|
||||
# Launch CLI
|
||||
python3 OpenCore-Patcher.command --build --model iMac12,2 --verbose
|
||||
```
|
||||
|
||||
See `-h`/`--help` for more information on supported CLI arguments.
|
||||
|
||||
## Generating prebuilt binaries
|
||||
|
||||
The main goal of generating prebuilt binaries is to strip the requirement of a local python installation for users. For developers, there's very little benefit besides enabling dark mode support in the GUI. For development, simply use the OpenCore-Patcher.command file with a python3 installation.
|
||||
|
||||
* Note that due to PyInstaller's linking mechanism, binaries generated on Catalina and newer are not compatible with High Sierra and older
|
||||
* To ensure the largest compatibility, generate binaries on macOS Mojave. These binaries will be compatible with macOS 10.9 to macOS 12.
|
||||
* Currently our build system is a [Macmini8,1 provided by MacStadium](https://www.macstadium.com/opensource) running macOS Mojave (10.14.6).
|
||||
|
||||
```sh
|
||||
# Install PyInstaller
|
||||
pip3 install pyinstaller
|
||||
# Move into project directory
|
||||
cd ~/Developer/OpenCore-Legacy-Patcher/
|
||||
# Create the pyinstaller based Application (replace OpenCore-Patcher.spec with OpenCore-Patcher-GUI.spec for GUI binary)
|
||||
pyinstaller OpenCore-Patcher.spec
|
||||
# Post PyInstaller clean up (only for the TUI)
|
||||
./after_pyinstaller.sh
|
||||
# Open build folder
|
||||
open ./dist/
|
||||
```
|
||||
|
||||
Once done, you'll find the application generated at `./dist/OpenCore-Patcher.app`:
|
||||
|
||||

|
||||
@@ -1,2 +1,2 @@
|
||||
#!/bin/sh
|
||||
cp launcher.sh dist/OpenCore-Patcher.app/Contents/MacOS/Launcher
|
||||
cp payloads/launcher.sh dist/OpenCore-Patcher.app/Contents/MacOS/Launcher
|
||||
@@ -1,7 +1,7 @@
|
||||
import subprocess
|
||||
from Resources import Constants
|
||||
from resources import constants
|
||||
|
||||
patcher_support_pkg_version = Constants.Constants().patcher_support_pkg_version
|
||||
patcher_support_pkg_version = constants.Constants().patcher_support_pkg_version
|
||||
binary_packages = ["10.14-Mojave", "10.15-Catalina", "11-Big-Sur", "12-Monterey"]
|
||||
|
||||
for binary_package in binary_packages:
|
||||
15
data/bluetooth_data.py
Normal file
@@ -0,0 +1,15 @@
|
||||
import enum
|
||||
|
||||
|
||||
class bluetooth_data(enum.IntEnum):
|
||||
# Bluetooth Chipsets
|
||||
NonApplicable = 0
|
||||
BRCM2045 = 1 # TODO: Rename chipset, currently guessing MacPro1,1-3,1 name
|
||||
BRCM2046 = 2 # BT 2.1
|
||||
BRCM2070 = 3 # BT 2.1
|
||||
BRCM20702_v1 = 4 # BT 4.0 - 2012
|
||||
BRCM20702_v2 = 5 # BT 4.0 - 2013+
|
||||
BRCM20703 = 6 # BT 4.2
|
||||
BRCM20703_UART = 9 # BRCM20703 over UART, BT 4.2
|
||||
UART = 10 # T2
|
||||
PCIe = 20 # Apple Silicon
|
||||
23
data/cpu_data.py
Normal file
@@ -0,0 +1,23 @@
|
||||
import enum
|
||||
|
||||
|
||||
class cpu_data(enum.IntEnum):
|
||||
pentium_4 = 0
|
||||
yonah = 1
|
||||
conroe = 2
|
||||
penryn = 3
|
||||
nehalem = 4 # (Westmere included)
|
||||
sandy_bridge = 5 # 2000
|
||||
ivy_bridge = 6 # 3000
|
||||
haswell = 7 # 4000
|
||||
broadwell = 8 # 5000
|
||||
skylake = 9 # 6000
|
||||
kaby_lake = 10 # 7000
|
||||
coffee_lake = 11 # 8000
|
||||
comet_lake = 12 # 9000
|
||||
ice_lake = 13 # 10000
|
||||
|
||||
apple_dtk = 112 # A12
|
||||
apple_m1 = 114 # A14
|
||||
apple_m1_pro = 115
|
||||
apple_m1_max = 116
|
||||
14
data/dylib_data.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# Data for SkyLightShim Plugin systems
|
||||
class shim_list:
|
||||
shim_pathing = {
|
||||
"CoreWLAN.dylib": "/System/Library/CoreServices/WiFiAgent.app/Contents/MacOS/WiFiAgent",
|
||||
"BacklightFixup.dylib": "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow",
|
||||
}
|
||||
|
||||
shim_legacy_accel = [
|
||||
"CoreWLAN.dylib",
|
||||
]
|
||||
|
||||
shim_legacy_accel_keyboard = [
|
||||
"BacklightFixup.dylib",
|
||||
]
|
||||
@@ -1,6 +1,6 @@
|
||||
# Example Hardware probe of multiple models
|
||||
# To be used when running validation tests
|
||||
from Resources import device_probe
|
||||
from resources import device_probe
|
||||
|
||||
class MacBook:
|
||||
|
||||
@@ -179,6 +179,31 @@ class iMac:
|
||||
opencore_version=None,
|
||||
)
|
||||
|
||||
iMac151_Stock = device_probe.Computer(
|
||||
real_model='iMac15,1',
|
||||
real_board_id='Mac-42FD25EABCABB274',
|
||||
reported_model='iMac15,1', reported_board_id='Mac-42FD25EABCABB274',
|
||||
gpus=[
|
||||
device_probe.Intel(vendor_id=32902, device_id=1042, class_code=196608, name='IGPU', model='Intel Iris Pro', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||
device_probe.AMD(vendor_id=4098, device_id=26640, class_code=196608, name='GFX0', model='AMD Radeon R9 M290X', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)')
|
||||
],
|
||||
igpu=device_probe.Intel(vendor_id=32902, device_id=1042, class_code=196608, name='IGPU', model='Intel Iris Pro', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||
dgpu=device_probe.AMD(vendor_id=4098, device_id=26640, class_code=196608, name='GFX0', model='AMD Radeon R9 M290X', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)'),
|
||||
storage=[
|
||||
device_probe.SATAController(vendor_id=32902, device_id=35842, class_code=67073, name='SATA', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1f,0x2)'),
|
||||
device_probe.SATAController(vendor_id=6987, device_id=37251, class_code=67073, name='SSD0', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)')
|
||||
],
|
||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name='ARPT', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)'),
|
||||
cpu=device_probe.CPU(
|
||||
name='Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz',
|
||||
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
||||
),
|
||||
oclp_version=None,
|
||||
opencore_version=None,
|
||||
bluetooth_chipset='BRCM20702 Hub',
|
||||
third_party_sata_ssd=False
|
||||
)
|
||||
|
||||
class MacPro:
|
||||
|
||||
MacPro31_Stock = device_probe.Computer(
|
||||
11
data/mirror_data.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# Mirrors of Apple's InstallAssistant.ppkg
|
||||
# Currently only listing important Installers no longer on Apple's servers
|
||||
|
||||
Install_macOS_Big_Sur_11_2_3 = {
|
||||
"Version": "11.2.3",
|
||||
"Build": "20D91",
|
||||
"Link": "https://archive.org/download/install-assistant-20D91/InstallAssistant.pkg",
|
||||
"Size": 12211077798,
|
||||
"Source": "Archive.org",
|
||||
"integrity": None,
|
||||
}
|
||||
395
data/model_array.py
Normal file
@@ -0,0 +1,395 @@
|
||||
# Lists all models and required patches
|
||||
# Copyright (C) 2020-2022, Dhinak G, Mykola Grymalyuk
|
||||
SupportedSMBIOS = [
|
||||
# MacBook
|
||||
"MacBook4,1",
|
||||
"MacBook5,1",
|
||||
"MacBook5,2",
|
||||
"MacBook6,1",
|
||||
"MacBook7,1",
|
||||
"MacBook8,1",
|
||||
# MacBook Air
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2",
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir5,2",
|
||||
"MacBookAir6,1",
|
||||
"MacBookAir6,2",
|
||||
# MacBook Pro
|
||||
"MacBookPro4,1",
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro7,1",
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
"MacBookPro11,1",
|
||||
"MacBookPro11,2",
|
||||
"MacBookPro11,3",
|
||||
# Mac Mini
|
||||
"Macmini3,1",
|
||||
"Macmini4,1",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
"Macmini6,1",
|
||||
"Macmini6,2",
|
||||
# iMac
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"iMac9,1",
|
||||
"iMac10,1",
|
||||
"iMac11,1",
|
||||
"iMac11,2",
|
||||
"iMac11,3",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac13,3",
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
"iMac14,4",
|
||||
"iMac15,1",
|
||||
# Mac Pro
|
||||
"MacPro3,1",
|
||||
"MacPro4,1",
|
||||
"MacPro5,1",
|
||||
# Xserve
|
||||
"Xserve2,1",
|
||||
"Xserve3,1",
|
||||
]
|
||||
|
||||
# Audio
|
||||
|
||||
LegacyAudio = [
|
||||
"MacBook4,1",
|
||||
"MacBook5,1",
|
||||
"MacBook5,2",
|
||||
"MacBook6,1",
|
||||
"MacBook7,1",
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2",
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookPro4,1",
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro7,1",
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"Macmini3,1",
|
||||
"Macmini4,1",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
# "iMac7,1",
|
||||
# "iMac8,1",
|
||||
"iMac9,1",
|
||||
"iMac10,1",
|
||||
"iMac11,1",
|
||||
"iMac11,2",
|
||||
"iMac11,3",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"MacPro3,1",
|
||||
"Dortania1,1",
|
||||
]
|
||||
|
||||
# GPU
|
||||
|
||||
ModernGPU = [
|
||||
"MacBookAir5,1", # Intel 4000
|
||||
"MacBookAir5,2", # Intel 4000
|
||||
"MacBookPro9,1", # Intel 4000 + Nvidia 650M
|
||||
"MacBookPro9,2", # Intel 4000
|
||||
"MacBookPro10,1", # Intel 4000 + Nvidia 650M
|
||||
"MacBookPro10,2", # Intel 4000
|
||||
"MacBookPro11,3", # Intel 5000 + Nvidia Kepler
|
||||
"Macmini6,1", # Intel 4000
|
||||
"Macmini6,2", # Intel 4000
|
||||
"iMac13,1", # Intel 4000
|
||||
"iMac13,2", # Intel 4000 + Nvidia Kepler
|
||||
"iMac13,3", # Intel 4000
|
||||
"iMac14,1", # Intel 5000 + Nvidia Kepler
|
||||
"iMac14,2", # Intel 5000 + Nvidia Kepler
|
||||
"iMac14,3", # Intel 5000 + Nvidia Kepler
|
||||
]
|
||||
|
||||
LegacyGPU = [
|
||||
"MacBook4,1", # GMA X3100
|
||||
"MacBook5,1", # Nvidia 9000
|
||||
"MacBook5,2", # Nvidia 9000
|
||||
"MacBook6,1", # Nvidia 9000
|
||||
"MacBook7,1", # Nvidia 300
|
||||
"MacBookAir2,1", # Nvidia 9000
|
||||
"MacBookAir3,1", # Nvidia 300
|
||||
"MacBookAir3,2", # Nvidia 300
|
||||
"MacBookAir4,1", # Intel 3000
|
||||
"MacBookAir4,2", # Intel 3000
|
||||
"MacBookPro4,1", # Nvidia 8000
|
||||
"MacBookPro5,1", # Nvidia 9000
|
||||
"MacBookPro5,2", # Nvidia 9000
|
||||
"MacBookPro5,3", # Nvidia 9000
|
||||
"MacBookPro5,4", # Nvidia 9000
|
||||
"MacBookPro5,5", # Nvidia 9000
|
||||
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
||||
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
||||
"MacBookPro7,1", # Nvidia 300
|
||||
"MacBookPro8,1", # Intel 3000
|
||||
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
||||
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
||||
"Macmini3,1", # Nvidia 9000
|
||||
"Macmini4,1", # Nvidia 300
|
||||
"Macmini5,1", # Intel 3000
|
||||
"Macmini5,2", # AMD 6000
|
||||
"Macmini5,3", # Intel 3000
|
||||
"iMac7,1", # AMD 2000
|
||||
"iMac8,1", # Nvidia and AMD 2400
|
||||
"iMac9,1", # Nvidia 9000
|
||||
"iMac10,1", # Nvidia 9000 and AMD 4000
|
||||
"iMac11,1", # AMD 4000
|
||||
"iMac11,2", # AMD 4000 and 5000
|
||||
"iMac11,3", # AMD 5000
|
||||
"iMac12,1", # AMD 6000
|
||||
"iMac12,2", # AMD 6000
|
||||
"Dortania1,1", # RTX 3080
|
||||
]
|
||||
|
||||
LegacyGPUNvidia = [
|
||||
"MacBook5,1", # Nvidia 9000
|
||||
"MacBook5,2", # Nvidia 9000
|
||||
"MacBook6,1", # Nvidia 9000
|
||||
"MacBook7,1", # Nvidia 300
|
||||
"MacBookAir2,1", # Nvidia 9000
|
||||
"MacBookAir3,1", # Nvidia 300
|
||||
"MacBookAir3,2", # Nvidia 300
|
||||
"MacBookPro4,1", # Nvidia 8000
|
||||
"MacBookPro5,1", # Nvidia 9000
|
||||
"MacBookPro5,2", # Nvidia 9000
|
||||
"MacBookPro5,3", # Nvidia 9000
|
||||
"MacBookPro5,4", # Nvidia 9000
|
||||
"MacBookPro5,5", # Nvidia 9000
|
||||
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
||||
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
||||
"MacBookPro7,1", # Nvidia 300
|
||||
"Macmini3,1", # Nvidia 9000
|
||||
"Macmini4,1", # Nvidia 300
|
||||
"iMac9,1", # Nvidia 9000
|
||||
# "iMac10,1", # Nvidia 9000 and AMD 4000
|
||||
]
|
||||
|
||||
LegacyGPUAMD = [
|
||||
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
||||
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
||||
"Macmini5,2", # AMD 6000
|
||||
"iMac7,1", # AMD 2000
|
||||
# "iMac8,1", # Nvidia and AMD 2000
|
||||
# "iMac10,1", # Nvidia 9000 and AMD 4000
|
||||
"iMac11,1", # AMD 4000
|
||||
"iMac11,2", # AMD 4000 and 5000
|
||||
"iMac11,3", # AMD 5000
|
||||
"iMac12,1", # AMD 6000
|
||||
"iMac12,2", # AMD 6000
|
||||
]
|
||||
|
||||
LegacyGPUAMDIntelGen2 = [
|
||||
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
||||
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
||||
"Macmini5,2", # AMD 6000
|
||||
"iMac12,1", # AMD 6000
|
||||
"iMac12,2", # AMD 6000
|
||||
]
|
||||
|
||||
LegacyGPUIntelGen1 = [
|
||||
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
||||
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
||||
]
|
||||
|
||||
LegacyGPUIntelGen2 = [
|
||||
"MacBookAir4,1", # Intel 3000
|
||||
"MacBookAir4,2", # Intel 3000
|
||||
"MacBookPro8,1", # Intel 3000
|
||||
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
||||
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
||||
"Macmini5,1", # Intel 3000
|
||||
"Macmini5,3", # Intel 3000
|
||||
]
|
||||
|
||||
LegacyBrightness = [
|
||||
"MacBook5,2",
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"iMac9,1",
|
||||
]
|
||||
|
||||
NVMePatch = ["MacPro3,1", "MacPro4,1", "Xserve3,1", "Dortania1,1"]
|
||||
|
||||
DualGPUPatch = [
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"Macmini5,2",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
"Dortania1,1",
|
||||
]
|
||||
|
||||
DualGPUPatchRetina = [
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro11,3",
|
||||
]
|
||||
|
||||
IntelNvidiaDRM = [
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
]
|
||||
|
||||
IDEPatch = ["MacBook4,1", "MacBookPro4,1", "iMac7,1", "iMac8,1", "MacPro3,1", "Xserve2,1", "Dortania1,1"]
|
||||
|
||||
# Mac Pro and Xserve
|
||||
MacPro = ["MacPro3,1", "MacPro4,1", "MacPro5,1", "Xserve2,1", "Xserve3,1", "Dortania1,1"]
|
||||
|
||||
SATAPatch = [
|
||||
"MacBook4,1",
|
||||
"MacBook5,1",
|
||||
"MacBook5,2",
|
||||
"MacBook6,1",
|
||||
"MacBook7,1",
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2",
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookPro4,1",
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro7,1",
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"Macmini3,1",
|
||||
"Macmini4,1",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"iMac9,1",
|
||||
"iMac10,1",
|
||||
"iMac11,1",
|
||||
"iMac11,2",
|
||||
"iMac11,3",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"MacPro3,1",
|
||||
"MacPro4,1",
|
||||
"MacPro5,1",
|
||||
"Xserve2,1",
|
||||
"Xserve3,1",
|
||||
"Dortania1,1",
|
||||
]
|
||||
|
||||
NoAGPMSupport = ["MacBook4,1", "MacBookPro4,1", "iMac7,1", "iMac8,1", "MacPro3,1", "Xserve2,1", "Dortania1,1"]
|
||||
|
||||
AGDPSupport = [
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro10,1",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
"iMac14,4",
|
||||
"iMac15,1",
|
||||
# TODO: Uncomment when dropped from macOS
|
||||
# "iMac17,1",
|
||||
# "iMac18,2",
|
||||
# "iMac18,3",
|
||||
# "iMac19,1",
|
||||
# "iMac19,2",
|
||||
# "iMac20,1",
|
||||
# "iMac20,2",
|
||||
# "iMacPro1,1",
|
||||
# "MacPro6,1",
|
||||
]
|
||||
|
||||
Missing_USB_Map = [
|
||||
"MacBook4,1",
|
||||
"MacBook5,1",
|
||||
"MacBook5,2",
|
||||
"MacBook6,1",
|
||||
"MacBook7,1",
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2",
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookPro4,1",
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro7,1",
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"Macmini3,1",
|
||||
"Macmini4,1",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"iMac9,1",
|
||||
"iMac10,1",
|
||||
"iMac11,1",
|
||||
"iMac11,2",
|
||||
"iMac11,3",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"MacPro3,1",
|
||||
"MacPro4,1",
|
||||
"Xserve2,1",
|
||||
"Xserve3,1",
|
||||
]
|
||||
20
data/os_data.py
Normal file
@@ -0,0 +1,20 @@
|
||||
import enum
|
||||
|
||||
|
||||
class os_data(enum.IntEnum):
|
||||
# OS Versions, Based off Major Kernel Version
|
||||
tiger = 8
|
||||
leopard = 9
|
||||
snow_leopard = 10
|
||||
lion = 11
|
||||
mountain_lion = 12
|
||||
mavericks = 13
|
||||
yosemite = 14
|
||||
el_capitan = 15
|
||||
sierra = 16
|
||||
high_sierra = 17
|
||||
mojave = 18
|
||||
catalina = 19
|
||||
big_sur = 20
|
||||
monterey = 21
|
||||
max_os = 99
|
||||
@@ -1,10 +1,20 @@
|
||||
# Array of Device IDs for different devices
|
||||
|
||||
|
||||
class nvidia_ids:
|
||||
# Courteous of envytools as well as Macrumors:
|
||||
# https://envytools.readthedocs.io/en/latest/hw/pciid.html
|
||||
# https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/
|
||||
curie_ids = [
|
||||
0x0040,
|
||||
0x00f0,
|
||||
0x0220,
|
||||
0x0140,
|
||||
0x0160,
|
||||
0x0090,
|
||||
0x01d0,
|
||||
0x0390,
|
||||
0x0290,
|
||||
]
|
||||
|
||||
tesla_ids = [
|
||||
# G80
|
||||
0x0190, # G80 [GeForce 8800 GTS / 8800 GTX]
|
||||
@@ -515,141 +525,163 @@ class nvidia_ids:
|
||||
|
||||
|
||||
class amd_ids:
|
||||
legacy_gcn_ids = [
|
||||
# AMDRadeonX4000
|
||||
# AMDBonaireGraphicsAccelerator
|
||||
0x6640,
|
||||
0x6641,
|
||||
0x6646,
|
||||
0x6647,
|
||||
0x6650,
|
||||
0x6651,
|
||||
0x665C,
|
||||
0x665D,
|
||||
# AMDFijiGraphicsAccelerator
|
||||
0x7300,
|
||||
0x730F,
|
||||
# AMDHawaiiGraphicsAccelerator
|
||||
0x67B0,
|
||||
# AMDPitcairnGraphicsAccelerator
|
||||
0x6800,
|
||||
0x6801,
|
||||
0x6806,
|
||||
0x6808,
|
||||
0x6810,
|
||||
0x6818,
|
||||
0x6819,
|
||||
# AMDTahitiGraphicsAccelerator
|
||||
0x6790,
|
||||
0x6798,
|
||||
0x679A,
|
||||
0x679E,
|
||||
0x6780,
|
||||
# AMDTongaGraphicsAccelerator
|
||||
0x6920,
|
||||
0x6921,
|
||||
0x6930,
|
||||
0x6938,
|
||||
0x6939,
|
||||
# AMDVerdeGraphicsAccelerator
|
||||
0x6820,
|
||||
0x6821,
|
||||
0x6823,
|
||||
0x6825,
|
||||
0x6827,
|
||||
0x682B,
|
||||
0x682D,
|
||||
0x682F,
|
||||
0x6835,
|
||||
0x6839,
|
||||
0x683B,
|
||||
0x683D,
|
||||
0x683F,
|
||||
|
||||
gcn_7000_ids = [
|
||||
# GCN v1
|
||||
# AMDPitcairnGraphicsAccelerator - AMD7000Controller
|
||||
0x6800, # HD 7970M
|
||||
0x6801, # HD 8970M
|
||||
0x6806, # Unknown
|
||||
0x6808, # W7000
|
||||
0x6810, # R7 370 / R9 270X/370X
|
||||
0x6818, # HD 7870
|
||||
0x6819, # HD 7850 / R7 265 / R9 270 1024SP
|
||||
# AMDTahitiGraphicsAccelerator - AMD7000Controller
|
||||
0x6790, # Unknown
|
||||
0x6798, # HD 7970/8970 OEM / R9 280X / D700
|
||||
0x679A, # HD 7950/8950 OEM / R9 280
|
||||
0x679E, # HD 7870 XT
|
||||
0x6780, # W9000
|
||||
# AMDVerdeGraphicsAccelerator - AMD7000Controller
|
||||
0x6820, # HD 8890M / R9 M275X/M375X / M5100
|
||||
0x6821, # HD 8870M / R9 M270X/M370X
|
||||
0x6823, # HD 8850M / R9 M265X
|
||||
0x6825, # HD 7870M
|
||||
0x6827, # HD 7850M/8850M
|
||||
0x682B, # HD 8830M / R7 250 / R7 M465X
|
||||
0x682D, # M4000
|
||||
0x682F, # HD 7730M
|
||||
0x6835, # R9 255
|
||||
0x6839, # Unknown
|
||||
0x683B, # Unknown
|
||||
0x683D, # HD 7770/8760 / R7 250X
|
||||
0x683F, # HD 7750/8740 / R7 250E
|
||||
]
|
||||
|
||||
gcn_8000_ids = [
|
||||
# GCN v2
|
||||
# AMDBonaireGraphicsAccelerator - AMD8000Controller
|
||||
0x6640, # M6100
|
||||
0x6641, # HD 8930M
|
||||
0x6646, # R9 M280X / W6170M
|
||||
0x6647, # R9 M270X/M280X
|
||||
0x6650, # Unknown
|
||||
0x6651, # Unknown
|
||||
0x665C, # HD 7790/8770 / R7 360 / R9 260/360
|
||||
0x665D, # R7 200
|
||||
# AMDHawaiiGraphicsAccelerator - AMD8000Controller
|
||||
0x67B0, # R9 290X/390X
|
||||
]
|
||||
|
||||
gcn_9000_ids = [
|
||||
# GCN v3
|
||||
# AMDFijiGraphicsAccelerator - AMD9000Controller
|
||||
0x7300, # R9 FURY / NANO
|
||||
0x730F, # Unknown
|
||||
# AMDTongaGraphicsAccelerator - AMD9000Controller
|
||||
0x6920, # R9 M395/ M395X
|
||||
0x6921, # R9 M295X / M390X
|
||||
0x6930, # Unknown
|
||||
0x6938, # R9 380X / R9 M295X
|
||||
0x6939, # R9 285/380
|
||||
]
|
||||
|
||||
polaris_ids = [
|
||||
# GCN v4
|
||||
# AMDRadeonX4000
|
||||
# AMDBaffinGraphicsAccelerator
|
||||
0x67E0,
|
||||
0x67E3,
|
||||
0x67E8,
|
||||
0x67EB,
|
||||
0x67EF,
|
||||
0x67FF,
|
||||
0x67E1,
|
||||
0x67E7,
|
||||
0x67E9,
|
||||
# AMDEllesmereGraphicsAccelerator
|
||||
0x67C0,
|
||||
0x67C1,
|
||||
0x67C2,
|
||||
0x67C4,
|
||||
0x67C7,
|
||||
0x67DF,
|
||||
0x67D0,
|
||||
0x67C8,
|
||||
0x67C9,
|
||||
0x67CA,
|
||||
0x67CC,
|
||||
0x67CF,
|
||||
# AMDBaffinGraphicsAccelerator - AMD9500Controller
|
||||
0x67E0, # Pro WX 4170
|
||||
0x67E3, # Pro WX 4100
|
||||
0x67E8, # Pro WX 4130/4150
|
||||
0x67EB, # Pro V5300X
|
||||
0x67EF, # 460/560D / Pro 450/455/460/555/555X/560/560X
|
||||
0x67FF, # 550 640SP / RX 560/560X
|
||||
0x67E1, # Unknown
|
||||
0x67E7, # Unknown
|
||||
0x67E9, # Unknown
|
||||
# AMDEllesmereGraphicsAccelerator - AMD9500Controller
|
||||
0x67C0, # Pro WX 7100 Mobile
|
||||
0x67C1, # Unknown
|
||||
0x67C2, # Pro V7300X / V7350x2
|
||||
0x67C4, # Pro WX 7100
|
||||
0x67C7, # Pro WX 5100
|
||||
0x67DF, # 470/480/570/570X/580/580X/590
|
||||
0x67D0, # Pro V7300X / V7350x2
|
||||
0x67C8, # Unknown
|
||||
0x67C9, # Unknown
|
||||
0x67CA, # Unknown
|
||||
0x67CC, # Unknown
|
||||
0x67CF, # Unknown
|
||||
]
|
||||
|
||||
vega_ids = [
|
||||
# GCN v5
|
||||
# AMDRadeonX5000
|
||||
# AMDVega10GraphicsAccelerator
|
||||
0x6860,
|
||||
0x6861,
|
||||
0x6862,
|
||||
0x6863,
|
||||
0x6864,
|
||||
0x6867,
|
||||
0x6868,
|
||||
0x6869,
|
||||
0x686A,
|
||||
0x686B,
|
||||
0x686C,
|
||||
0x686D,
|
||||
0x686E,
|
||||
0x686F,
|
||||
0x687F,
|
||||
# AMDVega12GraphicsAccelerator
|
||||
0x69A0,
|
||||
0x69A1,
|
||||
0x69A2,
|
||||
0x69A3,
|
||||
0x69AF,
|
||||
# AMDVega20GraphicsAccelerator
|
||||
0x66A0,
|
||||
0x66A1,
|
||||
0x66A2,
|
||||
0x66A3,
|
||||
0x66A7,
|
||||
0x66AF,
|
||||
# AMDVega10GraphicsAccelerator - AMD10000Controller
|
||||
0x6860, # Instinct MI25
|
||||
0x6861, # Pro WX 9100
|
||||
0x6862, # Pro SSG
|
||||
0x6863, # Vega Frontier
|
||||
0x6864, # Pro V340
|
||||
0x6867, # Pro Vega 56
|
||||
0x6868, # Pro WX 8100/8200
|
||||
0x6869, # Pro Vega 48
|
||||
0x686A, # Unknown
|
||||
0x686B, # Pro Vega 64X
|
||||
0x686C, # Instinct MI25
|
||||
0x686D, # Unknown
|
||||
0x686E, # Unknown
|
||||
0x686F, # Unknown
|
||||
0x687F, # RX Vega 56/64
|
||||
# AMDVega12GraphicsAccelerator - AMD10000Controller
|
||||
0x69A0, # Unknown
|
||||
0x69A1, # Unknown
|
||||
0x69A2, # Unknown
|
||||
0x69A3, # Unknown
|
||||
0x69AF, # Unknown
|
||||
# AMDVega20GraphicsAccelerator - AMD10000Controller
|
||||
0x66A0, # Instinct
|
||||
0x66A1, # Pro VII/Instinct MI50
|
||||
0x66A2, # Unknown
|
||||
0x66A3, # Pro Vega II/ Pro Vega II Duo
|
||||
0x66A7, # Unknown
|
||||
0x66AF, # VII
|
||||
]
|
||||
|
||||
navi_ids = [
|
||||
# AMDRadeonX6000
|
||||
# AMDNavi10GraphicsAccelerator
|
||||
0x7310,
|
||||
0x7312,
|
||||
0x7318,
|
||||
0x7319,
|
||||
0x731A,
|
||||
0x731B,
|
||||
0x731F,
|
||||
0x7310, # Pro W5700X
|
||||
0x7312, # Pro W5700
|
||||
0x7318, # Unknown
|
||||
0x7319, # Unknown
|
||||
0x731A, # Unknown
|
||||
0x731B, # Unknown
|
||||
0x731F, # RX 5600/5600 XT / 5700/5700 XT
|
||||
# AMDNavi12GraphicsAccelerator
|
||||
0x7360,
|
||||
0x7360, # 5600M
|
||||
# AMDNavi14GraphicsAccelerator
|
||||
0x7340,
|
||||
0x7341,
|
||||
0x7343,
|
||||
0x7347,
|
||||
0x734F,
|
||||
0x7340, # 5500/5500M / Pro 5500M
|
||||
0x7341, # Pro W5500
|
||||
0x7343, # Unknown
|
||||
0x7347, # Pro W5500M
|
||||
0x734F, # Pro W5300M
|
||||
# AMDNavi21GraphicsAccelerator
|
||||
0x73A2,
|
||||
0x73AB,
|
||||
0x73BF,
|
||||
0x73A2, # Pro W6900X
|
||||
0x73AB, # Pro W6800X/Pro W6800X Duo
|
||||
0x73BF, # 6800/6800 XT / 6900 XT
|
||||
# AMDNavi23GraphicsAccelerator
|
||||
0x73E3, # Pro W6600
|
||||
0x73FF, # 6600/6600 XT/6600M
|
||||
]
|
||||
|
||||
r500_ids = [
|
||||
0x7187, # X1300/X1550
|
||||
0x7146, # X1300/X1550
|
||||
0x71c5, # Mobile X1600
|
||||
0x7249, # X1900 XT
|
||||
]
|
||||
|
||||
terascale_1_ids = [
|
||||
0x9400,
|
||||
0x9401,
|
||||
@@ -688,87 +720,99 @@ class amd_ids:
|
||||
]
|
||||
|
||||
terascale_2_ids = [
|
||||
0x6738,
|
||||
0x6739,
|
||||
0x6720,
|
||||
0x6722,
|
||||
0x6768,
|
||||
0x6770,
|
||||
0x6779,
|
||||
0x6760,
|
||||
0x6761,
|
||||
0x68E0,
|
||||
0x6898,
|
||||
0x6899,
|
||||
0x68B8,
|
||||
0x68B0,
|
||||
0x68B1,
|
||||
0x68A0,
|
||||
0x68A1,
|
||||
0x6840,
|
||||
0x6841,
|
||||
0x68D8,
|
||||
0x68C0,
|
||||
0x68C1,
|
||||
0x68D9,
|
||||
0x6750,
|
||||
0x6758,
|
||||
0x6759,
|
||||
0x6740,
|
||||
0x6741,
|
||||
0x6745,
|
||||
0x6738, # HD 6870
|
||||
0x6739, # HD 6850
|
||||
0x6720, # HD 6970M/6990M
|
||||
0x6722, # Unknown
|
||||
0x6768, # Unknown
|
||||
0x6770, # HD 6450A/7450A
|
||||
0x6779, # HD 6450/7450/8450 / R5 230 OEM
|
||||
0x6760, # HD 6400M/7400M
|
||||
0x6761, # HD 6430M
|
||||
0x68E0, # HD 5430/5450/547
|
||||
0x6898, # HD 5870
|
||||
0x6899, # HD 5850
|
||||
0x68B8, # HD 5770
|
||||
0x68B0, # Unknown
|
||||
0x68B1, # Unknown
|
||||
0x68A0, # HD 5870 (mobile)
|
||||
0x68A1, # HD 5850 (mobile)
|
||||
0x6840, # HD 7500M/7600M
|
||||
0x6841, # HD 7550M/7570M/7650M
|
||||
0x68D8, # HD 5670/5690/5730
|
||||
0x68C0, # HD 5730 / 6570M
|
||||
0x68C1, # HD 5650/5750 / 6530M/6550M
|
||||
0x68D9, # HD 5550/5570/5630/6510/6610/7570
|
||||
0x6750, # HD 6650A/7650A
|
||||
0x6758, # HD 6670/7670
|
||||
0x6759, # HD 6570/7570/8550
|
||||
0x6740, # HD 6730M/6770M/7690M XT
|
||||
0x6741, # HD 6630M/6650M/6750M/7670M/7690M
|
||||
0x6745, # Unknown
|
||||
]
|
||||
|
||||
|
||||
class intel_ids:
|
||||
# https://dgpu-docs.intel.com/devices/hardware-table.html
|
||||
gma_950_ids = [
|
||||
0x2582, # 915G
|
||||
0x2592, # 915GM
|
||||
0x2772, # 945G
|
||||
0x27A2, # 945GM
|
||||
]
|
||||
|
||||
gma_x3100_ids = [
|
||||
0x2a02, # 965GM
|
||||
]
|
||||
|
||||
iron_ids = [
|
||||
# AppleIntelHDGraphics IDs
|
||||
0x0044,
|
||||
0x0046,
|
||||
0x0044, # Unknown
|
||||
0x0046, # HD Graphics
|
||||
]
|
||||
|
||||
sandy_ids = [
|
||||
# AppleIntelHD3000Graphics IDs
|
||||
# AppleIntelSNBGraphicsFB IDs
|
||||
0x0106,
|
||||
0x0601,
|
||||
0x0116,
|
||||
0x0102,
|
||||
0x0126,
|
||||
0x0106, # HD Graphics 2000
|
||||
0x0601, # Unknown
|
||||
0x0116, # HD Graphics 3000
|
||||
0x0102, # HD Graphics 2000
|
||||
0x0126, # HD Graphics 3000
|
||||
]
|
||||
|
||||
ivy_ids = [
|
||||
# AppleIntelHD4000Graphics IDs
|
||||
# AppleIntelFramebufferCapri IDs
|
||||
0x0152,
|
||||
0x0156,
|
||||
0x0162,
|
||||
0x0166,
|
||||
0x0152, # HD Graphics 2500
|
||||
0x0156, # HD Graphics 2500
|
||||
0x0162, # HD Graphics 4000
|
||||
0x0166, # HD Graphics 4000
|
||||
]
|
||||
|
||||
haswell_ids = [
|
||||
# AppleIntelHD5000Graphics IDs
|
||||
# AppleIntelFramebufferAzul IDs
|
||||
0x0D26,
|
||||
0x0A26,
|
||||
0x0A2E,
|
||||
0x0D22,
|
||||
0x0412,
|
||||
0x0D26, # Iris Pro Graphics P5200
|
||||
0x0A26, # HD Graphics 5000
|
||||
0x0A2E, # Iris Graphics 5100
|
||||
0x0D22, # Iris Pro Graphics 5200
|
||||
0x0412, # HD Graphics 4600
|
||||
]
|
||||
|
||||
broadwell_ids = [
|
||||
# AppleIntelBDWGraphicsFramebuffer IDs
|
||||
0x0BD1,
|
||||
0x0BD2,
|
||||
0x0BD3,
|
||||
0x1606,
|
||||
0x160E,
|
||||
0x1616,
|
||||
0x161E,
|
||||
0x1626,
|
||||
0x1622,
|
||||
0x1612,
|
||||
0x162B,
|
||||
0x0BD1, # Unknown
|
||||
0x0BD2, # Unknown
|
||||
0x0BD3, # Unknown
|
||||
0x1606, # HD Graphics
|
||||
0x160E, # HD Graphics
|
||||
0x1616, # HD Graphics 5500
|
||||
0x161E, # HD Graphics 5300
|
||||
0x1626, # HD Graphics 6000
|
||||
0x1622, # Iris Pro Graphics 6200
|
||||
0x1612, # HD Graphics 5600
|
||||
0x162B, # Iris Graphics 6100
|
||||
]
|
||||
|
||||
skylake_ids = [
|
||||
@@ -807,6 +851,12 @@ class intel_ids:
|
||||
0x3E98,
|
||||
]
|
||||
|
||||
comet_lake_ids = [
|
||||
0x9BC8, # UHD Graphics 630
|
||||
0x9BC5, # UHD Graphics 630
|
||||
0x9BC4, # UHD Graphics
|
||||
]
|
||||
|
||||
ice_lake_ids = [
|
||||
# AppleIntelICLLPGraphicsFramebuffer IDs
|
||||
0xFF05,
|
||||
@@ -823,9 +873,9 @@ class intel_ids:
|
||||
|
||||
AppleIntel8254XEthernet = [
|
||||
# AppleIntel8254XEthernet IDs
|
||||
0x1096,
|
||||
0x100F,
|
||||
0x105E,
|
||||
0x1096, # 80003ES2LAN
|
||||
0x100F, # 82545EM
|
||||
0x105E, # 82571EB/82571GB
|
||||
]
|
||||
|
||||
AppleIntelI210Ethernet = [
|
||||
@@ -844,12 +894,19 @@ class intel_ids:
|
||||
|
||||
Intel82574L = [
|
||||
# Intel82574L IDs
|
||||
0x104B,
|
||||
0x10F6,
|
||||
0x104B, # 82566DC
|
||||
0x10F6, # 82574L
|
||||
]
|
||||
|
||||
|
||||
class broadcom_ids:
|
||||
AppleBCMWLANBusInterfacePCIe = [
|
||||
0x43DC, # BCM4355
|
||||
0x4464, # BCM4364
|
||||
0x4488, # BCM4377b
|
||||
0x4425, # Unknown
|
||||
]
|
||||
|
||||
AirPortBrcmNIC = [
|
||||
# AirPortBrcmNIC IDs
|
||||
0x43BA, # BCM43602
|
||||
@@ -886,11 +943,11 @@ class broadcom_ids:
|
||||
|
||||
AppleBCM5701Ethernet = [
|
||||
# AppleBCM5701Ethernet IDs
|
||||
0x1684,
|
||||
0x16B0,
|
||||
0x16B4,
|
||||
0x1682,
|
||||
0x1686,
|
||||
0x1684, # BCM5764M
|
||||
0x16B0, # BCM57761
|
||||
0x16B4, # BCM57765
|
||||
0x1682, # BCM57762
|
||||
0x1686, # BCM57766
|
||||
]
|
||||
|
||||
|
||||
134
data/sip_data.py
Normal file
@@ -0,0 +1,134 @@
|
||||
from data import os_data
|
||||
class system_integrity_protection:
|
||||
csr_values = {
|
||||
# Source: macOS 11.4 (XNU's csr.h)
|
||||
# https://opensource.apple.com/source/xnu/xnu-7195.121.3/bsd/sys/csr.h.auto.html
|
||||
"CSR_ALLOW_UNTRUSTED_KEXTS": False, # 0x1 - Allows Unsigned Kexts - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_UNRESTRICTED_FS": False, # 0x2 - File System Access - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_TASK_FOR_PID": False, # 0x4 - Unrestricted task_for_pid() - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_KERNEL_DEBUGGER": False, # 0x8 - Allow Kernel Debugger - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_APPLE_INTERNAL": False, # 0x10 - Set AppleInternal Features - Introduced in El Capitan # noqa: E241
|
||||
# "CSR_ALLOW_DESTRUCTIVE_DTRACE": False, # 0x20 - Allow destructive DTrace - Deprecated # noqa: E241
|
||||
"CSR_ALLOW_UNRESTRICTED_DTRACE": False, # 0x20 - Unrestricted DTrace usage - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_UNRESTRICTED_NVRAM": False, # 0x40 - Unrestricted NVRAM write - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_DEVICE_CONFIGURATION": False, # 0x80 - Allow custom DeviceTree (iOS) - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_ANY_RECOVERY_OS": False, # 0x100 - Skip BaseSystem Verification - Introduced in Sierra # noqa: E241
|
||||
"CSR_ALLOW_UNAPPROVED_KEXTS": False, # 0x200 - Allow Unnotarized Kexts - Introduced in High Sierra # noqa: E241
|
||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE": False, # 0x400 - Override Executable Policy - Introduced in Mojave # noqa: E241
|
||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT": False, # 0x800 - Allow Root Volume Mounting - Introduced in Big Sur # noqa: E241
|
||||
}
|
||||
|
||||
csr_values_extended = {
|
||||
"CSR_ALLOW_UNTRUSTED_KEXTS": {
|
||||
"name": "CSR_ALLOW_UNTRUSTED_KEXTS",
|
||||
"description": "Allows Unsigned Kexts",
|
||||
"introduced": os_data.os_data.el_capitan.value,
|
||||
"introduced_friendly": "El Capitan",
|
||||
"value": 0x1,
|
||||
},
|
||||
"CSR_ALLOW_UNRESTRICTED_FS": {
|
||||
"name": "CSR_ALLOW_UNRESTRICTED_FS",
|
||||
"description": "File System Access",
|
||||
"introduced": os_data.os_data.el_capitan.value,
|
||||
"introduced_friendly": "El Capitan",
|
||||
"value": 0x2,
|
||||
},
|
||||
"CSR_ALLOW_TASK_FOR_PID": {
|
||||
"name": "CSR_ALLOW_TASK_FOR_PID",
|
||||
"description": "Unrestricted task_for_pid()",
|
||||
"introduced": os_data.os_data.el_capitan.value,
|
||||
"introduced_friendly": "El Capitan",
|
||||
"value": 0x4,
|
||||
},
|
||||
"CSR_ALLOW_KERNEL_DEBUGGER": {
|
||||
"name": "CSR_ALLOW_KERNEL_DEBUGGER",
|
||||
"description": "Allow Kernel Debugger",
|
||||
"introduced": os_data.os_data.el_capitan.value,
|
||||
"introduced_friendly": "El Capitan",
|
||||
"value": 0x8,
|
||||
},
|
||||
"CSR_ALLOW_APPLE_INTERNAL": {
|
||||
"name": "CSR_ALLOW_APPLE_INTERNAL",
|
||||
"description": "Set AppleInternal Features",
|
||||
"introduced": os_data.os_data.el_capitan.value,
|
||||
"introduced_friendly": "El Capitan",
|
||||
"value": 0x10,
|
||||
},
|
||||
# "CSR_ALLOW_DESTRUCTIVE_DTRACE": {
|
||||
# "name": "CSR_ALLOW_DESTRUCTIVE_DTRACE",
|
||||
# "description": "Allow destructive DTrace",
|
||||
# "deprecated": True,
|
||||
# "introduced": os_data.os_data.el_capitan.value,
|
||||
# "introduced_friendly": "El Capitan",
|
||||
# "value": 0x20,
|
||||
# },
|
||||
"CSR_ALLOW_UNRESTRICTED_DTRACE": {
|
||||
"name": "CSR_ALLOW_UNRESTRICTED_DTRACE",
|
||||
"description": "Unrestricted DTrace usage",
|
||||
"introduced": os_data.os_data.el_capitan.value,
|
||||
"introduced_friendly": "El Capitan",
|
||||
"value": 0x20,
|
||||
},
|
||||
"CSR_ALLOW_UNRESTRICTED_NVRAM": {
|
||||
"name": "CSR_ALLOW_UNRESTRICTED_NVRAM",
|
||||
"description": "Unrestricted NVRAM write",
|
||||
"introduced": os_data.os_data.el_capitan.value,
|
||||
"introduced_friendly": "El Capitan",
|
||||
"value": 0x40,
|
||||
},
|
||||
"CSR_ALLOW_DEVICE_CONFIGURATION": {
|
||||
"name": "CSR_ALLOW_DEVICE_CONFIGURATION",
|
||||
"description": "Allow custom DeviceTree (iOS)",
|
||||
"introduced": os_data.os_data.el_capitan.value,
|
||||
"introduced_friendly": "El Capitan",
|
||||
"value": 0x80,
|
||||
},
|
||||
"CSR_ALLOW_ANY_RECOVERY_OS": {
|
||||
"name": "CSR_ALLOW_ANY_RECOVERY_OS",
|
||||
"description": "Skip BaseSystem Verification",
|
||||
"introduced": os_data.os_data.sierra.value,
|
||||
"introduced_friendly": "Sierra",
|
||||
"value": 0x100,
|
||||
},
|
||||
"CSR_ALLOW_UNAPPROVED_KEXTS": {
|
||||
"name": "CSR_ALLOW_UNAPPROVED_KEXTS",
|
||||
"description": "Allow Unnotarized Kexts",
|
||||
"introduced": os_data.os_data.high_sierra.value,
|
||||
"introduced_friendly": "High Sierra",
|
||||
"value": 0x200,
|
||||
},
|
||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE": {
|
||||
"name": "CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE",
|
||||
"description": "Override Executable Policy",
|
||||
"introduced": os_data.os_data.mojave.value,
|
||||
"introduced_friendly": "Mojave",
|
||||
"value": 0x400,
|
||||
},
|
||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT": {
|
||||
"name": "CSR_ALLOW_UNAUTHENTICATED_ROOT",
|
||||
"description": "Allow Root Volume Mounting",
|
||||
"introduced": os_data.os_data.big_sur.value,
|
||||
"introduced_friendly": "Big Sur",
|
||||
"value": 0x800,
|
||||
},
|
||||
}
|
||||
|
||||
root_patch_sip_mojave = [
|
||||
# Variables required to root patch in Mojave and Catalina
|
||||
"CSR_ALLOW_UNTRUSTED_KEXTS", # 0x1
|
||||
"CSR_ALLOW_UNRESTRICTED_FS", # 0x2
|
||||
"CSR_ALLOW_UNAPPROVED_KEXTS", # 0x200
|
||||
]
|
||||
|
||||
root_patch_sip_big_sur = [
|
||||
# Variables required to root patch in Big Sur and Monterey
|
||||
"CSR_ALLOW_UNTRUSTED_KEXTS", # 0x1
|
||||
"CSR_ALLOW_UNRESTRICTED_FS", # 0x2 - Required to mount and edit root volume, as well as load modded platform binaries
|
||||
"CSR_ALLOW_UNAPPROVED_KEXTS", # 0x200
|
||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT", # 0x800 - Required to avoid KC mismatch kernel panic
|
||||
]
|
||||
|
||||
# CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE (introduced with Mojave):
|
||||
# This bit is quite strange and was originally assumed to be required for modded platform binaries
|
||||
# However after extensive testing, this doesn't seem true. In addition, this bit is never flipped via
|
||||
# 'csrutil disable'. Usage within the kernel is not present.
|
||||
2852
data/smbios_data.py
Normal file
@@ -1,4 +1,4 @@
|
||||
# Lists Root patches used by SysPatch.py
|
||||
# Lists Root patches used by sys_patch.py
|
||||
# Copyright (C) 2020-2021, Dhinak G, Mykola Grymalyuk
|
||||
DeleteNvidiaAccel11 = [
|
||||
"AMDRadeonX4000.kext",
|
||||
@@ -93,6 +93,10 @@ AddNvidiaKeplerAccel11 = [
|
||||
"NVDAStartup.kext",
|
||||
]
|
||||
|
||||
AddNvidiaTeslaAccel12 = [
|
||||
"NVDAStartup.kext",
|
||||
]
|
||||
|
||||
AddAMDAccel11 = [
|
||||
"AMD2400Controller.kext",
|
||||
"AMD2600Controller.kext",
|
||||
@@ -155,10 +159,18 @@ AddIntelGen2Accel = [
|
||||
"AppleIntelHD3000GraphicsGA.plugin",
|
||||
"AppleIntelHD3000GraphicsGLDriver.bundle",
|
||||
"AppleIntelHD3000GraphicsVADriver.bundle",
|
||||
"AppleIntelSNBGraphicsFB.kext",
|
||||
# "AppleIntelSNBGraphicsFB.kext",
|
||||
"AppleIntelSNBVA.bundle",
|
||||
]
|
||||
|
||||
AddIntelGen2AccelStock = [
|
||||
"AppleIntelSNBGraphicsFB-Clean.kext",
|
||||
]
|
||||
|
||||
AddIntelGen2AccelPatched = [
|
||||
"AppleIntelSNBGraphicsFB.kext",
|
||||
]
|
||||
|
||||
AddIntelGen3Accel = [
|
||||
"AppleIntelFramebufferCapri.kext",
|
||||
"AppleIntelHD4000Graphics.kext",
|
||||
@@ -173,6 +185,16 @@ AddGeneralAccel = ["IOAcceleratorFamily2.kext", "IOSurface.kext"]
|
||||
|
||||
DeleteBrightness = ["AppleGraphicsControl.kext/Contents/PlugIns/AGDCBacklightControl.kext"]
|
||||
|
||||
DeleteDemux = [
|
||||
"AppleGraphicsControl.kext/Contents/PlugIns/AGDCBacklightControl.kext",
|
||||
"AppleGraphicsControl.kext/Contents/PlugIns/AppleMuxControl.kext",
|
||||
"AppleBacklight.kext",
|
||||
]
|
||||
|
||||
AddDemux = [
|
||||
"AppleMuxControl.kext",
|
||||
]
|
||||
|
||||
AddBrightness = [
|
||||
"AppleBacklight.kext",
|
||||
"AppleBacklightExpert.kext",
|
||||
@@ -183,6 +205,10 @@ AddVolumeControl = [
|
||||
"IOAudioFamily.kext",
|
||||
]
|
||||
|
||||
AddVolumeControlv2 = [
|
||||
"AppleHDA.kext",
|
||||
]
|
||||
|
||||
DeleteVolumeControl = [
|
||||
"AppleVirtIO.kext",
|
||||
"AppleVirtualGraphics.kext",
|
||||
@@ -134,7 +134,6 @@ module.exports = {
|
||||
'TERMS',
|
||||
'HOW',
|
||||
'PATCHEXPLAIN',
|
||||
'CLI',
|
||||
]
|
||||
|
||||
},
|
||||
|
||||
@@ -9,8 +9,10 @@
|
||||
* [Wake from sleep heavily distorted on AMD/ATI in macOS 11.3 and newer](#wake-from-sleep-heavily-distorted-on-amd-ati-in-macos-11-3-and-newer)
|
||||
* [Unable to switch GPUs on 2011 15" and 17" MacBook Pros](#unable-to-switch-gpus-on-2011-15-and-17-macbook-pros)
|
||||
* [Erratic Colours on ATI TeraScale 2 GPUs (HD5000/HD6000)](#erratic-colours-on-ati-terascale-2-gpus-hd5000-hd6000)
|
||||
* [Unable to allow Safari Extensions](#unable-to-allow-Safari-Extensions)
|
||||
* [Cannot Login on 2011 15" and 17" MacBook Pros](#cannot-login-on-2011-15-and-17-macbook-pros)
|
||||
|
||||
The below page is for users experiencing issues with their overall usage of macOS Big Sur and the Legacy Graphics Acceleration patches. Note that the following GPUs currently do not have acceleration support in Big Sur:
|
||||
The below page is for users experiencing issues with their overall usage of macOS Big Sur / macOS Monterey and the Legacy Graphics Acceleration patches. Note that the following GPUs currently do not have acceleration support in Big Sur / Monterey:
|
||||
|
||||
* Intel 3rd and 4th Gen - GMA series
|
||||
|
||||
@@ -33,22 +35,6 @@ For those unfamiliar with what is considered a non-Metal GPU, see below chart:
|
||||
|
||||
:::
|
||||
|
||||
Additionally we currently do not have macOS Monterey acceleration patches for non-Metal Macs. We recommend users either upgrade their Macs with a Metal GPU or remain on Big Sur until further development
|
||||
|
||||
::: details Why there's no non-Metal patches for Monterey
|
||||
|
||||
With macOS Monterey, please understand our current legacy acceleration patch sets are no longer functional. As of right now, only basic framebuffer and brightness control may be achieved, however proper animations and hardware acceleration is not available.
|
||||
|
||||
This is due to numerous changes with Skylight and other macOS frameworks relying more and more on Metal functions and thus making it even more difficult to re-add legacy OpenGL support.
|
||||
|
||||
> When can we expect acceleration support
|
||||
|
||||
For the time being, please understand we cannot predict when there will be patch sets ready. Note that it took over 300 days from Big Sur's unveiling to achieve public acceleration for non-Metal GPUs. And with TeraScale 2 acceleration, this took almost 3 years to achieve public acceleration.
|
||||
|
||||
So please be patient as developers are hard at work, however please expect no acceleration support in Monterey until next year at the minimum if not even later.
|
||||
|
||||
:::
|
||||
|
||||
## Downloading older non-Metal Apps
|
||||
|
||||
Many Apple apps now have direct reliance on Metal for proper functioning, however legacy builds of these apps still do work in Big Sur. See below for archive of many apps such as Pages, iMovie, GarageBand.
|
||||
@@ -104,7 +90,7 @@ Due to the Metal Backend, the enhanced color output of these apps seems to heavi
|
||||
|
||||
## Cannot press "Done" when editing a Sidebar Widget
|
||||
|
||||
To work around this, simply press Tab to hover over and press spacebar to simulate a click.
|
||||
Workaround: Press some combination of Tab, or Tab and then Shift-Tab, or just Shift-Tab until the "Done" button is highlighted. Then press spacebar to activate the button, the same as in any other dialog with a highlighted button halo.
|
||||
|
||||
## Wake from sleep heavily distorted on AMD/ATI in macOS 11.3 and newer
|
||||
|
||||
@@ -135,4 +121,33 @@ Due to an odd bug with ATI's TeraScale 2 GPUs, many users will experience errati
|
||||
Applications that can set color depth are:
|
||||
|
||||
* [SwitchResX](https://www.madrau.com)
|
||||
* [ResXtreme](https://macdownload.informer.com/resxtreme/)
|
||||
* [ResXtreme](https://macdownload.informer.com/resxtreme/)
|
||||
|
||||
## Unable to allow Safari Extensions
|
||||
|
||||
Due to an bug on the legacy acceleration patches, users won't be able to enable Safari Extensions
|
||||
|
||||
This tool can be used to work-around this issue:
|
||||
|
||||
* [Non-Metal Safari Extensions](https://github.com/moosethegoose2213/Non-Metal-Safari-Extensions/)
|
||||
|
||||
## Cannot Login on 2011 15" and 17" MacBook Pros
|
||||
|
||||
By default OpenCore Legacy Patcher will assume MacBookPro8,2/3 have a faulty dGPU and disable acceleration. This is the safest option for most users as enabling dGPU acceleration on faulty Macs will result in failed booting.
|
||||
|
||||
However if your machine does not have the dGPU disabled via NVRAM, you'll expereince a login loop. To work around this is quite simple:
|
||||
|
||||
1. Boot macOS in Single User Mode
|
||||
* Press Cmd+S in OpenCore's menu when you turn the Mac on
|
||||
2. When command line prompt appears, enter the dGPU disabler argument (at the bottom)
|
||||
3. Reboot and patched macOS should work normally
|
||||
4. If you still want to use the dGPU, run OCLP's TUI app and enable TS2 Acceleration. Then root patch your Mac again
|
||||
* `Patcher Settings -> Misc Settings -> TeraScale 2 Accel`
|
||||
5. Either Reset NVRAM or set `gpu-power-prefs` to zeros to re-enable the dGPU
|
||||
|
||||
```sh
|
||||
# Forces GMUX to use iGPU only (ie. disable dGPU)
|
||||
nvram FA4CE28D-B62F-4C99-9CC3-6815686E30F9:gpu-power-prefs=%01%00%00%00
|
||||
# To reset, simply write zeros or NVRAM Reset your Mac
|
||||
nvram FA4CE28D-B62F-4C99-9CC3-6815686E30F9:gpu-power-prefs=%00%00%00%00
|
||||
```
|
||||
|
||||
@@ -7,11 +7,11 @@ With OpenCore Legacy Patcher we recommend users go through the below table to un
|
||||
| Features | [OpenCore Legacy Patcher](https://github.com/dortania/OpenCore-Legacy-Patcher/) | [Patched Sur](https://github.com/BenSova/Patched-Sur) |
|
||||
| :--- | :--- | :--- |
|
||||
| Over The Air Updates | <span style="color:#30BCD5">Native System Preferences, additionally supports Deltas (~2GB) for Metal GPUs</span> | <span style="color:red">Inside Patcher Sur app (~12GB), only available when InstallAssistants release.</span> InstallAssistants generally available same day as System Preference updates, however developer betas will lag behind by 1 day compared to OTAs |
|
||||
| FileVault | <span style="color:#30BCD5">Fully supported on all machines</span> | <span style="color:red">Not supported</span> |
|
||||
| FileVault | <span style="color:#30BCD5">Fully supported on all machines</span>. Note unsupported on APFS ROM Patched Macs, revert to stock firmware to resolve | <span style="color:red">Not supported</span> |
|
||||
| System Integrity Protection | <span style="color:#30BCD5">Fully enabled on Metal GPUs</span> | <span style="color:red">Disabled for early 2013 and older during the patching process and first boot afterwards, otherwise enabled</span> |
|
||||
| APFS Snapshots | <span style="color:#30BCD5">Fully enabled</span> | <span style="color:red">Disabled</span> |
|
||||
| User facing | <span style="color:red">TUI interface</span> | <span style="color:#30BCD5">SwiftUI interface, more user friendly</span> |
|
||||
| Supported OSes | <span style="color:#30BCD5">10.7-11</span> | <span style="color:red">10.15-11</span> |
|
||||
| Supported OSes | <span style="color:#30BCD5">10.7-12</span> | <span style="color:red">10.15-11</span> |
|
||||
| Firmware Patching | <span style="color:#30BCD5">None required</span> | <span style="color:red">Required for models without native APFS support</span> |
|
||||
| BootCamp Switching | <span style="color:red">Requires EFI Conversion for Start Disk support, otherwise still supported</span> | <span style="color:#30BCD5">Native</span> |
|
||||
| Non-Metal GPU Acceleration | <span style="color:#30BCD5">In active development</span>, see Acceleration Progress Tracker: [Link](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108) | <span style="color:red">Currently not researching</span> |
|
||||
|
||||
@@ -18,4 +18,8 @@ After plenty of verbose booting, you will reach the installer screen! From there
|
||||
|
||||
* [OpenCore Legacy Patcher Boot Process](https://www.youtube.com/watch?v=AN3zsbQV_n4)
|
||||
|
||||
**MacBookPro11,3 Note**: When booting macOS Monterey, you'll need to boot into safe mode if acceleration patches are not installed yet. [Otherwise you'll hit a black screen due to missing Nvidia drivers.](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/522)
|
||||
|
||||
* Safe Mode can be started by holding Shift+Enter when selecting macOS Monterey in OCLP's Boot Menu.
|
||||
|
||||
# Once installed and booting, head to [Post-Installation](./POST-INSTALL.md)
|
||||
|
||||
@@ -2,35 +2,27 @@
|
||||
|
||||
Now that we have a macOS installer, lets now build our OpenCore configuration!
|
||||
|
||||
First Download the latest release:
|
||||
If you haven't downloaded OpenCore Patcher yet, do so now:
|
||||
|
||||
* [OpenCore Legacy Patcher Releases](https://github.com/dortania/Opencore-Legacy-Patcher/releases)
|
||||
|
||||
Next, run the `OpenCore-Patcher.app`:
|
||||
|
||||

|
||||

|
||||
|
||||
From here you have a couple important options:
|
||||
Here we'll select Build and Install OpenCore and start building:
|
||||
|
||||
* Build OpenCore
|
||||
* Install OpenCore to USB/internal drive
|
||||
* Change Model
|
||||
* Patcher Settings
|
||||
|
||||
If you're patching for a different machine than you're running, please select "Change Model" and enter the updated SMBIOS. For more advanced users, you may also tweak the patcher's build settings via "Patcher Settings"
|
||||
|
||||
Now lets enter "Build OpenCore":
|
||||
|
||||

|
||||
|
||||
The process should be quite quick to build, once finished you'll be plopped back to the main menu.
|
||||
|
||||
Next lets run `Install OpenCore to USB/internal drive`:
|
||||
|
||||
| Select Drive | Select EFI/FAT32 Partition |
|
||||
| Start Building | Finished Building |
|
||||
| :--- | :--- |
|
||||
|  |  |
|
||||
|  |  |
|
||||
|
||||
Once it finishes building, you'll want to select the Install OpenCore button:
|
||||
|
||||
* If you created a macOS USB manually and don't see it listed, make sure it's either formatted as GUID/GPT or has a FAT32 partition for OpenCore to sit on
|
||||
|
||||
|
||||
| Select Drive | Select Partition |
|
||||
| :--- | :--- |
|
||||
|  |  |
|
||||
|
||||
* If you have issues, please ensure you install OpenCore onto a FAT32 partition to ensure your Mac is able to boot it. You will need to format your drive as GUID/GPT in Disk Utility
|
||||
|
||||
# Once finished, head to [Booting OpenCore and macOS](./BOOT.md)
|
||||
|
||||
41
docs/CLI.md
@@ -1,41 +0,0 @@
|
||||
# Command Line Args
|
||||
|
||||
With OpenCore Legacy Patcher, we include an extra binary called [OCLP-CLI](https://github.com/dortania/OpenCore-Legacy-Patcher/releases/). The purpose of this binary is to easily run our OpenCore build process for other programs to hook onto. Below is documentation on currently supported arguments.
|
||||
|
||||
### Build Arguments
|
||||
|
||||
* **--build**: Build OpenCore
|
||||
* **--model xxxx**: override default model detection
|
||||
* ex. **--model iMac11,2**
|
||||
* **--metal_gpu xxxx**: override default GPU detection (ie. Nvidia, AMD)
|
||||
* **--metal_gpu Nvidia**
|
||||
* **--smbios_spoof xxxx**: set spoofing mode, defaults to Minimal if no arg provided (ie. Minimal, Moderate, Advanced)
|
||||
* ex. **--smbios_spoof Moderate**
|
||||
* **--verbose**: enable verbose booting
|
||||
* **--debug_oc**: enable debug OpenCore
|
||||
* **--debug_kext**: enable debug kexts
|
||||
* **--skip_wifi**: skip wifi patch
|
||||
* **--hide_picker**: hide OpenCore's picker
|
||||
* **--disable_sip**: disables SIP
|
||||
* **--disable_smb**: disables SecureBootModel
|
||||
* **--vault**: enable OpenCore vaulting
|
||||
|
||||
Example usage:
|
||||
|
||||
```bash
|
||||
./OCLP-CLI --build --verbose --debug_oc --debug_kext --model iMac11,2
|
||||
```
|
||||
|
||||
Note, when building OpenCore the output folder will be next to the OCLP binary as OpenCore-RELEASE or OpenCore-DEBUG folder.
|
||||
|
||||
### Patch System Arguments
|
||||
|
||||
* **--patch_sys_vol**: patches root volume with detected hardware
|
||||
|
||||
Example usage:
|
||||
|
||||
```bash
|
||||
sudo ./OCLP-CLI --patch_sys_vol
|
||||
```
|
||||
|
||||
Note, root volume patching needs to be run as sudo
|
||||
@@ -27,9 +27,16 @@ Current hardware we own:
|
||||
|
||||
| Model | CPU | GPU | Owner | Notes |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| MacBook5,1 | Penryn | 9400M | Mykola | N/A |
|
||||
| MacBook7,1 | Penryn | GT320M | Dhinak | N/A |
|
||||
| MacBook7,1 | Penryn | GT320M | Mykola | N/A |
|
||||
| MacBookPro5,3 | Penryn | 9400M + 9600M | Dhinak | Display's partially broken |
|
||||
| MacBookPro8,2 | Sandy Bridge | HD3000 | Mykola | Dead dGPU |
|
||||
| MacPro3,1 | Penryn | GTX 680 | Dhinak | N/A |
|
||||
| Macmini4,1 | Penryn | GT320M | Dhinak | N/A |
|
||||
| iMac11,2 | Clarksdale | HD4670 | Mykola | N/A |
|
||||
| MacPro3,1 | Penryn | HD5770, RX570, GT710 | Mykola | N/A |
|
||||
|
||||
Dead Hardware:
|
||||
| Model | CPU | GPU | Owner | Notes |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| MacPro3,1 | Penryn | HD5770, RX570, GT710 | Mykola | No longer powers on |
|
||||
| MacPro4,1 | Westmere | HD7950 | Mykola | Dead Northbridge on CPU Tray |
|
||||
|
||||
@@ -7,53 +7,46 @@ This doc is centered around downloading and writing the macOS installer to a USB
|
||||
|
||||
* Note: 16GB+ USB will be required for the installer
|
||||
|
||||
## Downloading
|
||||
## Creating the installer
|
||||
|
||||
The simplest way to download macOS installs would be to use installinstallmacos:
|
||||
With OpenCore Legacy Patcher, our new GUI includes a download menu for macOS installers. So to start off, you'll want to grab our app:
|
||||
|
||||
```sh
|
||||
[ ! -d ~/macOS-installer/ ] && mkdir ~/macOS-installer; cd ~/macOS-installer; [ ! -f ~/macOS-installer/installinstallmacos.py ] && curl -O https://raw.githubusercontent.com/munki/macadmin-scripts/main/installinstallmacos.py ; sudo python installinstallmacos.py
|
||||
```
|
||||
* [OpenCore Legacy Patcher Release Apps](https://github.com/dortania/OpenCore-Legacy-Patcher/releases)
|
||||
|
||||
* Note: On El Capitan (10.11) and older, you'll need to specify a catalog at the end of the command:
|
||||
For this guide, we'll be using the standard OpenCore-Patcher (GUI).
|
||||
|
||||
```
|
||||
--catalogurl https://swscan.apple.com/content/catalogs/others/index-11-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
|
||||
```
|
||||
Once downloaded, open the app and you should be greeted with this menu:
|
||||
|
||||

|
||||

|
||||
|
||||
As you can see, we get a nice list of macOS installers. If you need a particular versions of macOS, you can select it by typing the number next to it. For this example we'll choose 10:
|
||||
First we'll want to select the "Create macOS Installer" button. This will present you with 2 options:
|
||||
|
||||

|
||||

|
||||
|
||||
This is going to take a while as we're downloading the entire 12GB+ macOS installer.
|
||||
For this example, we'll assume you'll need an installer. Selecting this option will download Apple's Installer Catalogs and build a list for you to choose:
|
||||
|
||||
Once finished, you'll find in your `~/macOS-Installer/` folder a DMG containing the macOS Installer, called `Install_macOS_11.1-20C69.dmg` for example. Mount it and you'll find the installer application.
|
||||
|
||||
* Note: We recommend to move the Install macOS.app into the `/Applications` folder, as we'll be executing commands from there.
|
||||
* Note 2: Running Cmd+Shift+G in Finder will allow you to easily jump to `~/macOS-installer`
|
||||
| Downloading | Listed Installers |
|
||||
| :--- | :--- |
|
||||
|  |  |
|
||||
|
||||

|
||||
Since the patcher officially supports Big Sur and newer for patching, only those entires will be showen. For ourselves, we'll select 12.1 as that's the latest public release at the time of writing. This will download and install the macOS installer to your applications folder.
|
||||
|
||||

|
||||
| Downloading the Installer | Requesting to install | Finished Installing |
|
||||
| :--- | :--- | :--- |
|
||||
|  |  |  |
|
||||
|
||||
## Building
|
||||
Once finished, you can proceed to write the installer onto a USB drive.
|
||||
|
||||
Now we'll be formatting the USB to prep for both the macOS installer and OpenCore. We'll want to use macOS Extended (HFS+) with a GUID partition map(Using GUID is important for the patcher). This will create two partitions: the main `MyVolume` and a second called `EFI` which is used as a boot partition where your Mac's firmware will check for boot files. `EFI` partitions will be hidden by default, so don't worry if you don't immediately see them.
|
||||
* Note: The entire USB drive will be formatted
|
||||
|
||||
* Note: By default, Disk Utility only shows partitions – press Cmd/Win+2 to show all devices (alternatively you can press the View button)
|
||||
| Select Downloaded Installer | Select disk to format |
|
||||
| :--- | :--- |
|
||||
|  |  |
|
||||
|
||||

|
||||
|
||||
Next run the `createinstallmedia` command provided by [Apple](https://support.apple.com/en-us/HT201372). Note that the command is made for USB's formatted with the name `MyVolume`:
|
||||
|
||||
```sh
|
||||
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
|
||||
```
|
||||
|
||||
* Note: You can also replace the `createinstallmedia` path with that of where your installer's located (same idea with the drive name).
|
||||
|
||||

|
||||
Now the patcher will start the installer flashing!
|
||||
|
||||
| Flashing | Success Prompt | Finished Flashing |
|
||||
| :--- | :--- |
|
||||
|  |  |  |
|
||||
# Once finished, head to [Building and installing OpenCore](./BUILD.md)
|
||||
|
||||
@@ -16,6 +16,8 @@ This patcher is made of multiple external applications from different people and
|
||||
* All rights reserved to respective authors
|
||||
* [AAAMouSSE](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/) - Syncretic
|
||||
* [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707) - Syncretic
|
||||
* [SurPlus](https://github.com/reenigneorcim/SurPlus) - Syncretic
|
||||
* [VMM Patch Set](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/4a8f61a01da72b38a4b2250386cc4b497a31a839/payloads/Config/config.plist#L1222-L1281) - parrotgeek1
|
||||
* Apple Binaries - Apple Inc.
|
||||
|
||||
Remaining files within OpenCore Legacy Patcher are copyrighted 2020-2021 Mykola Grymalyuk & Dhinak G. For integration into other projects, please request written permission.
|
||||
Remaining files within OpenCore Legacy Patcher are copyrighted 2020-2022 Mykola Grymalyuk & Dhinak G. For integration into other projects, please request written permission.
|
||||
|
||||
@@ -20,10 +20,10 @@ Regarding OS support, see below:
|
||||
|
||||
| Support Entry | Supported OSes | Description | Comment |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| HostOS | macOS 10.9 - macOS 11 | Refers to OSes where running OpenCore-Patcher.app are supported | Supports 10.7+ if [Python 3.9 or higher](https://www.python.org/downloads/) is manually installed, simply run the `OpenCore-Patcher.command` located in the repo |
|
||||
| TargetOS | macOS 11 | Refers to OSes that can be patched to run with OpenCore | May support 10.4 and newer (in a potentially broken state). No support provided. |
|
||||
| HostOS | macOS 10.9 - macOS 12 | Refers to OSes where running OpenCore-Patcher.app are supported | Supports 10.7+ if [Python 3.9 or higher](https://www.python.org/downloads/) is manually installed, simply run the `OpenCore-Patcher.command` located in the repo |
|
||||
| TargetOS | macOS 11 - macOS 12 | Refers to OSes that can be patched to run with OpenCore | May support 10.4 and newer (in a potentially broken state). No support provided. |
|
||||
|
||||
* macOS Monterey support is currently in beta and is not recommended for everyday users. The below page is meant to represent macOS Big Sur support and may not correctly reflect Monterey's support on each model
|
||||
* macOS Monterey support is currently in beta and is not recommended for everyday users.
|
||||
* Recommend looking at the [macOS Monterey Support page](./MONTEREY-DROP.md) for a better idea of Monterey's current status
|
||||
|
||||
### MacBook
|
||||
@@ -35,7 +35,7 @@ Regarding OS support, see below:
|
||||
| MacBook3,1 | Late 2007 | ^^ | ^^ |
|
||||
| MacBook4,1 | Early 2008 | <span style="color:#30BCD5"> YES </span> | - No GPU Acceleration in Mavericks and newer<br/>- No Keyboard and Trackpad<br/>- No USB |
|
||||
| MacBook5,1 | Late 2008 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/> |
|
||||
| MacBook5,2 | Early 2009 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/>- Trackpad is recognized as mouse<br/>- Brightness control partially supported |
|
||||
| MacBook5,2 | Early 2009 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/>- Trackpad is recognized as mouse |
|
||||
| MacBook6,1 | Late 2009 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/> |
|
||||
| MacBook7,1 | Mid-2010 | ^^ | ^^ |
|
||||
| MacBook8,1 | Mid-2015 | ^^ | <span style="color:green"> Everything is supported</span> |
|
||||
@@ -107,8 +107,8 @@ Regarding OS support, see below:
|
||||
| iMac5,1 | Late 2006 | ^^ | 32-Bit Firmware limitation |
|
||||
| iMac5,2 | ^^ | ^^ | ^^ |
|
||||
| iMac6,1 | ^^ | ^^ | ^^ |
|
||||
| iMac7,1 | Mid-2007 | <span style="color:#30BCD5"> YES </span> | - Requires an [SSE4.1 CPU Upgrade](https://lowendmac.com/2018/penryn-t9300-9500-cpu-upgrades-for-the-2007-imac/)<br/>- GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/>- Brightness control partially supported on Nvidia GPUs, AMD unsupported<br/>- Stock Bluetooth 2.0 card non-functional |
|
||||
| iMac8,1 | Early 2008 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)))<br/>- Brightness control partially supported on Nvidia GPUs, AMD unsupported |
|
||||
| iMac7,1 | Mid-2007 | <span style="color:#30BCD5"> YES </span> | - Requires an [SSE4.1 CPU Upgrade](https://lowendmac.com/2018/penryn-t9300-9500-cpu-upgrades-for-the-2007-imac/)<br/>- GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/>- Stock Bluetooth 2.0 card non-functional |
|
||||
| iMac8,1 | Early 2008 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))) |
|
||||
| iMac9,1 | Early 2009 | ^^ | ^^ |
|
||||
| iMac10,1 | Late 2009 | ^^ | - GPU is socketed, [recommend upgrading to Metal GPU](https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/?post=17425857#post-17425857) <br/>- GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)) |
|
||||
| iMac11,1 | ^^ | ^^ | ^^ |
|
||||
@@ -123,7 +123,7 @@ Regarding OS support, see below:
|
||||
| iMac14,2 | ^^ | ^^ | ^^ |
|
||||
| iMac14,3 | ^^ | ^^ | ^^ |
|
||||
| iMac14,4 | Mid-2014 | ^^ | ^^ |
|
||||
| iMac15,1 | Late 2014, Mid-2015 | ^^ | [Display will output to 4k instead of 5k](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/359) |
|
||||
| iMac15,1 | Late 2014, Mid-2015 | ^^ | ^^ |
|
||||
|
||||
* For iMac10,1 through iMac12,x, we highly recommend users upgrade the GPU to a Metal supported model. See here for more information: [iMac late 2009 to mid-2011 Graphics Card Upgrade Guide](https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/?post=17425857#post-17425857)
|
||||
|
||||
|
||||
@@ -15,11 +15,20 @@ With Monterey, Apple continues their their somewhat ruthless march of dropping I
|
||||
* MacBookPro11,2
|
||||
* MacBookPro11,3
|
||||
|
||||
All of these models now have support in OpenCore Legacy Patcher. Note iMac15,1 does have [an unfortunate firmware bug preventing resolutions above 4k](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/359) with OpenCore Legacy Patcher
|
||||
All of these models now have support in OpenCore Legacy Patcher.
|
||||
|
||||
## Current Hardware Drawbacks:
|
||||
## Previously Broken Hardware
|
||||
|
||||
### macOS 12.0 Beta 4 issue on 2012 to early 2013 machines
|
||||
::: details iMac15,1 5K Display Output Issue (Resolved in 0.3.2 and newer)
|
||||
|
||||
* Documentation:
|
||||
* [5K iMac and UEFI: Fixing the dreaded output limitation](https://khronokernel.github.io/macos/2021/12/08/5K-UEFI.html)
|
||||
* Associated Github Issue:
|
||||
* [5k Output issues on iMac15,1 (27" 5k iMac - 2014) #359](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/359)
|
||||
|
||||
:::
|
||||
|
||||
::: details macOS 12.0 Beta 4 issue on 2012 to early 2013 machines (Resolved in 0.2.5 and newer)
|
||||
|
||||
Currently in macOS 12.0 Beta 4, many Ivy Bridge Macs have experienced Bluetooth issues relating to their BCM20702 chipset. Currently the exact issue is unknown however is assumed to be a bug on Apple's end. Recommend downgrading to macOS 12.0 Beta 3 till resolved:
|
||||
|
||||
@@ -32,7 +41,7 @@ A temporary fix is to restart the BlueTool and bluetoothd process with each boot
|
||||
sudo killall -9 BlueTool bluetoothd
|
||||
```
|
||||
|
||||
## Previously Broken Hardware
|
||||
:::
|
||||
|
||||
::: details Wireless Support Dropped (Resolved in 0.2.5 and newer)
|
||||
|
||||
@@ -102,6 +111,19 @@ By default these machines require root volume patches to gain graphics accelerat
|
||||
|
||||
:::
|
||||
|
||||
::: details NVIDIA Kepler dGPU Acceleration (Resolved in 0.2.5 and newer)
|
||||
|
||||
* NVIDIA Kepler dGPUs lost support
|
||||
|
||||
By default these machines require root volume patches to gain graphics acceleration in Monterey. OpenCore Legacy Patcher supports readding support however SIP can no longer be enabled due to root patching:
|
||||
|
||||
* MacBookPro9,1
|
||||
* MacBookPro10,1
|
||||
* iMac13,x
|
||||
* iMac14,x
|
||||
|
||||
:::
|
||||
|
||||
::: details Non-Metal Acceleration (Resolved in 0.2.5 and newer)
|
||||
|
||||
* Non-Metal GPUs no longer have working acceleration patches:
|
||||
|
||||
@@ -19,7 +19,7 @@ Below is a run down of the main logic OpenCore Legacy Patcher uses to gain nativ
|
||||
* EHCx and XHC1 Patches
|
||||
* Reason: Required for proper USB operation
|
||||
* Logic: Avoids USB maps of newer models attaching and breaking USB port functionality
|
||||
* Models: All models require
|
||||
* Models: All models require when spoofing with Moderate or Advanced SMBIOS
|
||||
|
||||
### Booter -> Quirks
|
||||
|
||||
@@ -53,11 +53,11 @@ Below is a run down of the main logic OpenCore Legacy Patcher uses to gain nativ
|
||||
* SMC Patch
|
||||
* Reason: Required to avoid SMC Firmware updates
|
||||
* Logic: Patches out `smc-version` in AppleSMC.kext, requires SMC-Spoof.kext for full functionality
|
||||
* Models: All models require
|
||||
* Models: All models require when spoofing SMBIOS
|
||||
* IOHIDFamily Patch
|
||||
* Reason: Required for HID peripheral support in macOS on older hardware
|
||||
* Logic: Tricks IOHIDFamily into thinking it's always booting recovery
|
||||
* Models: [2010 and older](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/79ab028b0a039e97a528e0b99c876d95d9c2d41d/Resources/ModelArray.py#L310-L332)
|
||||
* Models: Penryn CPUs (Core2 series)
|
||||
|
||||
### Kernel -> Quirks
|
||||
|
||||
@@ -196,15 +196,13 @@ Below is an explanation of what Kexts OpenCore Legacy Patcher will inject into m
|
||||
|
||||
Unfortunately certain on-disk patches are required to achieve full functionality. Below is a breakdown of patches supported
|
||||
|
||||
Note, GPU Acceleration Patches are not public yet, the below section is simply documentation for easier research with new aids.
|
||||
|
||||
::: details Audio Patches
|
||||
|
||||
### Extensions
|
||||
|
||||
* AppleHDA
|
||||
* Reason: Re-add High Sierra's AppleHDA to achieve audio support
|
||||
* Models: 2011 and older Macs (excluding MacPro4,1+)
|
||||
* Reason: Re-add El Capitan's AppleHDA to achieve audio support
|
||||
* Models: iMac7,1 and iMac8,1
|
||||
|
||||
:::
|
||||
|
||||
|
||||
@@ -38,14 +38,46 @@ Note 2: NVRAM may need to be reset to ensure SIP is correctly re-enabled
|
||||
|
||||
## Applying Post Install Volume Patches
|
||||
|
||||
**Note**: For users who need Post-Install Volume patches for legacy video acceleration support, you **must** disable the following settings in "Patcher Settings" when building and installing your new OpenCore:
|
||||
For users with unsupported GPUs/wifi cards, you'll need to run the Post Install Root Volume patches to regain functionality. See below on whether your hardware needs root volume patching.
|
||||
|
||||
* SIP: Disabled
|
||||
* SecureBootModel: Disabled
|
||||
* Hint: Try running the root volume patch option, the Patcher will determine and install patches only when required. So there is no harm in applying them
|
||||
|
||||
Once set, rebuild OpenCore, install to drive and reboot. Then, Post-Install Volume patches will run just fine
|
||||
::: details Unsupported GPUs in macOS Big Sur
|
||||
|
||||
To apply the Post-Install Volume patches [to test out the Beta Graphics Acceleration Patches system](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108), select option #3 as shown below:
|
||||
* Nvidia:
|
||||
* Tesla (8000 - 300 series)
|
||||
* AMD:
|
||||
* TeraScale (2000 - 6000 series)
|
||||
* Intel:
|
||||
* Iron Lake
|
||||
* Sandy Bridge (2000 - 3000 series)
|
||||
|
||||
:::
|
||||
|
||||
::: details Unsupported GPUs in macOS Monterey
|
||||
|
||||
* Nvidia:
|
||||
* Tesla (8000 - 300 series)
|
||||
* Kepler (600 - 800 series)
|
||||
* AMD:
|
||||
* TeraScale (2000 - 6000 series)
|
||||
* Intel:
|
||||
* Iron Lake
|
||||
* Sandy Bridge (2000 - 3000 series)
|
||||
* Ivy Bridge (4000 series)
|
||||
|
||||
:::
|
||||
|
||||
::: details Unsupported Wireless Cards in macOS Monterey
|
||||
|
||||
* Broadcom:
|
||||
* BCM94328
|
||||
* BCM94322
|
||||
* Atheros
|
||||
|
||||
:::
|
||||
|
||||
To apply the Post-Install Volume patches, select option #3 as shown below:
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -16,5 +16,5 @@ features:
|
||||
details: Install updates the moment they come out just like on a supported Mac, and no more 12GB+ updates.
|
||||
- title: Zero firmware patching
|
||||
details: No need to patch APFS ROM support, all protocol upgrades are done in memory and never permanent.
|
||||
footer: Copyright © Dortania 2020-2021
|
||||
footer: Copyright © Dortania 2020-2022
|
||||
---
|
||||
@@ -58,7 +58,7 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
||||
| ^^ | ^^ | vinaypundith | - Patcher version 0.0.7 |
|
||||
| MacBookPro10,1 | ^^ | traviswparker | - Stock model <br/>- Patcher version 0.0.14 |
|
||||
| ^^ | ^^ | il-rollino | - Upgraded BCM94360CSAX <br/>- Patcher version 0.0.21 |
|
||||
| MacBookPro10,2 | No reports | N/A | N/A |
|
||||
| MacBookPro10,2 | ^^ | akidone | - Upgraded BCM94360CSAX <br/>- Patcher version 0.3.0 |
|
||||
|
||||
### Mac mini
|
||||
|
||||
@@ -78,8 +78,8 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
||||
|
||||
| SMBIOS | Tested | Tester | Comment |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| iMac7,1 | No reports | N/A | N/A |
|
||||
| iMac8,1 | <span style="color:#30BCD5"> YES </span> | EduCovas | - Stock Model<br/>- Patcher version 0.0.21 |
|
||||
| iMac7,1 | <span style="color:#30BCD5"> YES </span> | lulujyc | iMac 20-inch 2007. Patcher version 0.3.1. The USB 1.1 controller is rather unstable on Big Sur+, using USB hubs (forcing USB 2.0) can fix unrecognized keyboard/ mouse. Otherwise runs great, including brightness control. Upgraded BCM94352HMB, manually added 3rd-party drivers. Tested: Big Sur, Monterey. |
|
||||
| iMac8,1 | ^^ | EduCovas | - Stock Model<br/>- Patcher version 0.0.21 |
|
||||
| iMac9,1 | ^^ | Allanrfox | ^^ |
|
||||
| ^^ | ^^ | Jakeluke | ^^ |
|
||||
| iMac10,1 | ^^ | Ausdauersportler | - Upgraded with WX4150 |
|
||||
|
||||
@@ -10,6 +10,9 @@ Here are some common errors users may experience while using this patcher:
|
||||
* [How to Boot Big Sur Recovery](#how-to-boot-big-sur-recovery)
|
||||
* [Stuck on "Your Mac needs a firmware update"](#stuck-on-your-mac-needs-a-firmware-update)
|
||||
* [No Brightness Control](#no-brightness-control)
|
||||
* [Cannot connect Wi-Fi on Monterey with legacy cards](#cannot-connect-Wi-Fi-on-Monterey-with-legacy-cards)
|
||||
* [No Graphics Acceleration on Intel Ivy Bridge and Nvidia Kepler GPUs](#no-graphics-acceleration-on-intel-ivy-bridge-and-nvidia-kepler-gpus)
|
||||
* [Black Screen on MacBookPro11,3 in macOS Monterey](#black-screen-on-macbookpro113-in-macos-monterey)
|
||||
|
||||
## Stuck on `This version of Mac OS X is not supported on this platform`
|
||||
|
||||
@@ -68,3 +71,21 @@ With OCLP v0.0.22, we've added support for brightness control on many models. Ho
|
||||
To work-around, we recommend user try out the below app:
|
||||
|
||||
* [Brightness Slider](https://actproductions.net/free-apps/brightness-slider/)
|
||||
|
||||
## Cannot connect Wi-Fi on Monterey with legacy cards
|
||||
|
||||
With OCLP v0.2.5, we've added support for legacy Wi-Fi on Monterey. However some users may have noticed that they can't connect to wireless networks.
|
||||
|
||||
To work-around, we recommend users to manually connect using the "other" option on the Wi-Fi menu bar or manually adding the network on the "Network" preference pane.
|
||||
|
||||
## No Graphics Acceleration on Intel Ivy Bridge and Nvidia Kepler GPUs
|
||||
|
||||
With macOS Monterey, Apple removed Graphics Drivers for both Intel Ivy Bride and Nvidia Kepler. To re-enable acceleration, simply run the Post Install Root Volume patches.
|
||||
|
||||
Once rebooted, acceleration will be re-enabled as well as brightness control for laptops.
|
||||
|
||||
## Black Screen on MacBookPro11,3 in macOS Monterey
|
||||
|
||||
Due to Apple dropping Nvidia Kepler support in macOS Monterey, [MacBookPro11,3's GMUX has difficulties switching back to the iGPU to display macOS correctly.](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/522) To work-around this issue, boot the MacBookPro11,3 in Safe Mode and once macOS is installed, run OCLP's Post Install Root Patches to enable GPU Acceleration for the Nvidia dGPU.
|
||||
|
||||
* Safe Mode can be started by holding Shift+Enter when selecting macOS Monterey in OCLP's Boot Menu.
|
||||
@@ -6,15 +6,19 @@ To install UEFI is actually super simple! All it requires is to boot Windows' In
|
||||
|
||||
* Note: UEFI Windows is generally quite usable for Arrendale and newer models, however machines with Penryn CPUs may experience issues
|
||||
* Recommended Models:
|
||||
* MacBookAir4,x and newer
|
||||
* MacBookPro8,x and newer
|
||||
* Macmini5,x and newer
|
||||
* iMac11,x and newer
|
||||
* MacPro4,1 and newer
|
||||
* Xserve3,1 and newer
|
||||
* MacBookAir4,x - 5,x
|
||||
* MacBookPro8,x - 10,x
|
||||
* Macmini5,x - 6,x
|
||||
* iMac11,x - 13,x
|
||||
|
||||
Once you know your model is supported, you're good to go with the rest of this guide
|
||||
|
||||
* Newer models than listed here will already natively support UEFI Windows through Boot Camp
|
||||
|
||||
For MacPro4,1/5,1 and Xserve3,1 users, please be aware that Windows has troubles with automatic installation, so please refer to cdf's guide on manual installation:
|
||||
|
||||
* [cdf's Mac Pro Thread](https://forums.macrumors.com/threads/opencore-on-the-mac-pro.2207814/)
|
||||
|
||||
## Disk Formatting
|
||||
|
||||
To start off, we'll need the following:
|
||||
|
||||
2498
gui/gui_main.py
Normal file
43
gui/menu_redirect.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import wx
|
||||
import time
|
||||
|
||||
class RedirectText(object):
|
||||
def __init__(self,aWxTextCtrl, sleep):
|
||||
self.out=aWxTextCtrl
|
||||
self.sleep = sleep
|
||||
|
||||
def write(self,string):
|
||||
self.out.WriteText(string)
|
||||
wx.GetApp().Yield()
|
||||
if self.sleep:
|
||||
time.sleep(0.01)
|
||||
|
||||
def fileno(self):
|
||||
return 1
|
||||
|
||||
def flush(self):
|
||||
pass
|
||||
|
||||
class RedirectLabel(object):
|
||||
def __init__(self,aWxTextCtrl):
|
||||
self.out=aWxTextCtrl
|
||||
|
||||
def write(self,string):
|
||||
if string.endswith("MB/s"):
|
||||
self.out.SetLabel(string)
|
||||
self.out.Centre(wx.HORIZONTAL)
|
||||
wx.GetApp().Yield()
|
||||
time.sleep(0.01)
|
||||
|
||||
def flush(self):
|
||||
pass
|
||||
|
||||
class RedirectLabelAll(object):
|
||||
def __init__(self,aWxTextCtrl):
|
||||
self.out=aWxTextCtrl
|
||||
|
||||
def write(self,string):
|
||||
self.out.SetLabel(string)
|
||||
self.out.Centre(wx.HORIZONTAL)
|
||||
wx.GetApp().Yield()
|
||||
time.sleep(0.01)
|
||||
BIN
images/OCLP-GUI-Build-Finished.png
Normal file
|
After Width: | Height: | Size: 427 KiB |
BIN
images/OCLP-GUI-Build-Start.png
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
images/OCLP-GUI-Create-Installer-Menu.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
images/OCLP-GUI-EFI-Finished-Install.png
Normal file
|
After Width: | Height: | Size: 206 KiB |
BIN
images/OCLP-GUI-EFI-Needs-Permission.png
Normal file
|
After Width: | Height: | Size: 246 KiB |
BIN
images/OCLP-GUI-EFI-Select-Disk.png
Normal file
|
After Width: | Height: | Size: 240 KiB |
BIN
images/OCLP-GUI-EFI-Select-Partition.png
Normal file
|
After Width: | Height: | Size: 153 KiB |
BIN
images/OCLP-GUI-Installer-Download-Catalog.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
images/OCLP-GUI-Installer-Download-Finished.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
images/OCLP-GUI-Installer-Download-Listed-Products.png
Normal file
|
After Width: | Height: | Size: 265 KiB |
BIN
images/OCLP-GUI-Installer-Download-Progress.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
images/OCLP-GUI-Installer-Finished-Script.png
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
images/OCLP-GUI-Installer-Flashing-Process.png
Normal file
|
After Width: | Height: | Size: 212 KiB |
BIN
images/OCLP-GUI-Installer-Format-USB.png
Normal file
|
After Width: | Height: | Size: 196 KiB |
BIN
images/OCLP-GUI-Installer-Needs-Installing.png
Normal file
|
After Width: | Height: | Size: 247 KiB |
BIN
images/OCLP-GUI-Installer-Select-Local-Installer.png
Normal file
|
After Width: | Height: | Size: 170 KiB |
BIN
images/OCLP-GUI-Installer-Sucess-Prompt.png
Normal file
|
After Width: | Height: | Size: 194 KiB |
BIN
images/OCLP-GUI-Main-Menu.png
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
images/build-dist.png
Normal file
|
After Width: | Height: | Size: 240 KiB |
10
merge_gui.py
@@ -1,10 +0,0 @@
|
||||
# Updates build version in OCLP-GUI during CI builds
|
||||
# Copyright (C) 2021 Mykola Grymalyuk
|
||||
import plistlib
|
||||
from pathlib import Path
|
||||
from Resources import Constants
|
||||
|
||||
app_path = Path.cwd() / Path ("OpenCore Patcher.app/Contents/Info.plist")
|
||||
info = plistlib.load(Path(app_path).open("rb"))
|
||||
info["CFBundleShortVersionString"] = Constants.Constants().patcher_version
|
||||
plistlib.dump(info, Path(app_path).open("wb"), sort_keys=True)
|
||||
BIN
payloads/ACPI/SSDT-DGPU.aml
Normal file
103
payloads/ACPI/Source/SSDT-DGPU.dsl
Normal file
@@ -0,0 +1,103 @@
|
||||
/* Requests power off of dGPU in MacBookPro8,2/3 (TS2 hardware failure)
|
||||
* Main goal is to ensure power draw from the dGPU is reduced as
|
||||
* much as possible to simulate a hardware demux without actual
|
||||
* hardware modifications.
|
||||
*
|
||||
* Notes:
|
||||
* - SSDT must be used in conjuction with '_INI' to 'XINI' patch
|
||||
* to reroute PCI0 initialization.
|
||||
*
|
||||
* - AMD drivers in macOS may still attempt to attach and kernel
|
||||
* panic. Disable the dGPU with class-code/device-id spoof or
|
||||
* with '-wegnoegpu'.
|
||||
*
|
||||
* - dGPU will reactivate with sleep-wake, additional process
|
||||
* is needed to disable the dGPU.
|
||||
* - ie. AMDGPUWakeHandler.kext for macOS
|
||||
*
|
||||
* Ref:
|
||||
* - https://www.tonymacx86.com/threads/help-macbook-pro-disable-radeon-gpu-via-dsdt.164458/
|
||||
* - https://github.com/blackgate/AMDGPUWakeHandler
|
||||
* - https://help.ubuntu.com/community/MacBookPro8-2/Raring
|
||||
*/
|
||||
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "dGPU_OFF", 0x00001000)
|
||||
{
|
||||
External (_SB_.PCI0, DeviceObj)
|
||||
External (OSYS)
|
||||
|
||||
Scope (_SB.PCI0)
|
||||
{
|
||||
OperationRegion (IOGP, SystemIO, 0x0700, 0x51)
|
||||
Field (IOGP, ByteAcc, NoLock, Preserve)
|
||||
{
|
||||
Offset (0x10),
|
||||
P710, 8,
|
||||
Offset (0x28),
|
||||
P728, 8,
|
||||
Offset (0x40),
|
||||
P740, 8,
|
||||
Offset (0x50),
|
||||
P750, 8
|
||||
}
|
||||
|
||||
Method (_INI, 0, NotSerialized) // _INI: Initialize
|
||||
{
|
||||
Store (0x07D0, OSYS)
|
||||
If (CondRefOf (\_OSI, Local0))
|
||||
{
|
||||
If (_OSI ("Darwin"))
|
||||
{
|
||||
Store (0x2710, OSYS)
|
||||
}
|
||||
|
||||
If (\_OSI ("Linux"))
|
||||
{
|
||||
Store (0x03E8, OSYS)
|
||||
}
|
||||
|
||||
If (\_OSI ("Windows 2001"))
|
||||
{
|
||||
Store (0x07D1, OSYS)
|
||||
}
|
||||
|
||||
If (\_OSI ("Windows 2001 SP1"))
|
||||
{
|
||||
Store (0x07D1, OSYS)
|
||||
}
|
||||
|
||||
If (\_OSI ("Windows 2001 SP2"))
|
||||
{
|
||||
Store (0x07D2, OSYS)
|
||||
}
|
||||
|
||||
If (\_OSI ("Windows 2006"))
|
||||
{
|
||||
Store (0x07D6, OSYS)
|
||||
}
|
||||
|
||||
If (\_OSI ("Windows 2007"))
|
||||
{
|
||||
Store (0x07D7, OSYS)
|
||||
}
|
||||
|
||||
If (\_OSI ("Windows 2008"))
|
||||
{
|
||||
Store (0x07D8, OSYS)
|
||||
}
|
||||
|
||||
If (\_OSI ("Windows 2009"))
|
||||
{
|
||||
Store (0x07D9, OSYS)
|
||||
}
|
||||
}
|
||||
|
||||
// Disables dGPU
|
||||
Store ("Requesting dGPU power off", Debug)
|
||||
P728 = One // Switch select
|
||||
P710 = 0x02 // Switch display
|
||||
P740 = 0x02 // Switch DDC
|
||||
P750 = Zero // Power down discrete graphics
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,14 @@
|
||||
<key>Path</key>
|
||||
<string>SSDT-PCI.aml</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Comment</key>
|
||||
<string>Requests power off of dGPU for Sandy Bridge MacBook Pros</string>
|
||||
<key>Path</key>
|
||||
<string>SSDT-DGPU.aml</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Delete</key>
|
||||
<array/>
|
||||
@@ -156,6 +164,36 @@
|
||||
<key>TableSignature</key>
|
||||
<data>RFNEVA==</data>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Base</key>
|
||||
<string>\_SB.PCI0</string>
|
||||
<key>BaseSkip</key>
|
||||
<integer>0</integer>
|
||||
<key>Comment</key>
|
||||
<string>_INI to XINI</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>X0lOSQ==</data>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>OemTableId</key>
|
||||
<data></data>
|
||||
<key>Replace</key>
|
||||
<data>WElOSQ==</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
<key>TableLength</key>
|
||||
<integer>0</integer>
|
||||
<key>TableSignature</key>
|
||||
<data>RFNEVA==</data>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
@@ -178,7 +216,56 @@
|
||||
<key>MmioWhitelist</key>
|
||||
<array/>
|
||||
<key>Patch</key>
|
||||
<array/>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>Skip Board ID check</string>
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>AFAAbABhAHQAZgBvAHIAbQBTAHUAcABwAG8AcgB0AC4AcABsAGkAcwB0</data>
|
||||
<key>Identifier</key>
|
||||
<string>Apple</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>Replace</key>
|
||||
<data>AC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAu</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>Reroute HW_BID to OC_BID</string>
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>SABXAF8AQgBJAEQA</data>
|
||||
<key>Identifier</key>
|
||||
<string>Apple</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>Replace</key>
|
||||
<data>TwBDAF8AQgBJAEQA</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
<key>AllowRelocationBlock</key>
|
||||
@@ -213,6 +300,8 @@
|
||||
<integer>0</integer>
|
||||
<key>RebuildAppleMemoryMap</key>
|
||||
<false/>
|
||||
<key>ResizeAppleGpuBars</key>
|
||||
<integer>-1</integer>
|
||||
<key>SetupVirtualMap</key>
|
||||
<false/>
|
||||
<key>SignalAppleOS</key>
|
||||
@@ -344,7 +433,7 @@
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>4331 Wifi Patch</string>
|
||||
<string>Broadcom Wifi Patch</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
@@ -546,7 +635,7 @@
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
@@ -610,6 +699,24 @@
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>Disable EFI Checks</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>BundlePath</key>
|
||||
<string>EFICheckDisabler.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
@@ -814,7 +921,7 @@
|
||||
<key>BundlePath</key>
|
||||
<string>IOFireWireFamily.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<string>Enable FireWire Rooting #1</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
@@ -832,7 +939,7 @@
|
||||
<key>BundlePath</key>
|
||||
<string>IOFireWireFamily.kext/Contents/PlugIns/AppleFWOHCI.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<string>Enable FireWire Rooting #2</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
@@ -850,7 +957,7 @@
|
||||
<key>BundlePath</key>
|
||||
<string>IOFireWireSBP2.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<string>Enable FireWire Rooting #3</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
@@ -868,7 +975,7 @@
|
||||
<key>BundlePath</key>
|
||||
<string>IOFireWireSerialBusProtocolTransport.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<string>Enable FireWire Rooting #4</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
@@ -958,7 +1065,7 @@
|
||||
<key>BundlePath</key>
|
||||
<string>CSLVFixup.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>Fix Music.app</string>
|
||||
<string>Fix Music</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
@@ -970,6 +1077,78 @@
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>SimpleMSR.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>Disable firmware based battery throttling</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/SimpleMSR</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>AMDGPUWakeHandler.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>Force disable dGPU on wake</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/AMDGPUWakeHandler</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>LegacyUSBVideoSupport.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>Legacy iSight support</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/LegacyUSBVideoSupport</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>18.0.0</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>AppleRAIDCard.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>RAID Card Support</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/AppleRAIDCard</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Block</key>
|
||||
<array/>
|
||||
@@ -1110,6 +1289,156 @@
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Base</key>
|
||||
<string>_early_random</string>
|
||||
<key>Comment</key>
|
||||
<string>SurPlus v1 - PART 1 of 2 - Patch read_erandom (inlined in _early_random)</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>AHQjSIs=</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>800</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>MaxKernel</key>
|
||||
<string>21.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.4.0</string>
|
||||
<key>Replace</key>
|
||||
<data>AOsjSIs=</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Base</key>
|
||||
<string>_register_and_init_prng</string>
|
||||
<key>Comment</key>
|
||||
<string>SurPlus v1 - PART 2 of 2 - Patch register_and_init_prng</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>ukgBAAAx9g==</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>256</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>MaxKernel</key>
|
||||
<string>21.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.4.0</string>
|
||||
<key>Replace</key>
|
||||
<data>ukgBAADrBQ==</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>Reroute kern.hv_vmm_present patch (1)</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>AGRpcmVjdF9oYW5kb2ZmAEVuYWJsZSBkaXJlY3QgaGFuZG9mZiBmb3IgcmVhbHRpbWUgdGhyZWFkcwA=</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.4.0</string>
|
||||
<key>Replace</key>
|
||||
<data>AGh2X3ZtbV9wcmVzZW50AEVuYWJsZSBkaXJlY3QgaGFuZG9mZiBmb3IgcmVhbHRpbWUgdGhyZWFkcwA=</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>Reroute kern.hv_vmm_present patch (2)</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>AGh2X2Rpc2FibGUAaHZfdm1tX3ByZXNlbnQA</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.4.0</string>
|
||||
<key>Replace</key>
|
||||
<data>AGh2X2Rpc2FibGUAZGlyZWN0X2hhbmRvZmYA</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Base</key>
|
||||
<string>_IOGetVMMPresent</string>
|
||||
<key>Comment</key>
|
||||
<string>Force IOGetVMMPresent</string>
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data></data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.4.0</string>
|
||||
<key>Replace</key>
|
||||
<data>uAEAAADD</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
@@ -1126,7 +1455,7 @@
|
||||
<key>DisableIoMapper</key>
|
||||
<false/>
|
||||
<key>DisableLinkeditJettison</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>DisableRtcChecksum</key>
|
||||
<false/>
|
||||
<key>ExtendBTFeatureFlags</key>
|
||||
@@ -1249,7 +1578,7 @@
|
||||
<key>ScanPolicy</key>
|
||||
<integer>0</integer>
|
||||
<key>SecureBootModel</key>
|
||||
<string>j137</string>
|
||||
<string>Default</string>
|
||||
<key>Vault</key>
|
||||
<string>Optional</string>
|
||||
</dict>
|
||||
@@ -1339,6 +1668,7 @@
|
||||
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
|
||||
<array>
|
||||
<string>boot-args</string>
|
||||
<string>csr-active-config</string>
|
||||
</array>
|
||||
<key>FA4CE28D-B62F-4C99-9CC3-6815686E30F9</key>
|
||||
<array/>
|
||||
@@ -1524,6 +1854,12 @@
|
||||
<integer>0</integer>
|
||||
<key>KeySubsequentDelay</key>
|
||||
<integer>5</integer>
|
||||
<key>PointerPollMask</key>
|
||||
<integer>-1</integer>
|
||||
<key>PointerPollMax</key>
|
||||
<integer>2</integer>
|
||||
<key>PointerPollMin</key>
|
||||
<integer>2</integer>
|
||||
<key>GraphicsInputMirroring</key>
|
||||
<false/>
|
||||
<key>PointerSpeedDiv</key>
|
||||
@@ -1537,26 +1873,32 @@
|
||||
<integer>0</integer>
|
||||
<key>AudioDevice</key>
|
||||
<string></string>
|
||||
<key>AudioOut</key>
|
||||
<integer>0</integer>
|
||||
<key>AudioOutMask</key>
|
||||
<integer>1</integer>
|
||||
<key>AudioSupport</key>
|
||||
<false/>
|
||||
<key>MinimumVolume</key>
|
||||
<integer>20</integer>
|
||||
<key>DisconnectHda</key>
|
||||
<false/>
|
||||
<key>MaximumGain</key>
|
||||
<integer>-15</integer>
|
||||
<key>MinimumAssistGain</key>
|
||||
<integer>-30</integer>
|
||||
<key>MinimumAudibleGain</key>
|
||||
<integer>-55</integer>
|
||||
<key>PlayChime</key>
|
||||
<string>Disabled</string>
|
||||
<key>ResetTrafficClass</key>
|
||||
<false/>
|
||||
<key>SetupDelay</key>
|
||||
<integer>0</integer>
|
||||
<key>VolumeAmplifier</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>ConnectDrivers</key>
|
||||
<true/>
|
||||
<key>Drivers</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Path</key>
|
||||
<string>OpenRuntime.efi</string>
|
||||
<key>Enabled</key>
|
||||
@@ -1565,6 +1907,8 @@
|
||||
<string></string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Path</key>
|
||||
<string>OpenCanopy.efi</string>
|
||||
<key>Enabled</key>
|
||||
@@ -1573,6 +1917,8 @@
|
||||
<string></string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Path</key>
|
||||
<string>NvmExpressDxe.efi</string>
|
||||
<key>Enabled</key>
|
||||
@@ -1581,6 +1927,8 @@
|
||||
<string></string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Path</key>
|
||||
<string>ExFatDxeLegacy.efi</string>
|
||||
<key>Enabled</key>
|
||||
@@ -1589,6 +1937,8 @@
|
||||
<string></string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Path</key>
|
||||
<string>XhciDxe.efi</string>
|
||||
<key>Enabled</key>
|
||||
@@ -1597,6 +1947,18 @@
|
||||
<string></string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Path</key>
|
||||
<string>UsbBusDxe.efi</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Arguments</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Path</key>
|
||||
<string>OpenLinuxBoot.efi</string>
|
||||
<key>Enabled</key>
|
||||
@@ -1640,6 +2002,8 @@
|
||||
<false/>
|
||||
<key>ProvideConsoleGop</key>
|
||||
<true/>
|
||||
<key>ReconnectGraphicsOnConnect</key>
|
||||
<false/>
|
||||
<key>ReconnectOnResChange</key>
|
||||
<false/>
|
||||
<key>ReplaceTabWithSpace</key>
|
||||
@@ -1648,6 +2012,8 @@
|
||||
<string>Max</string>
|
||||
<key>SanitiseClearScreen</key>
|
||||
<false/>
|
||||
<key>UIScale</key>
|
||||
<integer>-1</integer>
|
||||
<key>TextRenderer</key>
|
||||
<string>BuiltinGraphics</string>
|
||||
<key>UgaPassThrough</key>
|
||||
@@ -1698,6 +2064,8 @@
|
||||
<false/>
|
||||
<key>EnableVectorAcceleration</key>
|
||||
<true/>
|
||||
<key>EnableVmx</key>
|
||||
<false/>
|
||||
<key>DisableSecurityPolicy</key>
|
||||
<false/>
|
||||
<key>ExitBootServicesDelay</key>
|
||||
@@ -1714,6 +2082,8 @@
|
||||
<false/>
|
||||
<key>RequestBootVarRouting</key>
|
||||
<true/>
|
||||
<key>ResizeGpuBars</key>
|
||||
<integer>-1</integer>
|
||||
<key>TscSyncTimeout</key>
|
||||
<integer>0</integer>
|
||||
<key>UnblockFsConnect</key>
|
||||
|
||||
BIN
payloads/Drivers/UsbBusDxe.efi
Normal file
BIN
payloads/Drivers/diags.efi
Normal file
BIN
payloads/Kexts/Acidanthera/AirportBrcmFixup-v2.1.3-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/AppleALC-v1.6.3-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.1-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.1-RELEASE.zip
Normal file
@@ -1,15 +0,0 @@
|
||||
diff --git a/BrcmPatchRAM/BlueToolFixup.cpp b/BrcmPatchRAM/BlueToolFixup.cpp
|
||||
index 0fa891a..b64b780 100644
|
||||
--- a/BrcmPatchRAM/BlueToolFixup.cpp
|
||||
+++ b/BrcmPatchRAM/BlueToolFixup.cpp
|
||||
@@ -37,8 +37,10 @@ bool BlueToolFixup::start(IOService *provider) {
|
||||
}
|
||||
setProperty("VersionInfo", kextVersion);
|
||||
setName("bluetooth");
|
||||
+ /*
|
||||
uint8_t bytes[] {0x00, 0x00, 0x00, 0x00};
|
||||
setProperty("transport-encoding", bytes, sizeof(bytes));
|
||||
+ */
|
||||
registerService();
|
||||
|
||||
return true;
|
||||
BIN
payloads/Kexts/Acidanthera/CPUFriend-v1.2.4-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/DebugEnhancer-v1.0.4-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/EFICheckDisabler-v1.0.6.zip
Normal file
1
payloads/Kexts/Acidanthera/EFICheckDisabler.md
Normal file
@@ -0,0 +1 @@
|
||||
Based off RestrictEvents.kext, stripped binary to block Apple's EFICheck driver
|
||||