diff --git a/api/privacy-revanced-patches.api b/api/privacy-revanced-patches.api index c41fa28..50c8595 100644 --- a/api/privacy-revanced-patches.api +++ b/api/privacy-revanced-patches.api @@ -1,6 +1,6 @@ -public final class dev/jkcarino/revanced/patches/example/ExamplePatch : app/revanced/patcher/patch/BytecodePatch { - public static final field INSTANCE Ldev/jkcarino/revanced/patches/example/ExamplePatch; - public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V +public final class dev/jkcarino/revanced/patches/all/misc/network/RemoveInternetPermissionPatch : app/revanced/patcher/patch/ResourcePatch { + public static final field INSTANCE Ldev/jkcarino/revanced/patches/all/misc/network/RemoveInternetPermissionPatch; public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V + public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V } diff --git a/src/main/kotlin/dev/jkcarino/revanced/patches/all/misc/network/RemoveInternetPermissionPatch.kt b/src/main/kotlin/dev/jkcarino/revanced/patches/all/misc/network/RemoveInternetPermissionPatch.kt new file mode 100644 index 0000000..0d8cb6b --- /dev/null +++ b/src/main/kotlin/dev/jkcarino/revanced/patches/all/misc/network/RemoveInternetPermissionPatch.kt @@ -0,0 +1,28 @@ +package dev.jkcarino.revanced.patches.all.misc.network + +import app.revanced.patcher.data.ResourceContext +import app.revanced.patcher.patch.ResourcePatch +import app.revanced.patcher.patch.annotation.Patch +import org.w3c.dom.Element + +@Patch( + name = "Remove internet permission", + description = "Removes unnecessary internet permission from apps that can function without internet access.", + use = false +) +@Suppress("unused") +object RemoveInternetPermissionPatch : ResourcePatch() { + override fun execute(context: ResourceContext) { + context.xmlEditor["AndroidManifest.xml"].use { editor -> + val usesPermissions = editor.file.getElementsByTagName("uses-permission") + + for (i in 0 until usesPermissions.length) { + val element = usesPermissions.item(i) as? Element ?: continue + if (element.getAttribute("android:name") == "android.permission.INTERNET") { + element.parentNode.removeChild(element) + break + } + } + } + } +} diff --git a/src/main/kotlin/dev/jkcarino/revanced/patches/example/ExamplePatch.kt b/src/main/kotlin/dev/jkcarino/revanced/patches/example/ExamplePatch.kt deleted file mode 100644 index a8e5954..0000000 --- a/src/main/kotlin/dev/jkcarino/revanced/patches/example/ExamplePatch.kt +++ /dev/null @@ -1,20 +0,0 @@ -package dev.jkcarino.revanced.patches.example - -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.patch.BytecodePatch -import app.revanced.patcher.patch.annotation.CompatiblePackage -import app.revanced.patcher.patch.annotation.Patch - -@Patch( - name = "Example Patch", - description = "This is an example patch to start with.", - compatiblePackages = [ - CompatiblePackage("com.example.app", ["1.0.0"]), - ], -) -@Suppress("unused") -object ExamplePatch : BytecodePatch(emptySet()) { - override fun execute(context: BytecodeContext) { - // TODO("Not yet implemented") - } -}