Related
I'd like to toss this out for discussion. This might already exist, it might not.
Microsoft had system builders use a Disk Differencing technique to extract what exactly had changed after installing applications and customizations.
First, we'd install the OS and create a base image.
Second, we'd install the apps & customizations we wanted for our customers.
Third, we'd create another image. An app would then compare these two images and determine what files were added/changed and what registry additions, deletions, alterations were performed.
I'm hoping we can do the same for ROM upgrades.
1. OLD ROM - Base image.
2. Install apps and customizations - Image "Apps". This will give us our customizations.
3. Install new ROM - NEW base image created. Compare to OLD ROM base image to see what has changed (that we need to look out for that our APPs image might adversly change).
4. Apply Apps image to restore all customizations & applications.
Ideas anyone?
The theory sounds good.
Maybe buzz can comment?
The theory is very feasable, ive used similar building Win PE rescue disks, you have a app that gives you the base bootable image made from a Win XP install CD. then you add home made "modules" ie, your installed apps or networking capabilities etc. then it makes an image for you to use,
that cant really be that difficult to do the same for Win CE,
Ive also seen a M$ webcast thing where the guy took 45 mins to build an entire image for a win ce device,
so yer, it is very feasible that such dev apps exist, after all, they were made and then sold to the hardware vendors before ever being a rom image.
check in msdn for win ce 5 stuff, its a very intresting read, :shock:
it is a good idea, but only for linear ROMs, where each file has always it's own and same place in the rom and such rom is not compressed.
hmm...
but you can do partial rom upgrades with wm5 roms...
...and it would be possible to make registry diff + DOC Storage partition backup, where you actually install programs (so called \Device) and userdata.
buzz
buzz_lightyear said:
it is a good idea, but only for linear ROMs, where each file has always it's own and same place in the rom and such rom is not compressed.
hmm...
but you can do partial rom upgrades with wm5 roms...
...and it would be possible to make registry diff + DOC Storage partition backup, where you actually install programs (so called \Device) and userdata.
buzz
Click to expand...
Click to collapse
Ok...Since I'm not a programmer and somewhat of a noob with respect to WinCE, I am NOT constrained by what might be a logical limitation to a programmer or someone in the "know". So, below is my thinking ... outside of the box (er, PDA) style.
But first, I need to grasp further Buzz's post above about the locations of things in ROM. Does this mean that there isn't, for lack of a better example, a FAT for the ROM? That every individual thing is expected to be at some specific, static location that can't change? If so, I see your point. But that tells the system that this location is static? Also, doesn't that make bug fixes difficult as the fix might exceed the designated space in ROM? Or do bug fixes always get re-applied after each reset? Patching in memory is how I'm looking at this. (Remember, I'm a non-programmer...deal with me, please.) LOL
Ok..out of the box time.
1. Can a shim be used to capture calls to a certain location in the ROM and redirect to another location (within the ROM or even the storage card. Linux builds anyone?). Like what HD disk managers did to get around LBA limitations or even boot sector viruses did.
2. Can an emulator be used to simulate/backup/build/test the ROMs on a PC before wiping the PDA? Don't laugh, but if not, could something be done with Virtual PC? Oh..Ok, laugh.
(Should I go hide somewhere?)
Please suggest any changes, additions etc
Please don't try to hold me responsible if following anything here makes your phone die. Pretty please!
I have been looking through the forums, rom threads etc, and have seen a lot of questions cropping up again and again. Therefore I decided to start this project!
Basically I hope this will become a reference for newbies to get themselves accustomed to android and the galaxy s II! I will try to update it regularly with information about ROMS, Flashing and general android/samsung terminology.
If you think that I have given a wrong definition or think that anything needs clarifying more please tell me! Also, if you think that I should add anything then feel free to suggest.
Here we go...
Contents
1. Rooting
- Rooting your phone
2. Kernels
- Eplanation
- Links
3. Odin
- Guide to using Odin
4. Custom ROMs
- Risk
- Benefits
- AOSP ROMs
5. ClockWorkMod
- Explanation
- How to Backup/NANDroid
- How to Restore
- How to install a ROM using CWM
6. /efs
- What it is
- How to back it up
7. List of Custom ROMs
8. The Forums
9. Glossary
10. To Do list
RootingRooting is the process of getting 'root access'. In a nutshell this means that you can edit the system partition of your phone. The best analogy of this I can think of is if you imagine a tree! The tree you see above the ground is what you can edit on your phone normally, for example you can add music files, edit text files, etc etc. The 'roots' of the tree are the android system files themselves, they are unseen and are not usually meant to be messed with. It can also be seen as the equivelant of having administrator privilages in windows - with them you have better access to your computer.
Rooting voids your warranty! But you can un-root your phone by flashing a 'stock' ROM and Kernel.
Gaining root access however allows us to customise our phones even further, for example you can:
Edit files to create themes
Backup usefull system files
Remove bloatware and unwanted apps
Rooting the Galaxy S IIRooting the Galaxy S II is, thankfully, easy! Unlike certain other phone manufacturers *cough* HTC *cough* samsung haven't imposed any unnecessary locks on the phone, and so we dont have to hack our phones to pices to be able to root them.
Several guides already exist in the development forum on how to root you phone - it involves a custom kernel:
http://forum.xda-developers.com/showthread.php?t=1103399 (by Chainfire)
Or, here is the Noobs Guide:
http://forum.xda-developers.com/showthread.php?t=1126522 (capaxdoli)
And an extremely detailed thread from wibbsy:
http://forum.xda-developers.com/showthread.php?t=1246131 (wibbsy)
Superuser and BusyboxSuperuser is an app that is present on pretty much all custom ROMs. It allows you to manage 'superuser' rights for your phone, in other words which apps you want to allow to have root access. If you dont have it on your custom ROM then you would want to download it from the market (free). Once you have it downloaded you dont need to do anything! It will warn you when an app wants root access, and ask you to allow once, allow all the time, or never allow. It can also be seen as a firewall for your phone, you can deny access to the root of your system files to apps you dont think should be down there!
Busybox is basically a set of commands that aren't built into android to begin with, but are part of Unix (which android is based on). They add additional functionality for root application to perform their job! To be honest this is all I know about busybox, but it is very useful, and lots of root apps need it, so download it!
KernelsThis brings me along nicely to Kernels! Kernels are basically a bridge between your apps and your hardware. It controls everything that apps send to the processor, and everything the processor sends back.
This, as you can imagine, makes kernels VERY important. On XDA, you might see a kernel posted in the development forums. The are usually identified as [Kernel] in the thread title. You will probably also see more brackets in the title, these identify what modules the developer has added to the kernel, or what features it includes. For example [OC/UV 1.5GHZ]. This means that the kernel will enable the phone to be overlcoked to 1.5GHz, but also means the processor is undervolted (meaning it draws less power from the battery).
For more details look here:
http://forum.xda-developers.com/showthread.php?t=894880 (mroneeyedboh)
And here for more details on 'govenors':
http://forum.xda-developers.com/showthread.php?t=843406 (RJackson)
OdinOdin is a piece of software that allows us to flash anything we want to the phone. The file is attached to the bottom of this post.
It is perfectly safe IF USED CORRECTLY!
This is a general guide for using Odin, take a look at this picture (thanks to screamworks):
To get Odin to connect to your phone, you need to boot into 'download mode' by pressing volume down, home, and power keys at the same time, and connect your phone to your PC via USB.
Everything in red:
NEVER TOUCH
NEVER TOUCH
NEVER TOUCH
NEVER TOUCH
It's that simple! I would be more specific but most Roms, Kernels and CSCs have methods on their respective threads for using Odin with their ROM, so it best to look there.
Wait... (I hear you say...)
Why bother flashing a custom ROM if there is a risk of damaging your phone? Well, they usually come with the following benefits:
- Deodexed, basically allows deeper theming of applications
- Zipaligned, reduce the amount of RAM used when running an application
- Optimisations, meaning that the developer has tweaked the roms system files for bettery speed, battery life and stability
- Quicker Updates, Rom developers will more often then not update their rom to fix bugs FAR quicker then samsung ever will
- Additions, Developers also like to add their own additions to their ROMs, such as themes and applications
The benefits far outweigh the risk!
AOSPAOSP (Android Open Source Project) ROMs are built from the original android source. They are essentially a 'clean' version of android without any additions from manufacturers (e.g no Touchwiz, Sense, MotoBlur etc...). They are popular mainly because they are so customisable. Here is a list of the three main AOSP build you will find:
'Pure' AOSP
This is a build straight from Google's sources and does not contain any modifications whatsoever, other then those that make it run on the particular device. Here is the AOSP project website for more information:
http://source.android.com/
CyanogenMod
This is an extremely popular AOSP build that provides endless customisation to the user. The builds are fast, stable and reliable, and nearly every android device has a cyanogen mod ROM built for it. It is also popular for its 'nightly' (literally) updates. More information can be found on the Cyanogen website here:
http://www.cyanogenmod.com/
MIUI
MIUI is a chinese rom that has been heavily customised, and is influenced by iOS. Think what would happen if an android phone and an iPhone had a baby... Despite commiting the henious crime of trying to be an iPhone, it does work. MIUI Roms are essentially all about speed and looks, if that is what you are after! Here is the MIUI website for further information:
http://www.miuiandroid.com/
ClockWorkMod (CWM)
Clockworkmod is a 'custom recovery' made by xda member koush. Every phone had a recovery partition designed so that if the user messes up a ROM installation, they can recover their phone. CWM is a modified recovery installed into the recovery partition that allows advanced control over ROM recovery, installation and much more.
Features of CWM include:
- NANDroid Backup, This allows you to completely back up your existing ROM with all its files, data and apps
- Restore Backup, Restores a previous backup (obviously...)
- ROM installation, Allows you to install a ROM contained inside a flashable .zip file
- Wipe data/Factory reset, completely erases all of your data contacts, apps etc, leaving your phone 'as new'
Amongst others...
How to install CWMIf you have already rooted your phone using the CF-root Kernel, then you already have CWM! If not, then just install the kernel linked to above in the 'how to root your phone' section
How to make a NANDroid backup using CWMBackups are important because they allow you to restore your ROM incase flashing goes wrong, or you phone starts playing up and displaying wierd bugs.
To make a backup, you need to boot into CWM recovery (done through the 'cwm' app installed onto your phone when you flash the cf-root kernel). Then, you need to navigate down to 'backup/restore' using the volume keys, and select it using the home key. From here, just click 'backup' and you are all set! Leave your phone make the backup (its takes some time) and then just reboot when it tells you its finished. To restore your backup, do the same but instead of clicking backup, click 'restore' instead. Choose which backup you would like to restore and leave the phone to do its magic. Done.
How to install a ROM using CWMInstalling a ROM using CWM is a lot less hassle then installing via Odin. The ROM developer will specify which method of installing their ROM you can use, but it is usually done by a CWM flashable .zip.
To flash:
1. Boot into CWM as described above
2. Navigate to 'install zip from sd card'
3. Select it, and then navigate to 'install zip from sdcard' again!
4. Select the ROM you downloaded from your sd card
5. Navigate down to yes
6. Let CWM install you new ROM!
Note: The same process applies for flashing a kernel
The /efs folderThe /efs folder is a folder in your phone that contains information specific to YOUR phone, for example your IMEI number, product number, Wireless MAC addresses, and much more. There have been reports of people messing up their /efs folder when unlocking their phone or flashing new ROMs, here is an example from the Nexus S development forum (jump to page 111 to see everyone start to panic):
http://forum.xda-developers.com/showthread.php?t=1034130
Therefore, it is important to make a backup! Instead of just regurgitating guides on the forums already, here is a link to a very good one by Rawat:
http://forum.xda-developers.com/showthread.php?t=1068193 (Rawat)
The easiest way of doing it is by using terminal emulator rather then ADB (unless you have ADB all up and running and are confident with it)
Thank you to Godutch for suggesting this, I was never actually aware of it!
ADBADB stands for Android Debug Bridge, and is a useful tool for your device. It has many funtions including:
- Pushing .apks to your phone
- Pushing files to your phone to specific locations
- Rebooting to download and recovery
And I haven't even scratched the surface! It does a lot more trust me...
You will see guides on this forum saying 'this guide assumes you have ADB set up', which you definitely should do! However, there is a downside - it can be horifficaly complicated and fustrating to install for a newcomer to android, you have to mess around with SDKs, EXEs, Drivers, Paths, Yawwnnn....
So I'm going to let an expert describe how to do it! Here's the hard (but proper) way:
http://forum.xda-developers.com/showthread.php?t=879701 (Captainkrtek and Adrynalyne)
And here's the easy way, all nicely pacaged up for you:
http://forum.xda-developers.com/showthread.php?t=502010 (VanillaTbone)
I would write a short explanation of ADB installation for you here but it would just confuse you, so im gonna let other people do the work!
Custom Rom List
Well, Swi7chblade has done a far better job at doing a custom Rom list then me so I will give you a link to his instead
http://forum.xda-developers.com/showthread.php?t=1253665 (Swi7chblade)
Stock ROMs
Intratech has a collection of stock ROMs, Kernels and Radios all compressed up nicely for you. Link is here:
http://forum.xda-developers.com/showthread.php?t=1075278
Why stock I hear you say? Flashing back a 'stock' ROM usually helps fix random issues you might get whilst switching ROMs, like bootloops. Also, some people prefer the stock experience!
The Forums
Well, I'm not going to patronise you by telling you how to be nice to people etc, but there is often a lot of confusion with regards to the forum rules:
http://forum.xda-developers.com/announcement.php?a=81 (MikeChannon)
I often see moderators with dangerously high blood pressure stressing the following points in particular:
- Use the search button
- Post in the right forums
- Use the search button
- Don't spam/ Flame
- Use the search button
- No ETAs
- Use the search button
If you have owned a device that is supported by XDA before, or have had a look at other device forums, you may of noticed that the development forums for the GSII are slightly different. They are split into two sections:
- Original Android Development
- Android Development
This is an experiment being done by the moderators of the forum that (regardless of my own opinion) is meant to distinguish between 'original' Roms and 'derivative' Roms. For instance; cyanogenmod is a rom built from AOSP source and has been actively developed with added applications, improvements to code etc etc. It is therefore classified as 'original' and placed into the 'original android development' sub-forum. Roms that either use another Rom as a base or do not have any 'original' components are deemed 'derivative' and are placed into the 'android development' forum. Despite this, I urge you to look in both forums! The both have excellent Roms and just because some are deemed 'original' this does not mean they are superior to those that are not. There is great development going on in both forums
Useful Links
CF-ROOT and CWM: http://forum.xda-developers.com/showthread.php?t=1103399
Galaxy S II FAQ:http://forum.xda-developers.com/showthread.php?t=1065995
Korean Galaxy S II Thread: http://forum.xda-developers.com/showthread.php?t=1097347
Android Terminology (from the CM Wiki): http://wiki.cyanogenmod.com/index.php?title=Terminology
Glossary:
Flash - Put new firmware onto your phone
Firmware - A piece of software
OC - Overclock (the processor)
UC - Underclock (the processor)
Odin - Used to flash new ROMs to yor phone
ROM - a piece of firmware, usually modified by a developer
CWM - ClockWorkMod recovery, a very useful tool used to falsh new roms, kernels etc
Nandroid - A method of backing up your existing 'Rom' with all its apps, data, contacts etc. Done through CWM
.apk - The file type that android apps are contained in. To install just click on it!
AOSP - A ROM built from the original google android source, not a customised version of a manufacturers ROM
CyanogenMod - A very popular, customised, AOSP Rom
TO DO
- CWM
- Finish glossary
- ADB
- Additions to rooting section (superuser, busybox etc)
- How to do a backup via CWM
- Expand ODIN section
- Link to stock ROM list
- Create a 'Custom ROM' list with links to all current custom roms
- Explanation of AOSP (including CM, MIUI)
- Forum etiquette
- Useful links
- Backing up the /efs folder
- Custom boot animations
Nice guide, a few remarks:
root in unix terminology is the same as administrator in window, so rooting a phone means you are getting administrative powers, also rooting your phone voids warranty
maybe some other things could be included: the jig, BACKING UP /efs(this should be the most prominent caption) and adb (+adb frontends like qtadb)
nice post
great for learners like me
godutch said:
Nice guide, a few remarks:
root in unix terminology is the same as administrator in window, so rooting a phone means you are getting administrative powers, also rooting your phone voids warranty
maybe some other things could be included: the jig, BACKING UP /efs(this should be the most prominent caption) and adb (+adb frontends like qtadb)
Click to expand...
Click to collapse
Ok thanks for the hints, i will adjust the rooting section accordingly. I'm also going to add a to do list... right now...
Don't forget the /efs directory, if it gets messed up (and sometimes it does) you will loose your phone and data connection permanently and you end up with an expensive Galaxy S mediaplayer. There is no known way to retrieve it and it does get messed up flashing custom roms (many nexus s users now have, well an expensive mediaplayer after flashing a certain rom)
godutch said:
Don't forget the /efs directory, if it gets messed up (and sometimes it does) you will loose your phone and data connection permanently and you end up with an expensive Galaxy S mediaplayer. There is no known way to retrieve it and it does get messed up flashing custom roms (many nexus s users now have, well an expensive mediaplayer after flashing a certain rom)
Click to expand...
Click to collapse
Would you be ever so kind as to write me a definition to add? I'm not going to lie I had never heard of this probelm but it does sound important
willk22 said:
Would you be ever so kind as to write me a definition to add? I'm not going to lie I had never heard of this probelm but it does sound important
Click to expand...
Click to collapse
you can find a guide here: http://forum.xda-developers.com/showthread.php?t=1068193 I didn't write it, I did read about the problems about what could happen if you screw the /efs directory here: http://forum.xda-developers.com/showthread.php?p=12874457
How long before the post is ruined by idiots posting help questions in it .
Is their a way to lock it so as not to detract fro0m a very good stickie .
Just look at the FAQ page totally devoid now of being a FAQ .
Backing up EFS see topic Dev in section .
jje
JJEgan said:
How long before the post is ruined by idiots posting help questions in it .
Is their a way to lock it so as not to detract fro0m a very good stickie .
Just look at the FAQ page totally devoid now of being a FAQ .
Backing up EFS see topic Dev in section .
jje
Click to expand...
Click to collapse
In the desire dev section there is a reference thread, new suggestions are posted and once in a while the thread is cleaned: all the suggestions are added to the OP and then together with useless posts deleted....
JJEgan said:
How long before the post is ruined by idiots posting help questions in it .
Is their a way to lock it so as not to detract fro0m a very good stickie .
Just look at the FAQ page totally devoid now of being a FAQ .
Backing up EFS see topic Dev in section .
jje
Click to expand...
Click to collapse
Well I guess that is something that mabye a moderator can do? It would be a dillema though because I really would like suggestions from the community on how to improve the guide and add suggestions and amendmants... but you are right!
godutch said:
you can find a guide here: http://forum.xda-developers.com/showthread.php?t=1068193 I didn't write it, I did read about the problems about what could happen if you screw the /efs directory here: http://forum.xda-developers.com/showthread.php?p=12874457
Click to expand...
Click to collapse
Thank you, I will add this tommorow!
I've never seen definite evidence that having root voids warrantee.Looking through all the documents it only says things like if you change the software and this causes the problem they won't fix it. I suspect they would still fix a hardware fault. Samsung have given phones to known hackers. It would seem hard for them to argue that rooting invalidates warrantee when they have encouraged it.
Sent from my GT-I9100 using XDA App
drspikes said:
I've never seen definite evidence that having root voids warrantee.Looking through all the documents it only says things like if you change the software and this causes the problem they won't fix it. I suspect they would still fix a hardware fault. Samsung have given phones to known hackers. It would seem hard for them to argue that rooting invalidates warrantee when they have encouraged it.
Sent from my GT-I9100 using XDA App
Click to expand...
Click to collapse
Better safe then sorry!
Plus phones can easily be unrooted.
drspikes said:
I've never seen definite evidence that having root voids warrantee.Looking through all the documents it only says things like if you change the software and this causes the problem they won't fix it. I suspect they would still fix a hardware fault. Samsung have given phones to known hackers. It would seem hard for them to argue that rooting invalidates warrantee when they have encouraged it.
Sent from my GT-I9100 using XDA App
Click to expand...
Click to collapse
It's true, I can't find the reference right now but a member called Kalua( he is an official samsung repair center) posted a part of the official service manual which says it voids warranty
http://gathering.tweakers.net/forum/list_category/13
it's very hard to retrieve/find indivual posts though
edit: found it: http://gathering.tweakers.net/forum/view_message/36107694
Could you explain the usb jig please. Isnt the binary clock reset when re rooting? In fact a whole how to re root your gs2 so samsung will never know guide would be great.
Sent from my GT-I9100 using XDA App
Thanks for this. It's very much appreciated by all noobs to Samsungs. I look forward to future updates
Sent from my GT-I9100 using XDA Premium App
santiago84 said:
Thanks for this. It's very much appreciated by all noobs to Samsungs. I look forward to future updates
Sent from my GT-I9100 using XDA Premium App
Click to expand...
Click to collapse
No problem! I will update everything and continue the 'to do' list as soon as i can...
Very good idea and think this will help a lot of people This will definitely be a good link to send those who are new to the device
drspikes said:
I've never seen definite evidence that having root voids warrantee.Looking through all the documents it only says things like if you change the software and this causes the problem they won't fix it. I suspect they would still fix a hardware fault. Samsung have given phones to known hackers. It would seem hard for them to argue that rooting invalidates warrantee when they have encouraged it.
Sent from my GT-I9100 using XDA App
Click to expand...
Click to collapse
No Rooting letter from Samsung .
http://www.samfirmware.com/apps/blog/show/5267754-newsletter-by-samsung-electronics-
This looks really nice, and will be a good ref for many. I even found myself asking lots of these questions in many threads because I'm used to the HTC way of rooting.
A nice little section to add would be a "unroot your device" for people with warranty purposes. This is a question that pops up everywhere.
Keep up the good work!
Sent from my GT-I9100 using XDA Premium App
★★★★[INFO]ANDROID ROM & How they Work★★★★
Parts of a ROM
i. The kernel.
Android (like many other Smartphone operating systems) runs on the Linux kernel. The Linux kernel was created in the early 1990’s by a gentleman named Linus Torvalds in Helsinki, Finland. It’s incredibly stable, incredibly friendly, and incredibly difficult for the layman to understand and modify. Thankfully it’s also very popular so it has been ported on to a multitude of hardware, including our Android devices.
Think of the kernel as an interface layer between the hardware and software on your device. The kernel decides when things happen, such as the LED indicator gets lit or when the soft button's LED gets lit. An application sends a request to the operating system to blink the LED. The operating system then sends the request to the kernel, which makes the light flash for the amount of time requested by the OS.
What sounds like a round-about way to get things done is also what makes the system so scalable and robust. Application developers only have to code in a way the operating system understands and the kernel makes it work on the hardware. This also keeps the application running in it’s own user-space and separate from the kernel. That means when you run the latest uber-cool app that wasn’t designed for your particular OS version, or is still very beta and it crashes, the kernel gives you the option to Force Close the application and the kernel can run untouched.
In a standard Android ROM (we will leave developer images and the like for another discussion) the kernel is bundled along with a set of instructions that tell the device how to load the kernel and the OS during boot. This is the boot.img that you see inside a zipped ROM that your not able to easily open. The device knows to extract this image to internal memory (the ramdisk) and follow a series of scripts (init scripts) to load the kernel and then the other portions of the OS. That’s what’s happening while you’re watching the boot animation. Interestingly enough this is done the same way for a PC, your smartphone, an Android tablet, or even a smart Linux powered toaster. If you’re feeling exceptionally geeky, plug your Android phone into the USB port on your PC and let the PC boot from the USB device. No, it doesn’t actually load, but you can watch the animation while it tries to match up the hardware support with what’s inside your PC. As I said, Linux is amazingly scalable and as a result so is Android.
What is a kernel? If you spend any time reading Android forums, blogs, how-to posts or online discussion you'll soon hear people talking about the kernel. A kernel isn't something unique to Android -- iOS and MacOS have one, Windows has one, BlackBerry's QNX has one, in fact all high level operating systems have one. The one we're interested in is Linux, as it's the one Android uses. Let's try to break down what it is and what it does.
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.
When software needs the hardware to do anything, it sends a request to the kernel. And when we say anything, we mean anything. From the brightness of the screen, to the volume level, to initiating a call through the radio, even what's drawn on the display is ultimately controlled by the kernel. For example -- when you tap the search button on your phone, you tell the software to open the search application. What happens is that you touched a certain point on the digitizer, which tells the software that you've touched the screen at those coordinates. The software knows that when that particular spot is touched, the search dialog is supposed to open. The kernel is what tells the digitizer to look (or listen, events are "listened" for) for touches, helps figure out where you touched, and tells the system you touched it. In turn, when the system receives a touch event at a specific point from the kernel (through the driver) it knows what to draw on your screen. Both the hardware and the software communicate both ways with the kernel, and that's how your phone knows when to do something. Input from one side is sent as output to the other, whether it's you playing Angry Birds, or connecting to your car's Bluetooth.
It sounds complicated, and it is. But it's also pretty standard computer logic -- there's an action of some sort generated for every event. Without the kernel to accept and send information, developers would have to write code for every single event for every single piece of hardware in your device. With the kernel, all they have to do is communicate with it through the Android system API's, and hardware developers only have to make the device hardware communicate with the kernel. The good thing is that you don't need to know exactly how or why the kernel does what it does, just understanding that it's the go-between from software to hardware gives you a pretty good grasp of what's happening under the glass. Sort of gives a whole new outlook towards those fellows who stay up all night to work on kernels for your phone, doesn't it?
Click to expand...
Click to collapse
ii. The operating system.
Once the kernel is loaded, the init scripts tell the Operating System to load. Android is the user interface for a custom built Java virtual machine called Dalvik. Dalvik was written by Dan Bornstein, who named it after the fishing village of Dalvik in Iceland, where his family originated from. The debate of which Java VM is superior is best left for another discussion, so I’ll simply say that DalvikVM is a register-based machine versus true JavaVMs which are stack based.
The Dalvik machine creates executable files (.dex files) which can be interpreted by the OS and run by the end user. These .dex files are OS version dependant. That simply means that applications and core functions built to work with one version of Android may or may not work well with other versions. Google provides the tools through it’s Software Development Kit (SDK) for applications to communicate with the OS.
Click to expand...
Click to collapse
iii. Core functions.
No smartphone would be complete without a set of functions that allow the device to be used as intended. Things like the phone and dialer interface, the calendar, the messaging system are core functions of the Operating System. In Android, these are run on top of the kernel as separate applications. The merits (or lack of) of providing these needed functions as separate applications is once again best left for another discussion, but this is what allows developers like HTC or Motorola to replace the standard functions with alternatives that provide a different look and feel from stock. HTC’s onscreen keyboard or Motorola’s MotoBlur contact list are great examples of this. The “little guy” isn’t left out of the mix either. Handcent SMS or Chomp SMS can integrate into the OS very well, as most of us already know.
An additional set of Core Functions are provided by Google. Popularly called GoogleBits, things like Gmail, sync, Gtalk and the Android Market are applications written by Google that give an extra set of useful functions to the OS. You’ll find these on all smartphones, as well as many other Android devices.
Click to expand...
Click to collapse
iv. Optional applications.
These are applications provided by the manufacturer to give the device even more usability. Things like the Amazon MP3 store, PDF readers, Corporate Calendar etc. allow you to do even more with your device. Remember - Droid Does
Click to expand...
Click to collapse
B. How is a ROM packaged?
In most cases a ROM will come packaged in a .zip file. The recovery image’s kernel (yes, it has one too!) has the ability to unzip and copy the contents into the correct place. Inside this zip file is a folder (META-INF\com\google\android\) that contains a script prepared by the ROM “cooker” (another of those techie terms - it means the person(s) who developed the ROM) that tells the system what to format, what to copy and where, and any file operations that need to be done. Each device does things a bit differently, but this script is where it all gets done. More on this folder later.
You’ll also see a /system folder. This is the meat of the ROM. It has the necessary OS files, the Core functions, and any optional applications the cooker decided to include. The folder is structured the same way it is on your device - /system/app, /system/framework, etc. The whole tree is usually copied over and the existing /system folder is overwritten. The cooker uses the script to tell the kernel to erase the existing system folder, copy the new folder over, and set the file permissions.
Sometimes you will also see a data folder. This usually is space set up for optional applications, including optional system tools like busybox or SuperUser white list. These applications could be placed in the /system folder, but placing them in the data folder makes it easier for the end user (you and I) to remove or update them as needed.
You’ll also notice a META-INF folder. This contains the update script we talked about earlier, as well as secure keys that need to be provided so the device knows the update can be trusted. A special note needs made here. Trusted means that the update is trusted to be in the correct form to load the device. It in no way means the ROM is safe from malicious code. Anyone is able to use a set of test keys and create a ROM that will flash and run your device - even those people with bad intentions. Flashing and running a custom 3rd party ROM is putting faith in the cooker that he or she not only knows what they are doing, but are honest as well. Also, some Motorola custom ROMs will have a small update.zip stored inside this folder to be run on first boot of the device.
Finally we are left with the boot.img file. This is the kernel and ramdisk image we discussed earlier. Your phone copies this over to be decompressed and run when the device boots.
Click to expand...
Click to collapse
2. How do I install a ROM?
In this section we’re discussing how to install a custom 3rd party ROM. ROMs from the manufacturer usually have a utility that runs on your PC to flash and load the new image.
A. Got Root???
Yes ?:good:!!!
Custom ROM’s simply will not load on devices that aren’t rooted. In theory, it may be possible to sign a 3rd party ROM with the keys that the stock recovery image will flash, but for the most part you need to have flashed a custom recovery image before you can change your device’s ROM. Instructions and tutorials on how to root your device are all over the internet. Some are good, some are bad. The hacking forum is a great place to go and learn more about rooting and how to successfully get it done on your device.
Click to expand...
Click to collapse
B. Recovery
Most Android devices have had a custom recovery image written for them. This will overwrite the stock recovery image, allowing you to flash 3rd party ROMs as well as giving extra functionality. Help with finding and flashing the custom recovery image for your device can also be found in the hacking forum. The installation of a custom recovery image also allows for a very important function. Backup and restore.
Click to expand...
Click to collapse
.C. Nandroid
Nandroid is a set of bash scripts and code written by that copies the state of your system and stores it in a folder on your SD card. You can then use the restore function of Nandroid to restore to this point at any time. This is a priceless feature and reason enough to root your phone. It’s included by default in most custom recovery images, and the code is freely available to use if you’re inclined to write your own recovery image.
Click to expand...
Click to collapse
In most situations, using Nandroid to back everything up is easy:
1. Verify you have a memory card with enough free space (~300MB to backup, ~500MB to restore).
2. Reboot your device into recovery. It’s slightly different for each device, once again hacking forum FTW!
3. Navigate through the menu and select the Nandroid Backup function.
4. Apply your choice and wait for the device to tell you it’s finished.
It’s always good practice to copy the entire nandroid folder from your SD card to a safe place. You can then copy it back to the SD card if the card is ever damaged, lost or erased.
D. Copy and Flash
You’re rooted, have downloaded a custom ROM, have your system backed up and are now ready to flash your device. This is not nearly as scary as it sounds.
1. Mount your SD card to your PC, and copy the .zip file to the root folder of the card. Don’t unzip the file, and don’t look for a folder called root. The root folder in this case means the base folder, what you will see when you mount your card to a PC or the device.
2. Reboot your phone into recovery.
3. Navigate through the recovery menu and select the flash update option. Depending on your recovery image, the file may need to be named update.zip, or you may be able to select any zip file on your card as long as it’s the correct format. The cooker knows this as well and if the ROM needs to be named update.zip it will be.
4. Apply your choice and wait for your device to tell you it’s finished.
5. Reboot.
Click to expand...
Click to collapse
It’s worth noting that many times a new ROM will require that you wipe and factory reset your devices data. While inconvenient, it’s often necessary to get rid of the old data as it may be incompatible. As long as you’re using the cloud for calendar and contacts, they will be re- downloaded and stored back on your device automatically.
Dirty flash and Clean flash
A dirty flash is only wiping cache and davlik then flashing your ROM....
a Clean flash is at LEAST factory reset/data wipe + wiping davlik(factory wipe takes care of /cache also)... Maybe doing a format /system also.
***Odin***
Odin is the ROM Flashing Tool for SAMSUNG smartphones. ROM files flashable with Odin come with .tar extension.
Most of the ROMs you are going to flash with Odin are the official stock Samsung ROMs (or leaked stock ROMs). Custom ROMs are rerely flashable by Odin because they come with .zip extension that Odin does not recognize (it recognizes .tar files).
Custom kernels, however, are sometimes provided in .tar format by their developers (e.g. CF-Root kernels), so that they can be flashed by Odin. When your phone is new and running official firmware you most often cannot flash a custom ROM to it because a Samsung phone often requires a custom recovery and root rights that are included in a custom kernel to be able to flash custom ROMs. That's why Odin often comes in handy in rooting and flashing a custom firmware to your phone because you (often) can flash a custom kernel with it that already includes root and custom recovery and enables you to flash custom firmware (custom ROMs). I use the word "often" very frequently in the previous sentence because every Samsung smartphone is different and requires various procedures for rooting it and flashing custom ROMs (see the section about using Odin below).
If it comes to stock ROMs, the best source of stock (official) Samsung ROM files is located at this excellent website: SamMobile.com/firmwares (link). It requires registration (it's free) and I encourage you to set up an account there because you will most likely use this site several times during your stay at XDA. You will most likely come across 1 .tar or 3 .tar file ROMs there, flashable by Odin. Refer to the Odin flashing guide below for more info.
Click to expand...
Click to collapse
****Heimdall****
What is Heimdall?
Heimdall is a cross-platform open-source tool suite used to flash ROMs onto Samsung Galaxy S devices.
How does it work?
Heimdall uses the same protocol as Odin to interact with a device in download mode. USB communication in Heimdall is handled by the popular open-source USB library, libusb-1.0.
Why “Heimdall”?
The flashing software Odin is named after the king of gods in Norse mythology. Loke, the software component on the Galaxy S that provides functionality to flash, may also to be named after an important character in Norse mythology, often translated as Loki. As such I have named my flashing software Heimdall, after the Norse god, and guardian of the Bifrost Bridge.
What platforms does Heimdall run on?
Linux, OS X and Windows (XP, Vista, 7 etc.)
Why use Heimdall when we can use Odin?
Odin is generally unreliable and only runs on Windows systems. Furthermore, Odin is leaked Samsung software that is not freely available or well understood by the community.
Is Heimdall safe?
No matter what method you chose, flashing firmware onto your phone has a lot of potential for disaster. We have tested Heimdall with a variety of phones flashing several different firmware versions resulting in a 100% success rate. As such we believe that Heimdall is generally reliable. However keep in mind, just like any flashing software, Heimdall has the potential to brick your phone if not used correctly.
How do Galaxy S phones get bricked when flashing?
Besides the inherent risks like power outs, accidental removal of the USB cable etc. The Galaxy S appears to be running extremely unreliable USB control software.
A failure to flash does not automatically equate to a bricked phone. However if you're extremely unlucky and the flash fails whilst transferring the primary boot-loader, secondary boot-loader or params.lfs (all quite small) than you've got yourself a paper weight that you're hoping Samsung will replace.
Please be extremely careful mixing files from different firmware releases. Don't do so unless you're certain it will work!
What Galaxy S variants has Heimdall been tested with?
We’ve tested Heimdall with a Galaxy S GT-I9000 (8 GB) from the United Kingdom and Galaxy S GT-I9000 (16 GB) from Australia. We don’t personally have access to any other devices to test with, however users have confirmed Heimdall functions correctly with the AT&T Captivate, Bell Vibrant, Telstra GT-I9000T, Epic 4G and the Galaxy Tab.
Click to expand...
Click to collapse
^
CWM Errors and Solutions
ERRORS encountered in CWM Recovery
.
What is CWM Recovery ?
ClockworkMod Recovery is a custom recovery for many Android devices. It is considered to be the most popular recovery for Android due to its easily-ported nature, and integration with ClockworkMod ROM Manager by Koush(Koushik Dutta). The easiest way to recognize it is by the printed name when it first starts, and the background logo of a gear and hat.
Click to expand...
Click to collapse
ERROR STATUS 6
This is usually caused by CR/LF EOL(Windows style End Of Line) in updater-script. Change it to LF EOL(Unix Style EOL) using Linux command: dos2unix updater-script, then re-signing the ZIP, will usually fix this error.
Click to expand...
Click to collapse
ERROR STATUS 7
This is usually caused by a corrupt download, or bad file signature. Re-downloading (or re-signing) the ZIP will usually fix this.
Click to expand...
Click to collapse
We have been consistently seen and heard people facing error “Status 7″ error while trying to flash or install
custom ROMs or firmware packages on their Android smart phones or tablets with ClockworkMod Recovery. Many
of the users are nowadays facing this problem with CWM Recovery while flashing .zip files of modded or custom
Ice Cream Sandwich (ICS) or Jelly Bean (JB) ROMs on their devices. So, you have also downloaded a custom ROM,
placed its .zip file in your phone’s or tablet’s SD card, booted into ClockworkMod Recovery, selected – “install zip
from sdcard” and then chosen the .zip file of the ROM to get it installed on your device. But instead of getting
flashed successfully, if you are facing the issue mentioned below, then just keep reading this article to find out
what’s wrong and fix up the problem :
Finding update package…
Opening update package…
Installing update…
Error in /sdcard/custom-jelly-bean-rom.zip (Status 7)
Installation aborted
Click to expand...
Click to collapse
or the following error right after CWM recovery shows –
Installing update…
assert failed: getprop(“ro.product.device”) == “I9103″ || getprop(“ro.build.product”) == “I9103″ || getprop
(“ro.product.board”) == “I9103″
Error in /sdcard/android-4-1-1-ics-rom-latest.zip (status 7)
Click to expand...
Click to collapse
So, if you are facing any of these errors while trying to install the desired custom ROM package on your Android
phone or tab, then you may try a various things or steps which may turn out to be the workaround of this
problem. Here are a few tips to get this “Status 7” error fixed in ClockworkMod Recovery and flash the ROM
successfully on your device :
(1) First of all, make sure your device’s bootloader is unlocked. If it is already unlocked but you are still
not able to flash the ROM, then just extract the .zip file of the ROM into a new folder, find the boot.img file from
that directory and flash it up on your phone or tablet via fastboot on your PC.
(2) Make sure that you are having the appropriate Radio or Baseband version installed on your device which is
supported by the custom ROM you are trying to flash. Most of the ROMs requires the latest version of Baseband, so
just update or upgrade your device to the latest Baseband version and then try to install the ROM once again.
(3) Update your device to the supported / latest build of official firmware before trying to install the ROM. You can
do it from – Settings > About Phone / Device > Software Update.
(4) Make sure you are having the supported or required kernel installed on your phone or tab. If it’s not, then flash
a new kernel right away and try to install your custom ROM once again.
(5) Is the ROM which you are trying to flash really works ? Find out whether it is working for other users or not.
Click to expand...
Click to collapse
Error Status 0
Well sometimes while flashing some ROMs especially the cooked ones we get Error status 0 in the CWM Recovery
this error is an indicator of Wrong Update Binary.This is usually caused by an incompatible update-binary in edify ZIPs. Replacing it with a compatible one, then re-signing the ZIP, will usually fix this error.
Click to expand...
Click to collapse
Partitions
Now it's time for the partitions :good:
Let’s start with a list of standard internal memory partitions on Android phones and tablets. These are:
/boot
/system
/recovery
/data
/cache
/misc
In addition, there are the SD card partitions.
/sdcard
/sd-ext
Note that only /sdcard is found in all Android devices and the rest are present only in select devices. Let’s now take a look at the purpose and contents of each of these partitions.
/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.
You should at least post the source of such a large copy paste post.
Sent from my GT-N7100 using Tapatalk 2
Source? How do you post a source for an article which is compiled from 10+ sites? Plus my own addition?
Started from the bottom
Good job man, this saves me the time to do all this researches.
Keep it up
Best regards
Sifou
Using a Samsung N7100
sos_sifou said:
Good job man, this saves me the time to do all this researches.
Keep it up
Best regards
Sifou
Using a Samsung N7100
Click to expand...
Click to collapse
DO tell me if you have some suggestions for the thread.
"Thanks button is just to avoid "THANKS" posts in threads. Nothing more than that. Don't ask in signature or post for it and defeat the purpose why it was introduced"
I think that this is a pretty good summary of the basics. I even converted it to epub and stocked it on my e-reader for reference
You can get to the details if you want? Adding some info about flashing softwares like odin and the Linux based one (i don't remember it name)
The different recoveries available and their advantages vs désavantages
How to protect yourself from malicious applications, starting from knowing what are permissions...
Keep it up mate
Best regards
Sifou
Using a Samsung N7100
sos_sifou said:
I think that this is a pretty good summary of the basics. I even converted it to epub and stocked it on my e-reader for reference
You can get to the details if you want? Adding some info about flashing softwares like odin and the Linux based one (i don't remember it name)
The different recoveries available and their advantages vs désavantages
How to protect yourself from malicious applications, starting from knowing what are permissions...
Keep it up mate
Best regards
Sifou
Using a Samsung N7100
Click to expand...
Click to collapse
Heimdall?
"Thanks button is just to avoid "THANKS" posts in threads. Nothing more than that. Don't ask in signature or post for it and defeat the purpose why it was introduced"
Tha TechnoCrat said:
Source? How do you post a source for an article which is compiled from 10+ sites? Plus my own addition?
Started from the bottom
Click to expand...
Click to collapse
I guess you have a point, it's just the scientist in me with source-referral-ocd.
Sent from my GT-N7100 using Tapatalk 2
adytum said:
I guess you have a point, it's just the scientist in me with source-referral-ocd.
Sent from my GT-N7100 using Tapatalk 2
Click to expand...
Click to collapse
DO tell me if you have any problems or if you want something to be added.
"Thanks button is just to avoid "THANKS" posts in threads. Nothing more than that. Don't ask in signature or post for it and defeat the purpose why it was introduced"
Thread updated with Odin and Heimdall information.
"Thanks button is just to avoid "THANKS" posts in threads. Nothing more than that. Don't ask in signature or post for it and defeat the purpose why it was introduced"
Tha TechnoCrat said:
Source? How do you post a source for an article which is compiled from 10+ sites? Plus my own addition?
Started from the bottom
Click to expand...
Click to collapse
By listing ALL the different sources? And obviously crediting yourself with bits you've added.
Sent from my GT-N7100 using xda premium
You should make the title of the thread more presentable though.
Simone said:
You should make the title of the thread more presentable though.
Click to expand...
Click to collapse
Would like some suggestions.
"Thanks button is just to avoid "THANKS" posts in threads. Nothing more than that. Don't ask in signature or post for it and defeat the purpose why it was introduced"
Tha TechnoCrat said:
Would like some suggestions.
"Thanks button is just to avoid "THANKS" posts in threads. Nothing more than that. Don't ask in signature or post for it and defeat the purpose why it was introduced"
Click to expand...
Click to collapse
You should think of your own. That would be the best
Make it more professional looking, though.
Everything else is good.
Guys I have got my Note 2 finally. Will compile some guides for it too.
Sent from my GT-N7100 using xda app-developers app
You bought a note 2? Congrats mate !
Best regards
Sifou
Using a Samsung N7100
sos_sifou said:
You bought a note 2? Congrats mate !
Best regards
Sifou
Using a Samsung N7100
Click to expand...
Click to collapse
Thanks buddy. Get ready for more guides
Sent from my GT-N7100 using xda app-developers app
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
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!
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.
Nice One Brother
ARGHA_DAS said:
Nice One Brother
Click to expand...
Click to collapse
I am glad this was of help to you
What's in the 'boot' partition?
Sent from my Nexus 7 using Tapatalk
AbyssBreak said:
What's in the 'boot' partition?
Sent from my Nexus 7 using Tapatalk
Click to expand...
Click to collapse
This guide should be of help
/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
Click to expand...
Click to collapse
I'm a PC person and this is my first android device, so please bear with me.
When my Tab 4 had the stock rom, it showed 3.28gb as the minimum required to run system blah blah under settings/device/storage
I've now installed a custom rom using TWRP flash.
The rom is supposed to be a lightweight version with a lot of the bloatware removed, but the OS still shows 3.28gb as system space.
Why did the system space not reduce if the OS is slimmed down version ??
Did I flash incorrectly ??, in the PC world if you used a smaller OS image it would give the option to make a smaller OS partition and free up more space for data partitions.
Am I missing something here ??
Do Android roms not resize the partitions ??
Can we resize the partitions manually before installing the rom ??
anyone ??
sid21177 said:
anyone ??
Click to expand...
Click to collapse
Depends on the rom. First off, which model number do you have (Settings > about device > model number)? Secondly, which rom did you install? (I'm going to assume you installed some sort of stock-based rom). To tentatively answer your question, touchwiz roms (i.e. stock based) usually don't free up much space because even though it's a "custom rom" it's in many senses the same thing, many if not all of the same system apps/processes. AOSP-based roms (the most well known tends to be Cyanogenmod and its derivatives) usually free up a lot more space. A quick numerical example: my tablet came with something like 300 or 400 system apps comprising the stock OS. Simply put, I wiped everything and installed cyanogenmod, now the corresponding number is somewhere between 70 to 90 system apps. In other terms Samsung's touchwiz (the stock Samsung version of Android) is hideously bloated, first with all the unnecessary crap (adware, unnecessary apps, gimmicky features, etc.) they include, and also because they essentially built their own android environment (touchwiz) on top of google's stock android. I'm just speaking from what I've picked up from personal experience, I'm sure someone could give you a much better technically in-depth answer than this, but I saw your question and felt bad that you hadn't gotten an answer, so I hope this has helped in any way. If not, well, sorry
thisisapoorusernamechoice said:
Depends on the rom. First off, which model number do you have (Settings > about device > model number)? Secondly, which rom did you install? (I'm going to assume you installed some sort of stock-based rom). To tentatively answer your question, touchwiz roms (i.e. stock based) usually don't free up much space because even though it's a "custom rom" it's in many senses the same thing, many if not all of the same system apps/processes. AOSP-based roms (the most well known tends to be Cyanogenmod and its derivatives) usually free up a lot more space. A quick numerical example: my tablet came with something like 300 or 400 system apps comprising the stock OS. Simply put, I wiped everything and installed cyanogenmod, now the corresponding number is somewhere between 70 to 90 system apps. In other terms Samsung's touchwiz (the stock Samsung version of Android) is hideously bloated, first with all the unnecessary crap (adware, unnecessary apps, gimmicky features, etc.) they include, and also because they essentially built their own android environment (touchwiz) on top of google's stock android. I'm just speaking from what I've picked up from personal experience, I'm sure someone could give you a much better technically in-depth answer than this, but I saw your question and felt bad that you hadn't gotten an answer, so I hope this has helped in any way. If not, well, sorry
Click to expand...
Click to collapse
I installed a custom rom which is about 400mb in size. I assume the initial system partition was set to 3.28gb as the stock rom is a lot larger.
So, I thought that when I install a smaller rom, the space on the device will free up to be used as data storage, like it would on a PC when you image the drive with a smaller OS image.
But there was no change to the system partition size, apparently android custom rom flashes do not touch the partition size, they just reduce the content on the partition
Unless I got this figured out wrong
sid21177 said:
I installed a custom rom which is about 400mb in size. I assume the initial system partition was set to 3.28gb as the stock rom is a lot larger.
So, I thought that when I install a smaller rom, the space on the device will free up to be used as data storage, like it would on a PC when you image the drive with a smaller OS image.
But there was no change to the system partition size, apparently android custom rom flashes do not touch the partition size, they just reduce the content on the partition
Unless I got this figured out wrong
Click to expand...
Click to collapse
Yeah sorry after I answered I read more carefully and saw you were asking more about the partition size, I apologize that was my bad. I'm definitely out of my league here, all I know is bad things (like hard bricks) tend to happen when people try re-partitioning (I'm not saying it isn't possible necessarily, just that it's certainly not to be done lightly or casually)
But there was no change to the system partition size, apparently android custom rom flashes do not touch the partition size, they just reduce the content on the partition
Click to expand...
Click to collapse
Correct to this line. I think this is the core of what you were asking and what I missed.
thisisapoorusernamechoice said:
Yeah sorry after I answered I read more carefully and saw you were asking more about the partition size, I apologize that was my bad. I'm definitely out of my league here, all I know is bad things (like hard bricks) tend to happen when people try re-partitioning (I'm not saying it isn't possible necessarily, just that it's certainly not to be done lightly or casually)
Correct to this line. I think this is the core of what you were asking and what I missed.
Click to expand...
Click to collapse
No issues
If it was a PC I'd tinker around in a heartbeat, with devices & embedded roms its a little more hairy
sid21177 said:
No issues
If it was a PC I'd tinker around in a heartbeat, with devices & embedded roms its a little more hairy
Click to expand...
Click to collapse
you can move apps from the data partition to system, this will give you more free space.
partitioning is also possible, there are custom roms from other devices which do so.
sub77 said:
you can move apps from the data partition to system, this will give you more free space.
Click to expand...
Click to collapse
How to do this ??
https://play.google.com/store/apps/details?id=de.j4velin.systemappmover&hl=de
sid21177 said:
How to do this ??
Click to expand...
Click to collapse
On average how much space can you free up by doing this? Thanks In advance!!!
Sent from my SM-G920T using XDA Free mobile app
xda23 said:
On average how much space can you free up by doing this? Thanks In advance!!!
Sent from my SM-G920T using XDA Free mobile app
Click to expand...
Click to collapse
First you should root your device to get the permissions to write any data to system partition.
Then you can use apps like Titanium Backup, .... to move apps to system partition.
Freeing space depends on the size of the app you are moving.
Don't root to just move apps to system partition. Use a sdcard intead.