[Galaxy S 5 Android Development (Snapdragon)] xXx:
Best Practise Guide for Flash addicted users

Best Practise Guide for "Flash addicted users"​

This guide is targeted to flash addicted and rooted users having a custom recovery in place like CWM, TWRP, Phil's etc.

What’s the story?​

I know there are many other flash addicted users out there on xda like me. We flash different kind of Roms to find the best Rom for our personal taste with focus on speed, battery life, or lightness, or design, or behavior, or special tweaks, or just a Rom which provides several of these characteristics in one single Rom. :D

With this guide I want to give you an understanding how things basically work together and what’s the best strategy to save time and effort flashing new Rom versions, or just trying a different rom for a certain timeframe.

Sorry for the long explanations following now, but I believe this will let you understand the basics, the work mechanism and logics concerning this topic.

The challenge on this is, that in most cases you do a Nandroid backup, then full wipe everything and then do a clean rom flash. This process is mandatory anyway, but then you need to setup and configure everything again, which is quite time consuming.

Rumour – Apps located in the Rom are faster!?​

Your Smartphone is using one single chip for internal storage. This storage is splitted into several partitions like system, data, your internal sdcard etc. On one hand, this explains why the internal sdcard don’t provide 16GB if Samsung advertise 16GB. On the other hand, this leads to the fact, that all these partitions have exactly the same speed. There is persistent rumour that apps which are located in the Rom (system) partition will be executed faster than the apps located on the data partition where all apps from Google Play Store are located. Due to the fact it’s the same single storage chip, these rumours are definitely proven wrong. The learning from this is that it doesn’t matter whether apps are located on the system or the data partition. That’s an important learning for our strategy later in this guide.

Understanding how things gear together​

Other than MS Windows where apps and related data are completely distributed in many folder locations and the registry, Android organizes this extremely structured which provides us with the ability to separately manage system, apps and related data which are located in the System and the Data partition.

So when installing a rom (clean or update) it is flashed to the system partition only. The data partition is basically not touched during the Rom flashing process. When you reboot after a Rom flash all related data like app settings, cache etc. will be build and written to the data partition. From that point on everything you do, like setting up all your accounts at Google, Samsung, Dropbox, Email Accounts, all system settings, all kind of preference setting and all App installs including the related data and settings will be stored to the data partition.

What does these facts help us for a most efficient flashing experience?​

Very easy, ones we have completed a full setup with all preferred apps and settings everything is located on the data partition now. Running a Nandroid Backup from the data (or all partitions) will provide you with the ability to always come back to the exact same setup, independent from the TW Rom you decided for. It even doesn’t matter if the Rom is odexed or deodexed.

Flashing a new rom, you do an advanced wipe of the system, dalvik cache and cache. Then you flash your selected Rom, restart and here you go! You made a clean install of the new Rom and everything is still as you configured it before, except you are working with a different Rom base now.

You don’t have to completely setup and configure everything all over again from scratch if you perform a full Rom wipe.

But wait a minute, I’m missing apps now!​

This strategy don’t work for all cases. For example if you did the complete setup and configuration of your device choosing a full blown Rom and now try a different Rom which doesn’t include some of the apps, these apps are not available anymore now.

Here is how to avoid this. The best you can do is to make sure that all apps you are usually using are not in the Rom but in your data partition. Of course this won’t work for all apps as some are only available inside the Rom, but most apps can usually be obtained on Google Play Store or even custom installed.

So the best strategy would be to choose a Rom which is as light as possible (debloated) and only provide the base system and all services and apps basically needed. Everything else will be in our data partition anyway and will be constantly maintained.

Now, how to find a Rom which is fitting to this strategy?​

As you might want to use a Rom which will give you certain features like a customized system ui, special themes, unique animations, speed improvements, battery tweaks or whatever attracts you most. Unfortunately, the Rom you found is bloated with apps you definitely don’t want to have as they eat performance and battery and clutter your phone.

This is what the Barebone Cleaner can help you with. After flashing the desired Rom you run the Barebone Cleaner and clean the Rom (system partition) down to a level that only apps are remaining which you don’t already maintain in your data partition.

This way you will always have the latest and greatest Rom and don’t have to setup and reinstall everything from the beginning. I’m following this strategy since Lollipop appeared. So since end of last year I upgraded to all new firmware releases from Samsung and evaluated different kind of TW Roms. Still my Phone is working like a charm and I’m still on the same data partition.

For the Step by Step Guide for some common Use Case Scenarios please refer to the following post

If you want to learn more about the BareBone Cleaner go back to Post #1

​