• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[BitSyko] Official Layers and BitSyko Apps [RRO]

Search This thread

sykopompos

Recognized Developer
Jun 26, 2008
15,322
29,134
flithydelphia
BitSyko is a group project mainly consisting of 3 Apps. Layers, Showcase and RomMate with a view to simplify things that are complicated and give an average user more control over his/her rooted lollipop and Marshmallow device.

Let's get the to the main app and straight to the point.


What is Layers?


What is Layers?

Layers is a extension of runtime resource overlay.
RRO is a framework created by sony for use as a way for them to create xperia themes but also for internal quick prototyping.

Why is root needed?

We use root to do this to provide a way for the android community can use regardless if they are on aosp or touchwiz or any other skin to provide versatility.

RRO was created for OEM use by making changes for them to create theme ecosystem that they could control, by using a location intended for pre-themed by OEMS, we are able to tap into the use of this system.

Why were changes needed on lollipop?

Our ability to theme resources were quite limited in lollipop since a lot of android linked back to the frameworks which we could not overlay with RRO so we had to make changes in AOSP source to provide a way to theme more.

Thankfully Google saw this inability also and has made changes in M so there will need to be less that needs to be modified for theming and better support natively.

By the nature of how RRO works, most resources are actually protected from malicious changes by RRO

Why does the community say Layers or RRO or RRO/Layers?

When we started the project, we didn't have a name for this system and we just called it how we were using it and it stuck.

RRO is the basic overlaying of resources
Layers is what can't be done with just RRO without resource changes

So what is a Layer?

A layer is what we call our themes. A Layers theme is a collection of overlays

Where are layers stored to be loaded?

Since RRO was developed for OEM use, we use a location of system/vendor/overlay to place our theme apks.

The package manager sees these apk at boots and verifies them and then uses a tool called idmap to link it into the system resource table

Is layers a theme engine

No, there is no engine in place with Layers, it uses native android code to work while theme engine was just naming by T-Mobile to market their theming system back on gingerbread phones.

Cyanogenmod has stuck with that naming and are way closer to it then what Layers is

So how does it work?

What a overlay does is that it looks for a string in the the resources and replaces it during loading into the system.
For a way better and more in depth explanation see sony's blog post about how rro works

http://developer.sonymobile.com/201...ce-overlay-framework-to-android-code-example/

Why is a reboot needed?

Since RRO hooks into the resource look up framework of android, the system only looks at these resources upon intial start of a process, service or app so a restart of it is needed which is why a reboot of something that changes the framework or system ui needs to be retarted to remove or load a new resource.

Is RRO insecure

When sony says this in their blog, it is greatly exaggerated.

Just like how Layers had to make changes in the source just to move the resources to locations that can be overlaid with RRO, the actual limits of overlaying a running system come into play. Not that many files can actually be overlaid because they make calls back to other resources that are not present in a overlay.

Trying to overlay these files will end up in a bootloop upon booting because it will not be able to link the resource.

Rumours of this insecurity have been greatly exaggerated by others yet never showed any actual proof of this happening in the actual OS or apps out there.

In Sony's case, their example app was coded in exactly a way to show off how it could work but not how it does in existing apps out there in practice

So reading sony's blog says that it is more then theming?

It absolutely is just for more then theming and the usage of just for theming means that it has been left untapped for other uses.

Theming is just the large market demand in the android community so that is what the primary focus has been.

I was planning to use it for different purpose before it was realized for it's use for theming.

There were also limits everywhere that I tried to change with RRO that would require lot of changes in the source code to do much beyond theming.

Why can't cmte and Layers co-exist?

While they both use RRO as the base of how they theme, CM takes the code of RRO and repurposes it for the cmte for system apps creating a conflict of use.

Cmte works towards providing a whole complete package with everything running through the asset manager.

Layers sticks as close to the stock RRO and only changes what needs to be changed to provide a function yet still be used in stock android or other skins with minimal modifications to just resources

How long as RRO existed?

RRO has been in android* and open source since the gingerbread days.
It was a fancy symlinking system back in those days and evolved over the next few years to what we use today for better performance.

The ability of being able to overlay* apps outside of the framework and multiple apps has existed since 2012 in unmerged commits on the aosp gerrit.

So why did nobody think of using this before for theming?

Cm realized it and rebased to it (did not realize this before because of giant squashed commits) but beyond sony and recently a few other oems, nobody even noticed it before or saw potential in it.

Why is there no boot animations, ringtones, wallpapers, fonts with rro like cmte?

