iOS Jailbreak (iPhone, iPad, iPod Touch, Apple TV)

47 readers
1 users here now

We stand in solidarity with numerous people who need access to the API including bot developers, people with accessibility needs (r/blind) and 3rd...

founded 2 years ago
MODERATORS
151
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Sufficient-Spell-230 on 2024-10-28 15:14:24+00:00.

152
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/JapanStar49 on 2024-10-28 02:19:22+00:00.


CyberKit has been in many ways been a proof-of-concept, so it's only fitting that it would eventually get a write-up explaining how it works. I'll be doing this write-up with respect to the current development branch, currently at . The purpose of this is to explain what CyberKit commits do, because I think the knowledge of how to make a browser with a third-party browser engine for jailbroken iOS should be documented somewhere other than by reading CyberKit commit history (which includes unhelpful generated commits in the hundreds of thousands of lines that I've never read either).

For those of you unfamiliar, CyberKit is a fork of WebKit, which is the open-source browser engine used, and mandated, by iOS before 17.4. (Since CyberKit came out before 17.4, the ability to use alternative browser engines than the system WebKit is arguably yet another feature stolen by Apple from jailbreakers.)

CyberKit is not a browser, although like WebKit, releases are provided with browsers in order to use it effectively. It's actually a collection of frameworks that provide an alternative newer implementation of the system frameworks with the same names. Conveniently, this property means that (virtually) any app that has a dependency on a WebKit framework (such as WebKit.framework) can be made to depend on CyberKit instead, because dynamic libraries store their dependencies in load commands that can easily be edited without even having the source code of the app. Even MobileMiniBrowser releases are now generated this way.

While it is a jailbreak application, a lot of CyberKit development is just taking previously removed code from WebKit history, and finding ways around the various obstacles iOS put in our way, intentionally or not.

If you're compiling yourself, open the workspace, set the build and intermediates directory to "WebKitBuild" relative to the workspace, and run the targets "Everything up to WebKit" and then "MobileMiniBrowser".


The first thing we need to do is configure jetsam. We actually only have ever needed this so far for the XPC services that actually do the work (for proof, see the legacy jetsam configuration wiki page), because iOS assigns abysmally low jetsam limits by default to XPC services (think 6-8MB of memory allowed, which is why iOS 17.4+ had to switch over to extensions when it applied the newly introduced BrowserKit to WebKit as well).

The jetsam configuration commit handles this by inserting some memorystatus_control syscalls (this requires an entitlement, more on those later) in the XPC service entry point file. The special __attribute__ ((constructor)) syntax (for tweak devs reading, this is what the preprocessor %ctor Logos directive stands for) causes the jetsamConfigurator function to run at load time, before even the main function (entry point), so we can easily raise our jetsam limits to a more manageable 840 MB.

Next, we set some configurations to globally set the deployment target of CyberKit (because WebKit doesn't set one, so it defaults to the Xcode SDK version, which is obviously bad for us).

The fakesign script is there to automatically build DEB and TrollStore IPA releases from an app — such as the example barebones WebKit browser known as MobileMiniBrowser, which by itself is actually only 202 KB decompressed excluding any app icon (not a typo, it really isn't even a single megabyte) — and build folder, and put everything together (because WebKit doesn't provide on-device iOS build scripts for obvious reasons). We fakesign WebKit because we need to be jailbroken anyways to get enough entitlements. This is where CyberKit's entitlements (the list is not perfect, but gets the job done — it was obtained experimentally from logs and through lists of entitlements) are appended to the existing entitlements, if any, of each framework and the app itself, and the app's dependencies are corrected. Because we obviously can't just use the system WebKit which is stored in the dyld shared cache, this step is costly in terms of storage space — for instance, MobileMiniBrowser is now as high as 1.65 GB decompressed after doing this.

Skipping ahead momentarily, we have two other new scripts. The ICU compile script (mostly thanks to ) allows us to bundle the latest version of the open-source ICU library as well, because the system framework version gets outdated with the release of new Unicode versions, and although not a part of WebKit itself, it is a required dependency. The semi-rename script fixes bundle identifiers, because they must be unique for things to work properly and there's no reason we shouldn't correct this.

The next commit fixes more configuration issues, such as forcing WebKit to base the decision of XPC services vs. 17.4+ extensions on the deployment target instead of the SDK version. We also need to add WebKitSwiftOverlay to the target because it wasn't actually integrated into WebKit.framework until just hours ago on the main branch (!) — see — and browsers written in Swift (e.g. Firefox) depend on these Swift implementations being there.

Anything else (this part probably is actually the majority of CyberKit effort, although technically less challenging) is effectively debugging — just finding fixes (usually implemented by using conditional compilation, often by setting values in PlatformHave.h to their historical values (WebKit removes/simplifies these conditions that become redundant to them after they stop supporting an iOS version), to exclude code that depends on new APIs) as needed to make it compile, link, and run. If you're able to read code in Objective-C (and hopefully write some too), this stuff is actually something you could do (assuming you had the time to devote to it).

153
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Mysterious-Bend-901 on 2024-10-27 06:18:27+00:00.

154
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/dayanch96 on 2024-10-26 18:45:55+00:00.


Hey everyone!

Today, I'm releasing another small open-source tweak. This one prevents those annoying "rate the app" pop-ups from appearing.

You can check out the source code and download the tweak on my GitHub repository.

For those on jailed devices, you can also inject it into an IPA app for installing using your certificate.

155
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Bubblylionpup on 2024-10-26 14:41:27+00:00.

156
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Artistic-Bus3532 on 2024-10-26 00:10:25+00:00.

157
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/B0bMarl3ySm0k3 on 2024-10-24 23:48:23+00:00.

158
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/kano_234 on 2024-10-24 16:00:36+00:00.

159
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/adrifcastr on 2024-10-23 20:47:33+00:00.


I've been severely annoyed with how progressively worse the yt search results are getting so, I present Gonerino, very creative I know, just head to settings, add channel names and that's it. (I've not managed to make the settings view update its state in realtime so added and removed entries won't propagate visibly until you leave the settings page), I'll probably see to add a 'Block this channel' option to the long press menu at some point if I manage to figure out which component to hook, anyway have great day o7

160
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/s3b43 on 2024-10-23 12:44:42+00:00.

161
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/WilkOskar on 2024-10-23 16:51:51+00:00.


Hey there everyone!

I’d like to announce the release of my newest tweak, Griddy!Griddy lets you place your icons anywhere you want on the grid allowing for unique arrangements

Simply go into edit mode and drag your icon wherever you want it. After you let go, it will stay in place, even if there’s empty spots before it!

Griddy works on your homescreen, dock and even in folders! Now, you can design your home screen however you want! You also don’t have to worry about respings or reboots, because Griddy will take care of remembering your layout.

Griddy is available on Havoc () for $1.49 and supports iOS 15-16

If you have any issues, feel free to contact me here or on discord: mikifp ()

Also, if you’re interested, check out the source code for Griddy on Github:

162
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Crooton04 on 2024-10-23 02:42:20+00:00.

163
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/mikey7282 on 2024-10-23 01:27:03+00:00.

164
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/AtmosphereOk5708 on 2024-10-20 23:03:23+00:00.

165
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/dayanch96 on 2024-10-20 11:27:08+00:00.


Hey erryone

I've just released a small and open-spurce tweak that replicated iOS 18 control center modules by making them round.

No extra options or features - just keeping it simple

Source code, screenshots and tweak files available in my Github repository

166
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/LipefipeFelps2 on 2024-10-20 04:04:59+00:00.

167
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/VintageMobile on 2024-10-19 16:10:53+00:00.

168
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Otherwise_Ad7018 on 2024-10-18 18:41:01+00:00.


Hey guys so starting Friday Oct 4th. Snapchat has started rolling out weekly temp locks for jailbroken users. Today marks the 3rd week for this and my account was just locked again. After the first lock (which lasted about 24hrs) I used choicy to completely disable tweak injection for snapchat. This worked for me as i didnt get locked the second time. This week i wanted to test if it would care if i spoofed gps and unfortunately it did. So assume no tweak is safe. And continual locks will permanently ban the account.

If you have any more info please drop it down below.

169
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/slamsmcaukin on 2024-10-17 15:57:20+00:00.

170
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/AdorableAdd on 2024-10-17 10:24:58+00:00.

171
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Old-Statement-7380 on 2024-10-16 14:37:28+00:00.

172
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/MrNerdHimself on 2024-10-16 13:27:55+00:00.

173
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/dont_trust88 on 2024-10-15 19:33:25+00:00.

174
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Internal_Page_486 on 2024-10-15 16:06:49+00:00.

175
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/jailbreak by /u/Jacobahalls on 2024-10-15 00:32:18+00:00.

view more: ‹ prev next ›