Useful functions for tweak developers
Objective-C Logos Makefile Shell
Clone or download
Latest commit d39756c Jun 23, 2018
Permalink
Failed to load latest commit information.
Cephei.xcodeproj [docs] clean up docs and change to generating using jazzy Mar 13, 2018
CompactConstraint [docs] clean up docs and change to generating using jazzy Mar 13, 2018
Resources [docs] clean up docs and change to generating using jazzy Mar 13, 2018
containersupport [containersupport] /ˌdɒkjʊmɛnˈteɪʃ(ə)n/ Dec 17, 2015
defaults [defaults] whoops May 13, 2018
docs [docs] fix dash link and version Mar 23, 2018
info [defaults] act a bit more closely to macOS defaults; work on our docs May 11, 2018
prefs [l10n] Updated Japanese. Jun 23, 2018
.gitignore [gitignore] un-ignore docs/ Feb 14, 2017
.jazzy.yaml [jazzy] add defaults to sidebar May 11, 2018
Cephei.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
CepheiSpringBoard.plist [makefile] rename CepheiPreferencesSupport to a generic name Mar 9, 2017
Global.h [global,prefs] haha we shouldn't be using URL_ENCODE() any more May 29, 2017
Global.m [docs] clean up docs and change to generating using jazzy Mar 13, 2018
HBOutputForShellCommand.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
HBOutputForShellCommand.m ugh just make it a standard C function Jan 10, 2015
HBPreferences-Private.h [HBPreferences] organise into separate files Jan 8, 2017
HBPreferences.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
HBPreferences.m [HBPreferences] fixed crash by just… reverting to what it always did Feb 17, 2018
HBPreferencesCommon.h [HBPreferences] implement an IPC server to work around sandbox blocks Feb 3, 2017
HBPreferencesCore+Conveniences.h [HBPreferences] implement removeAllObjects method Feb 1, 2017
HBPreferencesCore+Conveniences.m [HBPreferences] forgot to also update these methods in 26f0fcf Feb 19, 2018
HBPreferencesCore.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
HBPreferencesCore.m [HBPreferences] wow, why was i using a global onceToken for this? May 26, 2018
HBPreferencesIPC.h [HBPreferences] implement an IPC server to work around sandbox blocks Feb 3, 2017
HBPreferencesIPC.m [HBPreferences] do NSParameterAssert()s everywhere just to be sure Feb 19, 2018
HBPreferencesServer.x [HBPreferences] block access to com.apple.* preferences within sandbox Feb 17, 2018
HBRespringController.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
HBRespringController.x [HBRespringController] don’t restart the render server (backboardd) Feb 24, 2018
JazzyUmbrella.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
LICENSE.md [prefs] add package glyph Aug 20, 2016
Makefile [jazzy,makefile] fix some minor docs-related thingies Mar 23, 2018
NSDictionary+HBAdditions.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
NSDictionary+HBAdditions.x [NSDictionary] i think this closer matches NSURLComponents behavior? Dec 17, 2017
NSString+HBAdditions.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
NSString+HBAdditions.m [framework] add category methods for query string encoding/decoding May 29, 2017
README.md [docs] clean up docs and change to generating using jazzy Mar 13, 2018
UIColor+HBAdditions.h [docs] clean up docs and change to generating using jazzy Mar 13, 2018
UIColor+HBAdditions.m [global] migrate to ARC where possible Mar 22, 2016
control [control] i still ponder if these tags are even used by anything Feb 18, 2018
postinst [postinst] messed up files workaround for sandbox workaround sadness Feb 17, 2018
postrm [postinst] fix stupid permission issues cephei 1.3 - 1.4 broke Feb 16, 2016

README.md

Cephei

Cephei is a framework for jailbroken iOS devices that includes various convenience features for developers. Primarily, it focuses on settings-related features, but it also contains other utilties. I hope you’ll appreciate what it has to offer.

All iOS versions since 5.0 are supported, on all devices.

Documentation is available at hbang.github.io/libcephei.

Integrating Cephei into a Theos project

Cephei is a hidden package in Cydia, so if it’s not already installed, you’ll need to either install something that uses it – try TypeStatus – or use apt-get install ws.hbang.common at the command line.

Theos includes headers and linkable frameworks for Cephei, so you don’t need to worry about copying files over from your device.

For all projects that will be using Cephei, add it to the instance’s frameworks list:

MyAwesomeTweak_EXTRA_FRAMEWORKS += Cephei

For all projects that will be using preferences components of Cephei, make sure you also link against CepheiPrefs.

You can now use Cephei components in your project.

You must also add ws.hbang.common to the Depends: list in your control file. If Cephei isn’t present on the device, your binaries will fail to load. For example:

Depends: mobilesubstrate, something-else, some-other-package, ws.hbang.common (>= 1.11)

You should specify the current version of Cephei as the minimum requirement, so you can guarantee all features you use are available.

Please note that Cephei is now a framework (/Library/Frameworks/Cephei.framework), instead of a library (/usr/lib/libcephei.dylib). Frameworks are only properly supported with recent versions of Theos. For backwards compatibility, libcephei.dylib and libcepheiprefs.dylib (and even libhbangcommon.dylib and libhbangprefs.dylib) are symlinks to the corresponding binaries. Do not use these in new code.

Trying it out

You can take a look at a demo of the Preferences framework-specific features of Cephei simply by copying /Library/PreferenceBundles/Cephei.bundle/entry.plist to /Library/PreferenceLoader/Preferences/Cephei.plist – quit and relaunch Settings if it’s open. Alternatively, you can compile Cephei yourself – when compiling a debug build, it will also automatically kill and relaunch the Settings app.

License

Licensed under the Apache License, version 2.0. Refer to LICENSE.md.