These are going to be in a separate app called RomMate that is in current development because they do not use RRO as their method of use.

Why is there no icon packs for layers?

This is in current development

What is the future for layers?

We are currently at the beginning of overhauling our system to provide maximum capapbility with all oem roms for marshmallow.

We are also working on providing a new way to provide large modularity in themes to provide a plethora of options for the user while making it easier on the themer/designer.

Why are you writing this now?

Tired of a outdated post with inaccurate info by me because I did not dive deep enough into cmte's code being posted everywhere when someone asks what layers is plus so people can link to it.


How do i get started with Layers?
First you need to be sure if your ROM supports Layers, It does? Okay.

1) You can join the BitSyko Development Community.

3) Download the https://play.google.com/store/apps/details?id=com.lovejoy777.rroandlayersmanager Layers app on to your device.

4) Open the Layers app so it can initialize and create the required folders.

5) Check out and find a layer you want on the community or use the Showcase app to find new themes

Fixing bootloops caused by a incompatible/bad layer from TWRP.


Step 1: Go to Advanced.

Step 2: Go to file manager.

Step 3: Go to /system/vendor/overlay/ and remove the bad overlay apk.

GitHub :- https://github.com/BitSyko

XDA:DevDB Information
BitSyko, App for all devices (see above for details)

Contributors
sykopompos, bitstra, CallMeAldy, @bgill55

Version Information
Status: Beta
Beta Release Date: 2015-01-24

Created 2015-01-25
Last Updated 2015-08-22

#WhiteUiMustDie
 
Last edited:

sykopompos

Recognized Developer
Jun 26, 2008
15,322
29,134
flithydelphia
Reserved

Developers

Basically there are two types of supports, you'll have to include in your ROMS on lollipop to have full layers support working without any issues.

RRO basic and layers type 2.1 for lollipop and type 3 for marshmallow

RRO basic is what you can do with stock while layers is the extension of that

Rom commits from a aosp base.

https://github.com/The-Ancile-Project/platform_manifest/blob/frank-mutant-test-1/README.md

Commit not added to that list yet
https://github.com/MinimalOS/androi...mmit/8681610df588647bdfa464b316895d33f78c3f9e


