Sei sulla pagina 1di 7

International Journal of Computer & Mathematical Sciences

IJCMS
ISSN 2347 – 8527
Volume 6, Issue 6
June 2017

Booting Process in Mobile Phones,Comparison between


Booting Process of Android OS and iOS.

Nainika Kaushik
Jagan Institute of Management Studies

ABSTRACT-In booting we wake up the device and check the connectivity of the peripherals,check the software
,operating system,applications on the device..There are many papers and specifications that describe about the booting
process of mobile phones. This paper tells us about the steps that are needed to boot up the mobile phones. It also
explains the booting process of android and iOS operating systems. This paper attempts to capture,the comparison
between android and iOS operating system,that which one is more secure,their interoperability and many other factors.
KEYWORDS-Booting mobile phones ,Andriod booting,iOS booting.

INTRODUCTION
Sometimes with change in times, luxury becomes requirement. And so is the case with mobiles. Today having
a mobile phone is no longer a luxury but a necessity. There has been development in the all the sphere of
mobile, be it any phase like hardware-camera, processor, memory etc. or software- operating system. But the
basics remain the same. what happens while switching on mobile and how it starts working. The first step is
booting ,the aim of the booting process is ,bring all the applications that is needed,by initializing
registers,check the status of the peripherals.
Android, iOS, symbian ,bada ,all of these operating systems have their own booting process.
Android is linux based open source operating system, x86 (x86 is a series of computer microprocessor
instruction set architectures based on the Intel 8086 CPU.) is most likely system where linux kernel is
deployed however all Android devices are running on ARM process (ARM (formerly Advanced RISC
Machine, which was formerly Acorn RISC Machine)) except Intel’s Xolo device . comes with Atom 1.6 GHz
x86 processor. Android boot sequence has minor difference compare to desktop version.
Whereas in iOS, each step of the boot-up process contains components that are cryptographically signed by
Apple to ensure integrity, and proceeds only after verifying the chain of trust. This includes the bootloaders,
kernel, kernel extensions, and baseband firmware.When an iOS device is turned on, its application processor
immediately executes code from read-only memory known as the Boot ROM. This immutable code is laid
down during chip fabrication, and is implicitly trusted. The Boot ROM code contains the Apple Root CA
public key, which is used to verify that the Low-Level Bootloader (LLB) is signed by Apple before allowing it
to load. This is the first step in the chain of trust where each step ensures that the next is signed by Apple.
When the LLB finishes its tasks, it verifies and runs the next-stage bootloader, iBoot, which in turn verifies
and runs the iOS kernel. This secure boot chain ensures that the lowest levels of software are not tampered
with, and allows iOS to run only on validated Apple devices.
The paper catalogs, the steps that are there in booting of a mobile phone ,booting processes of android and
iOS operating system, comparison between them on the basis of interoperability ,security ,etc.

193 Nainika Kaushik


International Journal of Computer & Mathematical Sciences
IJCMS
ISSN 2347 – 8527
Volume 6, Issue 6
June 2017

BOOTING PROCESS OF MOBILE PHONES


Booting
Today with different variety of mobile platform coming up every day, there are also associated different
booting procedures. Android, Symbian, Blackberry etc. different operating system boots up in their different
way.

Fig 1:Booting procedure of a mobile


The figure above shows the various steps of the booting procedure of a mobile.
· Bootstrap
As soon as the power button is pressed, it leads to a reset of CPU (registers values are set to predefined value).
The code which executes the task at the initial stages of booting is hardwired and is stored at a fixed location.
As the hardware connected to mobile is always fixed, so the preliminary task is very basic which includes
checking of all chip components working properly. Then next is the job of bootloader, whose job is to locate
and load the kernel. Generally bootloader used in case of embedded system is uBoot or some proprietary
bootloader.

· Kernel
Kernel stage can also be broken in few stages. But the preliminary stage is BSP-Board Support Packages,
which is the code specific to hardware/chip. BSP is responsible for the assigning of the various functionality
operations to the controllers and pins of the chip. After this, operations such as initialization of interrupt
controllers, setting up of memory protections, caches and scheduling, memory management occur.

