Wednesday, May 25, 2016

What is Chroot, Jails, and Jailbreaking?

As we already known that Mac OSX is a Unix operating system. iPhone is also running a Unix-based operating system. Unix is a cross-platform and multiuser system meaning that different accounts can be given various privileges to access the system. For example, the superuser called root can change any file on the system. The iPhone normally runs applications as a user called mobile, who has more limited access.


The key features to enforce security in Unix system is chroot. Chroot is an operation that changes the apparent root directory for the current running process and their children. A program that is run in such a modified environment cannot access files and commands outside that environmental directory tree. Suppose that  in the system, it has a user named Michael so Michael's home directory is /user/michael, chroot makes it so that / points to /user/michael on the hard drive.  Therefore, michael can't access parts of the system that he shouldn't. This security measures restricts Michael in what is called a chroot() jail.

The word jail has encompassed any metaphorical padded cell or "jail" restricting access to certain directories and limits which programs can be run.
On the iphone, the flash drive contains two partitions one of which is used for operating system (OS) and application and the other is for user data. About 300mb of total storage is reserved for OS and applications in partition /dev/disk0s1 whereas the rest of storage is dedicated to user data such movies pictures, and music in partition /dev/disk0s2.

As shipped, iphone consists of two major restrictions as follows:
  • The user can’t write to the os partition
  • The iphone won’t run any programs stored on the data partition

If you install an app store application, it can run because it is stored on the os partition.

In order to remove the restrictions mentioned above, the process of jailbreaking is needed to change the file /etc/fstab in an attempt to enable you to do tasks as follows:
  • Make the os partition writable
  • Enable execution of programs on the data partition

No comments:

Post a Comment