diff --git a/AntiBrightnessChange/README.md b/AntiBrightnessChange/README.md
new file mode 100644
index 0000000..75d0d5c
--- /dev/null
+++ b/AntiBrightnessChange/README.md
@@ -0,0 +1,6 @@
+# AntiBrightnessChange
+
+This module prevents selected apps from overwriting the screen brightness.
+
+If applied to System Framework (`android`)
+it will prevent every app from changing the screen brightness.
diff --git a/AntiBrightnessChange/build.gradle.kts b/AntiBrightnessChange/build.gradle.kts
new file mode 100644
index 0000000..ae3b9fe
--- /dev/null
+++ b/AntiBrightnessChange/build.gradle.kts
@@ -0,0 +1,19 @@
+plugins {
+ id("com.android.application")
+}
+
+android {
+ val packageName = "com.programminghoch10.AntiBrightnessChange"
+ namespace = packageName
+
+ defaultConfig {
+ applicationId = packageName
+ minSdk = 33
+ targetSdk = 33
+ compileSdk = 33
+ versionCode = 1
+ versionName = "1.0"
+ }
+}
+
+dependencies {}
diff --git a/AntiBrightnessChange/src/main/AndroidManifest.xml b/AntiBrightnessChange/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..0eaa936
--- /dev/null
+++ b/AntiBrightnessChange/src/main/AndroidManifest.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AntiBrightnessChange/src/main/assets/xposed_init b/AntiBrightnessChange/src/main/assets/xposed_init
new file mode 100644
index 0000000..bb3b42b
--- /dev/null
+++ b/AntiBrightnessChange/src/main/assets/xposed_init
@@ -0,0 +1 @@
+com.programminghoch10.AntiBrightnessChange.Hook
diff --git a/AntiBrightnessChange/src/main/java/com/programminghoch10/AntiBrightnessChange/Hook.java b/AntiBrightnessChange/src/main/java/com/programminghoch10/AntiBrightnessChange/Hook.java
new file mode 100644
index 0000000..b11e88f
--- /dev/null
+++ b/AntiBrightnessChange/src/main/java/com/programminghoch10/AntiBrightnessChange/Hook.java
@@ -0,0 +1,38 @@
+package com.programminghoch10.AntiBrightnessChange;
+
+import static android.view.WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE;
+
+import android.view.WindowManager;
+
+import androidx.annotation.Keep;
+
+import de.robv.android.xposed.IXposedHookLoadPackage;
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.XposedHelpers;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+
+@Keep
+public class Hook implements IXposedHookLoadPackage {
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
+ if (lpparam.packageName.equals("android")) {
+ XposedHelpers.findAndHookMethod("com.android.server.wm.RootWindowContainer", lpparam.classLoader, "handleNotObscuredLocked",
+ "com.android.server.wm.WindowState", boolean.class, boolean.class, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ XposedHelpers.setFloatField(param.thisObject, "mScreenBrightnessOverride", Float.NaN);
+ }
+ });
+ return;
+ }
+
+ XposedHelpers.findAndHookMethod(WindowManager.LayoutParams.class, "copyFrom", WindowManager.LayoutParams.class, new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) {
+ WindowManager.LayoutParams layoutParams = (WindowManager.LayoutParams) param.args[0];
+ layoutParams.screenBrightness = BRIGHTNESS_OVERRIDE_NONE;
+ layoutParams.buttonBrightness = BRIGHTNESS_OVERRIDE_NONE;
+ }
+ });
+ }
+}
diff --git a/AntiBrightnessChange/src/main/res/values/arrays.xml b/AntiBrightnessChange/src/main/res/values/arrays.xml
new file mode 100644
index 0000000..549bac0
--- /dev/null
+++ b/AntiBrightnessChange/src/main/res/values/arrays.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/metadata/com.programminghoch10.AntiBrightnessChange/en-US/full_description.txt b/metadata/com.programminghoch10.AntiBrightnessChange/en-US/full_description.txt
new file mode 100644
index 0000000..369a48d
--- /dev/null
+++ b/metadata/com.programminghoch10.AntiBrightnessChange/en-US/full_description.txt
@@ -0,0 +1,4 @@
+This module prevents selected apps from overwriting the screen brightness.
+
+If applied to System Framework (`android`)
+it will prevent every app from changing the screen brightness.
diff --git a/metadata/com.programminghoch10.AntiBrightnessChange/en-US/short_description.txt b/metadata/com.programminghoch10.AntiBrightnessChange/en-US/short_description.txt
new file mode 100644
index 0000000..28dc657
--- /dev/null
+++ b/metadata/com.programminghoch10.AntiBrightnessChange/en-US/short_description.txt
@@ -0,0 +1 @@
+Prevents selected apps from overwriting the screen brightness.
diff --git a/metadata/com.programminghoch10.AntiBrightnessChange/en-US/title.txt b/metadata/com.programminghoch10.AntiBrightnessChange/en-US/title.txt
new file mode 100644
index 0000000..2009e45
--- /dev/null
+++ b/metadata/com.programminghoch10.AntiBrightnessChange/en-US/title.txt
@@ -0,0 +1 @@
+Anti Brightness Change
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 5494f32..8d730d0 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -18,6 +18,7 @@ dependencyResolutionManagement {
}
rootProject.name = "XposedModulets"
+include(":AntiBrightnessChange")
include(":AutomaticAdvancedSettingsExpander")
include(":BetterVerboseWiFiLogging")
include(":BetterBluetoothDeviceSort")