11package app.revanced.patches.shared.misc.gms
22
33import app.revanced.patcher.Fingerprint
4- import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
4+ import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
55import app.revanced.patcher.extensions.InstructionExtensions.instructions
66import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
7- import app.revanced.patcher.patch.*
7+ import app.revanced.patcher.patch.BytecodePatchBuilder
8+ import app.revanced.patcher.patch.BytecodePatchContext
9+ import app.revanced.patcher.patch.Option
10+ import app.revanced.patcher.patch.Patch
11+ import app.revanced.patcher.patch.ResourcePatchBuilder
12+ import app.revanced.patcher.patch.ResourcePatchContext
13+ import app.revanced.patcher.patch.bytecodePatch
14+ import app.revanced.patcher.patch.resourcePatch
15+ import app.revanced.patcher.patch.stringOption
816import app.revanced.patches.all.misc.packagename.changePackageNamePatch
917import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName
1018import app.revanced.patches.all.misc.resources.addResources
1119import app.revanced.patches.all.misc.resources.addResourcesPatch
1220import app.revanced.patches.shared.misc.gms.Constants.ACTIONS
1321import app.revanced.patches.shared.misc.gms.Constants.AUTHORITIES
1422import app.revanced.patches.shared.misc.gms.Constants.PERMISSIONS
15- import app.revanced.util.*
23+ import app.revanced.util.getReference
24+ import app.revanced.util.returnEarly
1625import com.android.tools.smali.dexlib2.Opcode
1726import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
1827import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
@@ -23,6 +32,8 @@ import com.android.tools.smali.dexlib2.util.MethodUtil
2332import org.w3c.dom.Element
2433import org.w3c.dom.Node
2534
35+ internal const val EXTENSION_CLASS_DESCRIPTOR = " Lapp/revanced/extension/shared/GmsCoreSupport;"
36+
2637private const val PACKAGE_NAME_REGEX_PATTERN = " ^[a-z]\\ w*(\\ .[a-z]\\ w*)+\$ "
2738
2839/* *
@@ -201,19 +212,18 @@ fun gmsCoreSupportPatch(
201212 googlePlayUtilityFingerprint.method.returnEarly(0 )
202213 }
203214
215+ // Set original and patched package names for extension to use.
216+ originalPackageNameExtensionFingerprint.method.returnEarly(fromPackageName)
217+
204218 // Verify GmsCore is installed and whitelisted for power optimizations and background usage.
205- mainActivityOnCreateFingerprint.method.apply {
206- addInstructions(
207- 0 ,
208- " invoke-static/range { p0 .. p0 }, Lapp/revanced/extension/shared/GmsCoreSupport;->" +
209- " checkGmsCore(Landroid/app/Activity;)V" ,
210- )
211- }
219+ mainActivityOnCreateFingerprint.method.addInstruction(
220+ 0 ,
221+ " invoke-static/range { p0 .. p0 }, $EXTENSION_CLASS_DESCRIPTOR ->" +
222+ " checkGmsCore(Landroid/app/Activity;)V"
223+ )
212224
213225 // Change the vendor of GmsCore in the extension.
214- gmsCoreSupportFingerprint.classDef.methods
215- .single { it.name == GET_GMS_CORE_VENDOR_GROUP_ID_METHOD_NAME }
216- .replaceInstruction(0 , " const-string v0, \" $gmsCoreVendorGroupId \" " )
226+ gmsCoreSupportFingerprint.method.returnEarly(gmsCoreVendorGroupId!! )
217227
218228 executeBlock()
219229 }
0 commit comments