Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
ccc6e32
first commit
pyquick Aug 11, 2025
54dd704
sync Hackdoc
pyquick Aug 11, 2025
16888d8
fix name
pyquick Aug 11, 2025
d2c0619
- Move Lilu and WEG Patch
pyquick Aug 12, 2025
a49d065
- delete WEG Patch because it is invaild
pyquick Aug 12, 2025
40d65c5
sync Patcher
pyquick Aug 12, 2025
993413c
Add Beta5/6 kdk
pyquick Aug 14, 2025
7ef316d
- Add more spoof id(Can boot but can't drive). Useful for Sandy/Ivy B…
pyquick Aug 14, 2025
168393f
Update icons
pyquick Aug 17, 2025
124d1fe
Update icons
pyquick Aug 17, 2025
4b7ed5c
change icon
pyquick Aug 18, 2025
da479d7
change icons
pyquick Aug 22, 2025
4ded4cf
clean
pyquick Aug 22, 2025
9a74647
change icons
pyquick Aug 23, 2025
ae6d42e
add luanchpad and control center
pyquick Aug 23, 2025
38747f2
revert control patch
pyquick Aug 23, 2025
4f35451
add primary icon
pyquick Aug 23, 2025
ec4e238
fix size convert
pyquick Aug 24, 2025
d0047bc
add launchpad command actions
pyquick Aug 24, 2025
612e9a8
fix dict
pyquick Aug 24, 2025
e40456d
fix TypeError
pyquick Aug 24, 2025
fcc69e5
patch launchpad actions
pyquick Aug 24, 2025
fe1585a
change self.load_launchpad()
pyquick Aug 24, 2025
85cb0dc
add control center patch
pyquick Aug 24, 2025
0e3d3c0
- Add Network Constants
pyquick Aug 26, 2025
5047178
patch requirements
pyquick Aug 26, 2025
6a109ce
remove pybase64
pyquick Aug 26, 2025
1ecc312
fix invaild syntax
pyquick Aug 26, 2025
ac5d580
fix invaild syntax
pyquick Aug 26, 2025
d98901c
fix kdk handler bugs
pyquick Aug 27, 2025
5f02ff8
- add new icons
pyquick Aug 27, 2025
f37ae2d
add more constants
pyquick Aug 27, 2025
1267b87
fix build bugs
pyquick Aug 27, 2025
cc0c48d
change control patch
pyquick Aug 28, 2025
e4aa258
Update README.md add English text
perez987 Aug 28, 2025
f520af3
change control patch
pyquick Aug 29, 2025
ae7ddae
Merge branch 'macos-next' of https://github.com/hackdoc/OCLP-R into m…
pyquick Aug 29, 2025
a7b710b
add macos 26.x kdk support
pyquick Sep 27, 2025
bc1509b
add 26.0 check
pyquick Sep 29, 2025
3ef0dd4
- Add AppleHDA.kext fixes--15.6
pyquick Oct 2, 2025
e7675b6
using pyquick.github.io
pyquick Oct 2, 2025
1673320
fix Download Metallib 26.x problems
pyquick Oct 6, 2025
8cb39c5
disable some patches on tahoe
pyquick Oct 12, 2025
997c0b3
ADD APFS-Patch
pyquick Nov 1, 2025
85fba4b
Fix Check Bugs
pyquick Nov 2, 2025
2025802
fix APFS-Patch on Tahoe
pyquick Nov 8, 2025
f254108
bump runner
pyquick Nov 8, 2025
f4fa359
update opencore to 1.0.6.
pyquick Nov 16, 2025
e44d5ed
Update links
intsant Nov 22, 2025
926e763
update actions
intsant Nov 22, 2025
8f591ec
update actions
intsant Nov 22, 2025
116053e
Update audio check
intsant Nov 23, 2025
07c98c1
update voodoo audio
intsant Nov 23, 2025
61e9ae0
change patch
intsant Nov 23, 2025
ad06381
fix fixes
intsant Nov 23, 2025
d58b04c
Network improve
intsant Nov 23, 2025
06c1a59
update Hackdoc to Intsant
intsant Nov 23, 2025
b60ac39
rename kexts
intsant Nov 28, 2025
c46c111
switch to hackdoc
intsant Nov 29, 2025
d7e539a
add intel patch(Not work, **do not use it!!!!!!**)
pyquick Nov 29, 2025
0f37c6e
sync link
pyquick Nov 29, 2025
882c4d4
sync helper
pyquick Nov 30, 2025
8ba19fc
improve patch & delete launchpad patch
pyquick Nov 30, 2025
e2a2262
Improve KDK & Metallib download
pyquick Nov 30, 2025
f74bf64
improve download
pyquick Nov 30, 2025
a9b0dc3
improve cancel download
pyquick Nov 30, 2025
52ea2be
fix patch
pyquick Nov 30, 2025
0b171f4
Add patchsets for Tahoe
pyquick Dec 5, 2025
30ec82d
fix patch on Tahoe
pyquick Dec 6, 2025
9566681
improve metal 31001 patches
pyquick Dec 6, 2025
042d21b
update some kexts
pyquick Dec 7, 2025
724a78e
fix patch
pyquick Dec 12, 2025
d68a7bc
add unmount
pyquick Dec 14, 2025
5486ab2
fix unmount
pyquick Dec 14, 2025
da98859
fix 2
pyquick Dec 14, 2025
99b5592
fix validate
pyquick Dec 14, 2025
aa62c73
fix validate
pyquick Dec 14, 2025
768c00f
fix unmount volume
pyquick Dec 20, 2025
73034ba
update some datas
pyquick Dec 20, 2025
c77bc1c
sync from OpenCore-Legacy-Patcher PR#1179
pyquick Dec 21, 2025
d17f299
sync dortania
pyquick Dec 26, 2025
88b43d4
change wireless showing
pyquick Dec 28, 2025
80b8adf
Add some translations
pyquick Dec 31, 2025
c09dc4e
add more translations
pyquick Jan 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[flake8]
extend-ignore = E501, E203
per-file-ignores =
Resources/constants.py:E704
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
open_collective: oclp-r
77 changes: 77 additions & 0 deletions .github/workflows/build-app-wxpython.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: CI - Build wxPython

on:
push:
paths-ignore:
- 'docs/**'
workflow_dispatch:
release:
types: [published]

jobs:
build:
name: Build wxPython
runs-on: macos-26
if: github.repository_owner == 'hackdoc'
permissions:
contents: write
env:
# GitHub Information
branch: ${{ github.ref }}
commiturl: ${{ github.event.head_commit.url }}${{ github.event.release.html_url }}
commitdate: ${{ github.event.head_commit.timestamp }}${{ github.event.release.published_at }}

steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |
rm -rf Univ*
rm -rf *pay*.dmg
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install -r requirements.txt

- name: Force Universal2 charset for Python
run: |
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip uninstall -y charset_normalizer
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip download --platform macosx_10_9_universal2 --only-binary=:all: charset-normalizer
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install charset_normalizer-*-macosx_10_9_universal2.whl

- name: Prepare Assets (--prepare-assets)

run: >
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 Build-Project.command
--run-as-individual-steps
--prepare-assets

- name: Prepare Application (--prepare-application)
run: >
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 Build-Project.command
--git-branch "${{ env.branch }}" --git-commit-url "${{ env.commiturl }}" --git-commit-date "${{ env.commitdate }}"
--reset-pyinstaller-cache
--run-as-individual-steps
--prepare-application

- name: Prepare Package (--prepare-package)
run: >
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 Build-Project.command
--prepare-package
- name: Delete previous pre-release
if: github.event_name == 'push'
uses: dev-drprasad/[email protected]
with:
keep_latest: 0
delete_prerelease_only: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create Pre-Release on Push
if: github.event_name == 'push'
uses: softprops/action-gh-release@v2
with:
#tag_name: push-${{ github.sha }}
tag_name: 3.0.1
name: 3.0.1 Tahoe Test
body: ${{ github.event.head_commit.message }}
prerelease: true
files: |
./dist/AutoPkg-Assets.pkg
./dist/OCLP-R.pkg
./dist/OCLP-R-Uninstaller.pkg
25 changes: 25 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: CI - Validation
on:
push:
paths-ignore:
- 'docs/**'
workflow_dispatch:
release:
types: [published]
jobs:
build:
name: Validate
runs-on: macOS-26
if: github.repository_owner == 'hackdoc'
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Validate
run: |
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install --upgrade pip
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install -r requirements.txt
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install packaging
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 OCLP-R-GUI.command --validate
43 changes: 43 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
.DS_Store
OCLP-GUI.command
/payloads/Apple
/payloads/*.zip
/payloads/BuildManifest.plist
/payloads/*.sucatalog
/payloads/*.pkg
/payloads/__MACOSX
/App
/Build-Folder
/build
/dist
/.vscode
__pycache__/
*.kext
*.py[cod]
*$py.class
/docs/.vuepress/dist
/docs/.vuepress/.config.js.swp
/docs/yarn-error.log
/docs/node_modules/
/payloads/List.txt
/payloads/Installer.sh
/payloads/Info.plist
/payloads/seed.plist
/payloads/AutoPkg-Assets.pkg
/payloads/AutoPkg-Assets.pkg.zip
/payloads/Universal-Binaries
/payloads/OpenCore-Legacy-Patcher
/payloads/InstallAssistant.pkg.integrityDataV1
/payloads.dmg
/Universal-Binaries.dmg
/payloads/OpenCore-Legacy-Patcher-*.plist
/payloads/KDK.dmg
*.log
/Universal-Binaries.dmg
/payloads/KDKInfo.plist
/payloads/update.sh
/payloads/OpenCore-Patcher.app
/.x86_64_venv
*afdesign~lock~
main.py
/.idea
13 changes: 13 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[MASTER]

init-hook="from pylint.config import find_pylintrc; import os, sys; sys.path.append(os.path.dirname(find_pylintrc()))"

[MESSAGES CONTROL]

disable=unused-import,
subprocess-run-check,
line-too-long,
too-few-public-methods,
missing-module-docstring,
missing-class-docstring,
missing-function-docstring
41 changes: 41 additions & 0 deletions .trae/documents/为support文件夹中的文件配置翻译.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 为support文件夹中的文件配置翻译

## 目标
为support文件夹中所有未配置翻译的文件创建对应的翻译函数,每个文件对应一个翻译函数。

## 已完成的翻译函数
- arguements.py → arguements()
- defaults.py → defaults()
- generate_smbios.py → generate_smbios()
- global_settings.py → global_settings()
- install.py → install()
- integrity_verification.py → integrity_verification()
- kdk_handler.py → kdk_handler()

## 需要添加的翻译函数
1. analytics_handler.py → analytics_handler()
2. commit_info.py → commit_info()
3. logging_handler.py → logging_handler()
4. macos_installer_handler.py → macos_installer_handler()
5. metallib_handler.py → metallib_handler()
6. network_handler.py → network_handler()
7. private.py → private()
8. reroute_payloads.py → reroute_payloads()
9. subprocess_wrapper.py → subprocess_wrapper()
10. updates.py → updates()
11. utilities.py → utilities()
12. validation.py → validation()

## 实现步骤
1. 为每个需要翻译的文件创建一个对应的翻译函数
2. 每个翻译函数包含英文和中文两种语言的翻译字典
3. 翻译字典包含该文件中所有需要翻译的文本
4. 保持与现有翻译函数相同的格式和结构

## 注意事项
- 每个翻译函数的命名格式为:`def 文件名():`
- 翻译字典中键为英文文本,值为对应语言的翻译
- 对于中文语言点(language_point==0),提供中文翻译
- 对于英文语言点(language_point==1),保持英文原文
- 确保所有需要翻译的文本都被包含在翻译字典中
- 保持代码格式一致,使用相同的缩进和换行格式
135 changes: 135 additions & 0 deletions Build-Project.command
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
#!/usr/bin/env python3
"""
Build-Project.command: Generate OCLP-R.app and OCLP-R.pkg
"""

import os
import sys
import time
import argparse

from pathlib import Path

from ci_tooling.build_modules import (
application,
disk_images,
package,
sign_notarize
)


def main() -> None:
"""
Parse Command Line Arguments
"""

parser = argparse.ArgumentParser(description="Build OCLP-R Suite", add_help=False)

# Signing Parameters
parser.add_argument("--application-signing-identity", type=str, help="Application Signing Identity")
parser.add_argument("--installer-signing-identity", type=str, help="Installer Signing Identity")


# Notarization Parameters
parser.add_argument("--notarization-apple-id", type=str, help="Notarization Apple ID", default=None)
parser.add_argument("--notarization-password", type=str, help="Notarization Password", default=None)
parser.add_argument("--notarization-team-id", type=str, help="Notarization Team ID", default=None)

# GitHub Actions CI/CD Parameters
parser.add_argument("--git-branch", type=str, help="Git Branch", default=None)
parser.add_argument("--git-commit-url", type=str, help="Git Commit URL", default=None)
parser.add_argument("--git-commit-date", type=str, help="Git Commit Date", default=None)

# Local Build Parameters
parser.add_argument("--reset-dmg-cache", action="store_true", help="Redownload PatcherSupportPkg.dmg and regenerate payloads.dmg", default=False)
parser.add_argument("--reset-pyinstaller-cache", action="store_true", help="Clean PyInstaller Cache", default=False)

# CI/CD Parameters for individual steps
# If not specified, will run all steps
parser.add_argument("--run-as-individual-steps", action="store_true", help="CI: Run as individual steps", default=False)
parser.add_argument("--prepare-application", action="store_true", help="CI: Prepare Application", default=False)
parser.add_argument("--prepare-package", action="store_true", help="CI: Prepare Package", default=False)
parser.add_argument("--prepare-assets", action="store_true", help="CI: Prepare Assets", default=False)

# Analytics Parameters
parser.add_argument("--analytics-key", type=str, help="Analytics Key", default=None)
parser.add_argument("--analytics-endpoint", type=str, help="Analytics Endpoint", default=None)

# Help
parser.add_argument("--help", action="store_true", help="Show this help message and exit", default=False)

# Parse Arguments
args = parser.parse_args()

if args.help:
parser.print_help()
print("\n\nIf running outside of CI/CD, simply run the following command:")
print("$ python3 Build-Project.command")
sys.exit(0)

# Set 'Current Working Directory' to script directory
os.chdir(Path(__file__).resolve().parent)


if (args.run_as_individual_steps is False) or (args.run_as_individual_steps and args.prepare_assets):
# Prepare workspace
disk_images.GenerateDiskImages(args.reset_dmg_cache).generate()

if (args.run_as_individual_steps is False) or (args.run_as_individual_steps and args.prepare_application):
# Prepare Privileged Helper Tool
sign_notarize.SignAndNotarize(
path=Path("./ci_tooling/privileged_helper_tool/com.hackdoc.oclp-r.privileged-helper"),
signing_identity=args.application_signing_identity,
notarization_apple_id=args.notarization_apple_id,
notarization_password=args.notarization_password,
notarization_team_id=args.notarization_team_id,
).sign_and_notarize()

# Build OCLP-R.app
application.GenerateApplication(
reset_pyinstaller_cache=args.reset_pyinstaller_cache,
git_branch=args.git_branch,
git_commit_url=args.git_commit_url,
git_commit_date=args.git_commit_date,
analytics_key=args.analytics_key,
analytics_endpoint=args.analytics_endpoint,
).generate()

# Sign OCLP-R.app
sign_notarize.SignAndNotarize(
path=Path("dist/OCLP-R.app"),
signing_identity=args.application_signing_identity,
notarization_apple_id=args.notarization_apple_id,
notarization_password=args.notarization_password,
notarization_team_id=args.notarization_team_id,
entitlements=Path("./ci_tooling/entitlements/entitlements.plist"),
).sign_and_notarize()


if (args.run_as_individual_steps is False) or (args.run_as_individual_steps and args.prepare_package):
# Build OCLP-R.pkg and OCLP-R-Uninstaller.pkg
package.GeneratePackage().generate()

# Sign OCLP-R.pkg
sign_notarize.SignAndNotarize(
path=Path("dist/OCLP-R.pkg"),
signing_identity=args.installer_signing_identity,
notarization_apple_id=args.notarization_apple_id,
notarization_password=args.notarization_password,
notarization_team_id=args.notarization_team_id,
).sign_and_notarize()

# Sign OCLP-R-Uninstaller.pkg
sign_notarize.SignAndNotarize(
path=Path("dist/OCLP-R-Uninstaller.pkg"),
signing_identity=args.installer_signing_identity,
notarization_apple_id=args.notarization_apple_id,
notarization_password=args.notarization_password,
notarization_team_id=args.notarization_team_id,
).sign_and_notarize()


if __name__ == '__main__':
_start = time.time()
main()
print(f"Build script completed in {str(round(time.time() - _start, 2))} seconds")
Loading
Loading