🤖
Android Tips
  • 🤖AOSP
    • Clone AOSP repository
    • Directory Structure
    • Setup IDE
      • Setup VSCode
    • Build
      • BluePrint for Application Project
      • BluePrint for Android Library Project
    • Manifest
      • sharedUserId
      • persistant
  • Gradle
    • Create Custom Build Config Variables
    • Create Custom manifest Variables
    • Make app debugable
  • Android Process
    • Find a process by name
    • Kill a process by Id
  • Catch any exception in Android
  • 🎨Theming
    • Theming
      • RRO
        • RRO Internals
        • RRO classes in AOSP
        • RRO Example
        • RRO Permission
      • Fabricated RRO (FRRO)
        • FRRO Example
        • Permission
  • Lifecycle
    • Basics
      • Lifecycle
        • Activity
        • Fragment
          • Fragment add
    • Lifecycle Aware Custom Class
  • ℹ️Interview
    • Interview Questions
    • Architecture Pattern
      • MVC Architecture pattern
      • MVP Architecture Pattern
      • MVVM Architecture Pattern
  • ↔️AIDL
    • Simple AIDL Communication
      • Creating an AIDL file
      • Create an AIDL server
      • Create AIDL client
      • Limitations
    • AIDL with callback
      • Create AILD interfaces
      • Create an AIDL server
      • Create AIDL client
Powered by GitBook
On this page
  1. Theming
  2. Theming
  3. RRO

RRO Permission

<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
  1. This is needed if you're applying overlays across different user profiles.

android.permission.INTERACT_ACROSS_USERS
  1. 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.

PreviousRRO ExampleNextFabricated RRO (FRRO)

Last updated 10 months ago

🎨