Huge thanks to Sony and Google for RRO
http://developer.sonymobile.com/201...ce-overlay-framework-to-android-code-example/
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 465
    BitSyko is a group project mainly consisting of 3 Apps. Layers, Showcase and RomMate with a view to simplify things that are complicated and give an average user more control over his/her rooted lollipop and Marshmallow device.

    Let's get the to the main app and straight to the point.


    What is Layers?


    What is Layers?

    Layers is a extension of runtime resource overlay.
    RRO is a framework created by sony for use as a way for them to create xperia themes but also for internal quick prototyping.

    Why is root needed?

    We use root to do this to provide a way for the android community can use regardless if they are on aosp or touchwiz or any other skin to provide versatility.

    RRO was created for OEM use by making changes for them to create theme ecosystem that they could control, by using a location intended for pre-themed by OEMS, we are able to tap into the use of this system.

    Why were changes needed on lollipop?

    Our ability to theme resources were quite limited in lollipop since a lot of android linked back to the frameworks which we could not overlay with RRO so we had to make changes in AOSP source to provide a way to theme more.

    Thankfully Google saw this inability also and has made changes in M so there will need to be less that needs to be modified for theming and better support natively.

    By the nature of how RRO works, most resources are actually protected from malicious changes by RRO

    Why does the community say Layers or RRO or RRO/Layers?

    When we started the project, we didn't have a name for this system and we just called it how we were using it and it stuck.

    RRO is the basic overlaying of resources
    Layers is what can't be done with just RRO without resource changes

    So what is a Layer?

    A layer is what we call our themes. A Layers theme is a collection of overlays

    Where are layers stored to be loaded?

    Since RRO was developed for OEM use, we use a location of system/vendor/overlay to place our theme apks.

    The package manager sees these apk at boots and verifies them and then uses a tool called idmap to link it into the system resource table

    Is layers a theme engine

    No, there is no engine in place with Layers, it uses native android code to work while theme engine was just naming by T-Mobile to market their theming system back on gingerbread phones.

    Cyanogenmod has stuck with that naming and are way closer to it then what Layers is

    So how does it work?

    What a overlay does is that it looks for a string in the the resources and replaces it during loading into the system.
    For a way better and more in depth explanation see sony's blog post about how rro works

    http://developer.sonymobile.com/201...ce-overlay-framework-to-android-code-example/

    Why is a reboot needed?

    Since RRO hooks into the resource look up framework of android, the system only looks at these resources upon intial start of a process, service or app so a restart of it is needed which is why a reboot of something that changes the framework or system ui needs to be retarted to remove or load a new resource.

    Is RRO insecure

    When sony says this in their blog, it is greatly exaggerated.

    Just like how Layers had to make changes in the source just to move the resources to locations that can be overlaid with RRO, the actual limits of overlaying a running system come into play. Not that many files can actually be overlaid because they make calls back to other resources that are not present in a overlay.

    Trying to overlay these files will end up in a bootloop upon booting because it will not be able to link the resource.

    Rumours of this insecurity have been greatly exaggerated by others yet never showed any actual proof of this happening in the actual OS or apps out there.

    In Sony's case, their example app was coded in exactly a way to show off how it could work but not how it does in existing apps out there in practice

    So reading sony's blog says that it is more then theming?

    It absolutely is just for more then theming and the usage of just for theming means that it has been left untapped for other uses.

    Theming is just the large market demand in the android community so that is what the primary focus has been.

    I was planning to use it for different purpose before it was realized for it's use for theming.

    There were also limits everywhere that I tried to change with RRO that would require lot of changes in the source code to do much beyond theming.

    Why can't cmte and Layers co-exist?

    While they both use RRO as the base of how they theme, CM takes the code of RRO and repurposes it for the cmte for system apps creating a conflict of use.

    Cmte works towards providing a whole complete package with everything running through the asset manager.

    Layers sticks as close to the stock RRO and only changes what needs to be changed to provide a function yet still be used in stock android or other skins with minimal modifications to just resources

    How long as RRO existed?

    RRO has been in android* and open source since the gingerbread days.
    It was a fancy symlinking system back in those days and evolved over the next few years to what we use today for better performance.

    The ability of being able to overlay* apps outside of the framework and multiple apps has existed since 2012 in unmerged commits on the aosp gerrit.

    So why did nobody think of using this before for theming?

    Cm realized it and rebased to it (did not realize this before because of giant squashed commits) but beyond sony and recently a few other oems, nobody even noticed it before or saw potential in it.

    Why is there no boot animations, ringtones, wallpapers, fonts with rro like cmte?

    These are going to be in a separate app called RomMate that is in current development because they do not use RRO as their method of use.

    Why is there no icon packs for layers?

    This is in current development

    What is the future for layers?

    We are currently at the beginning of overhauling our system to provide maximum capapbility with all oem roms for marshmallow.

    We are also working on providing a new way to provide large modularity in themes to provide a plethora of options for the user while making it easier on the themer/designer.

    Why are you writing this now?

    Tired of a outdated post with inaccurate info by me because I did not dive deep enough into cmte's code being posted everywhere when someone asks what layers is plus so people can link to it.


    How do i get started with Layers?
    First you need to be sure if your ROM supports Layers, It does? Okay.

    1) You can join the BitSyko Development Community.

    3) Download the https://play.google.com/store/apps/details?id=com.lovejoy777.rroandlayersmanager Layers app on to your device.

    4) Open the Layers app so it can initialize and create the required folders.

    5) Check out and find a layer you want on the community or use the Showcase app to find new themes

    Fixing bootloops caused by a incompatible/bad layer from TWRP.


    Step 1: Go to Advanced.

    Step 2: Go to file manager.

    Step 3: Go to /system/vendor/overlay/ and remove the bad overlay apk.

    GitHub :- https://github.com/BitSyko

    XDA:DevDB Information
    BitSyko, App for all devices (see above for details)

    Contributors
    sykopompos, bitstra, CallMeAldy, @bgill55

    Version Information
    Status: Beta
    Beta Release Date: 2015-01-24

    Created 2015-01-25
    Last Updated 2015-08-22

    #WhiteUiMustDie
    130
    Reserved

    Developers

    Basically there are two types of supports, you'll have to include in your ROMS on lollipop to have full layers support working without any issues.

    RRO basic and layers type 2.1 for lollipop and type 3 for marshmallow

    RRO basic is what you can do with stock while layers is the extension of that

    Rom commits from a aosp base.

    https://github.com/The-Ancile-Project/platform_manifest/blob/frank-mutant-test-1/README.md

    Commit not added to that list yet
    https://github.com/MinimalOS/androi...mmit/8681610df588647bdfa464b316895d33f78c3f9e


    Huge thanks to Sony and Google for RRO
    http://developer.sonymobile.com/201...ce-overlay-framework-to-android-code-example/