Skip to content

Latest commit

 

History

History
99 lines (53 loc) · 7.74 KB

File metadata and controls

99 lines (53 loc) · 7.74 KB

Cydia/APT Repo URL: https://cydia.angelxwind.net/

Tap here to add my repo directly to Cydia!

Donate Using PayPal ([email protected]) (donations are greatly appreciated, but are not (and never will be) necessary!)

IMPORTANT: Regarding AppSync Unified and Piracy

#JulioVerne drama: tl;dr version

  • I am working together with JulioVerne, not "competing" against him
  • I'm not "jealous" of JulioVerne for being first at getting AppSync Unified to work... I've asked other developers in the community for help, too.
  • iOS 10 boot loop was caused by AppSync Unified crashing installd whenever Cydia ran uicache
  • JulioVerne's fix uses the actual Apple certificate, which was why I was concerned about copyright.
  • He is trustable, never did anything out of malice. And skilled. He just happens to crack software as a hobby.
  • I recommended people to not install it out of fear it might be unstable, I wanted to analyse and thoroughly test the code first, then make a release if it was okay.
  • The theories /r/jailbreak and Twitter come up with are hilarious. This isn't a popularity contest.

#Fully explaining the drama surrounding JulioVerne

Amazing. In the few hours that JulioVerne's release of AppSync Unified has existed, the entire jailbreak community seems to have set itself on fire in some capacity.

Let's clear some things up.

"Competition"

First off, a lot of people seem to think I am "competing" with JulioVerne or something. I'm not. I DM'd him on Twitter, asked to know what he did, he gave me the source code, all was fine.

Yes, I would have preferred him make a pull request on GitHub (it's open-source!) or something instead of fragmenting the releases with his own, but he didn't exactly do anything wrong.

The only annoying thing about what he did is that now I have to deal with release fragmentation — people don't always read the version number of what they're installing, or what repo they're installing from, so there will inevitably be a few people who install the JulioVerne version (or even the broken-on-iOS-10 version 5.8!!) even though I've released 6.0~b1.

"Jealousy"

Some other people think that I'm jealous of Julio for being "first" ... I'm not? It's actually a good thing that someone was able to figure it out.

It's not like I was trying to do this alone, either — I had asked two other developers in the community — /u/saurik and /u/ijapija00 to see if either of them had any idea what was causing the Security.framework crash in AppSync Unified. (We still haven't figured that out — I still want to.)

Being first at something is not a reason to be jealous. Instead, learn from them and improve your own work based on their ideas (given permission).

What caused iOS 10 devices to drop like flies

So, to defeat installd's app signature checking, AppSync Unified returns some fake data when installd asks for the certificate. For reasons I do not yet fully comprehend, this causes Security.framework to crash installd on iOS 10.

Now, this normally would not be an issue... except that Cydia automatically runs uicache (for UX purposes) after you install any package, regardless of whether or not an app was included. The thing is, uicache (or rather, the LaunchServices method it uses) makes use of installd, which now crashes.

So, as a result, the SpringBoard icon cache is now left in a half-finished, broken state, which causes SpringBoard to crash in a loop. And that's how the respring/"boot" loop problem happens.

JulioVerne's changes, and my concerns/comments

I will now attempt to explain, in simplified terms, how JulioVerne's changes work. For those who have programming knowledge, please refer to GitHub commit SHA-1 1e3e6f1348a50608c3891c92918d55a40c71c22d.

Anyway, JulioVerne worked around the Security.framework crash by modifying the code to make it return the actual "Apple iPhone OS Application Signing" certificate.

The fact that an Apple certificate was embedded into the code (albeit in hex form) was what led me to be initially concerned about potential legal/copyright issues. However, the certificate is just a plain old public one, so it should be fine.

Also, JulioVerne accidentally ended up breaking iOS 5/6 support in his release, due to usage of Objective-C methods that don't exist in those iOS versions ;P

I've fixed all of those issues, and improved the code for his method a bit.

JulioVerne and his reputation

I guess I need to address a few points here. First off, JulioVerne is a skilled developer/"hacker" (if you want to call him that). While I did make a number of modifications to his code for AppSync Unified, the core concept and idea behind his changes still remained, and well, worked.

So is he reputable? Trustable? I'd say so, yeah. He did accidentally break some things, but that's just due to lack of testing.

"But he cracks tweaks like it's his day job! How could you say such things about someone like him!?"

...Eh. I'm talking about his skill and reputation here. He's clearly skilled because he can crack as many tweaks as he can. And he's reputable because he hasn't done anything out of malice in his cracked tweaks. Sure, he's probably made mistakes and broken a few things, but I'm pretty sure everyone — including myself — has.

While I may not agree with his philosophy, that doesn't mean I can't respect and recognise him for his skills/knowledge/problem-solving skills.

Why I recommended people to not install it

Shortly after news of the release got out, I made a number of tweets, most of which basically just recommended people not use it.

Sure, I knew it worked — but how well, was the question. The intent behind my words there was out of fear of device instability. I wanted to thoroughly analyse and test the code first, and then make a proper release if everything checked out.

All that being said, the amount of theories that /r/jailbreak and Twitter came up with were amazingly hilarious. Jailbreak development isn't a popularity contest — use what works, and ideally, what works well. At least, that's my take on it.

#Changelog (full changelog)

  • Return the public "Apple iPhone OS Application Signing" intermediate certificate instead of kSecMagicBytes on iOS 10 to avoid a Security.framework crash — thanks JulioVerne!

#Unified AppSync dynamic library for iOS 5 and above. Supports arm64.

  • AppSync Unified is NOT for piracy.

  • AppSync Unified is for freedom of iOS development with the official Xcode iOS SDK.

  • Jailbreaking is NOT for piracy.

  • Jailbreaking is for freedom of your iOS device.

AppSync Unified is a tweak that patches installd to allow for the installation of unsigned IPA packages on an iOS device. This is particularly useful for iOS developers who are not enrolled in Apple's official iOS Developer Program, as it allows these developers to debug and test their apps on their own devices using modifications such as iOSOpenDev.

I explain the problem with AppSync Unified and iOS piracy rather thoroughly in this reddit post. Please give it a read.

Again, AppSync is NOT meant to support piracy. Obviously it can still be used in that way, and I, nor anyone else can really stop you if you want to pirate, but please don't pirate and support the developers!