The headers that HASHBANG Productions uses. Headers are only created for classes we need, and only methods that we use are added to them. This is due to the large number of classes and methods that are broken in class dumps - this way, we manually set up the headers and they are guaranteed to work.
Feel free to use these (git clone git:https://github.com/hbang/headers.git $THEOS/include
- if you have an existing $THEOS/include
directory, rename it) and add on to them.
- Apple: IOKit headers: Apple Public Source License
- ashikase: IconSupport: ?
- ashikase: libpackageinfo: GNU GPL v3
- ashikase: TechSupport: GNU LGPL v3, Apache License 2
- Cykey: MediaRemote, MobileGestalt headers: GNU GPL v3
- HASHBANG: libopener: GNU GPL v3
- KennyTM: GraphicsServices, IOSurface headers: BSD 3 Clause
- OpenSSL: OpenSSL: OpenSSL
- PixelFire: libcolorpicker: MIT License
- Ryan Petrich: AppList: GNU LGPL v2.1
- Ryan Petrich: CaptainHook (submodule): MIT License
- Ryan Petrich: libactivator (submodule): GNU LGPL v2.1
- Ryan Petrich: LightMessaging (submodule): ?
- Ryan Petrich: RocketBootstrap (submodule): ?
Headers that aren't from elsewhere are released into the Public Domain.
-
Create headers only for what you use.
-
Follow the existing coding style.
-
Singleton (
sharedInstance
) methods should returninstancetype
. -
Don't just copy and paste lines from class-dumps - replace
id
with the appropriate class. Also changearg1
and the like, or in some cases class-dump-z's guessed argument names, to something more appropriate. Cycript is helpful here:$ cycript -p SpringBoard cy# [SBBaconController sharedInstance].baconCurrentlyBeingEaten.class @"SBBacon"
Additionally, keep ARM64 support in mind -
float
should becomeCGFloat
,int
should becomeNSInteger
, andunsigned
should becomeNSUInteger
. This is especially important when using the headers as reference for hooking. -
Any headers from an open-source library can be included here, but please note its license here in the readme.
-
(Optional but I'd appreciate it!) Be awesome; pull request your changes back to this repo so others can benefit.