mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-04-30 06:34:28 +02:00
feat: Add Set target SDK version 34
patch (Disable edge-to-edge display) (#4780)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
parent
065cc2a015
commit
dcf6178f19
@ -108,6 +108,10 @@ public final class app/revanced/patches/all/misc/shortcut/sharetargets/RemoveSha
|
|||||||
public static final fun getRemoveShareTargetsPatch ()Lapp/revanced/patcher/patch/ResourcePatch;
|
public static final fun getRemoveShareTargetsPatch ()Lapp/revanced/patcher/patch/ResourcePatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final class app/revanced/patches/all/misc/targetSdk/SetTargetSdkVersion34Kt {
|
||||||
|
public static final fun getSetTargetSdkVersion34 ()Lapp/revanced/patcher/patch/ResourcePatch;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract interface class app/revanced/patches/all/misc/transformation/IMethodCall {
|
public abstract interface class app/revanced/patches/all/misc/transformation/IMethodCall {
|
||||||
public abstract fun getDefinedClassName ()Ljava/lang/String;
|
public abstract fun getDefinedClassName ()Ljava/lang/String;
|
||||||
public abstract fun getMethodName ()Ljava/lang/String;
|
public abstract fun getMethodName ()Ljava/lang/String;
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
package app.revanced.patches.all.misc.targetSdk
|
||||||
|
|
||||||
|
import app.revanced.patcher.patch.resourcePatch
|
||||||
|
import app.revanced.util.getNode
|
||||||
|
import org.w3c.dom.Element
|
||||||
|
import java.util.logging.Logger
|
||||||
|
|
||||||
|
@Suppress("unused")
|
||||||
|
val setTargetSdkVersion34 = resourcePatch(
|
||||||
|
name = "Set target SDK version 34",
|
||||||
|
description = "Changes the target SDK to version 34 (Android 14). " +
|
||||||
|
"For devices running Android 15+, this will disable edge-to-edge display.",
|
||||||
|
use = false,
|
||||||
|
) {
|
||||||
|
execute {
|
||||||
|
val targetSdkOverride = 34 // Android 14.
|
||||||
|
|
||||||
|
document("AndroidManifest.xml").use { document ->
|
||||||
|
fun getLogger() = Logger.getLogger(this::class.java.name)
|
||||||
|
|
||||||
|
// Ideally, the override should only be applied if the existing target is higher.
|
||||||
|
// But since ApkTool does not add targetSdkVersion to the decompiled AndroidManifest,
|
||||||
|
// there is no way to check targetSdkVersion. Instead, check compileSdkVersion and print a warning.
|
||||||
|
try {
|
||||||
|
val manifestElement = document.getNode("manifest") as Element
|
||||||
|
val compileSdkVersion = Integer.parseInt(
|
||||||
|
manifestElement.getAttribute("android:compileSdkVersion")
|
||||||
|
)
|
||||||
|
if (compileSdkVersion <= targetSdkOverride) {
|
||||||
|
getLogger().warning(
|
||||||
|
"This app does not appear to use a target SDK above $targetSdkOverride: " +
|
||||||
|
"(compileSdkVersion: $compileSdkVersion)"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} catch (_: Exception) {
|
||||||
|
getLogger().warning("Could not check compileSdkVersion")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Change targetSdkVersion to override value.
|
||||||
|
document.getElementsByTagName("manifest").item(0).let {
|
||||||
|
var element = it.ownerDocument.createElement("uses-sdk")
|
||||||
|
element.setAttribute("android:targetSdkVersion", targetSdkOverride.toString())
|
||||||
|
|
||||||
|
it.appendChild(element)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user