> For the complete documentation index, see [llms.txt](https://notes.tejpratapsingh.com/_/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notes.tejpratapsingh.com/_/android-tips/theming/theming/rro/rro-permission.md).

# RRO Permission

```xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.rroapp">

    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />

    <!-- ... rest of your manifest ... -->

</manifest>
```

RRO is a system level application and as such does not require any special permission.

1. This permission allows an app to change the device's configuration, which includes applying overlays.

```
android.permission.CHANGE_CONFIGURATION
```

2. This is needed if you're applying overlays across different user profiles.

```
android.permission.INTERACT_ACROSS_USERS
```

3. System or Privileged App Status: While not a permission per se, RROs typically need to be:
   * Installed as system apps (in /system/app or /system/priv-app)
   * Or, signed with the platform certificate

***

Key Differences from Fabricated RROs:

* RROs are typically easier to create and manage as they are packaged as regular APKs.
* They don't require the `CHANGE_OVERLAY_PACKAGES` permission that Fabricated RROs need.
* RROs can sometimes be installed by users (on some custom ROMs or rooted devices), whereas Fabricated RROs are strictly system-level.

Important Notes:

1. Regular third-party apps from the Play Store generally cannot create or manage RROs due to these system-level requirements.
2. On many stock Android devices, only pre-installed RROs or those signed with the platform certificate can be enabled.
3. Some custom ROMs or rooted devices might allow user-installed RROs, but this is not standard behavior.
