Skip to content

Commit

Permalink
feat(All - Package Name): Add Change package name patch
Browse files Browse the repository at this point in the history
  • Loading branch information
jkennethcarino committed Mar 29, 2024
1 parent 25b3745 commit 64c0d61
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
7 changes: 7 additions & 0 deletions api/privacy-revanced-patches.api
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@ public final class dev/jkcarino/revanced/patches/all/misc/network/RemoveInternet
public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
}

public final class dev/jkcarino/revanced/patches/all/misc/packagename/ChangePackageNamePatch : app/revanced/patcher/patch/ResourcePatch, java/io/Closeable {
public static final field INSTANCE Ldev/jkcarino/revanced/patches/all/misc/packagename/ChangePackageNamePatch;
public fun close ()V
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
}

public final class dev/jkcarino/revanced/patches/all/webview/DisableWebViewMetricsPatch : app/revanced/patcher/patch/ResourcePatch {
public static final field INSTANCE Ldev/jkcarino/revanced/patches/all/webview/DisableWebViewMetricsPatch;
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package dev.jkcarino.revanced.patches.all.misc.packagename

import app.revanced.patcher.data.ResourceContext
import app.revanced.patcher.patch.ResourcePatch
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption
import org.w3c.dom.Element
import java.io.Closeable

@Patch(
name = "Change package name",
description = "Appends \".revanced\" to the package name by default. Changing the package name of the app can lead to unexpected issues.",
use = false,
)
@Suppress("unused")
object ChangePackageNamePatch : ResourcePatch(), Closeable {
private val packageNameOption =
stringPatchOption(
key = "packageName",
default = "Default",
values = mapOf("Default" to "Default"),
title = "Package name",
description = "The name of the package to rename the app to.",
required = true,
) {
it == "Default" || it!!.matches(Regex("^[a-z]\\w*(\\.[a-z]\\w*)+\$"))
}

private lateinit var context: ResourceContext

override fun execute(context: ResourceContext) {
this.context = context
}

override fun close() =
context.xmlEditor["AndroidManifest.xml"].use { editor ->
val document = editor.file

val replacementPackageName = packageNameOption.value

val manifest = document.getElementsByTagName("manifest").item(0) as Element
manifest.setAttribute(
"package",
if (replacementPackageName != packageNameOption.default) {
replacementPackageName
} else {
"${manifest.getAttribute("package")}.revanced"
},
)
}
}

0 comments on commit 64c0d61

Please sign in to comment.