Files
OpenCore-Legacy-Patcher/payloads/binary.py
Mykola Grymalyuk c78506501f Test Write
2022-01-19 10:57:31 -07:00

61 lines
1.7 KiB
Python

# Patches LC_VERSION_MIN_MACOSX in Load Command to report 10.10
#
# By default Pyinstaller will create binaries supporting 10.13+
# However this limitation is entirely arbitrary for our libraries
# and instead we're able to support 10.10 without issues.
#
# To verify set version:
# otool -l ./dist/OpenCore-Patcher.app/Contents/MacOS/OpenCore-Patcher
#
# cmd LC_VERSION_MIN_MACOSX
# cmdsize 16
# version 10.13
# sdk 10.9
import sys
import plistlib
from pathlib import Path
def main():
patch_load_command()
patch_info_plist()
def patch_load_command():
print("- Patching LC_VERSION_MIN_MACOSX")
path = './dist/OpenCore-Patcher.app/Contents/MacOS/OpenCore-Patcher'
find = b'\x00\x0D\x0A\x00' # 10.13 (0xA0D)
replace = b'\x00\x0A\x0A\x00' # 10.10 (0xA0A)
with open(path, 'rb') as f:
data = f.read()
data = data.replace(find, replace)
with open(path, 'wb') as f:
f.write(data)
def patch_info_plist():
print("- Updating Info.plist")
# Github Actions will supply us with the following environment variables:
# - Commit Message
# - Commit ID
# - Branch
# - Commit URL
# - Commit Date
argsv = sys.argv
argsv.pop(0)
plist_path = './dist/OpenCore-Patcher.app/Contents/Info.plist'
plist = plistlib.load(Path(plist_path).open("rb"))
print("- Loaded Plist")
# Add Github Dictonary
print("- Adding Github Dictionary")
plist["Github"] = {
"Commit Message": argsv[0],
"Commit ID": argsv[1],
"Branch": argsv[2],
"Commit URL": argsv[3],
"Commit Date": argsv[4],
}
print("- Writing Plist")
plistlib.dump(plist, Path(plist_path).open("wb"), sort_keys=True)
main()