MetallibSupportPkg
15.2-24C5073e
ชุดยูทิลิตี้ที่เกี่ยวข้องกับการแพตช์ Metal Libraries ( .metallib
) ใน macOS โดยเฉพาะโดยมีเป้าหมายในการกู้คืนการรองรับฮาร์ดแวร์รุ่นเก่า (ได้แก่ GPU ที่ใช้ Metal 3802 บน macOS Sequoia)
MetallibSupportPkg เป็นที่ตั้งของไลบรารี่ metal_libraries
python ซึ่งได้รับการพัฒนาขึ้นเพื่อปรับปรุงการแพตช์ Metal Library ผ่านทางสิ่งต่อไปนี้:
aastuff
.metallib
ที่รองรับทั้งหมด.metallib
เพื่อรองรับ Metal 3802 GPU หมายเหตุเกี่ยวกับการแพตช์ไฟล์ .metallib
แต่ละไฟล์:
.metallib
แต่ละไฟล์คือชุดของไฟล์ .air
จำเป็นต้องแตกไฟล์โดยใช้รูปแบบของ zhouwei_unpack_metallib_to_air()
.metallib
บางไฟล์จริงๆ แล้วเป็นไฟล์ FAT Mach-O ดังนั้นจึงจำเป็นต้องทำให้บางลงด้วยตนเอง (ยูทิลิตี้ lipo
ของ Apple ไม่รองรับสถาปัตยกรรม AIR64 ที่เราต้องการ)_thin_file()
.air
จะต้องถูกถอดรหัสครั้งถัดไปเป็น .ll
(LLVM IR) โดยใช้ยูทิลิตี้ metal-objdump
ของ Apple_decompile_air_to_ll()
_patch_ll()
.air
เราใช้ยูทิลิตี้ metal
ของ Apple_recompile_ll_to_air()
.air
แต่ละไฟล์ลงในคอลเลกชัน .metallib
เราใช้ยูทิลิตี้ metallib
ของ Apple_pack_air_to_metallib()
เมื่อเสร็จแล้ว ไฟล์ .metallib
ที่ได้ควรใช้งานได้กับ GPU ที่ใช้ Metal 3802 ใน macOS Sequoia
MetallibSupportPkg ไม่ได้มีไว้สำหรับผู้ใช้ทั่วไป สิ่งต่อไปนี้มีไว้สำหรับนักพัฒนา
ติดตั้งการพึ่งพาที่จำเป็น:
python3 -m pip install -r requirements.txt
# Note Xcode is required to be installed for the `metal` and `metal-objdump` utilities
ดึง URL IPSW:
python3 metallib.py -d
# Example result: UniversalMac_15.0_24A5279h_Restore.ipsw
แยกโวลุ่มของระบบจาก IPSW:
python3 metallib.py -e < path_to_ipsw >
# Example result: 090-49684-056.dmg
Fetch Metal libraries จากโวลุ่มระบบจะแยกเป็น 15.x-
:
python3 metallib.py -f < path_to_system_volume >
# Example result: 15.0-24A5279h
ไลบรารี Patch Metal:
# Directory containing the Metal libraries
python3 metallib.py -p < path_to_metallib_dir >
# Individual Metal library
python3 metallib.py -p < path_to_metallib >
แปลงไลบรารี Metal เป็นแพ็คเกจ macOS:
python3 metallib.py -z < path_to_metallib_dir >
# Example result: MetallibSupportPkg-15.0-24A5279h.pkg
usage: metallib.py [-h] [-d] [-e EXTRACT] [-f FETCH] [-p PATCH] [-b BUILD_SYS_PATCH] [-z BUILD_PKG] [-c]
Download, extract, fetch, and patch Metal libraries.
options:
-h, --help show this help message and exit
-d, --download Download the latest IPSW.
-e EXTRACT, --extract EXTRACT
Extract the system volume from an IPSW.
-f FETCH, --fetch FETCH
Fetch Metal libraries from the system volume.
-p PATCH, --patch PATCH
Patch Metal libraries.
-b BUILD_SYS_PATCH, --build-sys-patch BUILD_SYS_PATCH
Build a system patch dictionary.
-z BUILD_PKG, --build-pkg BUILD_PKG
Build a macOS package.
-c, --continuous-integration
Run in continuous integration mode.