JobService: Transition to the Binder Interprocess Communication System

With this transition, we are deprecating the implicit intent
broadcasting system in preparation of Android O.

For more information regarding this API change:
https://commonsware.com/blog/2017/04/11/android-o-implicit-broadcast-ban.html

A brief explanation on Binder (thanks to @Surge1223):

Binder is generally a shorthand for IPC binder, which means interprocess
communication.

This usually involves a client and a service, and communicate through
the kernel via the /dev/binder of the kernel. In order for them to
communicate, the client and remote service needs a way to interface,
which is where the Android Interface Description Language is used.

The client and remote service must both implement an AIDL file,
which generates a stub and proxy that can be used to communicate with
each other.The client usually sends a parcelized stub proxy to
/dev/binder and the service unparcelizes the message via its stub
interface.

Change-Id: I23057a091890614c6d132be52cc6beca43ede200
5 files changed
tree: df8915a0bb03d3274ee59c23e669fb8d873ab973
  1. app/
  2. gradle/
  3. .gitignore
  4. Android.mk
  5. build.gradle
  6. gradle.properties
  7. gradlew
  8. gradlew.bat
  9. LICENSE.txt
  10. projekt.substratum.theme.xml
  11. README.md
  12. settings.gradle
README.md

ThemeInterfacer

ThemeInterfacer is the background service of the theme system developed by the Projekt team. It allows theme apps (including Substratum) to run system wide operations, otherwise unobtainable without root access. This also alleviates the performance stress on the theme app.

How to add to ROM builds

If you are a ROM developer, by now you should know how to track new packages while building your ROM. However, if you don't - please follow these steps:

Add "ThemeInterfacer" in your PRODUCT_PACKAGES

PRODUCT_PACKAGES += \
...\
...\
...\
ThemeInterfacer

Don't forget to add the project path in your AOSP manifest:

<project path="packages/apps/ThemeInterfacer" name="substratum/interfacer" remote="github" revision="n-rootless" />