· Filesystem
Generally speaking filesystem is way of organizing data. This is very basic definition, but the tasks performed
by filesystem are itself very vast. This stage is loaded by the bootloader and is called in the middle of the
Kernel stage. All the data present in the mobile or any system is organized, stored and updated because of
filesystem. In case of embedded system generally used filesystem are YAFFS, UBIFS, UFFS etc.

194 Nainika Kaushik


International Journal of Computer & Mathematical Sciences
IJCMS
ISSN 2347 – 8527
Volume 6, Issue 6
June 2017

· System Startup
As the kernel and filesystem are up, then the system startup process can began. From this stage all the
processes that occur are related directly with the user space applications. From the libraries to the framework,
all the work takes place in this layer. Web manager, Sound manager, Graphics manager etc. all are brought to
life in this phase. At the end of this phase applications are launched.
· GUIs
This is the final and apparent stage, which is seen by everyone. This leads to the display of the user defined
settings and the applications launching. GUI is graphic user interface that is a way of communicating with the
mobile by its user.
This is how a small but a complex machine comes to life.

ANDROID BOOT PROCESS


The initial boot stages of an Android phone in some detail.
1.Poweron and boot ROM code execution

Fig 2: Initial stepd

At power on the CPU will be in a state where no initializations have been done. Internal clocks are not set up
and the only memory available is the internal RAM. When power supplies are stable the execution will start
with the Boot ROM code. This is a small piece of code that is hardwired in the CPU ASIC.

 A. The Boot ROM code will detect the boot media using a system register that maps to some physical
balls on the asic. This is to determine where to find the first stage of the boot loader.
 B. Once the boot media sequence is established the boot ROM will try to load the first stage boot
loader to internal RAM. Once the boot loader is in place the boot ROM code will perform a jump and
execution continues in the boot loader.
2. The boot loader is a special program separate from the Linux kernel that is used to set up initial memories
and load the kernel to RAM. On desktop systems the boot loaders are programs like GRUB and in embedded
Linux uBoot is often the boot loader of choice. Device manufacturers often use their own proprietary boot

195 Nainika Kaushik


International Journal of Computer & Mathematical Sciences
IJCMS
ISSN 2347 – 8527
Volume 6, Issue 6
June 2017

loaders.

Fig 3:Boot Loader

 A. The first boot loader stage will detect and set up external RAM.
 B. Once external RAM is available and the system is ready to run something more significant the first
stage will load the main boot loader and place it in external RAM.
 C. The second stage of the boot loader is the first major program that will run. This may contain code
to set up file systems, additional memory, network support and other things. On a mobile phone it may also be
responsible for loading code for the modem CPU and setting up low level memory protections and security
options.
 D. Once the boot loader is done with any special tasks it will look for a Linux kernel to boot. It will
load this from the boot media (or some other source depending on system configuration) and place it in the
RAM. It will also place some boot parameters in memory for the kernel to read when it starts up.
 E. Once the boot loader is done it will perform a jump to the Linux kernel, usually some
decompression routine, and the kernel assumes system responsibility.
3.The Linux kernel starts up in a similar way on Android as on other systems. It will set up everything that is
needed for the system to run. Initialize interrupt controllers, set up memoryprotections,cachesandscheduling.

Fig 4:Kernel

 A. Once the memory management units and caches have been initialized the system will be able to
use virtual memory and launch user space processes.

196 Nainika Kaushik


International Journal of Computer & Mathematical Sciences
IJCMS
ISSN 2347 – 8527
Volume 6, Issue 6
June 2017

 B. The kernel will look in the root file system for the init process (found under system/core/init in the
Android open source tree) and launch it as the initial user space process.
4. The init process is the "grandmother" of all system processes. Every other process in the system will be
launched from this process or one of its descendants.

Fig 5:Init
 A. The init process in Android will look for a file called init.rc. This is a script that describes the
system services, file system and other parameters that need to be set up. The init.rc script is placed in
system/core/rootdir in the Android open source project.
 B. The init process will parse the init script and launch the system service processes.
5. The Zygote is launched by the init process and will basically just start executing and and initialize the
Dalvik VM.

Fig6 :Zygote
6.The system server is the first java component to run in the system. It will start all the Android services such
as telephony manager and bluetooth. Start up of each service is currently written directly into the run method
of the system server. The system server source can be found in the file
frameworks/base/services/java/com/android/server/SystemServer.java in the open source project.

