Hello Everyone....
Today I will present you all the ultimate guide for ROM development starting from Source to End.
This guide will be applicable to all devices.
So lets Start
What is Android?
Android is the open-source operating system used for smartphones. Full Freedom for people using it
What is Android Source Code?
Android is an open-source software stack created for a wide array of devices with different form factors. The primary purposes of Android are to create an open software platform available for carriers, OEMs, and developers to make their innovative ideas a reality and to introduce a successful, real-world product that improves the mobile experience for users.The result is a full, production-quality consumer product with source code open for customization and porting.
So basically Android Allows to customize the things you like and make new things without any Restrictions. Cool isn’t it?
What is Android ROM ?
The Android ROM is the Android operating system. This is the User interface (Sense UI in HTC phones) and the file system for maintaining contacts etc. It is composed of a Linux kernel and various add-ons to achieve specific functionality.
What does a Android Rom Contain ?
Basically a Android Rom Contains following main things :
· Kernel
· Bootloader
· Recovery
· Radio
· Framework
· Apps
· core
· android-runtime,Etc
Some Basics About Above Terms
Kernel :
A kernel is critical component of the Android and all operating systems. It can be seen as a sort of bridge between the applications and the actual hardware of a device. Android devices use the Linux kernel, but it's not the exact same kernel other Linux-based operating systems use. There's a lot of Android specific code built in, and Google's Android kernel maintainers have their work cut out for them. OEMs have to contribute as well, because they need to develop hardware drivers for the parts they're using for the kernel version they're using. This is why it takes a while for independent Android developers and hackers to port new versions to older devices and get everything working. Drivers written to work with the Gingerbread kernel on a phone won't necessarily work with the Ice Cream Sandwich kernel. And that's important, because one of the kernel's main functions is to control the hardware. It's a whole lot of source code, with more options while building it than you can imagine, but in the end it's just the intermediary between the hardware and the software. So basically if any instruction is given to mobile it first gives the command to kernel for the particular task execution.
Bootloader :
The bootloader is code that is executed before any Operating System starts to run. Bootloaders basically package the instructions to boot operating system kernel and most of them also have their own debugging or modification environment. Think of the bootloader as a security checkpoint for all those partitions. Because if you’re able to swap out what’s on those partitions, you’re able to break things if you don’t know what you’re doing. So basically it commands the kernel of your device to Boot the Device properly without any issues. So careful with bootloader since it can mess things very badly.
Recovery :
Recovery is defined in simple terms as a source of backup. Whenever your phone firmware is corrupted, the recovery does the job in helping you to restore or repair your faulty or buggy firmware into working condition. It is also used for flashing the Rom’s , kernel and many more things.
Radio
The lowest part of software layer is the radio: this is the very first thing that runs, just before the bootloader. It control all wireless communication like GSM Antenna, GPS etc.
These are main parts of Android Operating System.
Now has we know what is Android and What it contains lets move to the Next major step. That is Android Rom Development from Source. But before starting this we need some Initial Setup and development Enviroment .
Android Rom Development
Setting Up Linux Enviroment
Pre – Requirements for Android Rom Development.
1) Linux Operating System ( I will take Ubuntu 13.10 has Example and also recommend you all)
2) Java Development Kit (JDK)
3) Some Tools.
Once you Download Ubuntu 13.10 you can Install it in 2 ways :
1) Installing has primary OS
2) Installing Inside the Windows ( Using VM or VB)
3) Dual booting Linux alongside Windows. ( Using different Partitions )
Here I will explain how to Install Linux inside Windows. You can use VirtualBox (Free) or VM Workstation/Player (Paid) Softwares. In this guide I will take example of Virtual Box.
Pre-requirements
1) Windows 7 64 bit
2) Download Virtual Box.
3) Install the VirtualBox
4) See that JDK is installed before installing VirtualBox
5) Ubuntu 13.10 ISO file ( Download it)
Installing Ubuntu 13.10 In VirtualBox
I will be using 2 words.
Guest : Operating System in Virtual Box 64 bit
Host : Windows 7 .
Note : Since we need to Install Ubuntu 64bit version Intel VT-x should be enabled else you will not be able to install 64bit. Your processor should support that feature.
Enabling VT-x.
1) ShutDown PC.
2) Boot into SetUp Menu (Bios Settings)
3) Go to Advanced --> Advanced Processor Options --> Intel(R) Virtualization Technology.
4) Enable it.
5) Save the settings.
6) Reboot
Installation of Ubuntu 13.10 64bit
1) Open VirtualBox.
2) Click on New button
·3) Type the Name you want to give to this OS which will displayed everytime you open VirtualBox.