Related
I started using Google ION ROM rev1 last week and I have been very happy. Question is, why is it so much faster and lag free than the standard G1 ROM? I was on JF 1.51 before this and it was very laggy. Also, I first tried Google ION ROM rev2 and I didn’t see any speed improvement.
Is Google ION ROM missing anything? If not, why wouldn’t Google optimize the G1 ROM to be this fast?
The first person to say something about a different version of DalvikVM is getting punched in the face
It's because it's a nice, clean build of AOSP 1.5r2 with no extra bull**** installed, thats all.
whats a DalvikVM?
j/k! "Ducks as cyanogen swings:
P.S. Luvin your work cyanogen, thank you sincerely.
and its not because it has pre-generated odex files either.
Its all kernel optimization I believe.
dwang said:
and its not because it has pre-generated odex files either.
Its all kernel optimization I believe.
Click to expand...
Click to collapse
Nope, the kernel is msm_defconfig (you can pull /proc/config.gz and compare for yourself), right from AOSP with zero changes.
cyanogen said:
Nope, the kernel is msm_defconfig, right from AOSP with zero changes.
Click to expand...
Click to collapse
Ok, it must be "magic" then.
dwang said:
Ok, it must be "magic" then.
Click to expand...
Click to collapse
I installed ion, I dont think its any faster than any of cyanogen's roms
defconoi said:
I installed ion, I dont think its any faster than any of cyanogen's roms
Click to expand...
Click to collapse
same here
salamandar said:
whats a DalvikVM?
j/k! "Ducks as cyanogen swings:
P.S. Luvin your work cyanogen, thank you sincerely.
Click to expand...
Click to collapse
DalikVM is a virtual machine created by some guy at Google.
http://en.wikipedia.org/wiki/Dalvik_virtual_machine
defconoi said:
I installed ion, I dont think its any faster than any of cyanogen's roms
Click to expand...
Click to collapse
I havent tried any cyanogens ROMs yet. I may have to give one a try, its based on JF 1.51, right?
defconoi said:
I installed ion, I dont think its any faster than any of cyanogen's roms
Click to expand...
Click to collapse
alapapa said:
same here
Click to expand...
Click to collapse
Did you install rev1 or rev2?
It's the dalvikvm combined with the .odex optimizations.
afflaq said:
It's the dalvikvm combined with the .odex optimizations.
Click to expand...
Click to collapse
did u even read the entire thread. Not its not.
dalvikvm in ion is exactly the same as j1.5.
android already does dexopt automatically on the dex files in the dalvik-cache. You can see it in the logcat whenever you change kernels.
All the stuff that people are doing to their ROMs are basically all placebo effect. The additional speeds that people are getting is from using cyan's boot.img.
I used ION for a few weeks, actually just started using Cyanogen's newest. I don't really notice much, if any, speed difference between the two. Same with Dude's latest ROM.
I do believe ION is all about the optimization (default CPU is 384mhz, not 528 on G1 port). ION was just optimized as much as possible to run the same speed on a slower processor. At least that's my take on it.
androidmonkey said:
Did you install rev1 or rev2?
Click to expand...
Click to collapse
both
(10 char minimum)
afflaq said:
It's the dalvikvm combined with the .odex optimizations.
Click to expand...
Click to collapse
See here about DalvikVM: http://forum.xda-developers.com/showpost.php?p=4021692&postcount=3791
It's snake oil. I don't know how or why people (and ROM developers) are spreading this idea. It's just plain wrong.
Then read this about dexopt (particularly the "preparation" section): http://android.git.kernel.org/?p=platform/dalvik.git;a=blob_plain;f=docs/dexopt.html;hb=HEAD
Those .odex files are the exact same thing that is generated by the runtime in dalvik-cache. Now, it *is* possible that accessing resources inside of an apk where the original classes.dex has been removed could be slightly faster due to smaller size, but the zip format is designed to be seeked on so I don't really buy this either.
cyanogen said:
See here about DalvikVM: http://forum.xda-developers.com/showpost.php?p=4021692&postcount=3791
It's snake oil. I don't know how or why people (and ROM developers) are spreading this idea. It's just plain wrong.
Then read this about dexopt (particularly the "preparation" section): http://android.git.kernel.org/?p=platform/dalvik.git;a=blob_plain;f=docs/dexopt.html;hb=HEAD
Those .odex files are the exact same thing that is generated by the runtime in dalvik-cache. Now, it *is* possible that accessing resources inside of an apk where the original classes.dex has been removed could be slightly faster due to smaller size, but the zip format is designed to be seeked on so I don't really buy this either.
Click to expand...
Click to collapse
Had the forums let me enter that in all caps to show my sarcasm I would have... /bonk
afflaq said:
Had the forums let me enter that in all caps to show my sarcasm I would have... /bonk
Click to expand...
Click to collapse
I realized that after I posted, but the points made are still true.
aFLACK!!!!
Again, it's not the dalkvik vm, or the odex files, or the smaller rom (not much actually, only a few files smaller than an adp google rom), it's the combination of the three plus a few other factors.
Dwang, you keep waving that flag that the dalvik vm does dexopt at the dalvik-chache, yet you're still failing to realize that IT IS DOING DEXOPT AT THE DALVIK CACHE... if the files are pre-odexed, the VM doesn't even do that. The dex at dalvik cache are not optimized, they're still dalvik bytecode, dalvik does this to prevent parsing the whole apk at app runtime and wasting time with both storing the dex to phone memory (which is already limited), and then running dexop at the extracted bytecode (because, as you correctly pointed out the other day, dalvik doesn't do jit, so .dex is quite useless to it),
with odexed files, you're saving both of those steps, the device just executes the .odex as needed without having to load to phone memory (thus linux's memory management doesn't kick in and dump, for example, home screen memory, explaining why you can return to home so quick). On T-Mobile's and google's roms, it goes an extra step by removing the .dex file from the apk, that way, when the machine still has to decompress the .apk file, it doesn't have to load such a big file to memory or check it all.
I don't think there's any sort of device specific modifications, since those would have been meant for the Ion and would break once running in Dream, unless it was haykuro that put them there, in that case, we're barking up the wrong tree and have to ask him what he did, but as I remember, it was actually him who broke ion with r2, so i guess that's not it either.
Nobody really knows why it works the way it does (and in some cases, doesn't work), but the combination of those three things i mentioned DO have an effect on how much work the phone has to do and how fast it can do it. Come on guys, it's all basic stuff...
What? Can people please read the entire thread before posting. Geez.
Its been established that the dalvik vm in ION is EXACTLY the same as in JF 1.5.
And, the dex files in dalvik-cache are optimized. Every time I load a new kernel, the dex files in dalvik-cache get re-generated.
Plus, cyan pointed to this link that says that it is:
http://android.git.kernel.org/?p=platform/dalvik.git;a=blob_plain;f=docs/dexopt.html;hb=HEAD
So its neither dalvik vm nor odex files that is contributing to the speed.
jubeh said:
Again, it's not the dalkvik vm, or the odex files, or the smaller rom (not much actually, only a few files smaller than an adp google rom), it's the combination of the three plus a few other factors.
Dwang, you keep waving that flag that the dalvik vm does dexopt at the dalvik-chache, yet you're still failing to realize that IT IS DOING DEXOPT AT THE DALVIK CACHE... if the files are pre-odexed, the VM doesn't even do that. The dex at dalvik cache are not optimized, they're still dalvik bytecode, dalvik does this to prevent parsing the whole apk at app runtime and wasting time with both storing the dex to phone memory (which is already limited), and then running dexop at the extracted bytecode (because, as you correctly pointed out the other day, dalvik doesn't do jit, so .dex is quite useless to it),
with odexed files, you're saving both of those steps, the device just executes the .odex as needed without having to load to phone memory (thus linux's memory management doesn't kick in and dump, for example, home screen memory, explaining why you can return to home so quick). On T-Mobile's and google's roms, it goes an extra step by removing the .dex file from the apk, that way, when the machine still has to decompress the .apk file, it doesn't have to load such a big file to memory or check it all.
I don't think there's any sort of device specific modifications, since those would have been meant for the Ion and would break once running in Dream, unless it was haykuro that put them there, in that case, we're barking up the wrong tree and have to ask him what he did, but as I remember, it was actually him who broke ion with r2, so i guess that's not it either.
Nobody really knows why it works the way it does (and in some cases, doesn't work), but the combination of those three things i mentioned DO have an effect on how much work the phone has to do and how fast it can do it. Come on guys, it's all basic stuff...
Click to expand...
Click to collapse
This thread is aimed for those who are new, or in the dark about the terminologies used throughout this forum. I do hope it will in some way or another enlighten you, and help make understanding what you read much easier:
Ill start off below with some basic terminology of the android platform, and also some file types:
Common Terminology
adb: Android Debug Bridge, a versatile tool lets you manage the state of an emulator instance or Android-powered device
ADK: Android Development Kit, What people use to develop anything for the droid such as ROM's
Baseband: In communications and signal processing, the baseband describes signals and systems whose range of the frequencies measured from close to 0 hertz to a cut-off frequency, a maximum bandwidth or highest signal frequency; it is sometimes used to describe frequencies starting close to zero
Boot Loader: State in which the droid can be flashed from RSD with an appropriate .sdk file that reprograms the phone into a specific ROM or update. This is typically a last resort when the recovery screen cannot be reached to make a much simpler and less risky solution
Boot Loop: simply means something is preventing the phone from completing it's boot cycle and is stuck between the boot animation and the unlock screen, creating a looped animation. This is often fixed by either reloading a Nandroid, or Reflashing a rom from the Boot Loader.
Brick or Bricked: Jargon for a completely unrecoverable device, (no more than a brick or paperweight)
Bug or Software Bug: an Error or flaw in software that produces a failure or unexpected/unwanted result. Typically created from incorrect code, this is why some ROMs are better and smoother running than others because certain developers have taken the time to input "perfect" code
Busybox: BusyBox is a single multicall binary that packages the functionality of most widely used standard Unix tools, BusyBox provides a fairly complete environment for any small or embedded system.
ClockworkMod: A recovery program that is often used to apply updates, ROMs, or create a back up or restore a backup file
De-odex: Apk files have respective odexes that devs use to supposedly save space. Deodexing means you convert it back to a .dex file and put it back inside the apk. This allows you to easily replace files (not having to worry about odexes), but the main point was to deodex services.jar so that you can change all text to different colors (such as the clock color to white) and to deodex services.jar, you need to deodex everything.
Dev. or Developer: An individual that creates, or alters a file in such a manner as to advance the program
Flash or Flash Memory: a program technology that can be electrically erased and reprogrammed
Kernel: The governor of the CPU usage and Battery output, one can upload certain Kernels to achieve greater performance speed of their device at the cost of some battery life
Nandroid or Nandroid Backup: A file typically created in the custom recovery program, such as SPRecovery, that is a carbon copy of whatever state your phone is in before a drastic change is made. the file then can be moved onto or off of the SD card for later use in case something should go wrong in the ROM or Update, or a Boot Loop occurs
OS: Operating system, I.E. Windows Vista or MAC or ANDROID
Overclocking: Speeding up the CPU past the factory presets to achieve a faster and more responsive device
ROM: Read Only Memory, a program used to make changes to anything from the look of the home screen, to icons to custom boot animation
Root: Common word associated with giving a user "super user" access to their phones programming and other various aspects that would normally not be possible, also known as "Jailbroken" for iPhone's
Shell or SSH: secure shell or ssh is a network protocol that allows data to be exchanged using a secure channel between two networked devices
SPR or SPRecovery: A recovery program that is often used to apply updates, ROMs, or create a back up or restore a backup file
Stock: Simply means an unaltered state, such as when you first purchase your phone from Verizon, or when you do a factory reset. Current stock image is Android 2.2 (Froyo)
SU: "Super user", or root permissions
Theme: A set of icons, backgrounds and app trays that change the ascthetics of the overall look of the droid and its applications
TUN/TAP: Refers to a network Tunnel, operates within layer 3 packets, or ip packets. Packets sent by a system via a TUN/TAP device are delivered to a user-space program that attaches itself to the device. A user space program may also pass packets into a TUN/TAP device. In this case TUN/TAP device delivers (or "injects") these packets to the operating system's network stack thus emulating their reception from an external source.
Underclocking: Slowing down the CPU mainly to limit battery usage
File types:
.apk or APK's: An .apk file extension denotes an Android Package (APK) file, an .apk file can be opened and inspected using common archive tools
.sbf: Summation Briefcase File
.tar: Similar to a zip file, a tar file archives multiple files into one file
.tgz: TGZ files are commonly used as install packages for Slackware Linux.
.zip: Zipped file used to archive multiple files into one to save space and allow for single download
Reference Source: http://developer.android.com/guide/appendix/glossary.html
Understanding Root Terms & Procedures
Understanding ROM’s and builds
A ROM is essentially a custom version of Android. They are developed by independent geniuses smarter than you and me. Each tweaks, combines, or optimizes Android to offer something standard versions lack. Within ROM’s, you have what are known as builds (basic branches of Android code) that offer certain features and characteristics.
Think of it as a crude metaphor for Microsoft Windows. There’s XP, Vista, and Windows 7. All three are Windows operating systems and can typically run the same programs, but there are major differences between them. Within each OS, there’s further distinction between Vista Home, Vista Pro, and Vista Ultimate. Likewise, one ROM can spawn multiple versions. For instance, there are several flavors of Drake’s Hero ROM..
Each developer creates his ROM with its own purpose and feature set. Just because something works in Cyanogen’s ROM doesn’t mean it can work in Drake’s (or more specifically that they want to implement the feature at all).
Be advised that some ROM’s require a wipe (erases all information stored on your phone) before or after installation. This is done when you enter the recovery mode and perform a “factory data reset.” Developers will say if a wipe is necessary whenever you flash (load/install) a ROM
Where To Download ROMs
You’ll notice that ROM threads begin with the “[ROM]” tag. you can download them from here ALWAYS read the instructions before attempting to load a ROM. Each contains critical instructions or requirements that can cause big trouble if not followed correctly. Be sure to read change logs/release notes (plainly stated notes written by developers to explain updates). They will reveal important information and point out new features.
Before loading a ROM, perform a backup!
Using Recovery images and Nandroid back-ups
You may remember the recovery image from the one-click process. You’ll also use the recovery image to change ROM’s, apply themes, backup your phone state, and perform other functions. To launch the recovery image, turn off your phone and reboot by pressing Home and Power at the same time.
Performing a backup is typically a good idea when you enter the recovery image to load a ROM. I try to backup my phone at least once every 3 times I update to a new ROM. Nandroid will backup your phone’s state, allowing you to return to the settings/state saved to your SD card. If something goes wrong, it can be your best friend. The Cyanogen recovery image that came with one-click thankfully has Nandroid built-in, allowing easy backup/restore.
Credit to Androinica (Reference Source): http://androinica.com/2009/09/how-to-understand-android-root-terms-and-procedures/
Saved for Future Posts
Nice post for green-hand.
Thanks for taking the time to set this one up.
ur most welcome. if you have any additional information that u see fit to be added on, or any mistakes that need correction, please feel free to PM me
Introduction:
Please read and try to do some research instead of bombarding the developers with the same questions over and over, cluttering the threads with useless and recursive information. I will try to include terms for all the ROMs and Kernels in the Development Section, and remove the obvious things as much as possible. That doesn’t mean it will be perfect! I hope this will be useful for beginners, because it provides most of the basic information you need to get started. From now on, it’s up to you what you do.
I am fully aware that the information included here is for one time use, enough to get you started. Some of these things ARE well known by many of you, but they are still useful for others that are just beginning to learn about their NS. Besides definitions and explanations, I’ll also link to useful posts around xda and other sites, which provide further information on the respective subject.
ROMs(ROM: a firmware that contains the Android operating system, and at least critical apps necessary for running your phone (but usually more apps than just those); can be stock or custom, and comes packaged in a *.zip file, flashable under recovery)
AOSP-built ROMs
Features: these are built from source code, from the Android Open Source Project, delivered free of bloatware and with rich customizations.
Some of the most popular (at the moment):
GSM VERSION: i9023/i9020A/i9020T
CyanogenMod 9 (still in alpha stages for now)
IML74K Android 4.0.3 Build 4 - Quad Lockscreen + More MODS (1/15/12)
nuhetri- v1.0.0
Slim ICS
AOSP+ V2.3|ICS 4.0.3|Source Built|Status Bar Widgets + Nice Mods
4G VERSION
vhgomez36-ICS-NXS-4G-4.0.3 r2.0
IML74K Android 4.0.3 Build 3 - Quad Lockscreen+More MODS
Crossbones v0.1.3
CyanogenMod 9 v4.0.3 - Alpha 20
Click to expand...
Click to collapse
Moddified ROMs
Features: these are modified versions of stock/AOSP ROMs/other custom ROMs, that keep the look of the base ROM up to a certain point. Also generally free of bloatware and with some additional modifications.
Some of the most popular (at the moment):
GSM VERSION: i9023/i9020A/i9020T
CyberGR-MOD|NS.NGN ver. 4.0 Ultimate
NSCollab 1.0.60
Ultimate ICS v4.0
-=Nexus MV 1.12.09=-
KANGY6 | ICS | AOKP |
NexusBeam 4.2.3
CyberGR-MOD|NS.NGN ver. 3.0 Hybrid ICS
Click to expand...
Click to collapse
MIUI-style ROMs
Features: unique type of ROM, developed by the Chinese. Has a strong iOS feel, highly customizable.
Some of the most popular (at the moment):
GSM VERSION: i9023/i9020A/i9020T
◄ ▌ [09.Jan.12] [ROM] Brainmaster's MIUI 2.1.6 ICS | Stable 2.3.7b v2 GB ▌►
DianXin OS (DX ROM) ICS | GB ROM
4G VERSION
◄ ▌ [28.Nov.11] [ROM] brainmaster's MIUI NS4G 1.11.25 | OTA ▌►
Click to expand...
Click to collapse
Stock ROM
Official releases from Google. The reasons most people here flash a stock ROM are: they want to update/ are bored of custom ROMs/ want to start over with their phone/ warranty reasons.
If you want to go back to stock for some reason, check this thread and read carefully, so you get the correct version for you.
Click to expand...
Click to collapse
Once we decide for a type or ROM (except stock), we head over to the ROMs thread and begin reading the list of features. Now would be a good time to PANIC! No, no, just kidding Those words do exist in some kind of language (not necessarily English). So here’s a very basic list of the most common terms found in our ROM threads:
Code:
[B]AOSP[/B]
[quote]Short for [url=http://source.android.com/]Android Open Source Project[/url]. Its purpose is to maintain the development
of the Android platform. Anyone can use the Android source code for
any purpose, and this is when custom ROMs come in. The [AOSP]
tag is used here to signal a ROM built from Google’s source, a pure
ROM, free of bloatware, with very good performance (generally)
and a very extended degree of customization. [/quote]
[B]Build.prop[/B]
[quote]This file is located in /system/build.prop. It holds the majority
of the runtime flags that are used when Android boots. Basically, it
lists specific information about your device, for applications to use.
You can also edit lines, with a file manager that has access to
/system, in order to change LCD density, build number, device
model and many more. [/quote]
[B]Busybox(ed)[/B]
[quote]Busybox is a collection of simple, but powerful Linux
utilities, that Android doesn't come with by default. It is used
by applications like MetaMorph and Titanium backup in order
to do special operations. You can manage ther version installed
on your phone with various apps from the [url=https://market.android.com/search?q=busybox&c=apps]market[/url] [/quote]
[B]/boot partition[/B]
[quote]This partition includes the bootloader and kernel, and
it enables the phone to boot. Wiping it must be done only if
requested, and the phone must not be rebooted after this operation.
Instalation of a new one is done by flashing a ROM that includes
the /boot partition. [/quote]
[B]/cache partition[/B]
[quote]Inside this partition, Android stores frequently accessed
data and app components. Performing a wipe of the /cache does
not affect personal settings or files, but simply gets rid of existing
data there, which gets automatically rebuilt in time. [/quote]
[B]Dalvik cache[/B]
[quote]Dalvik cache collects the information about the installed
applications and frameworks, and organizes them into a writeable
cache. Under this writeable cache, it stores the “optimized”
bytecode of the applications which is used by the applications
themselves later for a smoother operation. This dalvik cache can
grow as more applications are installed on your phone. It is safe
to wipe dalvik-cache. It will be rebuilt again when the phone
boots. This also explains why your phone takes ages to start up
for the first time. [/quote]
[B]/data partition[/B]
[quote]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. [/quote]
[B]Deodex(ed)[/B]
[quote]In Android file system, applications come in packages with
the extension .apk. These application packages, or APKs contain
certain .odex files whose supposed function is to save space.
These ‘odex’ files are actually collections of parts of an application
that are optimized before booting. Doing so speeds up the boot
process, as it preloads part of an application. Deodexing is basically
repackaging of these APKs in a certain way, such that they are
reassembled into classes.dex files. By doing that, all pieces of an
application package are put together back in one place, thus
eliminating the worry of a modified APK conflicting with some
separate odexed parts. The advantage of deodexing is in modification possibilities. On the other hand, since the .odex files were supposed
to quickly build the dalvik cache, removing them would mean
longer initial boot times. However, this is true only for the first
ever boot after deodexing, since the cache would still get built
over time as applications are used. [/quote]
[B]EFS folder[/B]
[quote]This is a VERY important folder. It contains phone-specific
information, like IMEI (encrypted in the nv_data.bin), wireless
devices MAC addresses, product code (also in the nv_data.bin)
and more. I advise you to make a backup of this folder, and keep
it safe. Remember, backup BEFORE flashing anything. Use [url=http://forum.xda-developers.com/showthread.php?t=1138873]this tool from forum member Borky_16[/url]. [/quote]
[B]Init.d[/B]
[quote]Init.d is very useful because it runs scripts that you can
just delete or replace in the /system/etc/init.d folder. The scripts
are also very flexible and can be used to call other scripts or set
a variety of system settings. [/quote]
[B]G-apps/Gapps[/B]
[quote]A long time ago, in a galaxy far far away, there was a
developer. And he used the Force for developing something called
CyanogenMod. For the happiness of the other folks in the galaxy,
he included some applications from Google. But the Emperor…
oh, sorry… But Google didn’t agree with him including these
proprietary apps, so they sent him a cease and desist letter.
Long story short, the Google Applications are provided separately
via a flashable .zip file. This is the case for pure AOSP ROMs,
and theoretically this is how it should be done. Theoretically. [/quote]
[B]Host File[/B]
[quote]Located in the /etc/ folder, it is used to block ads.
Most ROMs come with a “blocks ~95% of ads” statement. You
can also manage it with apps from the [url=https://market.android.com/search?q=ad+block&c=apps]market[/url]. [/quote]
[B]Logcat[/B]
[quote]The Android logging system provides a mechanism for
collecting and viewing system debug output. Logs from various
applications and portions of the system are collected in a series
of circular buffers, which then can be viewed and filtered by
the logcat command. You can use logcat from an ADB shell to view
the log messages.[/quote]
[B]NANDroid[/B]
[quote]When you take NANDroid backup, it means you are
backing up entire ROM. It’s basically a picture of the ROMs’
state . So when something goes wrong, you have the
chance to restore your phone to the backup state using the NANDroid. [/quote]
[B]NSTools[/B]
[quote]An essential tool that manages tweaks like BLN,
BLD, BLX, Liveoc, OC, CPU Governor, Deep idle and so on.
Written by arifhn, available in the [url=https://market.android.com/details?id=mobi.cyann.nstools&feature=search_result#?t=W251bGwsMSwyLDEsIm1vYmkuY3lhbm4ubnN0b29scyJd]market[/url] and on [url=http://forum.xda-developers.com/showthread.php?t=1333696]xda[/url],
this is a must have application for managing these various options. [/quote]
[B]Odex[/B]
[quote]These ‘odex’ files are actually collections of parts
of an application that are optimized before booting. Also explained at deodex(ed). [/quote]
[B]Power Menu[/B]
[quote]A multiple choice menu that appears when long pressing
the power button. In stock, these are critical options,
such as powering down the device. Developers have also
added options for taking snapshots,
rebooting normally/into bootloader/into recovery and so on. [/quote]
[B]Radio[/B]
[quote]The radio controls basic low-level functions like
network connectivity, Wi-Fi, and GPS. It comes as a radio.img file,
and generally, developers try to leave this out of their
ROMs because different areas require different radios. Pay attention
to this when choosing to flash a new ROM. There is a reference
thread with all the radios [url=http://forum.xda-developers.com/showthread.php?t=1116884]HERE[/url]. [/quote]
[B]Ramdisk[/B]
[quote]Ramdisk.img is a small partition image that is mounted
read-only by the kernel at boot time. It only contains /init
and a few config files. It is used to start init, which will
mount the rest of the system images properly and run the
init procedure. A Ramdisk is a standard Linux feature. [/quote]
[B]Recovery[/B]
[quote]Recovery mode in Android provides an environment for
users to wipe cache, data, factory reset the phone or update
it with a .zip file. There are custom recoveries like [url=http://www.clockworkmod.com/rommanager]ClockworkMod[/url] or [url=http://forum.xda-developers.com/showthread.php?t=1399565]TWRP[/url], which provide additional functionality,
and are very popular for this reason. [/quote]
[B]RTL[/B]
[quote]Short for Right-to-Left and refers to support for languages requiring this type of writing. [/quote]
[B]SetCPU[/B]
[quote]An application built by coolbho3000, which allows CPU speed tweaking and management, allows overclocking, and sets CPU governors. Available on [url=http://forum.xda-developers.com/showthread.php?t=505419]xda[/url] and the [url=https://market.android.com/details?id=com.mhuang.overclocking&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5taHVhbmcub3ZlcmNsb2NraW5nIl0.]market[/url] (try to buy from the market if you want to support his work). [/quote]
[B]SIM Toolkit (STK)[/B]
[quote]Now if you live in the States, you might not even know what
the STK is, so a bit of explaining is in order. Put simply, the STK
allows carriers to load a simple set of menus and 'applications' on
your SIM card. Earlier versions of Android, up to 1.6, actually
included a rather rough, but functional Sim Toolkit application, but
at some point it was dropped. [/quote]
[B]/system Partition[/B]
[quote]This partition basically contains the entire operating system,
except the kernel and the bootloader. 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. [/quote]
[B]Unsecured Boot.img[/B]
[quote]Used for adb remount, gets you root by default on a shell. (ro.secure=0) [/quote]
[B]V6 Supercharger Script[/B]
[quote]A more technical explanation could be done here, but
the bottom line is that this is used to make your phone run
faster, by better management of memory. [/quote]
[B]Zipaling[/B]
[quote]Zipalign is an archive alignment tool introduced first
time with 1.6 Android SDK (software development kit). It
optimizes the way an Android application package (APK) is
packaged. Doing so enables the Android operating system to
interact with the application more efficiently, and hence has
the potential to make the application and overall the whole
system much faster. Execution time is minimized for zipaligned
applications, resulting is lesser amount of RAM consumption
when running the APK. [/quote]
Kernels
(Kernel: provides the most basic level of control over all of the phone's hardware; consider them a link between the hardware components and the ROM)
With kernels it’s a little bit easier. At least this is how it may seem. Right after rooting the device, many choose to first flash a kernel (including me) mostly because it gives the opportunity to flash something while not modifying the appearance of the phone. Furthermore, it gives you the ability to change things like CPU clock speed, internal and ARM voltages, and also have different patches and mods designed to prolong battery life/improve speed/provide stability.
Kernels are abundant for the NS, so I’ll be naming the most popular:
GLaDOS
ICUP Kernel Edition
*Matr1x*
SG-NS-ICS - 14-01-2012 - 11UV|Voodoo|BFQ|BIGMEM|BLN|BLD|BLX|TW|Lazy|3.0.15
Netarchy Nexus
NS+4G Trinity (E)UV and OC CM9 + m(any) roms
Click to expand...
Click to collapse
Many users ask around about which could be the best kernel. For this, xda member bedalus decided to set up a thread where he benchmarked ICS kernels (accurately enough). This should give you an idea where to start from.
Also, there are terms which appear frequently in the features list of kernels, so here’s a very basic list of the most common terms found in our kernel threads:
Code:
[B]BFS[/B]
[quote]A Brain F**ked Scheduler will perform better on CPU intensive
process, which usually cause them to get higher benchmark scores.
However because it only dedicates minimal CPU to background
processes you may experience lag when switching quickly between
different tasks. [/quote]
[B]BLD[/B]
[quote]Backlight Dimmer provides an option for the lights of the
touchkeys to be turned off after a certain period. This can be
tweaked from NStools. [/quote]
[B]BLN[/B]
[quote]Backlight Notification is a mod developed by neldar,
which converts the touchkey backlights into a notification led. [/quote]
[B]BLX[/B]
[quote]Battery Life eXtender, from Ezekeel, manages the maximum
percentage to which the battery is being charged. By default,
the Nexus S is charged to about 95% capacity. [/quote]
[B]CFS[/B]
[quote]A Completely Fair Scheduler is more suited for multitasking.
You may notice performance issues when using CPU heavy
activities like HD games because it is trying to keep the other
processes in the background equal to the one that is hogging the
CPU. It should also be noted that, as designed, this type of
kernel should handle going from listening to music to sending a
text to surfing the web with minimal lag. [/quote]
[B]Deep IDLE[/B]
[quote]Another mod by Ezekeel, which allows the phone to
enter a “deep idle” state while performing tasks when the screen is
off. For example, listening to music with the screen off and
Deep Idle turned on, you should get better battery life than
without Deep Idle. [/quote]
[B]Governors [/B]
[quote]There is a much to be said here, and this would stretch
this dictionary too much. I recommend reading [url=https://github.com/CyanogenMod/cm-kernel/blob/android-msm-2.6.37/Documentation/cpu-freq/governors.txt]THIS[/url], a very good explanation of
governors—from CyanogenMod. [/quote]
[B]OC (Overclock)[/B]
[quote]An overclock is usually one of the first things users
figure out after gaining root access on a new phone. If you
want to push your smartphone's CPU to run more clock cycles,
you have to know that extra power isn't coming from nowhere.
However, it is generally considered good practice, but it
depends on your handset. Some phones may be able to support
overclocking to 1.4 GHz, while others may never get past
1.2 GHz. Just proceed with caution. [/quote]
[B]Touch Wake[/B]
[quote]Yes, yes, Ezekeel again. This mod allows the user to
wake the device after a set amount of time, just by touching
the screen or the capacitive buttons. The time after which the
screen no longer responds to a touch is set with NStools. [/quote]
[B]UV (Undervolt)[/B]
[quote]This refers to lowering the voltage to conserve power while
still achieving the same performance, assuming your settings
remain stable. Both SetCPU and NStools allow the user to change
voltages. Like overclocking, this is also a trial and error process,
because each phone is different. The benefits are low energy
consumption and less thermal output. [/quote]
Tools & Mods
So you have a rooted phone. Maybe even a custom Kernel or ROM, whatever works for you. But you still want to be a tad different from the other guys using the same configuration as yours. So here's a small selection of mods and apps developed by members of the community, enough to get you started. Feel free to experiment, and remember: read before flashing, search before asking and you should be alright!
Mods for AOSP+ Rom
[BOOTANIMATION] Plain, Simple & Colorful + color variants
Nova Launcher
Flavours for stock OTA ICS 4.0.3
Search key to ICS recent apps [add CM9 version]
[NS][NS4G]FaceLock for ICS 4.0.3
Enable on-screen buttons in ICS roms
Click to expand...
Click to collapse
NOTES:
I am hoping this little survival guide is useful FOR BEGINNERS in understanding the basic terminology used here in the Nexus S sections. As the title suggests, it was made with beginners in mind, so I don’t want posts of so called “experts” saying how they already knew this.
IMPORTANT: I do NOT guarantee the explanations written here are completely accurate or complete, FOR NOW. I will keep working on this, correcting mistakes as I continue to read.
If you find something that you think is not correct, or consider something must be added, please post here, together with a link to a credible source.
All of this came from sources off the internet, so please bear with me. Also, sorry for any typing mistakes. If you see any, please be sure to signal them
If I have helped you in any way, or if you appreciate the work invested in this (now and for the future), press the THANKS button.
Thank you! (Hoping to see this stick) And many thanks to all the great devs working on ROMs and Kernels for us. Keep up the great work!
W O R K - I N - P R O G R E S S
(I will be sure to notify you when I believe this is complete)
Wow this is a very good idea. Thanks!
Sent from my Nexus S using Tapatalk
ljordan2 said:
Wow this is a very good idea. Thanks!
Sent from my Nexus S using Tapatalk
Click to expand...
Click to collapse
Thank you! I'm just worried it is a little bit long... but in the next couple of days I will be making it more reader friendly
Transmitted from somewhere in space... from my Nexus S... and Tapatalk.
nice thread! thanks
Hey great post, i still haven't rooted my nexus s but you just made me flash a kernal. I was tkinking about it but never too serious.
thanks!
Love it!!! Cleared so much up (you recieved my first Thanks button click!)
Just wanted to clarify something about the Kernel. My Rom is stock 2.3.6 that was received OTA when I unboxed the phone (Nexus S GSM i9020A, I'm in Canada). The bootloader is unlocked, phone rooted with CWM recovery via one click (QBKing's Video). Am I able to flash a custom Kernel to a stock Rom? Reading the above seems to lean towards the "yes", but wanted to make sure first.
Also, do not use the one click method on the Nexus S GSM if you want to easily return to stock. The one click stock only supports the 4G, which is extremely silly and inconvenient IMO. I'm currently still trying to figure out how to return to stock, incase something does happen and the phone needs warranty work. Let's just say, I'm not making much progress and this is extremely uncomfortable ATM..
Great thread and idea, all seems spot on. I vote for sticky.
Also, heX, you can flash a custom kernel on a stock rom as long as you have an unlocked bootloader and custom recovery. I'd recommend you backup all you need with TB or similar, then do unlock your bootloader if you havn't already (search around for how to do this, described in rooting guides). Just remember this will delete -ALL- user data, including sdcard. After this you can flash a su.zip to have proper root access, and you can easily install a stock image with a custom bootloader then lock the bootloader afterward for pure stocky goodness.
Thanks so much for taking the time to do this
Sent from my Nexus S using XDA App
Harbb said:
Great thread and idea, all seems spot on. I vote for sticky.
Also, heX, you can flash a custom kernel on a stock rom as long as you have an unlocked bootloader and custom recovery. I'd recommend you backup all you need with TB or similar, then do unlock your bootloader if you havn't already (search around for how to do this, described in rooting guides). Just remember this will delete -ALL- user data, including sdcard. After this you can flash a su.zip to have proper root access, and you can easily install a stock image with a custom bootloader then lock the bootloader afterward for pure stocky goodness.
Click to expand...
Click to collapse
TYVM Harbb!
Yes, currently the bootloader is unlocked, phone rooted and CWM installed. I did a TB backup prior so I could quickly restore my apps and settings. All is running well.
I tried to flash a full stock Rom back to the phone, but have run into an issue in doing so, posted here
I'm still awaiting some help with regards to that one, hopefully all will be well soon.
I'm not sure why I got spooked in doing this. I'd like to try the Matrix kernel and there are various Roms that definitely sound fantastic, but part of me just wants it back to stock so warranty and OTA are restored as the phone is only a few weeks old.
very useful for us newbie, thanks for sharing
heX79 said:
TYVM Harbb!
Yes, currently the bootloader is unlocked, phone rooted and CWM installed. I did a TB backup prior so I could quickly restore my apps and settings. All is running well.
I tried to flash a full stock Rom back to the phone, but have run into an issue in doing so, posted here
I'm still awaiting some help with regards to that one, hopefully all will be well soon.
I'm not sure why I got spooked in doing this. I'd like to try the Matrix kernel and there are various Roms that definitely sound fantastic, but part of me just wants it back to stock so warranty and OTA are restored as the phone is only a few weeks old.
Click to expand...
Click to collapse
Ok I see you have the att version, so i9020A. When android 4.0.3 came out, I wanted to go back to stock 2.3.6 so that I could update officially. Anyway, I downloaded a full stock ROM, flashable via recovery, from HERE and all went smooth for me. (the link is to the i9020A version, of course I used the i9023 version). Try the stock posted there, and see if you get any error. I think you should be ok now, if not, post back. Remember, this takes you fully back to stock, no cwm, no nothing custom.
I am glad to see that I helped somenone, I will make some modifications this afternoon, still 9am here (maybe add stuff to the dictionary and post it to google docs or something like that, just to make it easier to scroll through and more). Any suggestions or critics are welcome!
EDIT: Guide updated:
-better arrangement of the dictionary (will be adding new terms tomorrow, had to study for an exam today)
-added Tools & Mods section (will build on that later on)
-more to come...
great post OP
Nice thread! Great Work ,Thanks
Hey thanks! Happy to see good feedback on this.
Transmitted from somewhere in space... from my Nexus S... and Tapatalk.
Great beginners guide, and thanks for the link!
For kernel benchmarks and more, see here: http://goo.gl/mpeHI
Thanks very much! I will give it a try shortly, just to confirm if I recieve any issues. I've also installed the recommended CWM version for my model, not sure if it makes a difference, but I flashed 5.0.2.0 anyway as the version I was getting an error with had a higher build number.
Right now I'm enjoying AndroidME 1.2.3 with Speedy 6 kernel and have no complaints so far! (Kernel updated this morning from Speedy 5)
I will report back with any issues once I have some time to do a Nandroid backup and test the stock Rom.
Thanks for your help!
It's nice to know there's a way to revert back to stock, should anything need servicing! I've also started reading up on Odin
flodb113 said:
Ok I see you have the att version, so i9020A. When android 4.0.3 came out, I wanted to go back to stock 2.3.6 so that I could update officially. Anyway, I downloaded a full stock ROM, flashable via recovery, from HERE and all went smooth for me. (the link is to the i9020A version, of course I used the i9023 version). Try the stock posted there, and see if you get any error. I think you should be ok now, if not, post back. Remember, this takes you fully back to stock, no cwm, no nothing custom.
I am glad to see that I helped somenone, I will make some modifications this afternoon, still 9am here (maybe add stuff to the dictionary and post it to google docs or something like that, just to make it easier to scroll through and more). Any suggestions or critics are welcome!
EDIT: Guide updated:
-better arrangement of the dictionary (will be adding new terms tomorrow, had to study for an exam today)
-added Tools & Mods section (will build on that later on)
-more to come...
Click to expand...
Click to collapse
You're welcome! Looking forward to an update with your stock flashing situation. I also used ClockworkMod 5.0.2.0 a long time. I'm now on 5.0.2.3 only for the better menu layout.
Transmitted from somewhere in space... from my Nexus S... and Tapatalk.
just one question...
can i install more than one kernel at a time...
for eg.like one i installed for battery usage and othr for sound..
can i do tht
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???
What is Root?
Android rooting is the process of allowing users of smartphones, tablets, and other devices running the Android mobile operating system to attain privileged control (known as "root access") within Android's subsystem.
Rooting is often performed with the goal of overcoming limitations that carriers and hardware manufacturers put on some devices, resulting in the ability to alter or replace system applications and settings, run specialized apps that require administrator-level permissions, or perform other operations that are otherwise inaccessible to a normal Android user. On Android, rooting can also facilitate the complete removal and replacement of the device's operating system, usually with a more recent release of its current operating system.
As Android derives from the Linux kernel, rooting an Android device is similar to accessing administrative permissions on Linux or any other Unix-like operating system such as FreeBSD or OS X.
The process of rooting varies widely by device, but usually includes exploiting a security bug(s) in the firmware (i.e. in Android) of the device, and then copying the su binary to a location in the current process's PATH (e.g. /system/xbin/su) and granting it executable permissions with the chmod command. A supervisor application like SuperUser or SuperSU can regulate and log elevated permission requests from other applications. Many guides, tutorials, and automatic processes exist for popular Android devices facilitating a fast and easy rooting process.
For example, shortly after the HTC Dream was released, it was quickly discovered that anything typed using the keyboard was being interpreted as a command in a privileged (root) shell. Although Google quickly released a patch to fix this, a signed image of the old firmware leaked, which gave users the ability to downgrade and use the original exploit to gain root access. Once an exploit is discovered, a custom recovery image that skips the digital signature check of a firmware update package can be flashed. In turn, using the custom recovery, a modified firmware update can be installed that typically includes the utilities (for example the Superuser app) needed to run apps as root.
The Google-branded Android phones, the Nexus One, Nexus S, Galaxy Nexus and Nexus 4, as well as their tablet counterparts, the Nexus 7 and Nexus 10, can be boot-loader unlocked by simply connecting the device to a computer while in boot-loader mode and running the Fastboot program with the command "fastboot oem unlock".[9] After accepting a warning, the boot-loader is unlocked, so a new system image can be written directly to flash without the need for an exploit.
Recently, Motorola, LG Electronics and HTC added security features to their devices at the hardware level in an attempt to prevent users from rooting retail Android devices.[citation needed] For instance, the Motorola Droid X has a security boot-loader that puts the phone in "recovery mode" if a user loads unsigned firmware onto the device, and the Samsung Galaxy S II displays a yellow triangle indicator if the device firmware has been modified.
Click to expand...
Click to collapse
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.
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
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.
ADB-Android Debugging Bridge
Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components:
A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
A daemon, which runs as a background process on each emulator or device instance.
You can find the adb tool in <sdk>/platform-tools/.
When you start an adb client, the client first checks whether there is an adb server process already running. If there isn't, it starts the server process. When the server starts, it binds to local TCP port 5037 and listens for commands sent from adb clients—all adb clients use port 5037 to communicate with the adb server.
Click to expand...
Click to collapse
The server then sets up connections to all running emulator/device instances. It locates emulator/device instances by scanning odd-numbered ports in the range 5555 to 5585, the range used by emulators/devices. Where the server finds an adb daemon, it sets up a connection to that port. Note that each emulator/device instance acquires a pair of sequential ports — an even-numbered port for console connections and an odd-numbered port for adb connections. For example:
Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557
and so on...
As shown, the emulator instance connected to adb on port 5555 is the same as the instance whose console listens on port 5554.
Once the server has set up connections to all emulator instances, you can use adb commands to access those instances. Because the server manages connections to emulator/device instances and handles commands from multiple adb clients, you can control any emulator/device instance from any client (or from a script).
Note: When you connect a device running Android 4.2.2 or higher to your computer, the system shows a dialog asking whether to accept an RSA key that allows debugging through this computer. This security mechanism protects user devices because it ensures that USB debugging and other adb commands cannot be executed unless you're able to unlock the device and acknowledge the dialog. This requires that you have adb version 1.0.31 (available with SDK Platform-tools r16.0.1 and higher) in order to debug on a device running Android 4.2.2 or higher.
Syntax
You can issue adb commands from a command line on your development machine or from a script. The usage is:
adb [-d|-e|-s <serialNumber>] <command>
If there's only one emulator running or only one device connected, the adb command is sent to that device by default. If multiple emulators are running and/or multiple devices are attached, you need to use the -d, -e, or -s option to specify the target device to which the command should be directed.
LOGCAT
The Android logging system provides a mechanism for collecting and viewing system debug output. Logs from various applications and portions of the system are collected in a series of circular buffers, which then can be viewed and filtered by the logcat command. You can use logcat from an ADB shell to view the log messages.
-b <buffer> Loads an alternate log buffer for viewing, such as event or radio. The main buffer is used by default. See Viewing Alternative Log Buffers.
-c Clears (flushes) the entire log and exits.
-d Dumps the log to the screen and exits.
-f <filename> Writes log message output to <filename>. The default is stdout.
-g Prints the size of the specified log buffer and exits.
-n <count> Sets the maximum number of rotated logs to <count>. The default value is 4. Requires the -r option.
-r <kbytes> Rotates the log file every <kbytes> of output. The default value is 16. Requires the -f option.
-s Sets the default filter spec to silent.
-v <format> Sets the output format for log messages. The default is brief format. For a list of supported formats, see Controlling Log Output Format.
awesome thread to learn everything in a quick while
Again.? :good:
But highlight the Status error with big & bold font.
Disturbed™ said:
Again.? :good:
But highlight the Status error with big & bold font.
Click to expand...
Click to collapse
I think he's trying to take over XDA
But just to keep this on topic, great thread for those who are learning and aren't sure what certain things are for.
I guess I'll have to make another thread in this forum just so other RCs don't take all the ideas
SGS2 FAQ | HTC One FAQ
KidCarter93 said:
I think he's trying to take over XDA
But just to keep this on topic, great thread for those who are learning and aren't sure what certain things are for.
I guess I'll have to make another thread in this forum just so other RCs don't take all the ideas
SGS2 FAQ | HTC One FAQ
Click to expand...
Click to collapse
Lolzzz.. Yes buddy. He is something else.
Collecting Informations & useful stuff for all users. May be in near future, he will take over XDA.
It's all your love guys. Sometimes even my guides correct my mistakes!
Started from the bottom
Guys if you like this thread please press the tip us button so that more and more people who are willing to learn about android phone and how they work can get help.
I will be grateful to you all.
Started from the bottom
Very nice write up TechnoCrat :good::good::good:
TEAM MiK
MikROMs Since 3/13/11
Long way to go mate!
Congo! This thread got featured on XDA Portal
http://www.xda-developers.com/android/android-101-how-it-all-fits-together/
Thank you very much. I needed this definition thread. I kinda understand but it'd nice to hear official language that's understandable.
Sent from that FBI van parked down the street.
Thanks for the CWM errors write up and another bookmark.
Tha TechnoCrat said:
i. The kernel.
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
Click to expand...
Click to collapse
What. The. Hell. Are you talking about?
If you mean booting the device's kernel on the PC, unless the device uses an x86 processor, it flat out will not boot, let alone mount the device's system, to display the bootanimation.zip
/snarkieness
Sorry, I had to let that out.
Also, init is called/started after the kernel has started, and generally after it has setup most of the hardware.
so I’ll simply say that DalvikVM is a register-based machine versus true JavaVMs which are stack based.
Click to expand...
Click to collapse
I don't even truly understand that, so could add a little more detail, or remove it?
I'm speaking mostly from my implied knowledge, gained from tinkering with android/linux for a few years.
ADB and Logcat added
Hey, Thanks for the article. Can you talk about root? There is some mis-leading information and I really want to learn about it. Thanks again.
ak700 said:
Hey, Thanks for the article. Can you talk about root? There is some mis-leading information and I really want to learn about it. Thanks again.
Click to expand...
Click to collapse
Okay buddy
Editone! !!
"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"
Bump to update newbies
"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"
★★★★[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