197 Nainika Kaushik


International Journal of Computer & Mathematical Sciences
IJCMS
ISSN 2347 – 8527
Volume 6, Issue 6
June 2017

Fig7 :System Server

7. Boot completed,Once the System Server is up and running and the system boot has completed there is a
standard broadcast action called ACTION_BOOT_COMPLETED.

IOS BOOT PROCESS


iPhone boot process consists of multiple boot stages which are only loaded if the current stage is able to
successfully verify the integrity and authenticity of the next stage to be loaded [6]. Normally, in booting
process, the BootROM boots first. This has keys for subsequent phases that are used to verify the integrity of
the later boot stages. This stage loads the subsequent first level boot loader LLB. LLB verifies the integrity of
second level boot loader iBoot which in turn verifies and loads kernel and NAND Flash.
Due to built-in chain of trust mechanism, it is really difficult for an investigator to gain lower level access
during normal booting sequence. That requires iPhone’s special purpose boot mode [7], known
as Device FirmwareUpgrade ( DFU ) mode. This mode is designed to perform firmware upgrade for iPhone.
This mode has an alternate boot sequence. This mode loads BootROM. BootROM loads second stage boot
loaders iBSS and IBEC. iBEC checks the integrity of Kernel. Kernel checks the RamDisk and loads the
contents of RamDisk into memory.

Fig 8:Normal Mode Boot Sequence


An investigator can design a custom toolkit and load it on custom RamDisk. This custom toolkit consists of
tools required for forensic acquisition and basic UNIX tools like OpenSSH, netcat, md5sum etc. This custom
RamDisk can be loaded into iPhone’s memory to perform forensic activities.

198 Nainika Kaushik


International Journal of Computer & Mathematical Sciences
IJCMS
ISSN 2347 – 8527
Volume 6, Issue 6
June 2017

Fig 9:Dfu Mode Boot Sequence

CONCLUSIONS
Android uses an open architecture which allows third party manufacturers to install their own custom NAND
Flash to provide customizations for their device. This open design allows people to install their own ROMs
and OS images by design. If the Android NAND Flash were erased and filled it with a custom program, then
you can bypass any OEM restrictions and locks. Typical ROMs can be found at: cyanogenmod.
iOS, on the other hand, is a closed architecture and does not allow interoperability with other device
manufacturers. Apple wants to be the only one who manufactures the iPhone. It has long been Apple’s
strategy to provide both hardware and software together and lock out third party hardware vendors.
The iOS boot process is fairly similar to android but with enhanced security features. The BOOT ROM is
read only and therefore cannot be modified as designed. This is an added security feature but also its
weakness because any exploits discovered will stay vulnerable until Apple releases a new hardware device
and the end user has to buy the new one.iOS uses a secure boot chain.

REFERENCES
[1]Apple"iOSsecurity"October2012[Online]Available:http://images.apple.com/iphone/business/docs/iOS_Security_Oct1
2.pdf
[ 2] Pete Hoang, April 2013[Online] .Available: http://petehoang.blogspot.in/2013/04/comparison-of-android-and-ios-
boot.html?m=1,
[3] S. B., “iPhone Forensics,” 6 January 2012. [Online].Available: http://resources.infosecinstitute.com/iphone-
forensics/. [Accessed August 2012].
[4]“DFUMode,”22December2011.[Online].Available:http://theiphonewiki.com/wiki/index.php?title=DFU_Mode.
[Accessed August 2012].
[5]Rahilparikh,“iPhoneForensics,”6January2012.[Online].Available:http://bits.rahilparikh.me/2012/09/12/iphone-
forensics/
[6]RameshJ,"AndroidBootupSequence"[Online].Available:https://sites.google.com/site/merameshj/Home/educational/tec
hnical/android/android-boot-up-sequence
[7]The Engineersgarage website .[Online]. Available: http://www.engineersgarage.com/mygarage/how-mobile-phone-
boots?page=1
[8] Wikipedia-The free Encylopedia. Available: http://en.wikipedia.org/wiki/Booting
[9] The Google website. [Online]. Available: https://www.google.com.
[10] The IEEE website. [Online]. Available: http://www.ieee.org.

199 Nainika Kaushik

Potrebbero piacerti anche