From 3e18e868bbd9fd0600fe81a7fe8767b4bd89a00e Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 12 Apr 2025 21:20:36 +0200 Subject: [PATCH] fix(Google Photos): Restore patching with ReVanced Manager (#4773) --- .../misc/gms/GmsCoreSupportPatch.kt | 1 + .../misc/gms/GmsCoreSupportPatch.kt | 1 + .../shared/misc/gms/GmsCoreSupportPatch.kt | 38 ++++++++++++++++++- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/googlenews/misc/gms/GmsCoreSupportPatch.kt b/patches/src/main/kotlin/app/revanced/patches/googlenews/misc/gms/GmsCoreSupportPatch.kt index d03ce31e7..630e737cc 100644 --- a/patches/src/main/kotlin/app/revanced/patches/googlenews/misc/gms/GmsCoreSupportPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/googlenews/misc/gms/GmsCoreSupportPatch.kt @@ -27,4 +27,5 @@ private fun gmsCoreSupportResourcePatch( toPackageName = REVANCED_MAGAZINES_PACKAGE_NAME, spoofedPackageSignature = "24bb24c05e47e0aefa68a58a766179d9b613a666", gmsCoreVendorGroupIdOption = gmsCoreVendorGroupIdOption, + addStringResources = false, ) diff --git a/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/gms/GmsCoreSupportPatch.kt b/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/gms/GmsCoreSupportPatch.kt index 3ed14a29d..75d265be3 100644 --- a/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/gms/GmsCoreSupportPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/gms/GmsCoreSupportPatch.kt @@ -22,6 +22,7 @@ private fun gmsCoreSupportResourcePatch( ) = app.revanced.patches.shared.misc.gms.gmsCoreSupportResourcePatch( fromPackageName = PHOTOS_PACKAGE_NAME, toPackageName = REVANCED_PHOTOS_PACKAGE_NAME, + addStringResources = false, spoofedPackageSignature = "24bb24c05e47e0aefa68a58a766179d9b613a600", gmsCoreVendorGroupIdOption = gmsCoreVendorGroupIdOption, ) diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/GmsCoreSupportPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/GmsCoreSupportPatch.kt index 64173c18c..694d471f7 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/GmsCoreSupportPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/GmsCoreSupportPatch.kt @@ -500,13 +500,44 @@ private object Constants { * @param executeBlock The additional execution block of the patch. * @param block The additional block to build the patch. */ -fun gmsCoreSupportResourcePatch( +fun gmsCoreSupportResourcePatch( // This is here only for binary compatibility. fromPackageName: String, toPackageName: String, spoofedPackageSignature: String, gmsCoreVendorGroupIdOption: Option, executeBlock: ResourcePatchContext.() -> Unit = {}, block: ResourcePatchBuilder.() -> Unit = {}, +) = gmsCoreSupportResourcePatch( + fromPackageName, + toPackageName, + spoofedPackageSignature, + gmsCoreVendorGroupIdOption, + true, + executeBlock, + block +) + +/** + * Abstract resource patch that allows Google apps to run without root and under a different package name + * by using GmsCore instead of Google Play Services. + * + * @param fromPackageName The package name of the original app. + * @param toPackageName The package name to fall back to if no custom package name is specified in patch options. + * @param spoofedPackageSignature The signature of the package to spoof to. + * @param gmsCoreVendorGroupIdOption The option to get the vendor group ID of GmsCore. + * @param addStringResources If the GmsCore shared strings should be added to the patched app. + * @param executeBlock The additional execution block of the patch. + * @param block The additional block to build the patch. + */ +// TODO: On the next major release make this public and delete the public overloaded constructor. +internal fun gmsCoreSupportResourcePatch( + fromPackageName: String, + toPackageName: String, + spoofedPackageSignature: String, + gmsCoreVendorGroupIdOption: Option, + addStringResources: Boolean = true, + executeBlock: ResourcePatchContext.() -> Unit = {}, + block: ResourcePatchBuilder.() -> Unit = {}, ) = resourcePatch { dependsOn( changePackageNamePatch, @@ -516,7 +547,10 @@ fun gmsCoreSupportResourcePatch( val gmsCoreVendorGroupId by gmsCoreVendorGroupIdOption execute { - addResources("shared", "misc.gms.gmsCoreSupportResourcePatch") + // Some patches don't use shared String resources so there's no need to add them. + if (addStringResources) { + addResources("shared", "misc.gms.gmsCoreSupportResourcePatch") + } /** * Add metadata to manifest to support spoofing the package name and signature of GmsCore.