Skip to content

Commit

Permalink
fix(GmsCore support): Firebase installations error
Browse files Browse the repository at this point in the history
  • Loading branch information
YT-Advanced committed Jan 10, 2025
1 parent 8bdf785 commit e7dfbc8
Show file tree
Hide file tree
Showing 3 changed files with 139 additions and 228 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.util.smali.ExternalLabel
import app.revanced.patches.shared.extension.Constants.PATCHES_PATH
import app.revanced.util.fingerprint.matchOrThrow
import app.revanced.util.fingerprint.methodOrThrow
import app.revanced.util.getReference
import app.revanced.util.getWalkerMethod
Expand All @@ -32,15 +33,20 @@ fun baseAdsPatch(
) {
execute {

videoAdsFingerprint.methodOrThrow().apply {
addInstructionsWithLabels(
0, """
invoke-static {}, $classDescriptor->$methodDescriptor()Z
move-result v0
if-nez v0, :show_ads
return-void
""", ExternalLabel("show_ads", getInstruction(0))
)
setOf(
sslGuardFingerprint,
videoAdsFingerprint,
).forEach { fingerprint ->
fingerprint.methodOrThrow().apply {
addInstructionsWithLabels(
0, """
invoke-static {}, $classDescriptor->$methodDescriptor()Z
move-result v0
if-nez v0, :show_ads
return-void
""", ExternalLabel("show_ads", getInstruction(0))
)
}
}

musicAdsFingerprint.methodOrThrow().apply {
Expand All @@ -61,6 +67,21 @@ fun baseAdsPatch(
)
}

advertisingIdFingerprint.matchOrThrow().let {
it.method.apply {
val insertIndex = it.stringMatches!!.first().index
val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA
addInstructionsWithLabels(
insertIndex, """
invoke-static {}, $classDescriptor->$methodDescriptor()Z
move-result v$insertRegister
if-nez v$insertRegister, :enable_id
return-void
""", ExternalLabel("enable_id", getInstruction(insertIndex))
)
}
}

}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,24 @@ import app.revanced.util.fingerprint.legacyFingerprint
import app.revanced.util.or
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.util.MethodUtil

internal val advertisingIdFingerprint = legacyFingerprint(
name = "advertisingIdFingerprint",
returnType = "V",
strings = listOf("a."),
customFingerprint = { method, classDef ->
MethodUtil.isConstructor(method) &&
classDef.fields.find { it.type == "Ljava/util/Random;" } != null
}
)

internal val sslGuardFingerprint = legacyFingerprint(
name = "sslGuardFingerprint",
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
strings = listOf("Cannot initialize SslGuardSocketFactory will null"),
)

internal val musicAdsFingerprint = legacyFingerprint(
name = "musicAdsFingerprint",
Expand Down
Loading

0 comments on commit e7dfbc8

Please sign in to comment.