mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-22 18:23:59 +00:00
remove 'by' syntax for fingerprints
This commit is contained in:
@@ -3,7 +3,7 @@ package app.revanced.patches.amazon
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val deepLinkingFingerprint by fingerprint {
|
||||
internal val deepLinkingFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE)
|
||||
returns("Z")
|
||||
parameters("L")
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
// This fingerprint targets a method that returns the daily measurement count.
|
||||
// This method is used to determine if the user has reached the daily limit of measurements.
|
||||
internal val getDailyMeasurementCountFingerprint by fingerprint {
|
||||
internal val getDailyMeasurementCountFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE)
|
||||
returns("I")
|
||||
strings("dailyMeasurementCount")
|
||||
|
||||
@@ -2,6 +2,6 @@ package app.revanced.patches.bandcamp.limitations
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val handlePlaybackLimitsFingerprint by fingerprint {
|
||||
internal val handlePlaybackLimitsFingerprint = fingerprint {
|
||||
strings("track_id", "play_count")
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.cieid.restrictions.root
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val checkRootFingerprint by fingerprint {
|
||||
internal val checkRootFingerprint = fingerprint {
|
||||
custom { method, _ ->
|
||||
method.name == "onResume" && method.definingClass == "Lit/ipzs/cieid/BaseActivity;"
|
||||
}
|
||||
|
||||
@@ -3,12 +3,12 @@ package app.revanced.patches.cricbuzz.ads
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val userStateSwitchFingerprint by fingerprint {
|
||||
internal val userStateSwitchFingerprint = fingerprint {
|
||||
opcodes(Opcode.SPARSE_SWITCH)
|
||||
strings("key.user.state", "NA")
|
||||
}
|
||||
|
||||
internal val cb11ConstructorFingerprint by fingerprint {
|
||||
internal val cb11ConstructorFingerprint = fingerprint {
|
||||
parameters(
|
||||
"Ljava/lang/String;",
|
||||
"Ljava/lang/String;",
|
||||
@@ -26,7 +26,7 @@ internal val cb11ConstructorFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val getBottomBarFingerprint by fingerprint {
|
||||
internal val getBottomBarFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
method.name == "getBottomBar" && classDef.endsWith("HomeMenu;")
|
||||
}
|
||||
|
||||
@@ -2,6 +2,6 @@ package app.revanced.patches.crunchyroll.ads
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val videoUrlReadyToStringFingerprint by fingerprint {
|
||||
internal val videoUrlReadyToStringFingerprint = fingerprint {
|
||||
strings("VideoUrlReady(url=", ", enableAds=")
|
||||
}
|
||||
|
||||
@@ -4,14 +4,14 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val initializeMonetizationDebugSettingsFingerprint by fingerprint {
|
||||
internal val initializeMonetizationDebugSettingsFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||
returns("V")
|
||||
// Parameters have not been reliable for fingerprinting between versions.
|
||||
opcodes(Opcode.IPUT_BOOLEAN)
|
||||
}
|
||||
|
||||
internal val monetizationDebugSettingsToStringFingerprint by fingerprint {
|
||||
internal val monetizationDebugSettingsToStringFingerprint = fingerprint {
|
||||
strings("MonetizationDebugSettings(") // Partial string match.
|
||||
custom { method, _ -> method.name == "toString" }
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val debugCategoryAllowOnReleaseBuildsFingerprint by fingerprint {
|
||||
internal val debugCategoryAllowOnReleaseBuildsFingerprint = fingerprint {
|
||||
returns("Z")
|
||||
parameters()
|
||||
custom { method, classDef ->
|
||||
@@ -12,13 +12,13 @@ internal val debugCategoryAllowOnReleaseBuildsFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val buildConfigProviderConstructorFingerprint by fingerprint {
|
||||
internal val buildConfigProviderConstructorFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||
parameters()
|
||||
opcodes(Opcode.CONST_4)
|
||||
}
|
||||
|
||||
internal val buildConfigProviderToStringFingerprint by fingerprint {
|
||||
internal val buildConfigProviderToStringFingerprint = fingerprint {
|
||||
parameters()
|
||||
returns("Ljava/lang/String;")
|
||||
strings("BuildConfigProvider(") // Partial string match.
|
||||
|
||||
@@ -7,13 +7,13 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
/**
|
||||
* Matches the class found in [energyConfigToStringFingerprint].
|
||||
*/
|
||||
internal val initializeEnergyConfigFingerprint by fingerprint {
|
||||
internal val initializeEnergyConfigFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||
opcodes(Opcode.RETURN_VOID)
|
||||
}
|
||||
|
||||
// Class name currently is not obfuscated but it may be in the future.
|
||||
internal val energyConfigToStringFingerprint by fingerprint {
|
||||
internal val energyConfigToStringFingerprint = fingerprint {
|
||||
parameters()
|
||||
returns("Ljava/lang/String;")
|
||||
strings("EnergyConfig(", "maxEnergy=") // Partial string matches.
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val baseModelMapperFingerprint by fingerprint {
|
||||
internal val baseModelMapperFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Lcom/facebook/graphql/modelutil/BaseModelWithTree;")
|
||||
parameters("Ljava/lang/Class", "I", "I")
|
||||
@@ -17,7 +17,7 @@ internal val baseModelMapperFingerprint by fingerprint {
|
||||
)
|
||||
}
|
||||
|
||||
internal val getSponsoredDataModelTemplateFingerprint by fingerprint {
|
||||
internal val getSponsoredDataModelTemplateFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("L")
|
||||
parameters()
|
||||
@@ -33,7 +33,7 @@ internal val getSponsoredDataModelTemplateFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val getStoryVisibilityFingerprint by fingerprint {
|
||||
internal val getStoryVisibilityFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("Ljava/lang/String;")
|
||||
opcodes(
|
||||
|
||||
@@ -3,11 +3,11 @@ package app.revanced.patches.facebook.ads.story
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.iface.value.StringEncodedValue
|
||||
|
||||
internal val adsInsertionFingerprint by fieldFingerprint(
|
||||
internal val adsInsertionFingerprint = fieldFingerprint(
|
||||
fieldValue = "AdBucketDataSourceUtil\$attemptAdsInsertion\$1",
|
||||
)
|
||||
|
||||
internal val fetchMoreAdsFingerprint by fieldFingerprint(
|
||||
internal val fetchMoreAdsFingerprint = fieldFingerprint(
|
||||
fieldValue = "AdBucketDataSourceUtil\$attemptFetchMoreAds\$1",
|
||||
)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
// Located @ at.gv.bmf.bmf2go.taxequalization.tools.utils.AttestationHelper#isBootStateOk (3.0.1)
|
||||
internal val bootStateFingerprint by fingerprint {
|
||||
internal val bootStateFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
returns("Z")
|
||||
opcodes(
|
||||
@@ -30,7 +30,7 @@ internal val bootStateFingerprint by fingerprint {
|
||||
}
|
||||
|
||||
// Located @ at.gv.bmf.bmf2go.taxequalization.tools.utils.AttestationHelper#createKey (3.0.1)
|
||||
internal val createKeyFingerprint by fingerprint {
|
||||
internal val createKeyFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
returns("Z")
|
||||
strings("attestation", "SHA-256", "random", "EC", "AndroidKeyStore")
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
// Located @ at.gv.bmf.bmf2go.taxequalization.tools.utils.RootDetection#isRooted (3.0.1)
|
||||
internal val rootDetectionFingerprint by fingerprint {
|
||||
internal val rootDetectionFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("L")
|
||||
parameters("L")
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val launchCustomTabFingerprint by fingerprint {
|
||||
internal val launchCustomTabFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||
opcodes(
|
||||
Opcode.IPUT_OBJECT,
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.googlenews.misc.gms
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val magazinesActivityOnCreateFingerprint by fingerprint {
|
||||
internal val magazinesActivityOnCreateFingerprint = fingerprint {
|
||||
custom { methodDef, classDef ->
|
||||
methodDef.name == "onCreate" && classDef.endsWith("/StartActivity;")
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.googlephotos.misc.backup
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isDCIMFolderBackupControlDisabled by fingerprint {
|
||||
internal val isDCIMFolderBackupControlDisabled = fingerprint {
|
||||
returns("Z")
|
||||
strings("/dcim", "/mars_files/")
|
||||
}
|
||||
|
||||
@@ -2,6 +2,6 @@ package app.revanced.patches.googlephotos.misc.features
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val initializeFeaturesEnumFingerprint by fingerprint {
|
||||
internal val initializeFeaturesEnumFingerprint = fingerprint {
|
||||
strings("com.google.android.apps.photos.NEXUS_PRELOAD")
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.googlephotos.misc.gms
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val homeActivityOnCreateFingerprint by fingerprint {
|
||||
internal val homeActivityOnCreateFingerprint = fingerprint {
|
||||
custom { methodDef, classDef ->
|
||||
methodDef.name == "onCreate" && classDef.endsWith("/HomeActivity;")
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.googlerecorder.restrictions
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val onApplicationCreateFingerprint by fingerprint {
|
||||
internal val onApplicationCreateFingerprint = fingerprint {
|
||||
strings("com.google.android.feature.PIXEL_2017_EXPERIENCE")
|
||||
custom { method, classDef ->
|
||||
if (method.name != "onCreate") return@custom false
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.hexeditor.ad
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val primaryAdsFingerprint by fingerprint {
|
||||
internal val primaryAdsFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
classDef.endsWith("PreferencesHelper;") && method.name == "isAdsDisabled"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.iconpackstudio.misc.pro
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val checkProFingerprint by fingerprint {
|
||||
internal val checkProFingerprint = fingerprint {
|
||||
returns("Z")
|
||||
custom { _, classDef -> classDef.endsWith("IPSPurchaseRepository;") }
|
||||
}
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.idaustria.detection.root
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val attestationSupportedCheckFingerprint by fingerprint {
|
||||
internal val attestationSupportedCheckFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
returns("V")
|
||||
custom { method, classDef ->
|
||||
@@ -12,7 +12,7 @@ internal val attestationSupportedCheckFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val bootloaderCheckFingerprint by fingerprint {
|
||||
internal val bootloaderCheckFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
returns("Z")
|
||||
custom { method, classDef ->
|
||||
@@ -21,7 +21,7 @@ internal val bootloaderCheckFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val rootCheckFingerprint by fingerprint {
|
||||
internal val rootCheckFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
returns("V")
|
||||
custom { method, classDef ->
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.idaustria.detection.signature
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val spoofSignatureFingerprint by fingerprint {
|
||||
internal val spoofSignatureFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE)
|
||||
returns("L")
|
||||
parameters("L")
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.inshorts.ad
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val inshortsAdsFingerprint by fingerprint {
|
||||
internal val inshortsAdsFingerprint = fingerprint {
|
||||
returns("V")
|
||||
strings("GoogleAdLoader", "exception in requestAd")
|
||||
}
|
||||
@@ -2,10 +2,10 @@ package app.revanced.patches.instagram.feed
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val mainFeedRequestClassFingerprint by fingerprint {
|
||||
internal val mainFeedRequestClassFingerprint = fingerprint {
|
||||
strings("Request{mReason=", ", mInstanceNumber=")
|
||||
}
|
||||
|
||||
internal val mainFeedHeaderMapFinderFingerprint by fingerprint {
|
||||
internal val mainFeedHeaderMapFinderFingerprint = fingerprint {
|
||||
strings("pagination_source", "FEED_REQUEST_SENT")
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ val limitFeedToFollowedProfiles = bytecodePatch(
|
||||
}
|
||||
}
|
||||
|
||||
val initMainFeedRequestFingerprint by fingerprint {
|
||||
val initMainFeedRequestFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
method.name == "<init>" &&
|
||||
classDef == mainFeedRequestClassFingerprint.classDef
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint
|
||||
|
||||
internal const val EXPLORE_KEY_TO_BE_HIDDEN = "sectional_items"
|
||||
|
||||
internal val exploreResponseJsonParserFingerprint by fingerprint {
|
||||
internal val exploreResponseJsonParserFingerprint = fingerprint {
|
||||
strings(EXPLORE_KEY_TO_BE_HIDDEN, "ExploreTopicalFeedResponse")
|
||||
custom { method, _ -> method.name == "parseFromJson" }
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@ import app.revanced.patcher.fingerprint
|
||||
import app.revanced.patcher.patch.BytecodePatchContext
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val initializeNavigationButtonsListFingerprint by fingerprint {
|
||||
internal val initializeNavigationButtonsListFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
parameters("Lcom/instagram/common/session/UserSession;", "Z")
|
||||
returns("Ljava/util/List;")
|
||||
}
|
||||
|
||||
internal val navigationButtonsEnumClassDef by fingerprint {
|
||||
internal val navigationButtonsEnumClassDef = fingerprint {
|
||||
strings("FEED", "fragment_feed", "SEARCH", "fragment_search")
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ val hideNavigationButtonsPatch = bytecodePatch(
|
||||
|
||||
// Get the field name which contains the name of the enum for the navigation button
|
||||
// ("fragment_clips", "fragment_share", ...)
|
||||
val navigationButtonsEnumInitFingerprint by fingerprint {
|
||||
val navigationButtonsEnumInitFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
method.name == "<init>"
|
||||
&& classDef == navigationButtonsEnumClassDef.classDef
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.instagram.hide.stories
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val getOrCreateAvatarViewFingerprint by fingerprint {
|
||||
internal val getOrCreateAvatarViewFingerprint = fingerprint {
|
||||
parameters()
|
||||
returns("L")
|
||||
custom { method, classDef ->
|
||||
|
||||
@@ -12,6 +12,6 @@ internal val FEED_ITEM_KEYS_TO_BE_HIDDEN = arrayOf(
|
||||
"suggested_users",
|
||||
)
|
||||
|
||||
internal val feedItemParseFromJsonFingerprint by fingerprint {
|
||||
internal val feedItemParseFromJsonFingerprint = fingerprint {
|
||||
strings(*FEED_ITEM_KEYS_TO_BE_HIDDEN, "FeedItem")
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.instagram.misc.devmenu
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val clearNotificationReceiverFingerprint by fingerprint {
|
||||
internal val clearNotificationReceiverFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
method.name == "onReceive" &&
|
||||
classDef.type == "Lcom/instagram/notifications/push/ClearNotificationReceiver;"
|
||||
|
||||
@@ -3,7 +3,7 @@ import app.revanced.patcher.fingerprint
|
||||
|
||||
internal const val TARGET_STRING = "Tracking.ARG_CLICK_SOURCE"
|
||||
|
||||
internal val inAppBrowserFunctionFingerprint by fingerprint {
|
||||
internal val inAppBrowserFunctionFingerprint = fingerprint {
|
||||
returns("Z")
|
||||
strings("TrackingInfo.ARG_MODULE_NAME", TARGET_STRING)
|
||||
}
|
||||
|
||||
@@ -3,22 +3,22 @@ package app.revanced.patches.instagram.misc.share
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.google.common.util.concurrent.Striped.custom
|
||||
|
||||
internal val permalinkResponseJsonParserFingerprint by fingerprint {
|
||||
internal val permalinkResponseJsonParserFingerprint = fingerprint {
|
||||
strings("permalink", "PermalinkResponse")
|
||||
custom { method, _ -> method.name == "parseFromJson" }
|
||||
}
|
||||
|
||||
internal val storyUrlResponseJsonParserFingerprint by fingerprint {
|
||||
internal val storyUrlResponseJsonParserFingerprint = fingerprint {
|
||||
strings("story_item_to_share_url", "StoryItemUrlResponse")
|
||||
custom { method, _ -> method.name == "parseFromJson" }
|
||||
}
|
||||
|
||||
internal val profileUrlResponseJsonParserFingerprint by fingerprint {
|
||||
internal val profileUrlResponseJsonParserFingerprint = fingerprint {
|
||||
strings("profile_to_share_url", "ProfileUrlResponse")
|
||||
custom { method, _ -> method.name == "parseFromJson" }
|
||||
}
|
||||
|
||||
internal val liveUrlResponseJsonParserFingerprint by fingerprint {
|
||||
internal val liveUrlResponseJsonParserFingerprint = fingerprint {
|
||||
strings("live_to_share_url", "LiveItemLinkUrlResponse")
|
||||
custom { method, _ -> method.name == "parseFromJson" }
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.instagram.misc.share.domain
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val getCustomShareDomainFingerprint by fingerprint {
|
||||
internal val getCustomShareDomainFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
|
||||
returns("Ljava/lang/String;")
|
||||
parameters()
|
||||
|
||||
@@ -5,11 +5,11 @@ import app.revanced.util.getReference
|
||||
import app.revanced.util.indexOfFirstInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
internal val isValidSignatureClassFingerprint by fingerprint {
|
||||
internal val isValidSignatureClassFingerprint = fingerprint {
|
||||
strings("The provider for uri '", "' is not trusted: ")
|
||||
}
|
||||
|
||||
internal val isValidSignatureMethodFingerprint by fingerprint {
|
||||
internal val isValidSignatureMethodFingerprint = fingerprint {
|
||||
parameters("L", "Z")
|
||||
returns("Z")
|
||||
custom { method, _ ->
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.irplus.ad
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val irplusAdsFingerprint by fingerprint {
|
||||
internal val irplusAdsFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
|
||||
parameters("L", "Z")
|
||||
strings("TAGGED")
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isLoggedInFingerprint by fingerprint {
|
||||
internal val isLoggedInFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
opcodes(
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val hasPurchasedFingerprint by fingerprint {
|
||||
internal val hasPurchasedFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
opcodes(
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val licenseValidationFingerprint by fingerprint {
|
||||
internal val licenseValidationFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("Z")
|
||||
parameters("Landroid/content/Context;")
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val verifySignatureFingerprint by fingerprint {
|
||||
internal val verifySignatureFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("Z")
|
||||
parameters("Landroid/app/Activity;")
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isFreeVersionFingerprint by fingerprint {
|
||||
internal val isFreeVersionFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("Ljava/lang/Boolean;")
|
||||
parameters("Landroid/content/Context;")
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.value.StringEncodedValue
|
||||
|
||||
internal val createInboxSubTabsFingerprint by fingerprint {
|
||||
internal val createInboxSubTabsFingerprint = fingerprint {
|
||||
returns("V")
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
opcodes(
|
||||
@@ -22,7 +22,7 @@ internal val createInboxSubTabsFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val loadInboxAdsFingerprint by fingerprint {
|
||||
internal val loadInboxAdsFingerprint = fingerprint {
|
||||
returns("V")
|
||||
strings(
|
||||
"ads_load_begin",
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.messenger.layout
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isFacebookButtonEnabledFingerprint by fingerprint {
|
||||
internal val isFacebookButtonEnabledFingerprint = fingerprint {
|
||||
parameters()
|
||||
returns("Z")
|
||||
strings("FacebookButtonTabButtonImplementation")
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.messenger.metaai
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getMobileConfigBoolFingerprint by fingerprint {
|
||||
internal val getMobileConfigBoolFingerprint = fingerprint {
|
||||
parameters("J")
|
||||
returns("Z")
|
||||
opcodes(Opcode.RETURN)
|
||||
@@ -12,12 +12,12 @@ internal val getMobileConfigBoolFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val metaAIKillSwitchCheckFingerprint by fingerprint {
|
||||
internal val metaAIKillSwitchCheckFingerprint = fingerprint {
|
||||
opcodes(Opcode.CONST_WIDE)
|
||||
strings("SearchAiagentImplementationsKillSwitch")
|
||||
}
|
||||
|
||||
internal val extensionMethodFingerprint by fingerprint {
|
||||
internal val extensionMethodFingerprint = fingerprint {
|
||||
strings("REPLACED_BY_PATCH")
|
||||
custom { method, classDef ->
|
||||
method.name == EXTENSION_METHOD_NAME && classDef.type == EXTENSION_CLASS_DESCRIPTOR
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.meta.ads
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val adInjectorFingerprint by fingerprint {
|
||||
internal val adInjectorFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE)
|
||||
returns("Z")
|
||||
parameters("L", "L")
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.mifitness.misc.locale
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val syncBluetoothLanguageFingerprint by fingerprint {
|
||||
internal val syncBluetoothLanguageFingerprint = fingerprint {
|
||||
opcodes(Opcode.MOVE_RESULT_OBJECT)
|
||||
custom { method, _ ->
|
||||
method.name == "syncBluetoothLanguage" &&
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.mifitness.misc.login
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val xiaomiAccountManagerConstructorFingerprint by fingerprint {
|
||||
internal val xiaomiAccountManagerConstructorFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.CONSTRUCTOR)
|
||||
parameters("Landroid/content/Context;", "Z")
|
||||
custom { method, _ ->
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.music.ad.video
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val showVideoAdsParentFingerprint by fingerprint {
|
||||
internal val showVideoAdsParentFingerprint = fingerprint {
|
||||
opcodes(
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val allowExclusiveAudioPlaybackFingerprint by fingerprint {
|
||||
internal val allowExclusiveAudioPlaybackFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
parameters()
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val repeatTrackFingerprint by fingerprint {
|
||||
internal val repeatTrackFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("V")
|
||||
parameters("L", "L")
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patches.music.shared.YOUTUBE_MUSIC_MAIN_ACTIVITY_CLASS_TYPE
|
||||
import app.revanced.patches.shared.misc.mapping.ResourceType
|
||||
import app.revanced.patches.shared.misc.mapping.resourceLiteral
|
||||
|
||||
internal val cairoSplashAnimationConfigFingerprint by fingerprint {
|
||||
internal val cairoSplashAnimationConfigFingerprint = fingerprint {
|
||||
returns("V")
|
||||
parameters("Landroid/os/Bundle;")
|
||||
instructions(
|
||||
|
||||
@@ -8,13 +8,13 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import org.stringtemplate.v4.compiler.Bytecode.instructions
|
||||
|
||||
internal val mediaRouteButtonFingerprint by fingerprint {
|
||||
internal val mediaRouteButtonFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
strings("MediaRouteButton")
|
||||
}
|
||||
|
||||
internal val playerOverlayChipFingerprint by fingerprint {
|
||||
internal val playerOverlayChipFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("L")
|
||||
instructions(
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import app.revanced.patcher.fingerprint
|
||||
import app.revanced.util.literal
|
||||
|
||||
internal val chipCloudFingerprint by fingerprint {
|
||||
internal val chipCloudFingerprint = fingerprint {
|
||||
returns("V")
|
||||
opcodes(
|
||||
Opcode.CONST,
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.Method
|
||||
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
internal val tabLayoutTextFingerprint by fingerprint {
|
||||
internal val tabLayoutTextFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("V")
|
||||
parameters("L")
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val hideGetPremiumFingerprint by fingerprint {
|
||||
internal val hideGetPremiumFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("V")
|
||||
parameters()
|
||||
@@ -16,7 +16,7 @@ internal val hideGetPremiumFingerprint by fingerprint {
|
||||
strings("FEmusic_history", "FEmusic_offline")
|
||||
}
|
||||
|
||||
internal val membershipSettingsFingerprint by fingerprint {
|
||||
internal val membershipSettingsFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Ljava/lang/CharSequence;")
|
||||
opcodes(
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.music.misc.androidauto
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val checkCertificateFingerprint by fingerprint {
|
||||
internal val checkCertificateFingerprint = fingerprint {
|
||||
returns("Z")
|
||||
parameters("Ljava/lang/String;")
|
||||
strings(
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val backgroundPlaybackDisableFingerprint by fingerprint {
|
||||
internal val backgroundPlaybackDisableFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("Z")
|
||||
parameters("L")
|
||||
@@ -21,7 +21,7 @@ internal val backgroundPlaybackDisableFingerprint by fingerprint {
|
||||
)
|
||||
}
|
||||
|
||||
internal val kidsBackgroundPlaybackPolicyControllerFingerprint by fingerprint {
|
||||
internal val kidsBackgroundPlaybackPolicyControllerFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("V")
|
||||
parameters("I", "L", "Z")
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.music.utils.fix.fileprovider
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val fileProviderResolverFingerprint by fingerprint {
|
||||
internal val fileProviderResolverFingerprint = fingerprint {
|
||||
returns("L")
|
||||
strings(
|
||||
"android.support.FILE_PROVIDER_PATHS",
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.music.misc.gms
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val musicActivityOnCreateFingerprint by fingerprint {
|
||||
internal val musicActivityOnCreateFingerprint = fingerprint {
|
||||
returns("V")
|
||||
parameters("Landroid/os/Bundle;")
|
||||
custom { method, classDef ->
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.music.misc.settings
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val googleApiActivityFingerprint by fingerprint {
|
||||
internal val googleApiActivityFingerprint = fingerprint {
|
||||
returns("V")
|
||||
parameters("Landroid/os/Bundle;")
|
||||
custom { method, classDef ->
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
|
||||
internal const val YOUTUBE_MUSIC_MAIN_ACTIVITY_CLASS_TYPE = "Lcom/google/android/apps/youtube/music/activities/MusicActivity;"
|
||||
|
||||
internal val mainActivityOnCreateFingerprint by fingerprint {
|
||||
internal val mainActivityOnCreateFingerprint = fingerprint {
|
||||
returns("V")
|
||||
parameters("Landroid/os/Bundle;")
|
||||
custom { method, classDef ->
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.myexpenses.misc.pro
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isEnabledFingerprint by fingerprint {
|
||||
internal val isEnabledFingerprint = fingerprint {
|
||||
returns("Z")
|
||||
strings("feature", "feature.licenceStatus")
|
||||
}
|
||||
@@ -3,14 +3,14 @@ package app.revanced.patches.myfitnesspal.ads
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val isPremiumUseCaseImplFingerprint by fingerprint {
|
||||
internal val isPremiumUseCaseImplFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
custom { method, classDef ->
|
||||
classDef.endsWith("IsPremiumUseCaseImpl;") && method.name == "doWork"
|
||||
}
|
||||
}
|
||||
|
||||
internal val mainActivityNavigateToNativePremiumUpsellFingerprint by fingerprint {
|
||||
internal val mainActivityNavigateToNativePremiumUpsellFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
|
||||
returns("V")
|
||||
custom { method, classDef ->
|
||||
|
||||
@@ -4,14 +4,14 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val jwPlayerConfigFingerprint by fingerprint {
|
||||
internal val jwPlayerConfigFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
custom { methodDef, classDef ->
|
||||
classDef.type == "Lcom/jwplayer/pub/api/configuration/PlayerConfig${'$'}Builder;" && methodDef.name == "advertisingConfig"
|
||||
}
|
||||
}
|
||||
|
||||
internal val screenMapperFingerprint by fingerprint {
|
||||
internal val screenMapperFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Lnl/nu/android/bff/domain/models/screen/ScreenEntity;")
|
||||
parameters("Lnl/nu/performance/api/client/objects/Screen;")
|
||||
@@ -27,7 +27,7 @@ internal val screenMapperFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val nextPageRepositoryImplFingerprint by fingerprint {
|
||||
internal val nextPageRepositoryImplFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
|
||||
returns("Lnl/nu/android/bff/domain/models/Page;")
|
||||
parameters("Lnl/nu/performance/api/client/PacResponse;", "Ljava/lang/String;")
|
||||
|
||||
@@ -11,9 +11,7 @@ val spoofCertificatePatch = bytecodePatch(
|
||||
compatibleWith("nl.sanomamedia.android.nu")
|
||||
|
||||
execute {
|
||||
getFingerprintHashForPackageFingerprints.forEach { fingerprintBuilder ->
|
||||
val fingerprint by fingerprintBuilder
|
||||
|
||||
getFingerprintHashForPackageFingerprints.forEach { fingerprint ->
|
||||
fingerprint.method.returnEarly("eae41fc018df2731a9b6ae1ac327da44a288667b")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.openinghours.misc.fix.crash
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val setPlaceFingerprint by fingerprint {
|
||||
internal val setPlaceFingerprint = fingerprint {
|
||||
returns("V")
|
||||
parameters("Lde/simon/openinghours/models/Place;")
|
||||
custom { method, _ ->
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.orfon.detection.root
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val isDeviceRootedFingeprint by fingerprint {
|
||||
internal val isDeviceRootedFingeprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
returns("Z")
|
||||
custom { method, classDef ->
|
||||
|
||||
@@ -2,13 +2,13 @@ package app.revanced.patches.pandora.ads
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getIsAdSupportedFingerprint by fingerprint {
|
||||
internal val getIsAdSupportedFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
method.name == "getIsAdSupported" && classDef.endsWith("UserData;")
|
||||
}
|
||||
}
|
||||
|
||||
internal val requestAudioAdFingerprint by fingerprint {
|
||||
internal val requestAudioAdFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
method.name == "requestAudioAdFromAdSDK" && classDef.endsWith("ContentServiceOpsImpl;")
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.pandora.misc
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val skipLimitBehaviorFingerprint by fingerprint {
|
||||
internal val skipLimitBehaviorFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
method.name == "getSkipLimitBehavior" && classDef.endsWith("UserData;")
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.photomath.detection.deviceid
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getDeviceIdFingerprint by fingerprint {
|
||||
internal val getDeviceIdFingerprint = fingerprint {
|
||||
returns("Ljava/lang/String;")
|
||||
parameters()
|
||||
opcodes(
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.photomath.detection.signature
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val checkSignatureFingerprint by fingerprint {
|
||||
internal val checkSignatureFingerprint = fingerprint {
|
||||
opcodes(
|
||||
Opcode.CONST_STRING,
|
||||
Opcode.INVOKE_STATIC,
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val hideUpdatePopupFingerprint by fingerprint {
|
||||
internal val hideUpdatePopupFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.FINAL, AccessFlags.PUBLIC)
|
||||
returns("V")
|
||||
opcodes(
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.photomath.misc.unlock.bookpoint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isBookpointEnabledFingerprint by fingerprint {
|
||||
internal val isBookpointEnabledFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
parameters()
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.photomath.misc.unlock.plus
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isPlusUnlockedFingerprint by fingerprint {
|
||||
internal val isPlusUnlockedFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
strings("genius")
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.piccomafr.misc
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getAndroidIdFingerprint by fingerprint {
|
||||
internal val getAndroidIdFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Ljava/lang/String;")
|
||||
parameters("Landroid/content/Context;")
|
||||
|
||||
@@ -3,18 +3,18 @@ package app.revanced.patches.piccomafr.tracking
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val appMeasurementFingerprint by fingerprint {
|
||||
internal val appMeasurementFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
|
||||
returns("V")
|
||||
strings("config/app/", "Fetching remote configuration")
|
||||
}
|
||||
|
||||
internal val facebookSDKFingerprint by fingerprint {
|
||||
internal val facebookSDKFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.STATIC, AccessFlags.CONSTRUCTOR)
|
||||
strings("instagram.com", "facebook.com")
|
||||
}
|
||||
|
||||
internal val firebaseInstallFingerprint by fingerprint {
|
||||
internal val firebaseInstallFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE)
|
||||
strings(
|
||||
"https://%s/%s/%s",
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.pixiv.ads
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val shouldShowAdsFingerprint by fingerprint {
|
||||
internal val shouldShowAdsFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
custom { methodDef, classDef ->
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val enterServerInsertedAdBreakStateFingerprint by fingerprint {
|
||||
internal val enterServerInsertedAdBreakStateFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
parameters("Lcom/amazon/avod/fsm/Trigger;")
|
||||
returns("V")
|
||||
@@ -19,7 +19,7 @@ internal val enterServerInsertedAdBreakStateFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val doTriggerFingerprint by fingerprint {
|
||||
internal val doTriggerFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PROTECTED)
|
||||
returns("V")
|
||||
opcodes(
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.primevideo.video.speed
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val playbackUserControlsInitializeFingerprint by fingerprint {
|
||||
internal val playbackUserControlsInitializeFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
parameters("Lcom/amazon/avod/playbackclient/PlaybackInitializationContext;")
|
||||
returns("V")
|
||||
@@ -12,7 +12,7 @@ internal val playbackUserControlsInitializeFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val playbackUserControlsPrepareForPlaybackFingerprint by fingerprint {
|
||||
internal val playbackUserControlsPrepareForPlaybackFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
parameters("Lcom/amazon/avod/playbackclient/PlaybackContext;")
|
||||
returns("V")
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.rar.misc.annoyances.purchasereminder
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
internal val showReminderFingerprint by fingerprint {
|
||||
internal val showReminderFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("V")
|
||||
custom { method, _ ->
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.ad.comments
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val hideCommentAdsFingerprint by fingerprint {
|
||||
internal val hideCommentAdsFingerprint = fingerprint {
|
||||
strings(
|
||||
"link",
|
||||
// CommentPageRepository is not returning a link object
|
||||
|
||||
@@ -3,14 +3,14 @@ package app.revanced.patches.reddit.ad.general
|
||||
import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val adPostFingerprint by fingerprint {
|
||||
internal val adPostFingerprint = fingerprint {
|
||||
returns("V")
|
||||
// "children" are present throughout multiple versions
|
||||
strings("children")
|
||||
custom { _, classDef -> classDef.endsWith("Listing;") }
|
||||
}
|
||||
|
||||
internal val newAdPostFingerprint by fingerprint {
|
||||
internal val newAdPostFingerprint = fingerprint {
|
||||
opcodes(Opcode.INVOKE_VIRTUAL)
|
||||
strings("chain", "feedElement")
|
||||
custom { _, classDef -> classDef.sourceFile == "AdElementConverter.kt" }
|
||||
|
||||
@@ -2,10 +2,10 @@ package app.revanced.patches.reddit.customclients.baconreader.api
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getAuthorizationUrlFingerprint by fingerprint {
|
||||
internal val getAuthorizationUrlFingerprint = fingerprint {
|
||||
strings("client_id=zACVn0dSFGdWqQ")
|
||||
}
|
||||
internal val getClientIdFingerprint by fingerprint {
|
||||
internal val getClientIdFingerprint = fingerprint {
|
||||
strings("client_id=zACVn0dSFGdWqQ")
|
||||
custom { method, classDef ->
|
||||
if (!classDef.endsWith("RedditOAuth;")) return@custom false
|
||||
@@ -14,6 +14,6 @@ internal val getClientIdFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val requestTokenFingerprint by fingerprint {
|
||||
internal val requestTokenFingerprint = fingerprint {
|
||||
strings("zACVn0dSFGdWqQ", "kDm2tYpu9DqyWFFyPlNcXGEni4k") // App ID and secret.
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.baconreader.fix.redgifs
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getOkHttpClientFingerprint by fingerprint {
|
||||
internal val getOkHttpClientFingerprint = fingerprint {
|
||||
returns("Lokhttp3/OkHttpClient;")
|
||||
parameters()
|
||||
custom { method, classDef ->
|
||||
|
||||
@@ -2,10 +2,10 @@ package app.revanced.patches.reddit.customclients.boostforreddit.ads
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val maxMediationFingerprint by fingerprint {
|
||||
internal val maxMediationFingerprint = fingerprint {
|
||||
strings("MaxMediation: Attempting to initialize SDK")
|
||||
}
|
||||
|
||||
internal val admobMediationFingerprint by fingerprint {
|
||||
internal val admobMediationFingerprint = fingerprint {
|
||||
strings("AdmobMediation: Attempting to initialize SDK")
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@ package app.revanced.patches.reddit.customclients.boostforreddit.api
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val buildUserAgentFingerprint by fingerprint {
|
||||
internal val buildUserAgentFingerprint = fingerprint {
|
||||
strings("%s:%s:%s (by /u/%s)")
|
||||
}
|
||||
|
||||
internal val getClientIdFingerprint by fingerprint {
|
||||
internal val getClientIdFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
if (!classDef.endsWith("Credentials;")) return@custom false
|
||||
|
||||
|
||||
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.boostforreddit.fix.downloads
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val downloadAudioFingerprint by fingerprint {
|
||||
internal val downloadAudioFingerprint = fingerprint {
|
||||
strings("/DASH_audio.mp4", "/audio")
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val createOkHttpClientFingerprint by fingerprint {
|
||||
internal val createOkHttpClientFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE)
|
||||
opcodes(
|
||||
Opcode.NEW_INSTANCE,
|
||||
|
||||
@@ -3,14 +3,14 @@ package app.revanced.patches.reddit.customclients.boostforreddit.fix.slink
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getOAuthAccessTokenFingerprint by fingerprint {
|
||||
internal val getOAuthAccessTokenFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
returns("Ljava/lang/String")
|
||||
strings("access_token")
|
||||
custom { method, _ -> method.definingClass == "Lnet/dean/jraw/http/oauth/OAuthData;" }
|
||||
}
|
||||
|
||||
internal val handleNavigationFingerprint by fingerprint {
|
||||
internal val handleNavigationFingerprint = fingerprint {
|
||||
strings(
|
||||
"android.intent.action.SEARCH",
|
||||
"subscription",
|
||||
|
||||
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.infinityforreddit.api
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val apiUtilsFingerprint by fingerprint {
|
||||
internal val apiUtilsFingerprint = fingerprint {
|
||||
strings("native-lib")
|
||||
}
|
||||
@@ -3,11 +3,11 @@ package app.revanced.patches.reddit.customclients.infinityforreddit.subscription
|
||||
import app.revanced.patcher.fingerprint
|
||||
import app.revanced.patcher.literal
|
||||
|
||||
internal val billingClientOnServiceConnectedFingerprint by fingerprint {
|
||||
internal val billingClientOnServiceConnectedFingerprint = fingerprint {
|
||||
strings("Billing service connected")
|
||||
}
|
||||
|
||||
internal val startSubscriptionActivityFingerprint by fingerprint {
|
||||
internal val startSubscriptionActivityFingerprint = fingerprint {
|
||||
instructions(
|
||||
literal(0x10008000) // Intent start flag only used in the subscription activity
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.joeyforreddit.ads
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isAdFreeUserFingerprint by fingerprint {
|
||||
internal val isAdFreeUserFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC)
|
||||
returns("Z")
|
||||
strings("AD_FREE_USER")
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val authUtilityUserAgentFingerprint by fingerprint {
|
||||
internal val authUtilityUserAgentFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("Ljava/lang/String;")
|
||||
opcodes(Opcode.APUT_OBJECT)
|
||||
@@ -13,7 +13,7 @@ internal val authUtilityUserAgentFingerprint by fingerprint {
|
||||
}
|
||||
}
|
||||
|
||||
internal val getClientIdFingerprint by fingerprint {
|
||||
internal val getClientIdFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("L")
|
||||
opcodes(
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val piracyDetectionFingerprint by fingerprint {
|
||||
internal val piracyDetectionFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC)
|
||||
returns("V")
|
||||
opcodes(
|
||||
|
||||
@@ -9,15 +9,15 @@ internal fun baseClientIdFingerprint(string: String) = fingerprint {
|
||||
strings("yyOCBp.RHJhDKd", string)
|
||||
}
|
||||
|
||||
internal val basicAuthorizationFingerprint by baseClientIdFingerprint(
|
||||
internal val basicAuthorizationFingerprint = baseClientIdFingerprint(
|
||||
string = "fJOxVwBUyo*=f:<OoejWs:AqmIJ", // Encrypted basic authorization string.
|
||||
)
|
||||
|
||||
internal val buildAuthorizationStringFingerprint by baseClientIdFingerprint(
|
||||
internal val buildAuthorizationStringFingerprint = baseClientIdFingerprint(
|
||||
string = "client_id",
|
||||
)
|
||||
|
||||
internal val getUserAgentFingerprint by fingerprint {
|
||||
internal val getUserAgentFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("Ljava/lang/String;")
|
||||
parameters()
|
||||
|
||||
@@ -7,20 +7,20 @@ internal fun baseClientIdFingerprint(string: String) = fingerprint {
|
||||
strings("dj-xCIZQYiLbEg", string)
|
||||
}
|
||||
|
||||
internal val getLoggedInBearerTokenFingerprint by baseClientIdFingerprint("authorization_code")
|
||||
internal val getLoggedInBearerTokenFingerprint = baseClientIdFingerprint("authorization_code")
|
||||
|
||||
internal val getLoggedOutBearerTokenFingerprint by baseClientIdFingerprint("https://oauth.reddit.com/grants/installed_client")
|
||||
internal val getLoggedOutBearerTokenFingerprint = baseClientIdFingerprint("https://oauth.reddit.com/grants/installed_client")
|
||||
|
||||
internal val getRefreshTokenFingerprint by baseClientIdFingerprint("refresh_token")
|
||||
internal val getRefreshTokenFingerprint = baseClientIdFingerprint("refresh_token")
|
||||
|
||||
internal val loginActivityClientIdFingerprint by baseClientIdFingerprint("&duration=permanent")
|
||||
internal val loginActivityClientIdFingerprint = baseClientIdFingerprint("&duration=permanent")
|
||||
|
||||
internal val redditCheckDisableAPIFingerprint by fingerprint {
|
||||
internal val redditCheckDisableAPIFingerprint = fingerprint {
|
||||
opcodes(Opcode.IF_EQZ)
|
||||
strings("Reddit Disabled")
|
||||
}
|
||||
|
||||
internal val setRemoteConfigFingerprint by fingerprint {
|
||||
internal val setRemoteConfigFingerprint = fingerprint {
|
||||
parameters("Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;")
|
||||
strings("reddit_oauth_url")
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.slide.api
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val getClientIdFingerprint by fingerprint {
|
||||
internal val getClientIdFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
if (!classDef.endsWith("Credentials;")) return@custom false
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.sync.ads
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val isAdsEnabledFingerprint by fingerprint {
|
||||
internal val isAdsEnabledFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
|
||||
returns("Z")
|
||||
strings("SyncIapHelper")
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.reference.Reference
|
||||
|
||||
internal val piracyDetectionFingerprint by fingerprint {
|
||||
internal val piracyDetectionFingerprint = fingerprint {
|
||||
accessFlags(AccessFlags.PRIVATE, AccessFlags.FINAL)
|
||||
returns("V")
|
||||
opcodes(
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user