This service provides first-class custom ROM integration for my Repainter app, which offers customizable dynamic theming for Android 12.

Related tags

App android
Overview

Repainter ROM integration

This service provides first-class custom ROM integration for my Repainter app, which offers customizable dynamic theming for Android 12.

Benefits

  • Convenient for users (no prompts necessary)
  • Faster and more reliable than root and Shizuku backends
  • Full functionality with all customization (no limitations), even on the January security patch
  • ROM-specific configuration: dynamic boot animation colors, etc.

Features

  • Versioned API
  • Security: permission guarded by client signature
  • Supports Direct Boot
  • Automatically clean up themes on uninstall
  • Link to app website in Settings -> App details -> Repainter Integration Service for users to see what the service is for (no launcher icon)

Adding to a ROM

1. Add this repository

Clone this repository to packages/apps/RepainterServicePriv.

2. Configure the service

This step is optional, but highly encouraged for better integration.

The easiest way to configure the Repainter service is by forking the repository and editing res/values/config.xml. The config is documented with examples and comments, so configuration should be trivial.

You can also make a copy of config.xml and add it to an overlay package in PRODUCT_PACKAGE_OVERLAYS, such as vendor/proton/overlay/packages/apps/RepainterServicePriv/res/values/config.xml, and edit the overlay copy instead.

Example commit

3. Build the service

Add RepainterServicePriv to PRODUCT_PACKAGES somewhere in order to build the service:

# Repainter integration
PRODUCT_PACKAGES += \
    RepainterServicePriv \

Example commit

You might also like...
Civihelper-project - This is our first android project .

Civihelper-project Problem-- Time taking and cumbersome conventional way to submit your civil problems. Proposed soln--- A platform to provide the sub

This is a first kotlin project
This is a first kotlin project

SmallPocket This is a first kotlin app, help user to save links easily, and can export to Evernote as weekly. Steps: copy link anywhere open SmallPock

This is my first Spring Boot with Kotlin project and used React as frontend.
This is my first Spring Boot with Kotlin project and used React as frontend.

༒☬༒ ꜱᴘʀɪɴɢ ʙᴏᴏᴛ + ᴋᴏᴛʟɪɴ ༒☬༒ This project is simple course enrolment site built with React with Typescript and Spring boot with Kotlin. Frontend - Ove

My attempt at completing Advent of Code for the first time, might also learn Kotlin while doing so.

AdventOfCode2021 Welcome to the Advent of Code1 Kotlin project created by debskipawel using the Advent of Code Kotlin Template delivered by JetBrains.

This is the first goland plugin for SCA of Go. It focuses on the dependency security of the Go project.
This is the first goland plugin for SCA of Go. It focuses on the dependency security of the Go project.

This is the first goland plugin for SCA of Go. It focuses on the dependency security of the Go project. It will generate the SCA report for the dependencies with vulnerabilities. For the detailed introduction of this plugin, please refer to this article.

Make your first Pull Request on Hacktoberfest 2022. Don't forget to spread love and if you like give us a ⭐️

This Repo is Excluded 🎃 HacktoberFest Starter Project 🎃 Use this project to make your first contribution to an open source project on GitHub. Practi

Andorid app which provides a bunch of useful Linux commands.
Andorid app which provides a bunch of useful Linux commands.

Linux Command Library for Android The app currently has 3203 manual pages, 1351 one-line scripts and a bunch of general terminal tips. It works 100% o

An Android app built with Kotlin, to help students at Kibabii University make monthly class welfare contributions
An Android app built with Kotlin, to help students at Kibabii University make monthly class welfare contributions

An Android app built with Kotlin, to help students at Kibabii University make monthly class welfare contributions. It is built with the MVVM pattern and the latest Jetpack components. Firebase as the backend

An Android Application which provides meanings for words searched.
An Android Application which provides meanings for words searched.

An Android Application which provides meanings for words searched. It also displays some examples, synonyms and antonyms of the searched word.

Comments
  • Possibly Missing Step in Instructions?

    Possibly Missing Step in Instructions?

    I followed the instructions in the readme, but the last step I don't have an app.mk file as in the example commit. If I add

    # Repainter integration
    PRODUCT_PACKAGES += \
        RepainterServicePriv \
    

    anywhere else I see the variable occur, I get the following error:

    [ 99% 227/228] finishing build rules ...
    FAILED:
    build/make/core/artifact_path_requirements.mk:26: warning:  build/make/target/product/generic_system.mk produces files outside its artifact path requirement. Allowed paths are root/*, system/*
    Offending entries:
    system_ext/etc/permissions/privapp_whitelist_dev.kdrag0n.dyntheme.privileged.sys.xml
    system_ext/priv-app/RepainterServicePriv/RepainterServicePriv.apk
    system_ext/priv-app/RepainterServicePriv/oat/arm64/RepainterServicePriv.odex
    system_ext/priv-app/RepainterServicePriv/oat/arm64/RepainterServicePriv.vdex
    In file included from build/make/core/main.mk:1346:
    build/make/core/artifact_path_requirements.mk:26: error: Build failed.
    22:31:42 ckati failed with: exit status 1
    

    Am I simply dense to something obvious, or is there a step missing in the instructions? After some googling I found this link that seems relevant, but not sure how it ties in.

    I do dearly apologize if this doesn't constitute as an actual issue .

    opened by Sewdohe 1
Owner
Danny Lin
Android & full-stack web developer
Danny Lin
Dynamic-UI-From-JSON - A Sample Android app to show dynamic UI generation from Json

Dynamic UI from JSON Functionality The app's functionality includes: The app gen

Rafsan Ahmad 12 Dec 16, 2022
Olalekan Fagbemi 0 Nov 7, 2021
Dynamic content in your Android app

Dynamic content in your Android app (Working with APIs - Retrofit with MVVM)Dynamic content in your Android app (Working with APIs - Retrofit with MVVM)

Kaique Ocanha 14 Nov 2, 2022
A Task Management and Habit-building App, representating my journey in Android as well as my first Kotlin App. 🤗 ✨

A Task Management and Habit-building App, representating my journey in Android as well as my first Kotlin App. ?? ✨

Sarthak Musmade 8 May 8, 2022
Akshaya Patra Donation App using Razorpay android integration

Akshaya Patra Donation App (razorpay-android-integration) Akshaya Patra Donation App using razorpay integration Dependency used : Razorpay : com.razor

Ayush Kumar Singh 1 Nov 25, 2021
Android Package Inspector - dynamic analysis with api hooks, start unexported activities and more. (Xposed Module)

Inspeckage - Android Package Inspector Inspeckage is a tool developed to offer dynamic analysis of Android applications. By applying hooks to function

acpm 2.5k Jan 8, 2023
Build your first Android app - a tip calculator!

Tippy - A Simple Tip Calculator for Android Build Tippy as your first Android app! Follow the YouTube walkthrough video Author: Rahul Pandey Features:

Rahul Pandey 5 Jun 24, 2022
Example of Android project showing integration with Kotlin and Dagger 2

kotlin-dagger-example This project demonstrate how to setup an Android Project with Kotlin and Dagger 2. It's based on Dagger 2 example ##Known issues

Damian Petla 533 Nov 11, 2022
TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer

KataTODOApiClient for Kotlin We are here to practice integration testsing using HTTP stubbing. We are going to use MockWebServer to simulate a HTTP se

Karumi 61 Nov 20, 2022
Integration of ONNX with Kotlin JS - Deep Learning running in the browser

Integration of ONNX with Kotlin JS - Deep Learning running in the browser

londogard 5 Jul 22, 2022