> For the complete documentation index, see [llms.txt](https://notes.tejpratapsingh.com/android-tips/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/fabricated-rro-frro/permission.md).

# Permission

Here are the permissions required for using Fabricated RRO

To work with Fabricated RROs, you need system-level permissions. The specific permission required is:

```xml
android.permission.CHANGE_OVERLAY_PACKAGES
```

This is a signature|privileged permission, which means it's not available to regular third-party apps. It's typically only granted to system apps or apps signed with the platform certificate.

Here's more detail on the permission requirements and how to declare them:

1. Permission Declaration: In your app's AndroidManifest.xml, you would need to declare the use of this permission:

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

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

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

</manifest>
```

2. System App or Privileged App: Your app needs to be either:
   * A system app (located in /system/app or /system/priv-app)
   * Signed with the platform certificate
3. SELinux Policy: Depending on your specific Android version and OEM modifications, you might also need appropriate SELinux policies in place to allow your app to interact with the OverlayManagerService.
4. Additional Permissions: Depending on what your overlay is doing, you might need additional permissions. For example:
   * `android.permission.INTERACT_ACROSS_USERS` if you're applying overlays across different users
   * `android.permission.WRITE_SECURE_SETTINGS` if your overlay modifies secure settings
