🤖
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. Fabricated RRO (FRRO)

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:

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:

<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>
  1. 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

  2. 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.

  3. 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

PreviousFRRO ExampleNextBasics

Last updated 10 months ago

🎨