From 462702c174fe48de1d6ac970d1a16271034005bb Mon Sep 17 00:00:00 2001 From: PlayDay <18056374+playday3008@users.noreply.github.com> Date: Mon, 16 Mar 2026 12:26:00 +0100 Subject: [PATCH] fix(all/packagename): Fix package name validation and provider authority matching Allow uppercase letters in package name validation regex, since valid Java package names can start with uppercase. Broaden provider authority replacement to also match authorities that contain or end with the original package name, not just those prefixed by it. --- .../all/misc/packagename/ChangePackageNamePatch.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/all/misc/packagename/ChangePackageNamePatch.kt b/patches/src/main/kotlin/app/revanced/patches/all/misc/packagename/ChangePackageNamePatch.kt index 271b2fc0fe..9fdeb04c38 100644 --- a/patches/src/main/kotlin/app/revanced/patches/all/misc/packagename/ChangePackageNamePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/all/misc/packagename/ChangePackageNamePatch.kt @@ -1,6 +1,9 @@ package app.revanced.patches.all.misc.packagename -import app.revanced.patcher.patch.* +import app.revanced.patcher.patch.Option +import app.revanced.patcher.patch.booleanOption +import app.revanced.patcher.patch.resourcePatch +import app.revanced.patcher.patch.stringOption import app.revanced.util.asSequence import app.revanced.util.getNode import org.w3c.dom.Element @@ -13,7 +16,7 @@ private val packageNameOption = stringOption( description = "The name of the package to rename the app to.", required = true, ) { - it == "Default" || it!!.matches(Regex("^[a-z]\\w*(\\.[a-z]\\w*)+\$")) + it == "Default" || it!!.matches(Regex("^[a-zA-Z]\\w*(\\.[a-zA-Z]\\w*)+$")) } /** @@ -111,7 +114,7 @@ val changePackageNamePatch = resourcePatch( val provider = node as Element val authorities = provider.getAttribute("android:authorities") - if (!authorities.startsWith("$packageName.")) continue + if ("$packageName." !in authorities && !authorities.endsWith(packageName)) continue provider.setAttribute("android:authorities", authorities.replace(packageName, newPackageName)) }