checkra1n / BugTracker

checkra1n bug tracker
729 stars 104 forks source link

Feature Request: Allow users to update their system with OTA incremental packages (if have) instead of full packages #586

Open Halo-Michael opened 4 years ago

Halo-Michael commented 4 years ago

Feature Request: Allow users to update their system with OTA incremental packages (if have) instead of full packages At first glance this seems to have nothing to do with checkra1n. But after reading this article, I will explain the purpose of this request and its significance When Apple launches a new system, users can update by connecting to a computer (using iTunes) or directly using the OTA function. For the former, the system partition must be completely overwritten every time the system is updated. Even if the system partition is completely damaged, as long as the user partition is not affected, it can be updated to the latest system without leaving other adverse consequences. For the latter, users can conveniently complete the system update steps directly on the mobile phone without the need of a computer. In order to make this process more "convenient", for two systems with similar update version numbers, Apple will not only provide a "full package" update package, but also provide another "incremental package" update package. When using incremental When the package is updated, the system partition will not be reformatted. Instead, the files added in the new system will be "changed" on the "existing basis". Jailbreak users before iOS 12 or earlier will find that when After they modified the system font and updated the system via OTA, sometimes their fonts did not revert to the default system font. This is because the recovery package for these "user-defined changes" is not included in the incremental package. Therefore Their changes to the system partition (modified fonts) can be retained in the updated system. Not only the fonts can be retained. In fact, if you use the "incremental package" update, your tweaks will also be retained. If you Fortunately, you have updated to a system version that can still jailbreak (12.4?), Then you will find that your tweaks can still work without reinstalling. But in iOS13, Apple changed the rules of the game. Before each update, the system will "check" the system partition files. Apple will check if you have made any file changes to the system partition (/ dev / disk0s1s1). If so, the device will refuse to install the "incremental package" and will instead require the user to install the "full package". In this way, every time an OTA update is performed, the system partition is guaranteed to be restored to the "correct" file system (but according to my research, apfs snapshot is not in the scope of the inspection. They only check the file integrity of the system partition ). So after each OTA update, tweaks disappeared, the fonts disappeared, and users had to reinstall tweaks (redeploy the changes they made to the system partition). It's tedious and exhausting. So if there is a way to bypass this "system partition file integrity check" and let users install "incremental packages" (if have) instead of "full packages" with each update, then the user updates the system and Re-jailbreaking will be very easy and unlikely to cause other problems. In fact, in order to achieve this, in addition to bypassing this "system partition file integrity check" before OTA, there may be other methods. But as long as it can achieve the purpose, the usability of checkra1n will be greatly improved. (Translated by Google, my English is not good, sorry)

sbingner commented 4 years ago

Doing this would be very likely to cause bootloops. The correct way to do this would be to revert to the stock snapshot then allow it to apple the OTA update from stock mode, never try to do an upgrade while jailbroken. It would be nice to be able to save and reapply changes but that's really not feasible and you don't know what happened on the base system in the middle so that saved changes could still break things. All your preferences are saved, and you can easily save a list of packages installed. If you did this, any packages that don't work on the new OS or required different postinst etc on the new OS would break.

0x41c commented 4 years ago

just use batchomatic (its like four buttons to press and 10 min wait time max

Halo-Michael commented 4 years ago

just use batchomatic (its like four buttons to press and 10 min wait time max

I have 100 ways to did that, but it's not “convenient” enough.