(All links that are color coded are hyperlinks!)
Android is what we use and love on daily basis. Android has been universally loved by its user base because it doesn't require excessive amounts of modification in order to get styles or themes running, unlike with iOS where it requires a jailbroken device that is capable of running code that the software does not support. With that being noted, Google or Android has been very nice and lenient to what software just works off the device that doesn't need root. While there is some more in-depth theming processes that do require but for a person who doesn't need root, I'm pretty sure they'll be happy for what they can customize and such.
What is a Style and Theme you may ask? According to the Android Developer Page:
Quote:Is a collection of properties that specify the look and format for a View or window. A style can specify properties such as height, padding, font color, font size, background color, and much more. A style is defined in an XML resource that is separate from the XML that specifies the layout.Theme
Quote:Is a style applied to an entire Activity or application, rather than an individual View (as in the example above). When a style is applied as a theme, every View in the Activity or application will apply each style property that it supports. For example, you can apply the same CodeFont style as a theme for an Activity and then all text inside that Activity will have green monospace font.
You may have heard of the term 'root' or 'rooting' since you have owned your Android smartphone. You may ask yourself some questions like
- What is root?
- How do I go about rooting my device?
- What can I achieve if I root my device?
How would you go about rooting your Android device? It's pretty simple. You basically need the following information about your device:
- The version of Android that you're running.
- The model of your phone. (An example would be my phone [SGH-i747])
(Note: You need to have common sense when rooting your device. If a site has an exploit that isn't posted on XDA, it may be a bit to good to be true. Take your rule of thumb when looking at roots for newer devices. If you are unsure, simply use the XDA Developers forum which will usually give you a good response.)
A Recovery is a lightweight run-time environment separate from the Android operating system. The sole purpose of recovery is to do the following:
- Apply software updates
- To run another external tool/software from the Micro SD card
- Erase the user data if he or she wants to flash another ROM in a clean manner. (The opposite of this is called 'Dirty Flash' which is just clearing the dalvik cache and then flashing it over the older firmware.)
If you want to go a bit more technical into what the recovery actually is; the operating system for the recovery is stored in the disk partition. Again which is separate from the Android partition which contains your kernel and system. The kernel that the recovery runs is not even Android related. If the Android kernel is broke, you are still able to access the recovery because it is on its own code. Plus it is separate from the system as we previously stated.
It is possible that your bootloader gets corrupt and it will not be possible to boot into the recovery. Once your recovery is broke, you'll need to do some hardware tweaking which is commonly known as a JTAG. (For certain devices the process of using a JTAG is different. You may want to research about your device on the internet before attempting to solder your device.)
Going forward, you have a few recoveries available for you to use. But you'll need to look if your device supports that recovery, along with if the ROM supports that recovery. To be safe you should just use either TWRP or CWM. But you do have a few alternative options:
Flashing is a term that you use to install or upgrade your kernel, ROM, GApps, etc. Flashing can be used in several different methods.
Note: You must have a custom recovery.You will also need a custom ROM that is built specifically for your device.
Note: Some phones do not have SD card capabilities. It's recommended to use a SD card but if your phone doesn't have a slot, please keep backups on your PC. - Internal storage will work fine though if you do not have a SD card. Just forewarn yourself that you need to have backups in a safe location.
- Obtain a ROM of your choice, many can be found in your devices development forum on XDA Forums or a alternate android development site.
- Once you have downloaded the ROM File, mount your phones SD card and and copy over the .zip file.
- Power off the device and then boot up to recovery, it is different per device. If you are unsure how to boot up to your Android device's recovery menu then look it up in the forums or other tutorials on your device.
- In your phone's custom recovery bootloader, locate the menu options which allow you to wipe the phone. Whenever changing roms it is a good idea to make a Nandroid or BART backup first, then wipe Data/Factory and Dalvik-Cache before flashing the new rom.
- Once your phone has been wiped go back up to the root of the menu and select 'Flash Zip from SD Card' the text may be different per Recovery.
- Locate the ROM .Zip file you wish to flash.
- Confirm the flash by following the on-screen instructions (ie: pressing the trackball, pressing the call button, etc.)
- If no errors arise during the flashing process then the ROM flash was successful, Reboot the device.
- Connect your Android device to your computer. Most ROM Upgrade Utilities (RUUs) are .exe files which will only run in Microsoft Windows natively or in Linux/Mac OS X via Wine
- Download the RUU for your device, some can be found here at PCD Phones
- Run the RUU with your phone plugged in to your computer via its USB cable.
- Follow the RUU's instructions for flashing.
- Unless errors arise your device is now flashed.
App Installs/ROM Feature Installs via Flashing
Some ROMs have added features that are available to flash.
- To Flash the App/Rom Feature you must first download the .zip file.
- Mount your devices SD card and copy the .zip file over.
- Boot up to your devices custom recovery.
- Wipe your Dalvik-Cache in the Wipe Menu. And then go back to the recovery's main menu.
- This step may vary per device, there should be an option that says "Flash .zip from SD Card", select it.
- Select the .zip file you wish to flash.
- Confirm flashing of .zip file.
- Wait for the file to flash; and if successful, reboot.
(All links that are color coded are hyperlinks!)
What's the whole point of getting a custom ROM on my new phone? Well, there's a few options why you would want to get a custom ROM on your phone:
- A more vanilla experience with Android
- To remove bloat from the stock ROM that you are using
- And much more!
The reasoning why you may have TouchWiz on your phone would be because Android allows OEMs (HTC, Samsung, LG, etc.) to personalize their phones to whatever they please. With them personalizing it, they also lock your user experience and it would require a community to develop a custom ROM, bootloader hack, root, etc. If you want to have a very pure experience that is freshly baked from Google Android's AOSP, you may want to look more into a custom ROM for your device. People who develop from the Android AOSP make the drivers and everything work from the Android AOSP. So you may actually get a better experience from an older device running a custom ROM unlike from your bloated stock Android device.
Before installing a custom ROM you'll need to administrate root access to your phone. Depending on your device processes are different. After root access has been enabled onto your device, you'll want to install a custom recovery. In short, a custom recovery is almost like a small operating system that lets you install or manage custom Android operating systems. The most common custom recoveries would be ClockWorkMod and Team Win Recovery Project) Note though that this is very specific for every Android device. To learn more about ROMs, you may click on the following colored links below and learn more.
(You can also find more information about your devices and the ROMs that are capable on running your device by going to the XDAdevelopers forum.)
Xposed is framework that allows you to customize your ROM, without compiling and decompiling any APK's, playing around with the root of the phone or flashing anything through the recovery. It can be installed through downloading the latest APK from their website (link). As with all processes that involve modifying anything in the base directory of Android, you will need to root your phone, will the information to do so is provided in the first post. Xposed, as itself, is only a framework, and so you must use the repository (or download from external sources) located within Xposed to download, install, and customize various parts of the ROM.
- Root your phone (Varies from phone to phone)
- Download latest Xposed Installer (link below)
- If downloaded Xposed on your computer, move the APK to your phone through whatever means is easiest
- Make sure "Unknown Sources" is allowed on your phone, so that you may install APK's
- Proceed with installing the application
- Open Xposed Installer from the App Drawer, select the Framework meny, and select "Install/Update"
- Reboot phone
- IMPORTANT! Before installing Modules, make sure to Nandroid backup your phone (tutorial here). Do this every time, unless you are 100% sure that the module will work without fault on your device
- To inststall Modules (be careful to download the right one, varies for each device), select "Download" inside the Xposed Installer and select which one, scroll to the bottom, and select download/install
- After each install, you must enable the Module by selecting it in the "Modules" tab
- After every acvivation/deactivation of a module, it is recommened to reboot your phone
Pre-commercial release versions (2007–2008)
- Android Alpha - (November 2007)
- Android Beta - (November 5 2007)
- November 6 2007: m3-rc22a
- December 14 2007: m3-rc37a
- February 13 2008: m5-rc14
- March 3 2008: m5-rc15
- August 18 2008: 0.9
- September 23 2008: 1.0-r1
- Android 1.0 (September 23 2008)
- Android 1.1 (February 9 2009)
- Android 1.5 Cupcake (April 30 2009)
- Android 1.6 Donut (September 15 2009)
- Android 2.0 Eclair (October 26 2009)
- Android 2.0.1 Eclair (December 3 2009)
- Android 2.1 Eclair (January 12 2010)
- Android 2.2–2.2.3 Froyo (2010 - 2011)
- Android 2.2 (May 20 2010)
- Android 2.2.1 (January 18 2011)
- Android 2.2.2 (January 22 2011)
- Android 2.2.3 (November 21 2011)
- Android 2.3–2.3.2 Gingerbread (2010 - 2011)
- Android 2.3 (December 6 2010)
- Android 2.3.1 (December 2010)
- Android 2.3.2 (January 2011)
- Android 2.3.3–2.3.7 Gingerbread (2011)
- 2.3.3 (February 9 2011)
2.3.4 (April 28 2011)
2.3.5 (July 25 2011)
2.3.6 (September 2 2011)
2.3.7 (September 21 2011)
- 2.3.3 (February 9 2011)
- Android 3.0 Honeycomb (February 22 2011)
- Android 3.1 Honeycomb (May 10 2011)
- Android 3.2 Honeycomb (2011 - 2012)
- Android 3.2 (July 15 2011)
- Android 3.2.1 (September 20 2011)
- Android 3.2.2 (August 30 2011)
- Android 3.2.3 (blank)
- Android 3.2.4 (December 2011)
- Android 3.2.5 (January 2012)
- Android 3.2.6 (February 2012)
- Android 4.0–4.0.2 Ice Cream Sandwich (2011)
- Android 4.0 (October 19 2011)
- Android 4.0.1 (October 21 2011)
- Android 4.0.2 (November 28 2011)
- Android 4.0.3–4.0.4 Ice Cream Sandwich (2011 - 2012)
- Android 4.0.3 (December 16 2011)
- Android 4.0.4 (March 29 2012)
- Android 4.1 Jelly Bean (2012)
- Android 4.1 (July 9 2012)
- Android 4.1.1 (July 23 2012)
- Android 4.1.2 (October 9 2011)
- Android 4.2 Jelly Bean (2012 - 2013)
- Android 4.2 (November 13 2012)
- Android 4.2.1 (November 27 2012)
- Android 4.2.2 (February 11 2013)
- Android 4.3 Jelly Bean (2013)
- Android 4.3 (July 24 2013)
- Android4.3.1 (October 3 2013)
- Android 4.4 KitKat (2013)
- Android 4.4 (October 31 2013)
- Android 4.4.1 (December 5 2013)