FORUMS
Remove All Ads from XDA

[INFO][Guide][Noob] [Android] [ROM][Kernel][Recovery][Development]

1,437 posts
Thanks Meter: 1,516
 
By Hnk1, Senior Member on 30th July 2013, 09:24 PM
Post Reply Email Thread
Hello all,

I know there are many people who are curious about android or/and are about their new device. With this in mind, I have decided to give a brief idea about Android and its different aspects. I will use as simple words as possible.
Every highlighted word is a term that is used often at XDA or just refers to the word in FAQs in case you cannot find it.

ANDROID is an open-source (thus possibilities endless) mobile operating system (OS) based on the Linux kernel and currently developed by Google
With a user interface based on direct manipulation, Android is designed primarily for touch screen mobile devices such as smartphones and tablet computers, with specialized user interfaces for televisions (Android TV), cars (Android Auto), and wrist watches (Android Wear).

ANDROID is usually based on these four major components:
ROM :
It is the system on which phone works (like windows for PC). Or simply called an Operating System. Can be Custom/Stock. Usually you need a custom or official tool to install/ repair a STOCK rom.
KERNEL is a part of ROM which is a programmed code that tells the phone how to function in accordance to the ROM & hardware capabilities. It can also be Custom/Stock. Sometimes they are used to enhance user experience, performance, battery life by small changes made to them. Some kernels are specific to ROMS.
DIFFERENCE BETWEEN CUSTOM/STOCK
When you buy your phone/tablet from a retailer, you are on STOCK ROM and STOCK KERNEL. (its from your mobile manufacturer and in this case straight from Google as it is a nexus device. Thus it is called a STOCK ROM/ STOCK KERNEL.
The STOCK ROM & KERNEL is usually an all-rounder to fit most of the users. However, some people are not happy with the limited option available on their devices. As Android is open sourced, and thus easily customized, they want to explore different options by tweaking their devices
In other words, some people like gaming on their devices while other want to increase the battery time, speed, performance etc and the possibilities are very vast as what we want from our devices. Like a person who likes to read books on his device would not care for heavy gaming performance but appreciate if he can get more juice out of his device so he can read more on a single charge.
Therefore, we can say we all need different flavours and thus there is a need for customisation. However, there could be some minor disadvantages too that come with some advantages like overclocking can result in heating and quick battery drain while it increases performance. Also, increased battery life might slow down your device if you are tweaking or under-clocking it too much Therefore, most of the developers try to find the best combination of both performance and battery. However, some custom ROMS/Kernels are developed with specific functions in their core like they might focus only on performance and gaming while other might just ignore heavy gaming and focuses on battery usage. Therefore, it is to your advantage to use your device how you like want it to function according to your preference.

By customisation, we run our devices to our needs and get the most out of it in accordance to how we want to customise it.
SOME CONSIDERATIONS
All devices ROMs and KERNEL are specific. This means stock/custom ROM for every device is specific so you cannot flash a ROM which is made for other device. This can permanently damage your phone. A famous Custom Rom is CyanogenMod which is currently on version 12.1. Although the ROM would be same for many devices, but you can not flash CM12.1 for Xperia M to Xperia M2 etc. In the same way, you can not flash custom/stock kernel of one device to another.

Rom can be installed via official tools provided by manufacturer or by using custom tools. Usually when you flash a STOCK ROM, it flashes SYSTEM+KERNEL+RECOVERY. However, some unofficial tools can help you flash any one component of the ROM. It could be Kernel/ Recovery or System.

RECOVERY
Recovery is also a part of ROM which is basically a backup mechanism of your device which lets you install stock ROM to your device if something has been corrupted in your device software. However, many CUSTOM recoveries are available which are necessary for flashing CUSTOM ROMS, MODS to modify your ROM and also you can backup your ROM(called nandroid backup), partition your sd card amongst many other uses. Recoveries could also be flashed via kernel as they are preinstalled.


BOOTLOADER is basically a lock in your device which doesn't allow modifications to your phone by the Manufacturer. Unlocking bootloader voids your warranty and stops automatic updates of your STOCK ROM. However, you can easily lock your bootloader again any time or manually install STOCK Updates.
Remember you should usually unlock bootloader before rooting unless you are installing a custom rom which is pre-rooted and allows locked bootloader.

ROOTING
This is basically a powerful exploit to take over your system and kernel of your device. It simply means that some system files which couldn't be modified can be changed now. It is as if you have complete power of your ROM and hardware. There are no restrictions from your manufacturer and thus you can change values , overclock your processor or put your hardware in hibernation to increase battery life, turn on/off your cores , speed or enforce 3D gaming cards to play HD games which you couldnot play before. However, this is a very tricky business so if you mess it up and not sure what you are doing, you can really end up with a bricked phone.

Usually apps are used to change these values or it could be done via SDK tools/ programming. To be sure if you are rooted or not, you can install ROOTCHECKER app from PLAYSTORE.

ADVANTAGES OF ROOTING
- You get full access to your phone's Hardware and software
- You can Overclock CPU clock speed and make phone faster
- You can Install many mods to improve camera, audio and video playback quality
- You can Install Beats Audio Drivers/others to enhance audio output
- You can increase speaker / earphone volume using volume hack
- You can Install Custom ROMs and Apps
- You can take the hell out of your device and Improve user experience

Rooting is safe and reversible, You can unroot your phone if you want. It won't void you're warranty etc

DISADVANTAGES OF ROOTING

-Chance to brick your device if the wrong software gets flashed. This can be EASILY reversible
-Warranty is void. You can flash STOCK ROM again and no one will have a clue you did that. So it can be reversible.
-Because, after Rooting you give permission (apps prompt, it's not by default) to apps to change values so if you give it to a malicious app, it can result in Viruses or security/privacy breach.

In all honestly, I am using rooted devices for over 5 years now and I never had any problem with viruses however, I have bricked my device innumerous times by accident. (I have flashed and rooted my device almost every one to two weeks and I have bricked my devices so many times in testing phase of Roms). I was always able to retrieve back the device with some tools and thus it was not much of a problem.

DIFFERENCE BETWEEN GOOGLE NEXUS DEVICE AND A NON NEXUS DEVICE
GOOGLE NEXUS DEVICES give you vast freedom to install custom roms and it is comparatively very easy to unlock bootloader of these devices so a custom Rom can be flashed. (Flashing rom is equivalent to installing windows in PC). You can understand that a Nexus device only needs one command to unlock its bootloader while others could trouble you a lot for that.
Also, Google is very quick with updates on their devices which mean that you will get the latest software updates officially as they come out. Thus, even staying on STOCK ROM is not a bad choice for many users. Every update increases stability and gets rids of bugs. And of course, sometimes the bugs are not ironed out well and come back

NON NEXUS DEVICES do not give you as much freedom as a Nexus device. It is usually much harder to unlock their bootloader, develop on these devices and usually some exploits are needed to run custom ROM/root/kernels. Manufacturers or these devices try their level best
to narrow down the exploits as in other words, the more exploits a device has, the less secure it tends to be.
SOME CUSTOMISATION DIFFERENCES
As it is a nexus device so Asus has no say on any customisation at all. Thus, Nexus devices are said to run the PURE ANDROID and give you the best android experience in my opinion. However, usually manufacturers customise pure android from Google. To understand better, Google is responsible for development of the android OS so every new version is made by Google and then it is open sourced to manufacturer of different devices. Manufacturers like Samsung/Sony/Motorola/HTC customize the code provided by Google to customize it to their likings. This can result in some added options but can also result in slow performance if there has been too much customization from a device maker. Google itself is only responsible for the software and DOES NOT make any hardware itself.
Also, many manufacturers take a small fee from some app developers and install their apps with every device they produce. It is good news for app developer and manufacturer but usually a burden for users as not only they hog RAM, diskspace, and slow down the device they also are useless to many users. Referred to as BLOATWARE

SUPPOSE YOU HAVE DECIDED TO INSTALL CUSTOM ROM/ KERNEL.


This is a short synopsis of steps which are explained in details later in the post :
1.Unlock your bootloader
Some phones have unlocked bootloaders out of box (Not anymore)

2.Root your phone , which can be done via flashing a custom prerooted kernel or by binary method. There are innumerous ways now actually so usually visiting your device forum will help you find it.

3. Flash a recovery. This step can be done before or after unlocking your bootloader. Even you can root your phone via flashing SuperUser in recovery. However, sometimes, you need a rooted device before you can install a custom recovery using exploit/ scripts method.

SOME COMMON MISTAKES AND PREREQUISITES:

1. Make sure what ever you do, do it as administrator on your PC.
2. Make sure drivers are installed properly for your device.
3. Make sure, USB debugging is ON
4. Unknown Sources is ticked as well
5. Windows 7 is usually quick to install drivers itself. In windows 8 however you have to manually install drivers.
6. There are tools like SDK which is about 500mb which can help you to install drivers/fastboot etc but this is the long route. I suggest you just find platformtools in attachment which would be enough for cmd commands.

UNLOCKING BOOTLOADER :
I will give you a rough idea and it is NOT a guide to unlock your bootloader !
Basically, when you buy your phone it is locked from the manufacturer so no changes can be made to the software(STOCK ROM & KERNEL ) and thus this way, they can stop users to modify their software which might damage the device and they do not want to be responsible for that. So unlocking bootloader voids your warranty. However, this can be reversible.

ROOTING :
What you do in rooting is either flash a kernel via fastboot or exploit your device using binary method. This gives you permenant root, however there are ways to get temporary root too.

ROMS & KERNELS :
You choose a rom to your likings and then flash it via recovery. Usually the instructions are given on every rom as there is slight change as to how to flash it.

There many Roms & Kernels made by developers after lots of hardwork and testing. Thus every rom that surfaces might not be good for you but best for another user. Thus, it is never good to compare roms. What might work for you might not work for another.


I hope this helps!

MORE TERMS CLICK HERE
Attached Files
File Type: rar fastboot_with_Android_USB_file.rar - [Click for QR Code] (6.22 MB, 216 views)
The Following 5 Users Say Thank You to Hnk1 For This Useful Post: [ View ] Gift Hnk1 Ad-Free
 
 
30th July 2013, 09:25 PM |#2  
Hnk1's Avatar
OP Senior Member
Flag Newcastle Upon Tyne
Thanks Meter: 1,516
 
More
DEVELOPMENT PROCESS

INTRODUCTION
I am starting this forum in hope of educating my readers about ROM development according to my experiences. Further, I will highlight what is the usual developers' thought process before they decide to build a ROM for a specific device. The reasons why they usually choose a certain device or why they prefer one device over another would also be stated briefly. I also have intention of looking into ways how we can speed up ROM productions for any device and what you can do to play your part.

I UNDERSTAND YOUR FRUSTRATION FOR NO CUSTOM ROMS EVEN AFTER SOME MONTHS BUT THIS DOESNOT GIVE YOU THE RIGHT TO SPAM
I am sure many of you must be really disappointed by the lack of development for your device and I know this must be frustrating when we see other devices are getting ROMS so quickly. I know many are too excited when they find a little about any OTA/ Custom ROM and sharing such news is fully justified. However, it's beyond my logic & thinking why the forums are SPAMMED for any little information they might find anywhere regardless of their sources or if it has been ALREADY POSTED. I reckon many of these threads could have been avoided by simply searching in the forum.

ROM DEVELOPMENT

I can assure you that many develoeprs are working very hard to PORT and develop different ROMS for a device. However, the reason we can not see any CUSTOM roms till yet is due to complicated nature of a device itself.

Usually developers prefer a device which is :

1. Easy to work with, less complicated to code with or in other terms DEVELOPER friendly. For example, for a while I had a real issue with HTC phones as they have too many things to work with like Bootloader, S Lock, Radios, Hboot version etc while in Nexus devices you only need to unlock your device with one fastboot command. That's all and you are ready to flash ROMs.

2. Personal preference of Device. This simply means that we all have different tastes and thus we choose different devices. A certain developer might only work for a certain brand while other might work with few brands. This has nothing to do with anything but a personal choice.

3. A device that promises reward in terms of money/self satisfaction. Developers usually go for devices which have most active users so if their intention is also to get some money out of it in terms of donation, this will work well with devices which are more in number.

4. Knowledge about a certain brand more than another.

5. MONEY TO BUY A CERTAIN DEVICE/DEVICES. Suppose a developer wants to make ROMS for Xperia L/ SP/Z and Xperia U. Yet he only has 500 dollars to choose from. He then will have to make a choice between devices and this will eventually mean that not all of the devices get the same treatment. Money is the most decisive factor why a developer doesnot chose your device but rather another. For example purpose only, if I have to choose between devices, I might prefer SP over Xperia L as I can see more future of SP than Xperia L(I might be wrong).

6. Simply he bought a device or it is gifted/donated to him

SOME REQUESTS
Please STOP bugging developers by trivial questions. Just think how many other people ask the same question and it gets very frustrating to actually work on the device itself.

Every developer has a LIFE apart from developing ROMs. They also have a family, school, work, hobbies, bad days and so much like us. So they will do it when they feel like doing it. Just sit back and relax. Enjoy your device until developer releases the ROM for your device. Asking a REASONABLE question seems plausible but asking same questions/useless questions without using brains is just STUPID. Kindly refrain from that.

If you have seen a developer who has taken the initiative to work on your device , the best thing to do is to be patient. Let him concentrate. Spamming and spamming again won't help really.Yet some users start SPAMMING developers, their twitters, blogs and accounts. That's really sad. You can discuss on the forum what you think about it but IRKING developers isnot really cool.

WHAT CAN YOU DO TO HELP DEVELOPERS AND SEE CUSTOM ROMS.

1. Search the form first and look for answers. DON'T start new posts/questions/threads when it is ALREADY mentioned in some other section.
2. STOP PMing/SPAMING developers but rather ask a question WHICH havenot been asked before in the forum. Do not engage in the habit of making a new forum for everything. Try to keep threads as little as possible.
3. Follow developers and see what they have updated about on their official twitter,facebook,etc rather than bugging them on different forums/social websites.
4 DONATE THEM. DONATE THEM . DONATE THEM!

The amount of efforts they put, sitting for hours in front of their PCs and I know how frustrating it gets when you try to run commands and everything seems to work yet you can not boot up your ROM. And worse, you can not find WHY really. Just a change in line in build.prop results in failure of ROM to boot up and specially working from source to build ROM is really really tough. The best thing you can do is being supportive and patient !

A ROM development requires not just EXCESSIVE amount of hardwork, time, energy and dedication but also they need MONEY to actually buy devices and try it on. They are happy and encouraged to keep on developing ROMs when they see their efforts are not wasted and they are rewarded and respected for what they do.

SOME BASICS OF ROM DEVELOPMENT
Usually this is required to make a full custom ROM
Blobs which contain hardware information which comes from hardware manufacturer like Qualcomm in case of Snapdragon processors
A fully functional device tree
Latest Android source (Or the android version source you want to build for)
Specific Custom ROM coding which is based on Android Source

Usually a device tree and kernel tree is needed before custom roms can be made available. This is a long trial and error process in which every component of hardware is made functional as usually manufacturers do not provide any code for their devices and thus new code is to be written which is very frustrating and long process!
The Following 6 Users Say Thank You to Hnk1 For This Useful Post: [ View ] Gift Hnk1 Ad-Free
8th June 2015, 10:02 AM |#3  
Hnk1's Avatar
OP Senior Member
Flag Newcastle Upon Tyne
Thanks Meter: 1,516
 
More
FAQs :

BRICKED : Two types. hard or soft.
Hard bricked is when your phone hardware information is damaged. Now it is an expensive paper weight and it would only revive if you either send it to a JTAG technician or change motherboard of your device.
Soft is when your device ROM/kernel is damaged and thus it can be easily revived.

NOOB FRIENDLY : A guide that anyone with no knowledge of android can use
TWEAKINGimprove performance by making fine adjustments to it.
BLOATWARE Useless apps which come preinstalled in a stock rom from a manufacturer.

Sometimes, developers PORTone particular feature of a phone to another. This means, a function specific to one phone can be used in another but bear in mind, the hardware should support it. Like LG has knox feature which means that you can tap on the screen to wake it up or turn off the screen. Now it is a common feature of many kernels. LG was first to introduce it officially in their stock rom but the feature is a bit old. Even Asus Zenfone 2 uses tap to wake feature.
The Following 6 Users Say Thank You to Hnk1 For This Useful Post: [ View ] Gift Hnk1 Ad-Free
10th September 2015, 06:46 AM |#4  
Senior Member
Flag Cooch Behar
Thanks Meter: 1,123
 
More
Nice One Brother
17th September 2015, 07:46 AM |#5  
Hnk1's Avatar
OP Senior Member
Flag Newcastle Upon Tyne
Thanks Meter: 1,516
 
More
Quote:
Originally Posted by ARGHA_DAS

Nice One Brother

I am glad this was of help to you
The Following User Says Thank You to Hnk1 For This Useful Post: [ View ] Gift Hnk1 Ad-Free
9th October 2015, 03:35 PM |#6  
Member
Thanks Meter: 1
 
More
What's in the 'boot' partition?

Sent from my Nexus 7 using Tapatalk
11th October 2015, 07:15 PM |#7  
Hnk1's Avatar
OP Senior Member
Flag Newcastle Upon Tyne
Thanks Meter: 1,516
 
More
Quote:
Originally Posted by AbyssBreak

What's in the 'boot' partition?

Sent from my Nexus 7 using Tapatalk

This guide should be of help

Quote:

/boot

This is the partition that enables the phone to boot, as the name suggests. It includes the kernel and the ramdisk. Without this partition, the device will simply not be able to boot. Wiping this partition from recovery should only be done if absolutely required and once done, the device must NOT be rebooted before installing a new one, which can be done by installing a ROM that includes a /boot partition.

/system

This partition basically contains the entire operating system, other than the kernel and the ramdisk. This includes the Android user interface as well as all the system applications that come pre-installed on the device. Wiping this partition will remove Android from the device without rendering it unbootable, and you will still be able to put the phone into recovery or bootloader mode to install a new ROM.

/recovery

The recovery partition can be considered as an alternative boot partition that lets you boot the device into a recovery console for performing advanced recovery and maintenance operations on it. To learn more about this partition and its contents, see the ‘About Android Recovery’ section of our guide to ClockworkMod recovery.

/data

Also called userdata, the data partition contains the user’s data – this is where your contacts, messages, settings and apps that you have installed go. Wiping this partition essentially performs a factory reset on your device, restoring it to the way it was when you first booted it, or the way it was after the last official or custom ROM installation. When you perform a wipe data/factory reset from recovery, it is this partition that you are wiping.

/cache

This is the partition where Android stores frequently accessed data and app components. Wiping the cache doesn’t effect your personal data but simply gets rid of the existing data there, which gets automatically rebuilt as you continue using the device.

/misc

This partition contains miscellaneous system settings in form of on/off switches. These settings may include CID (Carrier or Region ID), USB configuration and certain hardware settings etc. This is an important partition and if it is corrupt or missing, several of the device’s features will will not function normally.

/sdcard

This is not a partition on the internal memory of the device but rather the SD card. In terms of usage, this is your storage space to use as you see fit, to store your media, documents, ROMs etc. on it. Wiping it is perfectly safe as long as you backup all the data you require from it, to your computer first. Though several user-installed apps save their data and settings on the SD card and wiping this partition will make you lose all that data.

On devices with both an internal and an external SD card – devices like the Samsung Galaxy S and several tablets – the /sdcard partition is always used to refer to the internal SD card. For the external SD card – if present – an alternative partition is used, which differs from device to device. In case of Samsung Galaxy S series devices, it is /sdcard/sd while in many other devices, it is /sdcard2. Unlike /sdcard, no system or app data whatsoever is stored automatically on this external SD card and everything present on it has been added there by the user. You can safely wipe it after backing up any data from it that you need to save.

/sd-ext

This is not a standard Android partition, but has become popular in the custom ROM scene. It is basically an additional partition on your SD card that acts as the /data partition when used with certain ROMs that have special features called APP2SD+ or data2ext enabled. It is especially useful on devices with little internal memory allotted to the /data partition. Thus, users who want to install more programs than the internal memory allows can make this partition and use it with a custom ROM that supports this feature, to get additional storage for installing their apps. Wiping this partition is essentially the same as wiping the /data partition – you lose your contacts, SMS, market apps and settings.

With this, we conclude our tour of Android partitions. Now whenever you install a ROM or mod that requires you to wipe certain partitions before the installation, you should be in a better position to know what you’re losing and what not and thus, you’ll know what to backup and what not.

All credits to the writer Haroon Q Raja

The Following 2 Users Say Thank You to Hnk1 For This Useful Post: [ View ] Gift Hnk1 Ad-Free
Post Reply Subscribe to Thread

Tags
basic android information, info root recovery rom kernel bootloader, what is android

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes