Can you apply jailbreak tweaks to a non-jailbroken device using a file browser such as Phone Disk?

Is it possible to use an iOS browser for Mac such as Phone Disk to apply a jailbreak tweak to a non-jailbroken iOS device?


No, you cannot run jailbreak tweaks without being jailbroken.

To jailbreak, from the lowest-level point-of-view, means that you have the ability to patch the kernel (modify the core operating system code). A couple of the kernel patches that are common in every jailbreak is one that mounts the / partition as read-write (so you can modify operating system files) and one that makes it so you can run unsigned code (either code that isn't approved by Apple or approved code that has been modified).

Almost all jailbreak tweaks make use of CydiaSubstrate (MobileSubstrate) which allows you to hook into running processes (run your own code inside them). Hooking works by rewriting the beginning of functions in a process's code, and that requires code signing to be disabled (which requires the kernel patch mentioned earlier). Also, CydiaSubstrate needs to inject itself into launchd (the process that manages all other processes in iOS), and that can only be done as root (the superuser) which requires placing a script in /private/etc/rc.d (a directory whose contents are each executed as root when the operating system boots) which requires write access to the / partition.

Additional Information

The actual iOS operating system is on a partition separate from your data. The user/data partition (/dev/disk0s1s2) is mounted at /private/var and can be written to. The operating system partition (/dev/disk0s1s1) is mounted at / and cannot be written to unless you've patched the kernel.

In your iOS filesystem browser on your computer, you can only access files in /private/var/mobile/Media. This is because the USB filesystem access daemon afcd (the code that your iOS filesystem browser connects to on the device) is jailed to that directory (it cannot access anything outside of it). When you jailbreak, you can install afc2d which is a replacement for afc that is no longer jailed.

iOS apps are jailed to their own directory and cannot access anything outside of themselves.

Editing your iOS backup does allow some simple modifications to be made. The backup, however, only contains files from the user/data partition (/private/var), so you will only be able to modify files there.


It depends.

There are some hacks, such as a hidden panorama mode, which reportedly work without a jailbreak. The App to use on your Mac or PC to make the necessary changes to tweak your iPhone is called iBackupBot. I'll bet if you dig around those files, you may find more cool things.

Remember, a jailbreak consists of a firmware image which has been modified, presumably at the binary level. (Odds are that jail breakers don't have access to iOS's actual source code. So, they'd use tools like binary/hex editors.) Hacks that require binary changes can't be used without changing the code that the phone executes. Changing the binary code is the essence of a jailbreak.

However, sometimes, as in the case of the hidden panorama mode mentioned above, apps (or even parts of iOS, more below) will read "settings" or "preferences" from external files. In those cases, simply supplying another value by editing property-list files may cause the app to act differently.

Apps that tap into the Settings app to store their settings write those settings to the phone's persistent storage as property-lists, which are simply a special form of XML.

In the panorama mode example, the Camera app looks inside the relevant property-list file to check for a "flag" or a switch which will turn panorama mode on or off. There just isn't any user interface for turning the mode on or off. (For clarity's sake: The XML to turn panorama on is not in the same place that most settings are.)

Using the tool mentioned in the article, I've noticed that technically, which icons are shown on SpringBoard is also editable. There are tens of property-list files which configure the system, you just need to have access to them and know what values might be useful.

iOS uses a lot of "Property Lists" and XML, and knowing what does what can yield interesting results. Just bear in mind that most of the "useful" hacks are either available via Settings, or only via a binary jailbreak.