' November 2014

Tuesday, November 4, 2014

How Updates Work (or Why OTAs Break Root)

Updates can make or break functionality on your phone or tablet. No matter which operating system you may have (iOS, Android, Windows Phone, etc.), updates can be troublesome, as they can break your jailbreak/root that you may have worked hard on to get (and make it harder to re-obtain it). But before we can explain why they are so destructive to custom tweaks, we must first explain what updates are and what they consist of.

What are updates?

Updates (known as OTAs, or over-the-air updates, to Android users) are patches to an operating system that can add, remove, or change functionality of said operating system. Updates can be made to patch only certain system files (minor updates), or they can be made to patch the entire operating system (major updates). For example, an update can contain fixes for security breaches or hacks that can be exploited to create a jailbreak/root. If you're a user that is security-minded and/or ready to try new concepts as they are deployed, OTAs can be very useful. However, if you're a person that likes to jailbreak/root and tweak the operating system(s) installed on your device, OTAs can be bad. For example, a version of an OS that could be jailbroken/rooted via an exploit can be patched in an update, making it harder to jailbreak/root your phone/tablet. Sometimes updates will leave custom tweaks as is, but this is usually not the case.

Why are updates so destructive to custom tweaks?

Updates are often destructive to custom tweaks for a few reasons: 1) they can wipe the entire operating system core (usually leaving alone apps and user data stored in internal memory and/or an external SD card) and copy in all core OS files from the update; 2) they can make modifications to only certain files, breaking tweaks dependent upon said modifications; 3) they can safely remove any and all custom modifications to the OS; and/or 4) they can create file patches that will need to be bypassed in order to preserve root and/or re-obtain it. Not all files used in rooting (Android only) may be removed with an OTA, so re-rooting could be easier. Also note (Android only) that performing a factory reset may not remove root and/or other tweaks, as a factory reset will usually only overwrite user data and not system files (although custom tweaks may be dependent upon certain user data), while an OTA will typically do the opposite (keep user data, overwrite system files).

Is there anything that can be done to preserve my root/jailbreak when an update occurs?

While not guaranteed, there are steps you can take to attempt to preserve your root/jailbreak and/or custom tweaks. If you're using the SuperSU app on Android, you can try checking the "OTA Survival" checkbox in the SuperSU settings, although OTAs may fail while the checkbox is checked. Make sure to search the Web to check if your device root will survive or break after a particular OTA or if the "OTA Survival" setting will prevent an OTA from being applied. You may find after an update that root is preserved through the OTA with the OTA survival setting off, in which case that particular OTA is probably a minor one. For iOS, an OS update will almost certainly patch a jailbreak, so if you wish to keep it for future use, make a backup of your OS before you update so you can revert to it in a later point in time. As for Windows Phone, you may not have an option to keep your jailbreak after an update, so update only when a way of jailbreaking the latest update is available. One surefire way of preventing a root/jailbreak loss is to not update (or if you must update, wait until a method of jailbreaking/rooting the update is available). Another option is to install a custom OS (each device has a specific way of doing this), but you will often need to unlock your bootloader, install custom firmware to bypass any security measures implemented by your carrier/device manufacturer, and/or void your warranty. For instance, CyanogenMod and most derivatives of it come with root and Busybox (a package for rooted Android users that allows you to use a broader spectrum of typical Linux commands) by default, so you can update these without worrying about breaking root, but OTAs/updates of custom operating systems of any kind may break custom tweaks.