Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Apple private framework header files #565

Open
rgoldberg opened this issue Oct 12, 2024 · 0 comments
Open

Update Apple private framework header files #565

rgoldberg opened this issue Oct 12, 2024 · 0 comments
Assignees
Labels
🧽 chore Administrative task: documentation, build, test, release, git, etc. 🔍 investigation
Milestone

Comments

@rgoldberg
Copy link
Contributor

rgoldberg commented Oct 12, 2024

Update header files for Apple private frameworks.

Synthesize combined headers that include symbols conditionally included for different macOS versions.

Make a new repo (mas-cli/apple-private-headers?) that contains all private headers that we've extracted. its main branch should contain a merge of all of the headers for all macOS versions, tracking when symbols were added / removed with available / deprecated / whatever appropriate keywords. Each extracted set of headers by a specific tool for a specific version of macOS should have its own branch, so we can diff branches. We could write a script to merge newly extracted headers into the existing main headers.

Presumably use ipsw, possibly the following command line:

ipsw class-dump /System/Library/dyld/dyld_shared_cache_arm64e 'CommerceKit' --headers --output /tmp/CommerceKit_HDRS

Framework libraries are now stored in the DSC, Dyld Shared Cache, from which ipsw can extract them.

ipsw should work on macOS 15, but it doesn't completely work on macOS 12 (not sure about other macOS versions).

On macOS 12, many symbols in the headers it outputs have incorrect truncated names, so they're useless.

If someone can run ipsw on a newer macOS, having new headers would be useful (we should also investigate other Apple frameworks beyond CommerceKit & StoreFoundation).

I might be able to get some other tool to work (I'll later investigate the ones mentioned in #417).

Possible tools:

Investigate:

@rgoldberg rgoldberg added the 🧽 chore Administrative task: documentation, build, test, release, git, etc. label Oct 12, 2024
@rgoldberg rgoldberg self-assigned this Oct 26, 2024
@rgoldberg rgoldberg changed the title Update Apple private framework header files. Update Apple private framework header files Oct 29, 2024
@rgoldberg rgoldberg added this to the 1.9.0 milestone Dec 31, 2024
@rgoldberg rgoldberg pinned this issue Jan 1, 2025
@rgoldberg rgoldberg modified the milestones: 1.9.0, Upcoming Jan 2, 2025
@rgoldberg rgoldberg unpinned this issue Jan 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🧽 chore Administrative task: documentation, build, test, release, git, etc. 🔍 investigation
Projects
None yet
Development

No branches or pull requests

1 participant