Goodbye Lollipopalooza... Hello Marshmallicious!!

Due to my limited availability, I will now no longer support Lollipopalooza builds

Changelog:

a. Full wipe when coming from another ROM

b. Wipe cache and dalvik-cache when flashing a Marshmallicious update

a. Prerequisites package

b. Marshmallicious ROM package

c. [OPIONAL] GoogleApps package

Root:

Downloads:

Theming:

Help and troubleshooting:

Sources:

Disclaimer

Support this project:

Credits:

This started out as a personal project... a way for me to learn how to develop and custom features for Android. And I decided to share my work with the amazing Android community... something to give back to the community. Back then, this was a ROM called ThunderKat, based on Android 4.4 KitKat. Over time, it evolved into Lollipopalooza, based on Android 5.0. And now, here's Marshmallicious, based on Android 6.0.Now, before you go on ahead, let me be clear about one thing. This is and will remain a minimal AOSP based ROM. It will include a small, but useful set of features... features which add a bit more flare to Android AOSP. Beyond this minimal feature set, this will also include some relevant spit and polish (bug fixes and asset/image updates). As time progressed, so did the quality of the work behind the features this ROM offers. Whenever I look back at a feature I developed before, I look for ways to improved. If you expect a lot of additional features, I recommend using one of the more popular ROMs available like CyanogenMod, SlimRoms, ParanoidAndroid, etc.I develop and maintain this ROM on my own for the most case, occasionally seeking help and porting useful features and fixes that others here in the community have developed. You will see all the relevant references in the cherry-picked commit in my GitHub repositories.Now that I'm done with the fancy introduction, let's get down to business...1. Fixed force close when choosing keyboards in Language & input settings2. Enabled doze/ambient mode auto power saving modes ( More details 3. Removed SVELTE (Nexus 9 LTE) init configs from Nexus 9 Wifi init configs4. Disabled bug report service (which is triggered by holding down volume down, volume up and power)5. Updated SELinux policies for experimental systemless root using open source Superuser (instruction below)6. Fixed experimental systemless root for devices with encrypted userdata1. Android Marshmallow 6.0.0_r2 (MRA58N) base [Includes November 2015 security patches by Google]2. Movable on-screen navigation bar buttons (centre, left or right) [Settings > Device > Display]3. Cursor control within text boxes using the volume rocker [Settings > Personal > Language & input]4. Long-press of back button to kill foreground app [Settings > Personal > Language & input]5. Native Android Marshmallow recents dismiss/clear all6. User-defined custom device hostname [Settings > Wireless & networks > More]7. Displays apps installing and optimising storage progress on first boot8. Uses Google pre-built WebView if it is installed. Falls back to AOSP WebView9. SystemUI Tuner enabled by default10. Dessert Cake dream enabled and set as default doze dream11. Enhanced Location QuickSettings tile (toggles between the different location mode [Off > Sensors Only > Battery Saving > High Accuracy])12. Long-press action for all QuickSettings tiles (opens relevant Settings section)13. Enhanced power menu [Power Off, Reboot, Aeroplane Mode, Users & Sound Toggle]14. Advanced reboot [Reboot, Reboot to recovery, Reboot to bootloader] (only available for primary user when device is unlocked)15. Default required permissions set for Google applications to allow GoogleApps packs16. F2FS support for the cache partition in addition to the userdata partition.17. Additional filesystems supported (with vold auto-mount capabilities not available yet) [exFAT and NTFS (NTFS-3G)]18. Forced encryption of userdata partition is disabled19. DM-Verity (key-based partition verification) is disabled system-wide20. Full-screen on-screen keyboard in landscape mode is disabled21. Sysinit supported (init.d scripts)22. @ Captain_Throwback 's BeyondStock kernel 2.0.0 included [support NTFS, exFAT and fast-charge]23. Several assets and images updated to Material-styled versions24. Ambient (Doze) mode enabled along with burn-in protection25. A lot of unneeded debug logging disabled26. Default wallpaper replaced with Marshmallow stock default wallpaper and Marshmallow stock bootanimation added27. Includes bionic busybox (credit CyanogenMod)28. Increased number of status bar notification icons from 5 to 829. Miscellaneous bug-fixes and tweaks included (for more details, check the GitHub commits)30. Full GoogleApps pack (with ARM64 320DPI apps where applicable) with the latest updates1. Download the Marshmallicious ROM package and the Prerequisites package2. [OPTIONAL] Download the GoogleApps package3. Reboot into recovery [A custom recovery like TWRP is required]4. Wipe as required5. Flash the packages in the following order6. Reboot and let the device boot up and remember that the first boot will take a while since this is a de-odex ROMI do not support SuperSU because it is closed-source and, hence, cannot be audited. Anything granting low-level privileges to apps and process need to be open-source and auditable. But I will not blankly turn down support requests involving SuperSU if you have chosen to root your ROM using SuperSU.That said, I am closely following the development of systemless open-source Superuser by @ phhusson as well as the SELinux policy changes by @ doitright . This is still experimental and may not support all root apps yet.Because this is currently experimental, this ROM is not pre-rooted. But I have provided a separate ExperimentalRoot package. This package contains a modified boot image with the su binary, init changes and SELinux policy changes and has been built from source. The su binary was built with the latest changes in @ phhusson 's Superuser GitHub repository. The init and SELinux policy changes are a slightly varied version of the patch created by @ doitright . Also included in the zip is the Superuser apk built with the latest changes in @ phhusson 's Superuser GitHub repository.I have branches in my GitHub repository which have the SELinux policy and init changes required for systemless Superuser which include all doitright's changes as well as my modifications.1. Download the ExperimentalRoot package provided above (make sure it matches the ROM release date)2. Flash the boot image included in the ExperimentalRoot package using fastboot [fastboot flash boot boot.img]3. Install the Superuser apk included in the ExperimentalRoot package as a regular app Marshmallicious-Nexus9-Wifi-20151107.zip [Marshmallicious ROM] GoogleAppsPack-6.x-ARM64-320DPI-20151107.zip [Full Google Apps Pack] Prerequisites-Marshmallicious-Nexus9-Wifi-MRA58N.zip [Prerequisites (bootloader and vendor images)] ExperimentalRoot-Marshmallicious-Nexus9-Wifi-20151107.zip [Experimental systemless open-source Superuser] Marshmallicious-Nexus9-Wifi-20151107.zip [Marshmallicious ROM] GoogleAppsPack-6.x-ARM64-320DPI-20151107.zip [Full Google Apps Pack] Prerequisites-Marshmallicious-Nexus9-Wifi-MRA58N.zip [Prerequisites (bootloader and vendor images)] ExperimentalRoot-Marshmallicious-Nexus9-Wifi-20151107.zip [Experimental systemless open-source Superuser]This ROM support RRO/Layers themes. But please be aware that not all RRO/Layers themes support Android Marshmallow yet. If you encounter force closes after installing a theme, reboot into recovery mode and delete /vendor/overlay.1. Join the BitSyko Google+ Community for the latest information and themes2. Download the Layers Manager app to install/uninstall/preview RRO/Layers themes3. Download the Layers Showcase app to browse available RRO/Layers themes4. Visit this XDA thread for a comprehensive list of RRO/Layers themes1. Ask for help if you need, but make sure you do your research first.2. Be patient. It could take a few minutes to flash the ROM.3. If you flashed a kernel which replaced the SELinux policy file, you may encounter errors and issues. To recover, you will need to reflash the ROM boot image.4. If you get "failed to mount /dev/block/platform/sdhci-tegra.3/by-name/APP", unmount the system partition and try again5. If you flashed a kernel with SELinux disabled like the one provided by @ USBhost on a previous build, make sure you flash that kernel after flashing the update (before you reboot), or you will get a bootloop and will have to perform a recursive restorecon on the /data partition to restore the SELinux contexts.6. If you have a folder created in TWRP recovery mode which you cannot access when you boot up the ROM, you will need to perform a recursive restorecon on that folder restore the SELinux contexts.7. Be ready to provide a clear description of your issues and please provide logcats, dmesg logs and kmesg logs whenever possible.Marshmallows are always delicious... but be careful!!! Make sure you know your limits!!! If you don't know what you are doing, the marshmallows provided here could be life-threatening and render your device inedible. Every marshmallow here has undergone extensive scrutiny, but there is always a chance that something slipped through the cracks since baking is more an art than a science. So if you use the marshmallows here, don't hold the chef responsible for baking these goodies (me!)If you like my work, buy me a beer so that I can pass time while my laptop churns out builds...Google Wallet (Send Money to craigacgomez[at]gmail[dot]com)Google, NVidia, ARM, Chainfire, 0xD34D, CyanogenMod team, PureAOSP team, Chroma team, BitSyko team, AndroidFileHost, BasketBuild, phhusson, doitright, XDA (any probably some more I can't remember)