From 9aae2f003277158904162f4385eb806fda815699 Mon Sep 17 00:00:00 2001 From: inotia00 Date: Sun, 18 Jun 2023 22:21:37 +0900 Subject: [PATCH] build: bump patcher to 11.0.1 --- .github/ISSUE_TEMPLATE/bug-issue.yml | 2 +- .github/ISSUE_TEMPLATE/patch-request.yml | 6 ++-- .github/config.yml | 2 ++ .github/workflows/pull_request.yml | 7 ++++- .github/workflows/release.yml | 25 ++++++---------- build.gradle.kts | 6 ++-- .../app/revanced/extensions/Extensions.kt | 8 ----- .../app/revanced/meta/PatchesFileGenerator.kt | 2 +- .../app/revanced/meta/ReadmeGenerator.kt | 6 ++-- .../patch/DisableAutoCaptionsPatch.kt | 24 ++++++++------- .../fingerprints/TabLayoutFingerprint.kt | 4 +-- .../blacknavbar/patch/BlackNavbarPatch.kt | 6 ++-- .../fingerprints/HideCastButtonFingerprint.kt | 2 +- .../HideCastButtonParentFingerprint.kt | 2 +- .../castbutton/patch/HideCastButtonPatch.kt | 2 +- .../fingerprints/ChipCloudFingerprint.kt | 2 +- .../categorybar/patch/CategoryBarPatch.kt | 6 ++-- .../ColorMatchPlayerFingerprint.kt | 2 +- .../patch/ColorMatchPlayerPatch.kt | 16 +++++----- .../fingerprints/DialogSolidFingerprint.kt | 4 +-- .../compactdialog/patch/CompactDialogPatch.kt | 2 +- .../fingerprints/FloatingButtonFingerprint.kt | 2 +- .../FloatingButtonParentFingerprint.kt | 4 +-- .../patch/NewPlaylistButtonPatch.kt | 24 ++++++++------- .../TabletIdentifierFingerprint.kt | 4 +-- .../landscapemode/patch/LandScapeModePatch.kt | 2 +- .../MinimizedPlayerFingerprint.kt | 2 +- .../patch/MinimizedPlayerPatch.kt | 2 +- .../fingerprints/ZenModeFingerprint.kt | 2 +- .../layout/zenmode/patch/ZenModePatch.kt | 14 ++++----- .../patch/AndroidAutoCertificatePatch.kt | 2 +- .../BackgroundPlaybackParentFingerprint.kt | 4 +-- .../patch/BackgroundPlayPatch.kt | 2 +- .../patch/ClientSpoofMusicPatch.kt | 6 ++-- .../fingerprints/AllCodecsFingerprint.kt | 2 +- .../AllCodecsParentFingerprint.kt | 2 +- .../fingerprints/CodecsLockFingerprint.kt | 2 +- .../misc/codecs/patch/CodecsUnlockPatch.kt | 14 +++++---- .../AudioOnlyEnablerFingerprint.kt | 2 +- .../patch/ExclusiveAudioPatch.kt | 4 +-- .../misc/litho/patch/MusicLithoFilterPatch.kt | 18 ++++++------ .../MinimizedPlaybackManagerFingerprint.kt | 2 +- .../patch/MinimizedPlaybackPatch.kt | 2 +- .../AccountMenuFooterFingerprint.kt | 4 +-- .../fingerprints/HideGetPremiumFingerprint.kt | 2 +- .../misc/premium/patch/HideGetPremiumPatch.kt | 12 ++++---- .../MusicVideoQualitySetterFingerprint.kt | 2 +- ...usicVideoQualitySetterParentFingerprint.kt | 2 +- .../MusicVideoQualitySettingsFingerprint.kt | 2 +- ...icVideoQualitySettingsParentFingerprint.kt | 2 +- .../misc/quality/patch/VideoQualityPatch.kt | 10 +++---- .../fingerprints/PreferenceFingerprint.kt | 2 +- .../SettingsHeadersFragmentFingerprint.kt | 2 +- .../patch/MusicSettingsBytecodePatch.kt | 10 +++---- .../FullStackTraceActivityFingerprint.kt | 2 +- .../patch/ShareButtonHookPatch.kt | 13 +++++---- .../MusicPlaybackControlsFingerprint.kt | 4 +-- .../fingerprints/ShuffleClassFingerprint.kt | 4 +-- .../ShuffleClassReferenceFingerprint.kt | 2 +- .../misc/shuffle/patch/EnforceShufflePatch.kt | 18 ++++++------ .../MusicPlaybackControlsClickFingerprint.kt | 2 +- .../MusicPlaybackControlsTimeFingerprint.kt | 2 +- .../patch/SleepTimerHookPatch.kt | 2 +- .../TasteBuilderConstructorFingerprint.kt | 2 +- .../patch/RemoveTasteBuilderPatch.kt | 6 ++-- .../fingerprints/NotifierShelfFingerprint.kt | 4 +-- .../PivotBarConstructorFingerprint.kt | 4 +-- .../patch/RemoveUpgradeButtonPatch.kt | 21 +++++++------- .../fingerprint/MusicVideoIdFingerprint.kt | 2 +- .../misc/videoid/patch/MusicVideoIdPatch.kt | 7 +++-- .../fingerprints/ClientInfoFingerprint.kt | 2 +- .../ColorMatchPlayerParentFingerprint.kt | 2 +- .../LayoutConstructorFingerprint.kt | 2 +- .../fingerprints/LayoutSwitchFingerprint.kt | 2 +- .../fingerprints/LegacyVideoAdsFingerprint.kt | 4 +-- .../fingerprints/LithoBufferFingerprint.kt | 2 +- .../shared/fingerprints/LithoFingerprint.kt | 2 +- .../fingerprints/LithoObjectFingerprint.kt | 2 +- .../PivotBarCreateButtonViewFingerprint.kt | 4 +-- .../SubtitleButtonControllerFingerprint.kt | 7 +++-- .../fingerprints/SubtitleTrackFingerprint.kt | 2 +- .../fingerprints/TotalTimeFingerprint.kt | 2 +- .../integrations/AbstractIntegrationsPatch.kt | 22 ++++++++++---- .../versionspoof/GeneralVersionSpoofPatch.kt | 2 +- .../patch/videoads/GeneralVideoAdsPatch.kt | 9 +++--- .../fingerprint/OnBackPressedFingerprint.kt | 2 +- .../fingerprint/ScrollPositionFingerprint.kt | 2 +- .../fingerprint/ScrollTopFingerprint.kt | 2 +- .../fingerprint/ScrollTopParentFingerprint.kt | 4 +-- .../patch/DoubleBackToClosePatch.kt | 2 +- .../bytecode/patch/GeneralAdsBytecodePatch.kt | 6 ++-- .../CompactYpcOfferModuleViewFingerprint.kt | 7 ++++- .../getpremium/patch/HideGetPremiumPatch.kt | 12 ++++---- .../SwipeRefreshLayoutFingerprint.kt | 4 +-- .../swiperefresh/patch/SwipeRefreshPatch.kt | 6 ++-- .../AutoNavInformerFingerprint.kt | 4 +-- .../fingerprints/RepeatListenerFingerprint.kt | 2 +- .../fingerprints/VideoEndFingerprint.kt | 4 +-- .../fingerprints/VideoEndParentFingerprint.kt | 2 +- .../autorepeat/patch/AutoRepeatPatch.kt | 25 +++++++++------- .../fingerprints/PrimaryPiPFingerprint.kt | 2 +- .../fingerprints/SecondaryPiPFingerprint.kt | 2 +- .../patch/PiPNotificationPatch.kt | 2 +- .../TooltipContentViewFingerprint.kt | 4 +-- .../tooltip/patch/TooltipContentViewPatch.kt | 2 +- .../QualityMenuViewInflateFingerprint.kt | 2 +- .../patch/OldQualityLayoutPatch.kt | 6 ++-- .../patch/HideAutoplayPreviewPatch.kt | 12 ++++---- .../EndScreenResultsFingerprint.kt | 2 +- .../patch/HideEndScreenOverlayPatch.kt | 8 ++--- .../fingerprints/ScrubbingLabelFingerprint.kt | 2 +- .../patch/HideFilmstripOverlayPatch.kt | 10 +++---- .../FullscreenViewAdderFingerprint.kt | 2 +- .../patch/HideFullscreenPanelsPatch.kt | 15 +++++----- .../patch/HapticFeedBackPatch.kt | 25 +++++++++------- .../OrientationPrimaryFingerprint.kt | 4 +-- .../OrientationSecondaryFingerprint.kt | 2 +- .../landscapemode/patch/LandScapeModePatch.kt | 6 ++-- .../SeekEduContainerFingerprint.kt | 2 +- .../seekmessage/patch/SeekMessagePatch.kt | 8 ++--- .../AccountMenuParentFingerprint.kt | 2 +- .../accountmenu/patch/AccountMenuPatch.kt | 8 ++--- .../StartVideoInformerFingerprint.kt | 2 +- .../autocaptions/patch/AutoCaptionsPatch.kt | 9 +++--- .../EngagementPanelControllerFingerprint.kt | 2 +- .../patch/PlayerPopupPanelsPatch.kt | 8 ++--- .../fingerprints/BreakingNewsFingerprint.kt | 2 +- .../breakingnews/patch/BreakingNewsPatch.kt | 6 ++-- .../FilterBarHeightFingerprint.kt | 2 +- .../RelatedChipCloudFingerprint.kt | 2 +- .../SearchResultsChipBarFingerprint.kt | 2 +- .../categorybar/patch/CategoryBarPatch.kt | 12 ++++---- .../ChannelListSubMenuFingerprint.kt | 2 +- .../patch/ChannelListSubMenuPatch.kt | 6 ++-- .../CrowdfundingBoxFingerprint.kt | 2 +- .../patch/CrowdfundingBoxPatch.kt | 6 ++-- .../FloatingMicrophoneFingerprint.kt | 2 +- .../patch/FloatingMicrophonePatch.kt | 6 ++-- .../headerswitch/patch/HeaderSwitchPatch.kt | 2 +- .../fingerprints/LoadMoreButtonFingerprint.kt | 2 +- .../patch/LoadMoreButtonPatch.kt | 6 ++-- ...ntSwitcherAccessibilityLabelFingerprint.kt | 2 +- .../patch/HideEmailAddressPatch.kt | 6 ++-- .../fingerprints/SearchEndpointFingerprint.kt | 2 +- .../SearchEndpointParentFingerprint.kt | 2 +- .../SearchSuggestionEntryFingerprint.kt | 2 +- .../searchterms/patch/SearchTermsPatch.kt | 8 ++--- .../fingerprints/HideSnackBarFingerprint.kt | 4 +-- .../snackbar/patch/HideSnackBarPatch.kt | 8 ++--- ...niPlayerDimensionsCalculatorFingerprint.kt | 4 +-- .../MiniPlayerOverrideFingerprint.kt | 2 +- .../MiniPlayerOverrideNoContextFingerprint.kt | 2 +- ...PlayerResponseModelSizeCheckFingerprint.kt | 2 +- .../patch/TabletMiniPlayerPatch.kt | 8 ++--- .../WideSearchbarOneFingerprint.kt | 2 +- .../WideSearchbarOneParentFingerprint.kt | 2 +- .../WideSearchbarTwoFingerprint.kt | 2 +- .../WideSearchbarTwoParentFingerprint.kt | 2 +- .../bytecode/patch/WideSearchbarPatch.kt | 2 +- .../homepage/patch/ChangeHomePagePatch.kt | 9 +++--- .../PivotBarSetTextFingerprint.kt | 4 +-- .../label/patch/NavigationLabelPatch.kt | 8 ++--- .../patch/NavigationButtonsPatch.kt | 6 ++-- .../ReelWatchEndpointFingerprint.kt | 2 +- .../fingerprints/SetPivotBarFingerprint.kt | 2 +- .../shortsnavbar/patch/ShortsNavBarPatch.kt | 10 +++---- .../PivotBarChangedFingerprint.kt | 2 +- .../fingerprints/PivotBarStyleFingerprint.kt | 2 +- .../patch/TabletNavigationBarPatch.kt | 6 ++-- .../patch/HideAutoplayButtonPatch.kt | 12 ++++---- .../patch/HideCaptionsButtonPatch.kt | 2 +- .../castbutton/patch/HideCastButtonPatch.kt | 2 +- .../fingerprints/LayoutCircleFingerprint.kt | 2 +- .../fingerprints/LayoutIconFingerprint.kt | 2 +- .../fingerprints/LayoutVideoFingerprint.kt | 2 +- .../patch/HideEndscreenCardsPatch.kt | 4 +-- .../InfocardsIncognitoFingerprint.kt | 2 +- .../InfocardsIncognitoParentFingerprint.kt | 2 +- .../infocards/patch/HideInfocardsPatch.kt | 2 +- .../MusicAppDeeplinkButtonFingerprint.kt | 2 +- .../musicbutton/patch/HideMusicButtonPatch.kt | 7 +++-- .../HidePlayerButtonFingerprint.kt | 2 +- .../patch/HidePlayerButtonBackgroundPatch.kt | 2 +- .../fingerprints/ScrimOverlayFingerprint.kt | 2 +- .../patch/PlayerOverlayFilterPatch.kt | 8 ++--- .../SupportsNextPreviousFingerprint.kt | 2 +- .../patch/HidePreviousNextButtonPatch.kt | 2 +- .../SuggestedActionsFingerprint.kt | 2 +- .../patch/SuggestedActionsPatch.kt | 4 +-- .../fingerprints/HideWatermarkFingerprint.kt | 2 +- .../HideWatermarkParentFingerprint.kt | 2 +- .../patch/HideChannelWatermarkPatch.kt | 8 ++--- .../seekbar/seekbar/patch/HideSeekbarPatch.kt | 8 ++--- .../ControlsOverlayFingerprint.kt | 2 +- .../ControlsOverlayParentFingerprint.kt | 2 +- .../fingerprints/SeekbarColorFingerprint.kt | 2 +- .../patch/SeekbarColorBytecodePatch.kt | 8 ++--- .../fingerprints/SeekbarTappingFingerprint.kt | 4 +-- .../SeekbarTappingParentFingerprint.kt | 4 +-- .../patch/SeekbarTappingPatch.kt | 10 +++---- .../seekbar/speed/patch/AppendSpeedPatch.kt | 8 ++--- .../fingerprints/TimeCounterFingerprint.kt | 2 +- .../timestamps/patch/HideTimeStampPatch.kt | 8 ++--- .../fingerprints/ShortsCommentFingerprint.kt | 2 +- .../ShortsInfoPanelFingerprint.kt | 2 +- .../ShortsPaidContentFingerprint.kt | 2 +- .../fingerprints/ShortsRemixFingerprint.kt | 2 +- .../ShortsSubscriptionsFingerprint.kt | 2 +- ...rtsSubscriptionsTabletParentFingerprint.kt | 2 +- .../patch/ShortsCommentButtonPatch.kt | 6 ++-- .../patch/ShortsInfoPanelPatch.kt | 6 ++-- .../patch/ShortsPaidContentBannerPatch.kt | 6 ++-- .../patch/ShortsRemixButtonPatch.kt | 6 ++-- .../patch/ShortsSubscriptionsButtonPatch.kt | 12 ++++---- .../UserWasInShortsFingerprint.kt | 2 +- .../patch/DisableShortsOnStartupPatch.kt | 10 +++---- .../fingerprints/PowerSaveModeFingerprint.kt | 4 +-- .../ambientmode/patch/PowerSaveModePatch.kt | 2 +- .../clientspoof/patch/ClientSpoofPatch.kt | 6 ++-- .../ExternalBrowserPrimaryFingerprint.kt | 2 +- .../ExternalBrowserSecondaryFingerprint.kt | 2 +- .../ExternalBrowserTertiaryFingerprint.kt | 2 +- .../patch/ExternalBrowserPatch.kt | 6 ++-- .../VideoCapabilitiesFingerprint.kt | 2 +- .../fingerprints/Vp9PrimaryFingerprint.kt | 2 +- .../fingerprints/Vp9PropsFingerprint.kt | 2 +- .../fingerprints/Vp9SecondaryFingerprint.kt | 2 +- .../misc/forcevp9/patch/ForceVP9CodecPatch.kt | 12 ++++---- .../fingerprints/ServiceFingerprint.kt | 2 +- .../layoutswitch/patch/LayoutSwitchPatch.kt | 9 +++--- .../fingerprints/LithoThemeFingerprint.kt | 4 +-- .../misc/litho/patch/ByteBufferFilterPatch.kt | 9 +++--- .../misc/litho/patch/LithoFilterPatch.kt | 24 +++++++-------- .../misc/litho/patch/LithoThemePatch.kt | 2 +- .../GooglePlayUtilityFingerprint.kt | 2 +- ...izedPlaybackPolicyControllerFingerprint.kt | 4 +-- .../MinimizedPlaybackManagerFingerprint.kt | 4 +-- .../MinimizedPlaybackSettingsFingerprint.kt | 4 +-- .../patch/MinimizedPlaybackPatch.kt | 4 +-- .../OpenLinksDirectlyFingerprintPrimary.kt | 2 +- .../OpenLinksDirectlyFingerprintSecondary.kt | 2 +- .../patch/OpenLinksDirectlyPatch.kt | 6 ++-- .../fingerprints/SpeedClassFingerprint.kt | 2 +- .../VideoSpeedChangedFingerprint.kt | 2 +- .../VideoSpeedParentFingerprint.kt | 2 +- .../VideoSpeedPatchFingerprint.kt | 4 +-- .../VideoSpeedSettingsFingerprint.kt | 2 +- .../bytecode/patch/OverrideSpeedHookPatch.kt | 14 +++++---- .../fingerprints/LiveChatFingerprint.kt | 2 +- .../playerbutton/patch/PlayerButtonPatch.kt | 6 ++-- .../BottomControlsInflateFingerprint.kt | 2 +- .../ControlsLayoutInflateFingerprint.kt | 2 +- .../PlayerControlsVisibilityFingerprint.kt | 2 +- .../fingerprints/SeekEDUVisibleFingerprint.kt | 2 +- .../fingerprints/UserScrubbingFingerprint.kt | 2 +- .../patch/PlayerControlsPatch.kt | 6 ++-- ...layerOverlaysOnFinishInflateFingerprint.kt | 2 +- .../patch/PlayerOverlaysHookPatch.kt | 2 +- .../UpdatePlayerTypeFingerprint.kt | 4 +-- .../playertype/patch/PlayerTypeHookPatch.kt | 2 +- .../fingerprints/SubtitleWindowFingerprint.kt | 2 +- .../protobufpoof/patch/ProtobufSpoofPatch.kt | 4 +-- .../CronetEngineBuilderFingerprint.kt | 4 +-- ...erimentalCronetEngineBuilderFingerprint.kt | 4 +-- .../misc/quic/patch/QUICProtocolPatch.kt | 2 +- ...TextComponentAtomicReferenceFingerprint.kt | 2 +- .../TextComponentConstructorFingerprint.kt | 2 +- .../TextComponentContextFingerprint.kt | 2 +- .../TextComponentTmpFingerprint.kt | 2 +- .../patch/ReturnYouTubeDislikePatch.kt | 14 ++++----- .../fingerprints/ButtonTagFingerprint.kt | 4 +-- .../ButtonTagOnClickFingerprint.kt | 2 +- .../SlimMetadataButtonParentFingerprint.kt | 2 +- .../SlimMetadataButtonTextFingerprint.kt | 2 +- .../SlimMetadataButtonViewFingerprint.kt | 2 +- .../ReturnYouTubeDislikeOldLayoutPatch.kt | 18 ++++++------ .../patch/ReturnYouTubeDislikeShortsPatch.kt | 8 ++--- .../ThemeSetterSystemFingerprint.kt | 2 +- .../bytecode/patch/SettingsBytecodePatch.kt | 4 +-- .../OverlayViewLayoutFingerprint.kt | 2 +- .../PlayerControllerFingerprint.kt | 2 +- .../patch/SponsorBlockBytecodePatch.kt | 18 ++++++------ .../timebar/fingerprints/OnDrawFingerprint.kt | 4 +-- .../fingerprint/LegacyVideoIdFingerprint.kt | 4 +-- .../legacy/patch/LegacyVideoIdPatch.kt | 2 +- .../MainstreamVideoIdFingerprint.kt | 4 +-- .../fingerprint/TimebarFingerprint.kt | 4 +-- .../VideoTimeHighPrecisionFingerprint.kt | 2 +- .../patch/MainstreamVideoIdPatch.kt | 10 ++++--- .../SwipeControlsHostActivityFingerprint.kt | 2 +- .../WatchWhileActivityFingerprint.kt | 2 +- .../patch/SwipeControlsHDRPatch.kt | 8 ++--- .../SpeedArrayGeneratorFingerprint.kt | 2 +- .../fingerprints/SpeedLimiterFingerprint.kt | 2 +- .../VideoSpeedEntriesFingerprint.kt | 2 +- .../patch/CustomVideoSpeedBytecodePatch.kt | 29 ++++++++++++------- .../HdrCapabilitiesFingerprint.kt | 2 +- .../video/hdr/patch/DisableHdrVideoPatch.kt | 8 ++--- .../video/livestream/patch/LiveStreamPatch.kt | 2 +- .../VideoQualityReferenceFingerprint.kt | 2 +- .../VideoQualitySetterFingerprint.kt | 2 +- .../VideoQualitySettingsFingerprint.kt | 2 +- .../VideoQualitySettingsParentFingerprint.kt | 2 +- .../VideoUserQualityChangeFingerprint.kt | 4 +-- .../patch/VideoQualityBytecodePatch.kt | 4 +-- .../VideoSpeedSettingsFingerprint.kt | 2 +- .../bytecode/patch/VideoSpeedBytecodePatch.kt | 2 +- .../revanced/util/bytecode/BytecodeHelper.kt | 4 +-- .../util/microg/MicroGBytecodeHelper.kt | 4 +-- .../revanced/util/pivotbar/InjectionUtils.kt | 6 ++-- 310 files changed, 760 insertions(+), 715 deletions(-) create mode 100644 .github/config.yml diff --git a/.github/ISSUE_TEMPLATE/bug-issue.yml b/.github/ISSUE_TEMPLATE/bug-issue.yml index 193df90b4..6b98f0483 100644 --- a/.github/ISSUE_TEMPLATE/bug-issue.yml +++ b/.github/ISSUE_TEMPLATE/bug-issue.yml @@ -1,6 +1,6 @@ name: 🐞 Bug report description: Report a very clearly broken issue. -title: 'bug: ' +title: 'bug: ' labels: [bug] body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/patch-request.yml b/.github/ISSUE_TEMPLATE/patch-request.yml index 53b1373a1..35084c206 100644 --- a/.github/ISSUE_TEMPLATE/patch-request.yml +++ b/.github/ISSUE_TEMPLATE/patch-request.yml @@ -1,6 +1,6 @@ name: ⭐ Patch Request description: Create a detailed patch request. -title: 'feat(patch): ' +title: 'feat: ' labels: [patch-request] body: - type: textarea @@ -24,7 +24,7 @@ body: - type: textarea attributes: label: Motivation - description: Why should your patch request should be considered? What makes it valuable to the community? + description: Why should your patch request be considered? What makes it valuable to the community? validations: required: true - type: checkboxes @@ -38,4 +38,4 @@ body: - label: I have written a short but informative title. required: true - label: I filled out all of the requested information in this issue properly. - required: true \ No newline at end of file + required: true diff --git a/.github/config.yml b/.github/config.yml new file mode 100644 index 000000000..09ed019c1 --- /dev/null +++ b/.github/config.yml @@ -0,0 +1,2 @@ +firstPRMergeComment: > + Thank you for contributing to ReVanced. Join us on [Discord](https://revanced.app/discord) if you want to receive a contributor role. diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 605e7a721..8b208066e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -21,5 +21,10 @@ jobs: with: destination_branch: 'main' pr_title: 'chore: ${{ env.MESSAGE }}' - pr_body: 'This pull request will ${{ env.MESSAGE }}.' + pr_body: | + This pull request will ${{ env.MESSAGE }}. + + ## Dependencies before merge + + - [ ] https://github.com/revanced/revanced-integrations pr_draft: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 239f7de86..9f32cb0a2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,23 +23,16 @@ jobs: # https://github.com/cycjimmy/semantic-release-action#private-packages persist-credentials: false fetch-depth: 0 - - name: Setup JDK - uses: actions/setup-java@v3 + - name: Cache + uses: actions/cache@v3 with: - java-version: '17' - distribution: 'zulu' - cache: gradle - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: '18' - cache: 'npm' - - name: Setup Android SDK - uses: amyu/setup-android@v2 - with: - cache-disabled: false - sdk-version: '33' - build-tools-version: '33.0.2' + path: | + ${{ runner.home }}/.gradle/caches + ${{ runner.home }}/.gradle/wrapper + .gradle + build + node_modules + key: ${{ runner.os }}-gradle-npm-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'package-lock.json') }} - name: Build with Gradle env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/build.gradle.kts b/build.gradle.kts index 13e62633b..a184f4718 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - kotlin("jvm") version "1.8.20" + kotlin("jvm") version "1.8.22" } group = "app.revanced" @@ -20,7 +20,7 @@ repositories { } dependencies { - implementation("app.revanced:revanced-patcher:7.1.1") + implementation("app.revanced:revanced-patcher:11.0.1") implementation("app.revanced:multidexlib2:2.5.3-a3836654") // Required for meta implementation("com.google.code.gson:gson:2.10.1") @@ -33,7 +33,7 @@ tasks { doLast { val androidHome = System.getenv("ANDROID_HOME") ?: throw GradleException("ANDROID_HOME not found") - val d8 = "${androidHome}/build-tools/33.0.2/d8" + val d8 = "${androidHome}/build-tools/34.0.0/d8" val input = configurations.archives.get().allArtifacts.files.files.first().absolutePath val work = File("${buildDir}/libs") diff --git a/src/main/kotlin/app/revanced/extensions/Extensions.kt b/src/main/kotlin/app/revanced/extensions/Extensions.kt index 36f9c4e07..df26630f9 100644 --- a/src/main/kotlin/app/revanced/extensions/Extensions.kt +++ b/src/main/kotlin/app/revanced/extensions/Extensions.kt @@ -2,9 +2,7 @@ package app.revanced.extensions import app.revanced.patcher.extensions.MethodFingerprintExtensions.name import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultError -import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.util.proxy.mutableTypes.MutableClass import app.revanced.patcher.util.proxy.mutableTypes.MutableField import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod @@ -80,10 +78,4 @@ internal fun String.startsWithAny(vararg prefixes: String): Boolean { return false } -internal fun toResult(errorIndex: Int): PatchResult { - return if (errorIndex == -1) - PatchResultSuccess() - else - PatchResultError("Instruction not found: $errorIndex") -} diff --git a/src/main/kotlin/app/revanced/meta/PatchesFileGenerator.kt b/src/main/kotlin/app/revanced/meta/PatchesFileGenerator.kt index d34898778..62667a331 100644 --- a/src/main/kotlin/app/revanced/meta/PatchesFileGenerator.kt +++ b/src/main/kotlin/app/revanced/meta/PatchesFileGenerator.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.patch.Patch import app.revanced.patcher.util.patch.PatchBundle import java.io.File -typealias PatchBundlePatches = List<Class<out Patch<Context>>> +internal typealias PatchBundlePatches = List<Class<out Patch<Context>>> internal interface PatchesFileGenerator { fun generate(bundle: PatchBundlePatches) diff --git a/src/main/kotlin/app/revanced/meta/ReadmeGenerator.kt b/src/main/kotlin/app/revanced/meta/ReadmeGenerator.kt index 530ca0500..e8a951eac 100644 --- a/src/main/kotlin/app/revanced/meta/ReadmeGenerator.kt +++ b/src/main/kotlin/app/revanced/meta/ReadmeGenerator.kt @@ -5,6 +5,7 @@ import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages import app.revanced.patcher.extensions.PatchExtensions.description import app.revanced.patcher.extensions.PatchExtensions.patchName import app.revanced.patcher.patch.Patch +import com.unascribed.flexver.FlexVerComparator import java.io.File internal class ReadmeGenerator : PatchesFileGenerator { @@ -37,9 +38,8 @@ internal class ReadmeGenerator : PatchesFileGenerator { } }.let { commonMap -> commonMap.maxByOrNull { it.value }?.value?.let { - // This is not foolproof, because for example v1.0.0-dev.0 will be returned instead of v1.0.0-release. - // Unfortunately this can not be solved easily because versioning can be complex. - commonMap.entries.filter { mostCommon -> mostCommon.value == it }.maxBy { it.key }.key + commonMap.entries.filter { mostCommon -> mostCommon.value == it } + .maxOfWith(FlexVerComparator::compare, Map.Entry<String, Int>::key) } ?: "all" } diff --git a/src/main/kotlin/app/revanced/patches/music/layout/autocaptions/patch/DisableAutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/autocaptions/patch/DisableAutoCaptionsPatch.kt index 7a55a0eea..997bfa33e 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/autocaptions/patch/DisableAutoCaptionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/autocaptions/patch/DisableAutoCaptionsPatch.kt @@ -5,7 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.* +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -29,15 +30,18 @@ class DisableAutoCaptionsPatch : BytecodePatch( ) { override fun execute(context: BytecodeContext): PatchResult { - SubtitleTrackFingerprint.result?.mutableMethod?.let { - val index = it.implementation!!.instructions.size - 1 - val register = it.instruction<OneRegisterInstruction>(index).registerA - it.addInstructions( - index, """ - invoke-static {v$register}, $MUSIC_LAYOUT->disableAutoCaptions(Z)Z - move-result v$register - """ - ) + SubtitleTrackFingerprint.result?.let { + it.mutableMethod.apply { + val index = implementation!!.instructions.size - 1 + val register = getInstruction<OneRegisterInstruction>(index).registerA + + addInstructions( + index, """ + invoke-static {v$register}, $MUSIC_LAYOUT->disableAutoCaptions(Z)Z + move-result v$register + """ + ) + } } ?: return SubtitleTrackFingerprint.toErrorResult() MusicSettingsPatch.addMusicPreference(CategoryType.LAYOUT, "revanced_disable_auto_captions", "false") diff --git a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt index 2608de072..83c6a42f5 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt @@ -9,13 +9,13 @@ import org.jf.dexlib2.Opcode object TabLayoutFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.CONST, Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT ), - customFingerprint = { it.isWideLiteralExists(colorGreyId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(colorGreyId) } ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt index d7a5c2985..fab19c538 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -39,7 +39,7 @@ class BlackNavbarPatch : BytecodePatch( TabLayoutFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstructions( targetIndex + 1, """ diff --git a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonFingerprint.kt index 2463acb25..562ec18a0 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object HideCastButtonFingerprint : MethodFingerprint ( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("I") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonParentFingerprint.kt index c6a56b872..833feff70 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonParentFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object HideCastButtonParentFingerprint : MethodFingerprint ( returnType = "Z", - access = AccessFlags.PRIVATE or AccessFlags.FINAL, + accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL, strings = listOf("MediaRouteButton") ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/patch/HideCastButtonPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/patch/HideCastButtonPatch.kt index a1a91fc5c..d7228cb5d 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/patch/HideCastButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/patch/HideCastButtonPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult diff --git a/src/main/kotlin/app/revanced/patches/music/layout/categorybar/fingerprints/ChipCloudFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/categorybar/fingerprints/ChipCloudFingerprint.kt index 5c043c51a..906bcc1f7 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/categorybar/fingerprints/ChipCloudFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/categorybar/fingerprints/ChipCloudFingerprint.kt @@ -13,6 +13,6 @@ object ChipCloudFingerprint : MethodFingerprint( Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(chipCloudId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(chipCloudId) } ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/categorybar/patch/CategoryBarPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/categorybar/patch/CategoryBarPatch.kt index 78c0c5faa..44570c0e5 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/categorybar/patch/CategoryBarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/categorybar/patch/CategoryBarPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -38,7 +38,7 @@ class CategoryBarPatch : BytecodePatch( ChipCloudFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/colormatchplayer/fingerprints/ColorMatchPlayerFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/colormatchplayer/fingerprints/ColorMatchPlayerFingerprint.kt index d7f65cbab..eb09b28bc 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/colormatchplayer/fingerprints/ColorMatchPlayerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/colormatchplayer/fingerprints/ColorMatchPlayerFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ColorMatchPlayerFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L", "J"), opcodes = listOf( Opcode.INVOKE_DIRECT, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/colormatchplayer/patch/ColorMatchPlayerPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/colormatchplayer/patch/ColorMatchPlayerPatch.kt index aadecae8a..2289e4b7d 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/colormatchplayer/patch/ColorMatchPlayerPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/colormatchplayer/patch/ColorMatchPlayerPatch.kt @@ -5,9 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.removeInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -42,11 +42,11 @@ class ColorMatchPlayerPatch : BytecodePatch( targetMethod = parentResult.mutableMethod val insertIndex = it.scanResult.patternScanResult!!.startIndex + 1 - val jumpInstruction = instruction<Instruction>(insertIndex) + val jumpInstruction = getInstruction<Instruction>(insertIndex) val type = it.classDef.type - addInstructions( + addInstructionsWithLabels( insertIndex, """ invoke-static {}, $MUSIC_LAYOUT->enableColorMatchPlayer()Z move-result v2 @@ -65,7 +65,7 @@ class ColorMatchPlayerPatch : BytecodePatch( goto :exit :off invoke-direct {p0}, ${type}->${parentResult.mutableMethod.name}()V - """, listOf(ExternalLabel("exit", jumpInstruction)) + """, ExternalLabel("exit", jumpInstruction) ) removeInstruction(insertIndex - 1) } @@ -79,8 +79,8 @@ class ColorMatchPlayerPatch : BytecodePatch( private companion object { private lateinit var targetMethod: MutableMethod - fun descriptor(index: Int):String { - return (targetMethod.instruction(index) as ReferenceInstruction).reference.toString() + fun descriptor(index: Int): String { + return targetMethod.getInstruction<ReferenceInstruction>(index).reference.toString() } } } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/layout/compactdialog/fingerprints/DialogSolidFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/compactdialog/fingerprints/DialogSolidFingerprint.kt index ae358cc3d..189503304 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/compactdialog/fingerprints/DialogSolidFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/compactdialog/fingerprints/DialogSolidFingerprint.kt @@ -9,13 +9,13 @@ import org.jf.dexlib2.Opcode object DialogSolidFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT, Opcode.INVOKE_STATIC ), - customFingerprint = { it.isWideLiteralExists(dialogSolidId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(dialogSolidId) } ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/compactdialog/patch/CompactDialogPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/compactdialog/patch/CompactDialogPatch.kt index 031569b03..f93cda3f8 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/compactdialog/patch/CompactDialogPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/compactdialog/patch/CompactDialogPatch.kt @@ -6,7 +6,7 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/fingerprints/FloatingButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/fingerprints/FloatingButtonFingerprint.kt index 033c349bc..02ed60930 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/fingerprints/FloatingButtonFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/fingerprints/FloatingButtonFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object FloatingButtonFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PRIVATE or AccessFlags.FINAL, + accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf(Opcode.AND_INT_LIT16) ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/fingerprints/FloatingButtonParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/fingerprints/FloatingButtonParentFingerprint.kt index 8f24b95b9..0b4a58284 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/fingerprints/FloatingButtonParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/fingerprints/FloatingButtonParentFingerprint.kt @@ -8,9 +8,9 @@ import org.jf.dexlib2.Opcode object FloatingButtonParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PROTECTED or AccessFlags.FINAL, + accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf(Opcode.INVOKE_DIRECT), - customFingerprint = { it.isNarrowLiteralExists(259982244) } + customFingerprint = { it, _ -> it.isNarrowLiteralExists(259982244) } ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/patch/NewPlaylistButtonPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/patch/NewPlaylistButtonPatch.kt index 262cdf7a7..6dc9b34c1 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/patch/NewPlaylistButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/floatingbutton/patch/NewPlaylistButtonPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -38,15 +38,17 @@ class NewPlaylistButtonPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { FloatingButtonParentFingerprint.result?.let { parentResult -> - FloatingButtonFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.mutableMethod?.let { - it.addInstructions( - 1, """ - invoke-static {}, $MUSIC_LAYOUT->hideNewPlaylistButton()Z - move-result v0 - if-eqz v0, :show - return-void - """, listOf(ExternalLabel("show", it.instruction(1))) - ) + FloatingButtonFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { + it.mutableMethod.apply { + addInstructionsWithLabels( + 1, """ + invoke-static {}, $MUSIC_LAYOUT->hideNewPlaylistButton()Z + move-result v0 + if-eqz v0, :show + return-void + """, ExternalLabel("show", getInstruction(1)) + ) + } } ?: return FloatingButtonFingerprint.toErrorResult() } ?: return FloatingButtonParentFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/music/layout/landscapemode/fingerprints/TabletIdentifierFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/landscapemode/fingerprints/TabletIdentifierFingerprint.kt index e58719aa0..6b28693a2 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/landscapemode/fingerprints/TabletIdentifierFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/landscapemode/fingerprints/TabletIdentifierFingerprint.kt @@ -9,13 +9,13 @@ import org.jf.dexlib2.Opcode object TabletIdentifierFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("L"), opcodes = listOf( Opcode.CONST, Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT ), - customFingerprint = { it.isWideLiteralExists(isTabletId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(isTabletId) } ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/landscapemode/patch/LandScapeModePatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/landscapemode/patch/LandScapeModePatch.kt index f1763186b..ebbe518be 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/landscapemode/patch/LandScapeModePatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/landscapemode/patch/LandScapeModePatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/fingerprints/MinimizedPlayerFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/fingerprints/MinimizedPlayerFingerprint.kt index fe5f804a9..583b594e0 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/fingerprints/MinimizedPlayerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/fingerprints/MinimizedPlayerFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object MinimizedPlayerFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L", "L"), opcodes = listOf( Opcode.INVOKE_VIRTUAL, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/patch/MinimizedPlayerPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/patch/MinimizedPlayerPatch.kt index 0b066bdc8..c8d1a92c5 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/patch/MinimizedPlayerPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/patch/MinimizedPlayerPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/music/layout/zenmode/fingerprints/ZenModeFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/zenmode/fingerprints/ZenModeFingerprint.kt index bcd9f772d..9f2651bdd 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/zenmode/fingerprints/ZenModeFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/zenmode/fingerprints/ZenModeFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ZenModeFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L", "J"), opcodes = listOf( Opcode.MOVE_RESULT, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/zenmode/patch/ZenModePatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/zenmode/patch/ZenModePatch.kt index 4696467cf..8c622ab6e 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/zenmode/patch/ZenModePatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/zenmode/patch/ZenModePatch.kt @@ -5,9 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.removeInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -39,16 +39,16 @@ class ZenModePatch : BytecodePatch( it.mutableMethod.apply { val startIndex = it.scanResult.patternScanResult!!.startIndex - val firstRegister = instruction<OneRegisterInstruction>(startIndex).registerA - val secondRegister = instruction<OneRegisterInstruction>(startIndex + 2).registerA + val firstRegister = getInstruction<OneRegisterInstruction>(startIndex).registerA + val secondRegister = getInstruction<OneRegisterInstruction>(startIndex + 2).registerA val dummyRegister = secondRegister + 1 val referenceIndex = it.scanResult.patternScanResult!!.endIndex + 1 - val targetReference = (instruction(referenceIndex) as ReferenceInstruction).reference.toString() + val targetReference = getInstruction<ReferenceInstruction>(referenceIndex).reference.toString() val insertIndex = referenceIndex + 1 - addInstructions( + addInstructionsWithLabels( insertIndex, """ invoke-static {}, $MUSIC_LAYOUT->enableZenMode()Z move-result v$dummyRegister diff --git a/src/main/kotlin/app/revanced/patches/music/misc/androidauto/patch/AndroidAutoCertificatePatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/androidauto/patch/AndroidAutoCertificatePatch.kt index eb08cb903..ff4ef9b55 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/androidauto/patch/AndroidAutoCertificatePatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/androidauto/patch/AndroidAutoCertificatePatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/music/misc/backgroundplay/fingerprints/BackgroundPlaybackParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/backgroundplay/fingerprints/BackgroundPlaybackParentFingerprint.kt index e16760e16..7128b0f2e 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/backgroundplay/fingerprints/BackgroundPlaybackParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/backgroundplay/fingerprints/BackgroundPlaybackParentFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object BackgroundPlaybackParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.INVOKE_STATIC, @@ -17,5 +17,5 @@ object BackgroundPlaybackParentFingerprint : MethodFingerprint( Opcode.GOTO, Opcode.NOP ), - customFingerprint = { it.definingClass.endsWith("/WatchFragment;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("/WatchFragment;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/backgroundplay/patch/BackgroundPlayPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/backgroundplay/patch/BackgroundPlayPatch.kt index a13f5ca8e..74539399f 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/backgroundplay/patch/BackgroundPlayPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/backgroundplay/patch/BackgroundPlayPatch.kt @@ -6,7 +6,7 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/music/misc/clientspoof/patch/ClientSpoofMusicPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/clientspoof/patch/ClientSpoofMusicPatch.kt index 9a36377a9..f807ac4ee 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/clientspoof/patch/ClientSpoofMusicPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/clientspoof/patch/ClientSpoofMusicPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -27,7 +27,7 @@ class ClientSpoofMusicPatch : BytecodePatch( UserAgentHeaderBuilderFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - 1 - val packageNameRegister = instruction<FiveRegisterInstruction>(insertIndex).registerD + val packageNameRegister = getInstruction<FiveRegisterInstruction>(insertIndex).registerD addInstruction( insertIndex, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/AllCodecsFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/AllCodecsFingerprint.kt index eb63dabca..2677b2b4a 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/AllCodecsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/AllCodecsFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object AllCodecsFingerprint : MethodFingerprint( returnType = "J", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.IF_NEZ, Opcode.GOTO, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/AllCodecsParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/AllCodecsParentFingerprint.kt index 4d468692c..88e327cd8 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/AllCodecsParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/AllCodecsParentFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object AllCodecsParentFingerprint : MethodFingerprint( returnType = "J", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_SUPER diff --git a/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/CodecsLockFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/CodecsLockFingerprint.kt index af311a0b5..95ecf01b6 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/CodecsLockFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/codecs/fingerprints/CodecsLockFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object CodecsLockFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, opcodes = listOf( Opcode.NEW_INSTANCE, Opcode.NEW_INSTANCE, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/codecs/patch/CodecsUnlockPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/codecs/patch/CodecsUnlockPatch.kt index b54b652a5..b5df93a4e 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/codecs/patch/CodecsUnlockPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/codecs/patch/CodecsUnlockPatch.kt @@ -6,8 +6,8 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -15,7 +15,9 @@ import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.patch.annotations.Patch import app.revanced.patcher.util.smali.ExternalLabel -import app.revanced.patches.music.misc.codecs.fingerprints.* +import app.revanced.patches.music.misc.codecs.fingerprints.AllCodecsFingerprint +import app.revanced.patches.music.misc.codecs.fingerprints.AllCodecsParentFingerprint +import app.revanced.patches.music.misc.codecs.fingerprints.CodecsLockFingerprint import app.revanced.patches.music.misc.settings.resource.patch.MusicSettingsPatch import app.revanced.patches.shared.annotation.YouTubeMusicCompatibility import app.revanced.util.enum.CategoryType @@ -49,15 +51,15 @@ class CodecsUnlockPatch : BytecodePatch( CodecsLockFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA - addInstructions( + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA + addInstructionsWithLabels( targetIndex + 1, """ invoke-static {}, $MUSIC_MISC_PATH/OpusCodecPatch;->enableOpusCodec()Z move-result v7 if-eqz v7, :mp4a invoke-static {}, ${allCodecsMethod.definingClass}->${allCodecsMethod.name}()Ljava/util/Set; move-result-object v$targetRegister - """, listOf(ExternalLabel("mp4a", instruction(targetIndex + 1))) + """, ExternalLabel("mp4a", getInstruction(targetIndex + 1)) ) } } ?: return CodecsLockFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/music/misc/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt index 5cdecb7b3..66e3b3dea 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object AudioOnlyEnablerFingerprint: MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.IGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/exclusiveaudio/patch/ExclusiveAudioPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/exclusiveaudio/patch/ExclusiveAudioPatch.kt index 6fa029c22..e960dfb59 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/exclusiveaudio/patch/ExclusiveAudioPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/exclusiveaudio/patch/ExclusiveAudioPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.replaceInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/music/misc/litho/patch/MusicLithoFilterPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/litho/patch/MusicLithoFilterPatch.kt index 659b293d0..a7b9d9fc8 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/litho/patch/MusicLithoFilterPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/litho/patch/MusicLithoFilterPatch.kt @@ -3,8 +3,8 @@ package app.revanced.patches.music.misc.litho.patch import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -33,24 +33,24 @@ class MusicLithoFilterPatch : BytecodePatch( val endIndex = it.scanResult.patternScanResult!!.endIndex val bufferIndex = getNarrowLiteralIndex(168777401) - val bufferRegister = instruction<OneRegisterInstruction>(bufferIndex).registerA + val bufferRegister = getInstruction<OneRegisterInstruction>(bufferIndex).registerA val targetIndex = targetInstruction.indexOfFirst { instruction -> instruction.opcode == Opcode.CONST_STRING && (instruction as BuilderInstruction21c).reference.toString() == "Element missing type extension" } + 2 - val builderMethodDescriptor = (instruction(targetIndex) as ReferenceInstruction).reference as MethodReference - val emptyComponentFieldDescriptor = (instruction(targetIndex + 2) as ReferenceInstruction).reference as FieldReference - val identifierRegister = instruction<OneRegisterInstruction>(endIndex).registerA + val builderMethodDescriptor = (getInstruction(targetIndex) as ReferenceInstruction).reference as MethodReference + val emptyComponentFieldDescriptor = (getInstruction(targetIndex + 2) as ReferenceInstruction).reference as FieldReference + val identifierRegister = getInstruction<OneRegisterInstruction>(endIndex).registerA targetInstruction.filter { instruction -> val fieldReference = (instruction as? ReferenceInstruction)?.reference as? FieldReference fieldReference?.let { reference -> reference.type == "Ljava/lang/StringBuilder;" } == true }.forEach { instruction -> val insertIndex = targetInstruction.indexOf(instruction) - val stringBuilderRegister = instruction<TwoRegisterInstruction>(insertIndex).registerA + val stringBuilderRegister = getInstruction<TwoRegisterInstruction>(insertIndex).registerA - addInstructions( + addInstructionsWithLabels( insertIndex, """ invoke-static {v$stringBuilderRegister, v$identifierRegister}, $MUSIC_ADS_PATH/MusicLithoFilterPatch;->filter(Ljava/lang/StringBuilder;Ljava/lang/String;)Z move-result v$bufferRegister @@ -60,7 +60,7 @@ class MusicLithoFilterPatch : BytecodePatch( move-result-object v0 iget-object v0, v0, $emptyComponentFieldDescriptor return-object v0 - """, listOf(ExternalLabel("not_an_ad", instruction(insertIndex))) + """, ExternalLabel("not_an_ad", getInstruction(insertIndex)) ) } } diff --git a/src/main/kotlin/app/revanced/patches/music/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt index 377619411..5de8d600a 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object MinimizedPlaybackManagerFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("I", "L", "Z"), opcodes = listOf( Opcode.IGET, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt index cbe120b03..440a97d6e 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/music/misc/premium/fingerprints/AccountMenuFooterFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/premium/fingerprints/AccountMenuFooterFingerprint.kt index c09386624..ecec2e1e1 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/premium/fingerprints/AccountMenuFooterFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/premium/fingerprints/AccountMenuFooterFingerprint.kt @@ -9,7 +9,7 @@ import org.jf.dexlib2.Opcode object AccountMenuFooterFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.CONST, Opcode.INVOKE_VIRTUAL, @@ -18,5 +18,5 @@ object AccountMenuFooterFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.IGET_OBJECT ), - customFingerprint = { it.isWideLiteralExists(privacyTosFooterId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(privacyTosFooterId) } ) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/premium/fingerprints/HideGetPremiumFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/premium/fingerprints/HideGetPremiumFingerprint.kt index d34acb58b..38180478e 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/premium/fingerprints/HideGetPremiumFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/premium/fingerprints/HideGetPremiumFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object HideGetPremiumFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.IGET_BOOLEAN, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/premium/patch/HideGetPremiumPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/premium/patch/HideGetPremiumPatch.kt index 8f4f4acee..a16cb23ff 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/premium/patch/HideGetPremiumPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/premium/patch/HideGetPremiumPatch.kt @@ -6,8 +6,8 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -43,7 +43,7 @@ class HideGetPremiumPatch : BytecodePatch( HideGetPremiumFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.startIndex - val register = instruction<TwoRegisterInstruction>(insertIndex).registerA + val register = getInstruction<TwoRegisterInstruction>(insertIndex).registerA addInstruction( insertIndex + 1, @@ -56,7 +56,7 @@ class HideGetPremiumPatch : BytecodePatch( AccountMenuFooterFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = getWideLiteralIndex(privacyTosFooterId) + 4 - targetReference = instruction<ReferenceInstruction>(targetIndex + 1).reference + targetReference = getInstruction<ReferenceInstruction>(targetIndex + 1).reference with (context .toMethodWalker(this) @@ -67,8 +67,8 @@ class HideGetPremiumPatch : BytecodePatch( for ((index, instruction) in withIndex()) { if (instruction.opcode != Opcode.IGET_OBJECT) continue - if (instruction<ReferenceInstruction>(index).reference == targetReference) { - val targetRegister = instruction<OneRegisterInstruction>(index + 2).registerA + if (getInstruction<ReferenceInstruction>(index).reference == targetReference) { + val targetRegister = getInstruction<OneRegisterInstruction>(index + 2).registerA addInstruction( index, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySetterFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySetterFingerprint.kt index b7caf0773..72bddf84d 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySetterFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySetterFingerprint.kt @@ -9,5 +9,5 @@ object MusicVideoQualitySetterFingerprint : MethodFingerprint( Opcode.CHECK_CAST, Opcode.IPUT_OBJECT ), - customFingerprint = { it.name == "<init>" } + customFingerprint = { it, _ -> it.name == "<init>" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySetterParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySetterParentFingerprint.kt index 9676b69fb..92532f662 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySetterParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySetterParentFingerprint.kt @@ -7,5 +7,5 @@ import app.revanced.util.bytecode.isWideLiteralExists object MusicVideoQualitySetterParentFingerprint : MethodFingerprint( returnType = "V", parameters = listOf("L"), - customFingerprint = { it.isWideLiteralExists(qualityAutoId)} + customFingerprint = { it, _ -> it.isWideLiteralExists(qualityAutoId)} ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySettingsFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySettingsFingerprint.kt index 68d2e8bbb..3c25cde5e 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySettingsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySettingsFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object MusicVideoQualitySettingsFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("[L", "I", "Z"), opcodes = listOf( Opcode.IPUT_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySettingsParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySettingsParentFingerprint.kt index 1b8cde28e..d52b4dceb 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySettingsParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/quality/fingerprints/MusicVideoQualitySettingsParentFingerprint.kt @@ -7,5 +7,5 @@ import app.revanced.util.bytecode.isWideLiteralExists object MusicVideoQualitySettingsParentFingerprint : MethodFingerprint( returnType = "L", parameters = listOf(), - customFingerprint = { it.isWideLiteralExists(qualityTitleId)} + customFingerprint = { it, _ -> it.isWideLiteralExists(qualityTitleId)} ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/quality/patch/VideoQualityPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/quality/patch/VideoQualityPatch.kt index ba8be9ff1..a2e8f8797 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/quality/patch/VideoQualityPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/quality/patch/VideoQualityPatch.kt @@ -6,9 +6,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -53,7 +53,7 @@ class VideoQualityPatch : BytecodePatch( it.mutableMethod.apply { val endIndex = it.scanResult.patternScanResult!!.endIndex - qualityReference = instruction<ReferenceInstruction>(endIndex).reference + qualityReference = getInstruction<ReferenceInstruction>(endIndex).reference qualityFieldReference = qualityReference as FieldReference qIndexMethodName = context @@ -79,7 +79,7 @@ class VideoQualityPatch : BytecodePatch( it.mutableMethod.apply { val endIndex = it.scanResult.patternScanResult!!.endIndex val qualityChangedClass = - context.findClass((instruction<BuilderInstruction21c>(endIndex)) + context.findClass((getInstruction<BuilderInstruction21c>(endIndex)) .reference.toString())!! .mutableClass diff --git a/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/fingerprints/PreferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/fingerprints/PreferenceFingerprint.kt index 739684b29..0dc218ab8 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/fingerprints/PreferenceFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/fingerprints/PreferenceFingerprint.kt @@ -19,5 +19,5 @@ object PreferenceFingerprint : MethodFingerprint( Opcode.IGET_OBJECT, Opcode.INVOKE_INTERFACE ), - customFingerprint = { it.definingClass == "Landroidx/preference/Preference;" } + customFingerprint = { it, _ -> it.definingClass == "Landroidx/preference/Preference;" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/fingerprints/SettingsHeadersFragmentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/fingerprints/SettingsHeadersFragmentFingerprint.kt index e7fa4dae9..9db4b12e5 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/fingerprints/SettingsHeadersFragmentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/fingerprints/SettingsHeadersFragmentFingerprint.kt @@ -12,5 +12,5 @@ object SettingsHeadersFragmentFingerprint : MethodFingerprint( Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.definingClass.endsWith("/SettingsHeadersFragment;") && it.name == "onCreate" } + customFingerprint = { it, _ -> it.definingClass.endsWith("/SettingsHeadersFragment;") && it.name == "onCreate" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/patch/MusicSettingsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/patch/MusicSettingsBytecodePatch.kt index 16743cf7e..041d50990 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/patch/MusicSettingsBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/settings/bytecode/patch/MusicSettingsBytecodePatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -32,7 +32,7 @@ class MusicSettingsBytecodePatch : BytecodePatch( SettingsHeadersFragmentFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, @@ -44,8 +44,8 @@ class MusicSettingsBytecodePatch : BytecodePatch( PreferenceFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val keyRegister = instruction<FiveRegisterInstruction>(targetIndex).registerD - val valueRegister = instruction<FiveRegisterInstruction>(targetIndex).registerE + val keyRegister = getInstruction<FiveRegisterInstruction>(targetIndex).registerD + val valueRegister = getInstruction<FiveRegisterInstruction>(targetIndex).registerE addInstruction( targetIndex, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/fingerprints/FullStackTraceActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/fingerprints/FullStackTraceActivityFingerprint.kt index ad4422c92..af5cf4ed6 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/fingerprints/FullStackTraceActivityFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/fingerprints/FullStackTraceActivityFingerprint.kt @@ -3,7 +3,7 @@ package app.revanced.patches.music.misc.sharebuttonhook.fingerprints import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object FullStackTraceActivityFingerprint : MethodFingerprint( - customFingerprint = { + customFingerprint = { it, _ -> it.definingClass.endsWith("FullStackTraceActivity;") && it.name == "onCreate" } ) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/patch/ShareButtonHookPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/patch/ShareButtonHookPatch.kt index 35a34c047..5f3a5edc0 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/patch/ShareButtonHookPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/patch/ShareButtonHookPatch.kt @@ -5,9 +5,10 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -48,13 +49,13 @@ class ShareButtonHookPatch : BytecodePatch( it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.startIndex - addInstructions( + addInstructionsWithLabels( targetIndex,""" invoke-static {}, $INTEGRATIONS_CLASS_DESCRIPTOR->overrideSharePanel()Z move-result p1 if-eqz p1, :default return-void - """, listOf(ExternalLabel("default", instruction(targetIndex))) + """, ExternalLabel("default", getInstruction(targetIndex)) ) } } ?: return SharePanelFingerprint.toErrorResult() @@ -75,7 +76,7 @@ class ShareButtonHookPatch : BytecodePatch( 1,""" invoke-static {p0}, $MUSIC_INTEGRATIONS_PATH/settingsmenu/SharedPreferenceChangeListener;->initializeSettings(Landroid/app/Activity;)V return-void - """ + """ ) ?: return FullStackTraceActivityFingerprint.toErrorResult() MusicSettingsPatch.addMusicPreference(CategoryType.MISC, "revanced_hook_share_button", "false") diff --git a/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/MusicPlaybackControlsFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/MusicPlaybackControlsFingerprint.kt index c1aed8278..93f123b31 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/MusicPlaybackControlsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/MusicPlaybackControlsFingerprint.kt @@ -7,12 +7,12 @@ import org.jf.dexlib2.Opcode object MusicPlaybackControlsFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("Z"), opcodes = listOf( Opcode.IPUT_BOOLEAN, Opcode.INVOKE_VIRTUAL, Opcode.RETURN_VOID ), - customFingerprint = { it.definingClass.endsWith("MusicPlaybackControls;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("MusicPlaybackControls;") } ) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/ShuffleClassFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/ShuffleClassFingerprint.kt index aa0b275bb..02a253ffb 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/ShuffleClassFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/ShuffleClassFingerprint.kt @@ -9,7 +9,7 @@ import org.jf.dexlib2.Opcode object ShuffleClassFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, opcodes = listOf( Opcode.INVOKE_VIRTUAL, Opcode.INVOKE_VIRTUAL, @@ -18,6 +18,6 @@ object ShuffleClassFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.RETURN_VOID ), - customFingerprint = { it.name == "<init>" && it.isWideLiteralExists(disabledIconId) } + customFingerprint = { it, _ -> it.name == "<init>" && it.isWideLiteralExists(disabledIconId) } ) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/ShuffleClassReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/ShuffleClassReferenceFingerprint.kt index 1355d7794..35a329ea1 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/ShuffleClassReferenceFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/shuffle/fingerprints/ShuffleClassReferenceFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ShuffleClassReferenceFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.IGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/shuffle/patch/EnforceShufflePatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/shuffle/patch/EnforceShufflePatch.kt index ad7d8528b..e517d15f4 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/shuffle/patch/EnforceShufflePatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/shuffle/patch/EnforceShufflePatch.kt @@ -6,9 +6,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.extensions.or import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -65,10 +65,10 @@ class EnforceShufflePatch : BytecodePatch( SHUFFLE_CLASS = it.classDef.type - shuffleReference1 = instruction(startIndex).descriptor - shuffleReference2 = instruction(startIndex + 1).descriptor - shuffleReference3 = instruction(endIndex).descriptor - shuffleReference4 = instruction(imageViewIndex).descriptor + shuffleReference1 = getInstruction(startIndex).descriptor + shuffleReference2 = getInstruction(startIndex + 1).descriptor + shuffleReference3 = getInstruction(endIndex).descriptor + shuffleReference4 = getInstruction(imageViewIndex).descriptor } } ?: return ShuffleClassReferenceFingerprint.toErrorResult() @@ -99,8 +99,8 @@ class EnforceShufflePatch : BytecodePatch( MusicPlaybackControlsFingerprint.result?.let { it.mutableMethod.apply { - shuffleReference5 = instruction(0).descriptor - shuffleReference6 = instruction(1).descriptor + shuffleReference5 = getInstruction(0).descriptor + shuffleReference6 = getInstruction(1).descriptor addInstructions( 0, """ diff --git a/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/fingerprints/MusicPlaybackControlsClickFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/fingerprints/MusicPlaybackControlsClickFingerprint.kt index 7aabda66e..909cf9843 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/fingerprints/MusicPlaybackControlsClickFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/fingerprints/MusicPlaybackControlsClickFingerprint.kt @@ -9,5 +9,5 @@ object MusicPlaybackControlsClickFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.RETURN_VOID ), - customFingerprint = { it.definingClass.endsWith("/MusicPlaybackControls;") && it.name == "onClick" } + customFingerprint = { it, _ -> it.definingClass.endsWith("/MusicPlaybackControls;") && it.name == "onClick" } ) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/fingerprints/MusicPlaybackControlsTimeFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/fingerprints/MusicPlaybackControlsTimeFingerprint.kt index aeb3738aa..4cc8310db 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/fingerprints/MusicPlaybackControlsTimeFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/fingerprints/MusicPlaybackControlsTimeFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object MusicPlaybackControlsTimeFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL or AccessFlags.SYNTHETIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL or AccessFlags.SYNTHETIC, parameters = listOf("J","J","J","J"), opcodes = listOf(Opcode.RETURN_VOID), ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/patch/SleepTimerHookPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/patch/SleepTimerHookPatch.kt index 99fa07db8..4888e319a 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/patch/SleepTimerHookPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/sleeptimerhook/patch/SleepTimerHookPatch.kt @@ -4,7 +4,7 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch diff --git a/src/main/kotlin/app/revanced/patches/music/misc/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt index 770885f4e..40c0cbba1 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt @@ -9,7 +9,7 @@ import org.jf.dexlib2.Opcode @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value. object TasteBuilderConstructorFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, parameters = listOf("L", "L", "L"), opcodes = listOf( Opcode.INVOKE_DIRECT, diff --git a/src/main/kotlin/app/revanced/patches/music/misc/tastebuilder/patch/RemoveTasteBuilderPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/tastebuilder/patch/RemoveTasteBuilderPatch.kt index 3a57d2752..2d516796e 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/tastebuilder/patch/RemoveTasteBuilderPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/tastebuilder/patch/RemoveTasteBuilderPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -27,7 +27,7 @@ class RemoveTasteBuilderPatch : BytecodePatch( TasteBuilderConstructorFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - 8 - val register = instruction<TwoRegisterInstruction>(insertIndex).registerA + val register = getInstruction<TwoRegisterInstruction>(insertIndex).registerA addInstructions( insertIndex, """ diff --git a/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/fingerprints/NotifierShelfFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/fingerprints/NotifierShelfFingerprint.kt index 666e4945a..d3f979062 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/fingerprints/NotifierShelfFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/fingerprints/NotifierShelfFingerprint.kt @@ -9,13 +9,13 @@ import org.jf.dexlib2.Opcode object NotifierShelfFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, opcodes = listOf( Opcode.CONST, Opcode.CONST_4, Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(notifierShelfId)} + customFingerprint = { it, _ -> it.isWideLiteralExists(notifierShelfId)} ) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt index ac6081edb..17544a104 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt @@ -8,10 +8,10 @@ import org.jf.dexlib2.Opcode object PivotBarConstructorFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, opcodes = listOf( Opcode.IPUT_OBJECT, Opcode.RETURN_VOID ), - customFingerprint = { it.name == "<init>" && it.isNarrowLiteralExists(117501096) } + customFingerprint = { it, _ -> it.name == "<init>" && it.isNarrowLiteralExists(117501096) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/patch/RemoveUpgradeButtonPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/patch/RemoveUpgradeButtonPatch.kt index 5879b9f42..5f04605e1 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/patch/RemoveUpgradeButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/upgradebutton/patch/RemoveUpgradeButtonPatch.kt @@ -5,10 +5,10 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.replaceInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -16,7 +16,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.patch.annotations.Patch import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch import app.revanced.patches.music.misc.resourceid.patch.SharedResourceIdPatch -import app.revanced.patches.music.misc.upgradebutton.fingerprints.* +import app.revanced.patches.music.misc.upgradebutton.fingerprints.NotifierShelfFingerprint +import app.revanced.patches.music.misc.upgradebutton.fingerprints.PivotBarConstructorFingerprint import app.revanced.patches.shared.annotation.YouTubeMusicCompatibility import app.revanced.util.integrations.Constants.INTEGRATIONS_PATH import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @@ -44,16 +45,16 @@ class RemoveUpgradeButtonPatch : BytecodePatch( PivotBarConstructorFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.startIndex - val targetRegisterA = instruction<TwoRegisterInstruction>(targetIndex).registerA - val targetRegisterB = instruction<TwoRegisterInstruction>(targetIndex).registerB + val targetRegisterA = getInstruction<TwoRegisterInstruction>(targetIndex).registerA + val targetRegisterB = getInstruction<TwoRegisterInstruction>(targetIndex).registerB - val replaceReference = instruction<ReferenceInstruction>(targetIndex).reference.toString() + val replaceReference = getInstruction<ReferenceInstruction>(targetIndex).reference.toString() replaceInstruction( targetIndex, "invoke-interface {v$targetRegisterA}, Ljava/util/List;->size()I" ) - addInstructions( + addInstructionsWithLabels( targetIndex + 1,""" move-result v1 const/4 v2, 0x3 @@ -69,7 +70,7 @@ class RemoveUpgradeButtonPatch : BytecodePatch( NotifierShelfFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, "invoke-static {v$targetRegister}, $INTEGRATIONS_PATH/adremover/AdRemoverAPI;->HideViewWithLayout1dp(Landroid/view/View;)V" diff --git a/src/main/kotlin/app/revanced/patches/music/misc/videoid/fingerprint/MusicVideoIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/videoid/fingerprint/MusicVideoIdFingerprint.kt index 544d380a3..d0727fc03 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/videoid/fingerprint/MusicVideoIdFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/videoid/fingerprint/MusicVideoIdFingerprint.kt @@ -12,5 +12,5 @@ object MusicVideoIdFingerprint : MethodFingerprint( Opcode.INVOKE_INTERFACE, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.definingClass.endsWith("SubtitlesOverlayPresenter;") && it.name == "handleVideoStageEvent" } + customFingerprint = { it, _ -> it.definingClass.endsWith("SubtitlesOverlayPresenter;") && it.name == "handleVideoStageEvent" } ) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/videoid/patch/MusicVideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/videoid/patch/MusicVideoIdPatch.kt index b7e69d74a..dd83fe4e8 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/videoid/patch/MusicVideoIdPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/videoid/patch/MusicVideoIdPatch.kt @@ -5,7 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.* +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -28,7 +29,7 @@ class MusicVideoIdPatch : BytecodePatch( it.mutableMethod.apply { insertIndex = it.scanResult.patternScanResult!!.endIndex insertMethod = this - videoIdRegister = instruction<OneRegisterInstruction>(insertIndex).registerA + videoIdRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA } offset++ // offset so setVideoId is called before any injected call } ?: return MusicVideoIdFingerprint.toErrorResult() @@ -54,7 +55,7 @@ class MusicVideoIdPatch : BytecodePatch( fun injectCall( methodDescriptor: String ) { - insertMethod.addInstructions( + insertMethod.addInstruction( insertIndex + offset, // move-result-object offset "invoke-static {v$videoIdRegister}, $methodDescriptor" ) diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/ClientInfoFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/ClientInfoFingerprint.kt index 68c180f79..e618e50aa 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/ClientInfoFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/ClientInfoFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ClientInfoFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf(Opcode.OR_INT_LIT16) ) diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/ColorMatchPlayerParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/ColorMatchPlayerParentFingerprint.kt index eaa4c75a3..6b3e4e0fc 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/ColorMatchPlayerParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/ColorMatchPlayerParentFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ColorMatchPlayerParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PRIVATE or AccessFlags.FINAL, + accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL, opcodes = listOf( Opcode.IGET, Opcode.IGET, diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LayoutConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LayoutConstructorFingerprint.kt index ff8eef19e..77eebb87f 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LayoutConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LayoutConstructorFingerprint.kt @@ -4,5 +4,5 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object LayoutConstructorFingerprint : MethodFingerprint( strings = listOf("1.0x"), - customFingerprint = { it.definingClass.endsWith("YouTubeControlsOverlay;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("YouTubeControlsOverlay;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LayoutSwitchFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LayoutSwitchFingerprint.kt index 96bbde642..fa97e8a68 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LayoutSwitchFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LayoutSwitchFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object LayoutSwitchFingerprint : MethodFingerprint( returnType = "I", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_VIRTUAL, diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LegacyVideoAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LegacyVideoAdsFingerprint.kt index d911d2d47..26814e667 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LegacyVideoAdsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LegacyVideoAdsFingerprint.kt @@ -8,7 +8,7 @@ import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction object LegacyVideoAdsFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.CONST_WIDE_16, @@ -20,7 +20,7 @@ object LegacyVideoAdsFingerprint : MethodFingerprint( Opcode.IPUT_WIDE, Opcode.CONST_4, ), - customFingerprint = { methodDef -> + customFingerprint = { methodDef, _ -> methodDef.implementation!!.instructions.any { ((it as? NarrowLiteralInstruction)?.narrowLiteral == 4) } diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoBufferFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoBufferFingerprint.kt index f7dc6d82f..4e4f895e1 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoBufferFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoBufferFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object LithoBufferFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.CHECK_CAST, Opcode.INVOKE_VIRTUAL, diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoFingerprint.kt index fb05121f6..78ff2bde0 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object LithoFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.INVOKE_VIRTUAL, Opcode.IF_EQZ diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoObjectFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoObjectFingerprint.kt index 6202924b1..e02308632 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoObjectFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/LithoObjectFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object LithoObjectFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.CONST_STRING, Opcode.INVOKE_VIRTUAL diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/PivotBarCreateButtonViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/PivotBarCreateButtonViewFingerprint.kt index 115ab32d3..0e2a58451 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/PivotBarCreateButtonViewFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/PivotBarCreateButtonViewFingerprint.kt @@ -9,10 +9,10 @@ import org.jf.dexlib2.Opcode object PivotBarCreateButtonViewFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.MOVE_OBJECT, Opcode.INVOKE_DIRECT_RANGE, // unique instruction anchor ), - customFingerprint = { it.isWideLiteralExists(imageOnlyTabId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(imageOnlyTabId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleButtonControllerFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleButtonControllerFingerprint.kt index 2720a9bfa..166ae7c52 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleButtonControllerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleButtonControllerFingerprint.kt @@ -7,8 +7,8 @@ import org.jf.dexlib2.Opcode object SubtitleButtonControllerFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, - parameters = listOf("L"), + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf("Lcom/google/android/libraries/youtube/player/subtitles/model/SubtitleTrack;"), opcodes = listOf( Opcode.IGET_OBJECT, Opcode.IF_NEZ, @@ -19,5 +19,6 @@ object SubtitleButtonControllerFingerprint : MethodFingerprint( Opcode.CONST, Opcode.INVOKE_VIRTUAL, Opcode.IGET_OBJECT - ) + ), + customFingerprint = { it, _ -> it.definingClass.endsWith("SubtitleButtonController;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt index 01f16a52c..56140c38d 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/SubtitleTrackFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object SubtitleTrackFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, strings = listOf("DISABLE_CAPTIONS_OPTION") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/TotalTimeFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/TotalTimeFingerprint.kt index 752dd17c6..d2ada638f 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/TotalTimeFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/TotalTimeFingerprint.kt @@ -6,5 +6,5 @@ import app.revanced.util.bytecode.isWideLiteralExists object TotalTimeFingerprint : MethodFingerprint( returnType = "V", - customFingerprint = { it.isWideLiteralExists(totalTimeId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(totalTimeId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch.kt b/src/main/kotlin/app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch.kt index 3d504535b..0376838e8 100644 --- a/src/main/kotlin/app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/patch/integrations/AbstractIntegrationsPatch.kt @@ -4,13 +4,14 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultError import app.revanced.patcher.patch.PatchResultSuccess -import app.revanced.patches.shared.patch.integrations.AbstractIntegrationsPatch.IntegrationsFingerprint.RegisterResolver +import org.jf.dexlib2.Opcode +import org.jf.dexlib2.iface.ClassDef import org.jf.dexlib2.iface.Method @Description("Applies mandatory patches to implement the ReVanced integrations into the application.") @@ -26,11 +27,21 @@ abstract class AbstractIntegrationsPatch( * @see MethodFingerprint */ abstract class IntegrationsFingerprint( + returnType: String? = null, + accessFlags: Int? = null, + parameters: Iterable<String>? = null, + opcodes: Iterable<Opcode?>? = null, strings: Iterable<String>? = null, - customFingerprint: ((methodDef: Method) -> Boolean)? = null, + customFingerprint: ((methodDef: Method, classDef: ClassDef) -> Boolean)? = null, private val contextRegisterResolver: (Method) -> Int = object : RegisterResolver {} - ) : MethodFingerprint(strings = strings, customFingerprint = customFingerprint) { - + ) : MethodFingerprint( + returnType, + accessFlags, + parameters, + opcodes, + strings, + customFingerprint + ) { fun invoke(integrationsDescriptor: String): PatchResult { result?.mutableMethod?.let { method -> val contextRegister = contextRegisterResolver(method) @@ -41,6 +52,7 @@ abstract class AbstractIntegrationsPatch( "$integrationsDescriptor->context:Landroid/content/Context;" ) } ?: return toErrorResult() + return PatchResultSuccess() } diff --git a/src/main/kotlin/app/revanced/patches/shared/patch/versionspoof/GeneralVersionSpoofPatch.kt b/src/main/kotlin/app/revanced/patches/shared/patch/versionspoof/GeneralVersionSpoofPatch.kt index 942d961e1..c3ac231be 100644 --- a/src/main/kotlin/app/revanced/patches/shared/patch/versionspoof/GeneralVersionSpoofPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/patch/versionspoof/GeneralVersionSpoofPatch.kt @@ -4,7 +4,7 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult diff --git a/src/main/kotlin/app/revanced/patches/shared/patch/videoads/GeneralVideoAdsPatch.kt b/src/main/kotlin/app/revanced/patches/shared/patch/videoads/GeneralVideoAdsPatch.kt index e32c2899f..8c01abdca 100644 --- a/src/main/kotlin/app/revanced/patches/shared/patch/videoads/GeneralVideoAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/patch/videoads/GeneralVideoAdsPatch.kt @@ -5,8 +5,9 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -55,13 +56,13 @@ class GeneralVideoAdsPatch : BytecodePatch( fun injectMainstreamAds( descriptor: String ) { - mainstreamVideoAdsMethod.addInstructions( + mainstreamVideoAdsMethod.addInstructionsWithLabels( 0, """ invoke-static {}, $descriptor move-result v0 if-nez v0, :show_video_ads return-void - """, listOf(ExternalLabel("show_video_ads", mainstreamVideoAdsMethod.instruction(0))) + """, ExternalLabel("show_video_ads", mainstreamVideoAdsMethod.getInstruction(0)) ) } diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/OnBackPressedFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/OnBackPressedFingerprint.kt index 9df39c9c2..80d986080 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/OnBackPressedFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/OnBackPressedFingerprint.kt @@ -5,5 +5,5 @@ import org.jf.dexlib2.Opcode object OnBackPressedFingerprint : MethodFingerprint( opcodes = listOf(Opcode.RETURN_VOID), - customFingerprint = { it.definingClass.endsWith("WatchWhileActivity;") && it.name == "onBackPressed" } + customFingerprint = { it, _ -> it.definingClass.endsWith("WatchWhileActivity;") && it.name == "onBackPressed" } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollPositionFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollPositionFingerprint.kt index 3f19acd84..57a0197fc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollPositionFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollPositionFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ScrollPositionFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PROTECTED or AccessFlags.FINAL, + accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IF_NEZ, diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollTopFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollTopFingerprint.kt index 8abb9c2eb..d9ff3df58 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollTopFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollTopFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ScrollTopFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.CHECK_CAST, diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollTopParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollTopParentFingerprint.kt index 006ebc6da..366d69a72 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollTopParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/fingerprint/ScrollTopParentFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ScrollTopParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, opcodes = listOf( Opcode.IPUT_OBJECT, Opcode.IPUT_OBJECT, @@ -20,6 +20,6 @@ object ScrollTopParentFingerprint : MethodFingerprint( Opcode.IPUT_OBJECT, Opcode.RETURN_VOID ), - customFingerprint = { it.name == "<init>"} + customFingerprint = { it, _ -> it.name == "<init>"} ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/patch/DoubleBackToClosePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/patch/DoubleBackToClosePatch.kt index d38baa10b..764bfc3dc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/patch/DoubleBackToClosePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/doublebacktoclose/patch/DoubleBackToClosePatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/general/bytecode/patch/GeneralAdsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/general/bytecode/patch/GeneralAdsBytecodePatch.kt index 5b47464a6..5f61f631e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/general/bytecode/patch/GeneralAdsBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/general/bytecode/patch/GeneralAdsBytecodePatch.kt @@ -5,7 +5,7 @@ import app.revanced.extensions.injectHideCall import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -33,10 +33,10 @@ class GeneralAdsBytecodePatch : BytecodePatch() { .findMutableMethodOf(method) .apply { val insertIndex = method.getWideLiteralIndex(adAttributionId) + 1 - if (instruction(insertIndex).opcode != org.jf.dexlib2.Opcode.INVOKE_VIRTUAL) + if (getInstruction(insertIndex).opcode != org.jf.dexlib2.Opcode.INVOKE_VIRTUAL) return@forEach - val viewRegister = instruction<Instruction35c>(insertIndex).registerC + val viewRegister = getInstruction<Instruction35c>(insertIndex).registerC this.implementation!!.injectHideCall(insertIndex, viewRegister, "ads/AdsFilter", "hideAdAttributionView") } diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/getpremium/fingerprints/CompactYpcOfferModuleViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/getpremium/fingerprints/CompactYpcOfferModuleViewFingerprint.kt index 81d83a9ae..cfcdcf785 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/getpremium/fingerprints/CompactYpcOfferModuleViewFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/getpremium/fingerprints/CompactYpcOfferModuleViewFingerprint.kt @@ -1,14 +1,19 @@ package app.revanced.patches.youtube.ads.getpremium.fingerprints +import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint +import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode object CompactYpcOfferModuleViewFingerprint : MethodFingerprint( + returnType = "V", + accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL, + parameters = listOf("I", "I"), opcodes = listOf( Opcode.ADD_INT_2ADDR, Opcode.ADD_INT_2ADDR, Opcode.INVOKE_VIRTUAL, Opcode.RETURN_VOID ), - customFingerprint = { it.definingClass.endsWith("CompactYpcOfferModuleView;") && it.name == "onMeasure" } + customFingerprint = { it, _ -> it.definingClass.endsWith("CompactYpcOfferModuleView;") && it.name == "onMeasure" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/getpremium/patch/HideGetPremiumPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/getpremium/patch/HideGetPremiumPatch.kt index 7ad9bd60b..ff23fff3b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/getpremium/patch/HideGetPremiumPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/getpremium/patch/HideGetPremiumPatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -24,19 +24,19 @@ class HideGetPremiumPatch : BytecodePatch( CompactYpcOfferModuleViewFingerprint.result?.let { it.mutableMethod.apply { val startIndex = it.scanResult.patternScanResult!!.startIndex - val measuredWidthRegister = instruction<TwoRegisterInstruction>(startIndex).registerA - val measuredHeightInstruction = instruction<TwoRegisterInstruction>(startIndex + 1) + val measuredWidthRegister = getInstruction<TwoRegisterInstruction>(startIndex).registerA + val measuredHeightInstruction = getInstruction<TwoRegisterInstruction>(startIndex + 1) val measuredHeightRegister = measuredHeightInstruction.registerA val tempRegister = measuredHeightInstruction.registerB - addInstructions( + addInstructionsWithLabels( startIndex + 2, """ invoke-static {}, $PATCHES_PATH/ads/AdsFilter;->hideGetPremium()Z move-result v$tempRegister if-eqz v$tempRegister, :show const/4 v$measuredWidthRegister, 0x0 const/4 v$measuredHeightRegister, 0x0 - """, listOf(ExternalLabel("show", instruction(startIndex + 2))) + """, ExternalLabel("show", getInstruction(startIndex + 2)) ) } } ?: return CompactYpcOfferModuleViewFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/swiperefresh/fingerprint/SwipeRefreshLayoutFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/swiperefresh/fingerprint/SwipeRefreshLayoutFingerprint.kt index 609ab7a1c..86118cf30 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/swiperefresh/fingerprint/SwipeRefreshLayoutFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/swiperefresh/fingerprint/SwipeRefreshLayoutFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object SwipeRefreshLayoutFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.RETURN, @@ -15,5 +15,5 @@ object SwipeRefreshLayoutFingerprint : MethodFingerprint( Opcode.MOVE_RESULT, Opcode.RETURN ), - customFingerprint = { it.definingClass.endsWith("SwipeRefreshLayout;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("SwipeRefreshLayout;") } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/swiperefresh/patch/SwipeRefreshPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/swiperefresh/patch/SwipeRefreshPatch.kt index 0874d3e3e..f82bd0001 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/swiperefresh/patch/SwipeRefreshPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/swiperefresh/patch/SwipeRefreshPatch.kt @@ -4,8 +4,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -26,7 +26,7 @@ class SwipeRefreshPatch : BytecodePatch( SwipeRefreshLayoutFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(insertIndex).registerA + val register = getInstruction<OneRegisterInstruction>(insertIndex).registerA addInstruction( insertIndex, diff --git a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/AutoNavInformerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/AutoNavInformerFingerprint.kt index 1d273978f..3b87f3496 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/AutoNavInformerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/AutoNavInformerFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object AutoNavInformerFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), - customFingerprint = { it.definingClass.endsWith("WillAutonavInformer;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("WillAutonavInformer;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/RepeatListenerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/RepeatListenerFingerprint.kt index fa45f8900..d9cfae2d4 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/RepeatListenerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/RepeatListenerFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object RepeatListenerFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.INVOKE_VIRTUAL_RANGE, Opcode.IGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/VideoEndFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/VideoEndFingerprint.kt index 238f92bc0..7253f4f3c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/VideoEndFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/VideoEndFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object VideoEndFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), - customFingerprint = { it.implementation!!.instructions.count() == 3 && it.annotations.isEmpty()} + customFingerprint = { it, _ -> it.implementation!!.instructions.count() == 3 && it.annotations.isEmpty()} ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/VideoEndParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/VideoEndParentFingerprint.kt index 852aac46d..e6a2f3eaf 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/VideoEndParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/fingerprints/VideoEndParentFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object VideoEndParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, strings = listOf( "play() called when the player wasn't loaded.", "play() blocked because Background Playability failed" diff --git a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/patch/AutoRepeatPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/patch/AutoRepeatPatch.kt index 7a2b71fa5..3d928a2c2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/patch/AutoRepeatPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/button/autorepeat/patch/AutoRepeatPatch.kt @@ -4,7 +4,10 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.* +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -34,13 +37,13 @@ class AutoRepeatPatch : BytecodePatch( VideoEndFingerprint.also { it.resolve(context, classDef) }.result?.mutableMethod?.let { - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $VIDEO_PATH/VideoInformation;->shouldAutoRepeat()Z move-result v0 if-eqz v0, :notrepeat return-void - """, listOf(ExternalLabel("notrepeat", it.instruction(0))) + """, ExternalLabel("notrepeat", it.getInstruction(0)) ) } ?: return VideoEndFingerprint.toErrorResult() } ?: return VideoEndParentFingerprint.toErrorResult() @@ -50,20 +53,20 @@ class AutoRepeatPatch : BytecodePatch( val targetIndex = it.scanResult.patternScanResult!!.startIndex - 1 val endIndex = it.scanResult.patternScanResult!!.endIndex - val registerC = instruction<BuilderInstruction35c>(targetIndex).registerC - val registerD = instruction<BuilderInstruction35c>(targetIndex).registerD + val registerC = getInstruction<BuilderInstruction35c>(targetIndex).registerC + val registerD = getInstruction<BuilderInstruction35c>(targetIndex).registerD - val dummyRegister = (instruction(endIndex) as Instruction31i).registerA + val dummyRegister = (getInstruction(endIndex) as Instruction31i).registerA - val targetReference = instruction<ReferenceInstruction>(targetIndex).reference + val targetReference = getInstruction<ReferenceInstruction>(targetIndex).reference - addInstructions( + addInstructionsWithLabels( targetIndex + 1, """ invoke-static {}, $UTILS_PATH/EnableAutoRepeatPatch;->shouldAutoRepeat()Z move-result v$dummyRegister if-nez v$dummyRegister, :bypass invoke-virtual {v$registerC, v$registerD}, $targetReference - """, listOf(ExternalLabel("bypass", instruction(targetIndex + 1))) + """, ExternalLabel("bypass", getInstruction(targetIndex + 1)) ) removeInstruction(targetIndex) } @@ -71,13 +74,13 @@ class AutoRepeatPatch : BytecodePatch( AutoNavInformerFingerprint.result?.mutableMethod?.let { val index = it.implementation!!.instructions.size - 1 - 1 - val register = it.instruction<OneRegisterInstruction>(index).registerA + val register = it.getInstruction<OneRegisterInstruction>(index).registerA it.addInstructions( index + 1, """ invoke-static {v$register}, $UTILS_PATH/EnableAutoRepeatPatch;->enableAutoRepeat(Z)Z move-result v0 - """ + """ ) } ?: return AutoNavInformerFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/fingerprints/PrimaryPiPFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/fingerprints/PrimaryPiPFingerprint.kt index 35f7c6eae..e591f62ba 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/fingerprints/PrimaryPiPFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/fingerprints/PrimaryPiPFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object PrimaryPiPFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/fingerprints/SecondaryPiPFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/fingerprints/SecondaryPiPFingerprint.kt index 36ae0de0f..2b5cec9c4 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/fingerprints/SecondaryPiPFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/fingerprints/SecondaryPiPFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object SecondaryPiPFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/patch/PiPNotificationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/patch/PiPNotificationPatch.kt index ecb18c185..693d7f0ad 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/patch/PiPNotificationPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/pipnotification/patch/PiPNotificationPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/tooltip/fingerprints/TooltipContentViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/tooltip/fingerprints/TooltipContentViewFingerprint.kt index f39553e11..49e9d89c2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/tooltip/fingerprints/TooltipContentViewFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/tooltip/fingerprints/TooltipContentViewFingerprint.kt @@ -8,7 +8,7 @@ import org.jf.dexlib2.AccessFlags object TooltipContentViewFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), - customFingerprint = { it.isWideLiteralExists(toolTipId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(toolTipId) } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/tooltip/patch/TooltipContentViewPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/tooltip/patch/TooltipContentViewPatch.kt index a3a21f3aa..90a2ccaf2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/etc/tooltip/patch/TooltipContentViewPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/etc/tooltip/patch/TooltipContentViewPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/fingerprints/QualityMenuViewInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/fingerprints/QualityMenuViewInflateFingerprint.kt index e3c4c0df4..9fc99a107 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/fingerprints/QualityMenuViewInflateFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/fingerprints/QualityMenuViewInflateFingerprint.kt @@ -22,5 +22,5 @@ object QualityMenuViewInflateFingerprint : MethodFingerprint( Opcode.MOVE_RESULT_OBJECT, Opcode.CHECK_CAST ), - customFingerprint = { it.isWideLiteralExists(videoQualityFragmentId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(videoQualityFragmentId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/patch/OldQualityLayoutPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/patch/OldQualityLayoutPatch.kt index 0b05d03b1..da07d9d81 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/patch/OldQualityLayoutPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/flyoutpanel/oldqualitylayout/patch/OldQualityLayoutPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -40,7 +40,7 @@ class OldQualityLayoutPatch : BytecodePatch( QualityMenuViewInflateFingerprint.result?.let { it.mutableMethod.apply { val endIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(endIndex).registerA + val register = getInstruction<OneRegisterInstruction>(endIndex).registerA addInstruction( endIndex + 1, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/autoplaypreview/patch/HideAutoplayPreviewPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/autoplaypreview/patch/HideAutoplayPreviewPatch.kt index b3e387160..ed70fb846 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/autoplaypreview/patch/HideAutoplayPreviewPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/autoplaypreview/patch/HideAutoplayPreviewPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -44,21 +44,21 @@ class HideAutoplayPreviewPatch : BytecodePatch( LayoutConstructorFingerprint.result?.mutableMethod?.let { val insertInstruction = it.implementation!!.instructions - val dummyRegister = it.instruction<OneRegisterInstruction>(it.getStringIndex("1.0x")).registerA + val dummyRegister = it.getInstruction<OneRegisterInstruction>(it.getStringIndex("1.0x")).registerA val insertIndex = it.getWideLiteralIndex(autoNavPreviewId) val branchIndex = insertInstruction.subList(insertIndex + 1, insertInstruction.size - 1).indexOfFirst { instruction -> ((instruction as? ReferenceInstruction)?.reference as? FieldReference)?.type == "Lcom/google/android/apps/youtube/app/player/autonav/AutonavToggleController;" } + 1 - val jumpInstruction = it.instruction<Instruction>(insertIndex + branchIndex) + val jumpInstruction = it.getInstruction<Instruction>(insertIndex + branchIndex) - it.addInstructions( + it.addInstructionsWithLabels( insertIndex, """ invoke-static {}, $FULLSCREEN->hideAutoPlayPreview()Z move-result v$dummyRegister if-nez v$dummyRegister, :hidden - """, listOf(ExternalLabel("hidden", jumpInstruction)) + """, ExternalLabel("hidden", jumpInstruction) ) } ?: return LayoutConstructorFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/endscreenoverlay/fingerprints/EndScreenResultsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/endscreenoverlay/fingerprints/EndScreenResultsFingerprint.kt index 927958c0d..faab943c3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/endscreenoverlay/fingerprints/EndScreenResultsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/endscreenoverlay/fingerprints/EndScreenResultsFingerprint.kt @@ -6,5 +6,5 @@ import app.revanced.util.bytecode.isWideLiteralExists object EndScreenResultsFingerprint : MethodFingerprint( returnType = "V", - customFingerprint = { it.isWideLiteralExists(appRelatedEndScreenResultsId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(appRelatedEndScreenResultsId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/endscreenoverlay/patch/HideEndScreenOverlayPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/endscreenoverlay/patch/HideEndScreenOverlayPatch.kt index f0bcfd342..ca745579f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/endscreenoverlay/patch/HideEndScreenOverlayPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/endscreenoverlay/patch/HideEndScreenOverlayPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -35,13 +35,13 @@ class HideEndScreenOverlayPatch : BytecodePatch( ) { override fun execute(context: BytecodeContext): PatchResult { EndScreenResultsFingerprint.result?.mutableMethod?.let { - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $FULLSCREEN->hideEndScreenOverlay()Z move-result v0 if-eqz v0, :show return-void - """, listOf(ExternalLabel("show", it.instruction(0))) + """, ExternalLabel("show", it.getInstruction(0)) ) } ?: return EndScreenResultsFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/flimstripoverlay/fingerprints/ScrubbingLabelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/flimstripoverlay/fingerprints/ScrubbingLabelFingerprint.kt index d5c1e23cd..ef0806c09 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/flimstripoverlay/fingerprints/ScrubbingLabelFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/flimstripoverlay/fingerprints/ScrubbingLabelFingerprint.kt @@ -10,5 +10,5 @@ object ScrubbingLabelFingerprint : MethodFingerprint( Opcode.IPUT_BOOLEAN, Opcode.CONST_WIDE_32 ), - customFingerprint = { it.isWideLiteralExists(scrubbingId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(scrubbingId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/flimstripoverlay/patch/HideFilmstripOverlayPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/flimstripoverlay/patch/HideFilmstripOverlayPatch.kt index 7010e61c1..1a01c7c15 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/flimstripoverlay/patch/HideFilmstripOverlayPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/flimstripoverlay/patch/HideFilmstripOverlayPatch.kt @@ -5,9 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.replaceInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -58,8 +58,8 @@ class HideFilmstripOverlayPatch : BytecodePatch( } private companion object { fun MutableMethod.hook(index: Int) { - val targetInstruction = instruction<TwoRegisterInstruction>(index) - val fieldReference = instruction<ReferenceInstruction>(index).reference + val targetInstruction = getInstruction<TwoRegisterInstruction>(index) + val fieldReference = getInstruction<ReferenceInstruction>(index).reference replaceInstruction( index, "invoke-static {v${targetInstruction.registerA}}, $FULLSCREEN->hideFilmstripOverlay(Z)Z" diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/fullscreenpanels/fingerprints/FullscreenViewAdderFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/fullscreenpanels/fingerprints/FullscreenViewAdderFingerprint.kt index 3ff7790b9..d5457245b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/fullscreenpanels/fingerprints/FullscreenViewAdderFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/fullscreenpanels/fingerprints/FullscreenViewAdderFingerprint.kt @@ -12,5 +12,5 @@ object FullscreenViewAdderFingerprint : MethodFingerprint( Opcode.CONST_4, Opcode.INVOKE_VIRTUAL ), - customFingerprint = { it.definingClass.endsWith("FullscreenEngagementPanelOverlay;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("FullscreenEngagementPanelOverlay;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/fullscreenpanels/patch/HideFullscreenPanelsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/fullscreenpanels/patch/HideFullscreenPanelsPatch.kt index 74e73ea0a..7d9246d79 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/fullscreenpanels/patch/HideFullscreenPanelsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/fullscreenpanels/patch/HideFullscreenPanelsPatch.kt @@ -5,9 +5,10 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.removeInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -47,7 +48,7 @@ class HideFullscreenPanelsPatch : BytecodePatch( FullscreenViewAdderFingerprint.result?.let { it.mutableMethod.apply { val endIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<Instruction35c>(endIndex).registerD + val register = getInstruction<Instruction35c>(endIndex).registerD for (i in 1..3) removeInstruction(endIndex - i) @@ -62,7 +63,7 @@ class HideFullscreenPanelsPatch : BytecodePatch( LayoutConstructorFingerprint.result?.mutableMethod?.let { val instructions = it.implementation!!.instructions - val dummyRegister = it.instruction<OneRegisterInstruction>(it.getStringIndex("1.0x")).registerA + val dummyRegister = it.getInstruction<OneRegisterInstruction>(it.getStringIndex("1.0x")).registerA val invokeIndex = instructions.indexOfFirst { instruction -> instruction.opcode == Opcode.INVOKE_VIRTUAL && @@ -70,12 +71,12 @@ class HideFullscreenPanelsPatch : BytecodePatch( "Landroid/widget/FrameLayout;->addView(Landroid/view/View;)V") } - it.addInstructions( + it.addInstructionsWithLabels( invokeIndex, """ invoke-static {}, $FULLSCREEN->showFullscreenTitle()Z move-result v$dummyRegister if-eqz v$dummyRegister, :hidden - """, listOf(ExternalLabel("hidden", it.instruction(invokeIndex + 1))) + """, ExternalLabel("hidden", it.getInstruction(invokeIndex + 1)) ) } ?: return LayoutConstructorFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/hapticfeedback/patch/HapticFeedBackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/hapticfeedback/patch/HapticFeedBackPatch.kt index b0387b724..858d49819 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/hapticfeedback/patch/HapticFeedBackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/hapticfeedback/patch/HapticFeedBackPatch.kt @@ -5,9 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.removeInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprintResult import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -16,7 +16,10 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.patch.annotations.Patch import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.shared.annotation.YouTubeCompatibility -import app.revanced.patches.youtube.layout.fullscreen.hapticfeedback.fingerprints.* +import app.revanced.patches.youtube.layout.fullscreen.hapticfeedback.fingerprints.MarkerHapticsFingerprint +import app.revanced.patches.youtube.layout.fullscreen.hapticfeedback.fingerprints.ScrubbingHapticsFingerprint +import app.revanced.patches.youtube.layout.fullscreen.hapticfeedback.fingerprints.SeekHapticsFingerprint +import app.revanced.patches.youtube.layout.fullscreen.hapticfeedback.fingerprints.ZoomHapticsFingerprint import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch import app.revanced.util.integrations.Constants.FULLSCREEN import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @@ -72,12 +75,12 @@ class HapticFeedBackPatch : BytecodePatch( val startIndex = scanResult.patternScanResult!!.startIndex val endIndex = scanResult.patternScanResult!!.endIndex val insertIndex = endIndex + 4 - val targetRegister = instruction<OneRegisterInstruction>(insertIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA val dummyRegister = targetRegister + 1 removeInstruction(insertIndex) - addInstructions( + addInstructionsWithLabels( insertIndex, """ invoke-static {}, $FULLSCREEN->$targetMethodName()Z move-result v$dummyRegister @@ -86,28 +89,28 @@ class HapticFeedBackPatch : BytecodePatch( goto :exit :vibrate const-wide/16 v$targetRegister, 0x19 - """, listOf(ExternalLabel("exit", instruction(insertIndex))) + """, ExternalLabel("exit", getInstruction(insertIndex)) ) - addInstructions( + addInstructionsWithLabels( startIndex, """ invoke-static {}, $FULLSCREEN->$targetMethodName()Z move-result v$dummyRegister if-eqz v$dummyRegister, :vibrate return-void - """, listOf(ExternalLabel("vibrate", instruction(startIndex))) + """, ExternalLabel("vibrate", getInstruction(startIndex)) ) } } fun MethodFingerprintResult.voidHaptics(targetMethodName: String) { - mutableMethod.addInstructions( + mutableMethod.addInstructionsWithLabels( 0, """ invoke-static {}, $FULLSCREEN->$targetMethodName()Z move-result v0 if-eqz v0, :vibrate return-void - """, listOf(ExternalLabel("vibrate", mutableMethod.instruction(0))) + """, ExternalLabel("vibrate", mutableMethod.getInstruction(0)) ) } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/fingerprints/OrientationPrimaryFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/fingerprints/OrientationPrimaryFingerprint.kt index 16ab45bf2..5e176a100 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/fingerprints/OrientationPrimaryFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/fingerprints/OrientationPrimaryFingerprint.kt @@ -7,11 +7,11 @@ import org.jf.dexlib2.Opcode object OrientationPrimaryFingerprint : MethodFingerprint ( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT ), - customFingerprint = {it.name == "<init>"} + customFingerprint = { it, _ -> it.name == "<init>"} ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/fingerprints/OrientationSecondaryFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/fingerprints/OrientationSecondaryFingerprint.kt index 6e23b6012..9c0582ed9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/fingerprints/OrientationSecondaryFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/fingerprints/OrientationSecondaryFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object OrientationSecondaryFingerprint : MethodFingerprint ( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_STATIC, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/patch/LandScapeModePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/patch/LandScapeModePatch.kt index 720f10999..a99deff41 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/patch/LandScapeModePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/landscapemode/patch/LandScapeModePatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.fingerprint.method.impl.MethodFingerprintResult import app.revanced.patcher.patch.BytecodePatch @@ -61,7 +61,7 @@ class LandScapeModePatch : BytecodePatch( fun MethodFingerprintResult.injectOverride() { mutableMethod.apply { val index = scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(index).registerA + val register = getInstruction<OneRegisterInstruction>(index).registerA addInstructions( index +1, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/seekmessage/fingerprints/SeekEduContainerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/seekmessage/fingerprints/SeekEduContainerFingerprint.kt index 8e112a073..6e37f70a7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/seekmessage/fingerprints/SeekEduContainerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/seekmessage/fingerprints/SeekEduContainerFingerprint.kt @@ -6,5 +6,5 @@ import app.revanced.util.bytecode.isWideLiteralExists object SeekEduContainerFingerprint : MethodFingerprint( returnType = "V", - customFingerprint = { it.isWideLiteralExists(easySeekEduContainerId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(easySeekEduContainerId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/seekmessage/patch/SeekMessagePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/seekmessage/patch/SeekMessagePatch.kt index deb404a6b..0af8e8cd2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/seekmessage/patch/SeekMessagePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreen/seekmessage/patch/SeekMessagePatch.kt @@ -4,8 +4,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -35,13 +35,13 @@ class SeekMessagePatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { SeekEduContainerFingerprint.result?.mutableMethod?.let { - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $FULLSCREEN->hideSeekMessage()Z move-result v0 if-eqz v0, :default return-void - """, listOf(ExternalLabel("default", it.instruction(0))) + """, ExternalLabel("default", it.getInstruction(0)) ) } diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/accountmenu/fingerprints/AccountMenuParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/accountmenu/fingerprints/AccountMenuParentFingerprint.kt index a8678ac74..2911f3f55 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/accountmenu/fingerprints/AccountMenuParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/accountmenu/fingerprints/AccountMenuParentFingerprint.kt @@ -12,5 +12,5 @@ object AccountMenuParentFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(compactLinkId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(compactLinkId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/accountmenu/patch/AccountMenuPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/accountmenu/patch/AccountMenuPatch.kt index 94e0d29a0..d6db9b21f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/accountmenu/patch/AccountMenuPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/accountmenu/patch/AccountMenuPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -41,7 +41,7 @@ class AccountMenuPatch : BytecodePatch( AccountMenuFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.startIndex + 1 - val register = instruction<OneRegisterInstruction>(targetIndex).registerA + val register = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, @@ -52,7 +52,7 @@ class AccountMenuPatch : BytecodePatch( parentResult.mutableMethod.apply { val endIndex = parentResult.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(endIndex).registerA + val register = getInstruction<OneRegisterInstruction>(endIndex).registerA addInstruction( endIndex + 1, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/autocaptions/fingerprints/StartVideoInformerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/autocaptions/fingerprints/StartVideoInformerFingerprint.kt index 31312a9fa..01e05b524 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/autocaptions/fingerprints/StartVideoInformerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/autocaptions/fingerprints/StartVideoInformerFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object StartVideoInformerFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.INVOKE_INTERFACE, Opcode.RETURN_VOID diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/autocaptions/patch/AutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/autocaptions/patch/AutoCaptionsPatch.kt index 4eef14fd6..0f0e46ac9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/autocaptions/patch/AutoCaptionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/autocaptions/patch/AutoCaptionsPatch.kt @@ -5,8 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -57,7 +58,7 @@ class AutoCaptionsPatch : BytecodePatch( } SubtitleTrackFingerprint.result?.mutableMethod?.let { - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $GENERAL->hideAutoCaptions()Z move-result v0 @@ -66,7 +67,7 @@ class AutoCaptionsPatch : BytecodePatch( if-nez v0, :auto_captions_shown const/4 v0, 0x1 return v0 - """, listOf(ExternalLabel("auto_captions_shown", it.instruction(0))) + """, ExternalLabel("auto_captions_shown", it.getInstruction(0)) ) } ?: return SubtitleTrackFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/autopopuppanels/fingerprints/EngagementPanelControllerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/autopopuppanels/fingerprints/EngagementPanelControllerFingerprint.kt index ddfabebd1..d109c0578 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/autopopuppanels/fingerprints/EngagementPanelControllerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/autopopuppanels/fingerprints/EngagementPanelControllerFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object EngagementPanelControllerFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PRIVATE or AccessFlags.FINAL, + accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL, strings = listOf( "EngagementPanelController: cannot show EngagementPanel before EngagementPanelController.init() has been called.", "[EngagementPanel] Cannot show EngagementPanel before EngagementPanelController.init() has been called." diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/autopopuppanels/patch/PlayerPopupPanelsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/autopopuppanels/patch/PlayerPopupPanelsPatch.kt index 2bf4987cb..21ed578ab 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/autopopuppanels/patch/PlayerPopupPanelsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/autopopuppanels/patch/PlayerPopupPanelsPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -30,7 +30,7 @@ class PlayerPopupPanelsPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { EngagementPanelControllerFingerprint.result?.mutableMethod?.let { - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $GENERAL->hideAutoPlayerPopupPanels()Z move-result v0 @@ -38,7 +38,7 @@ class PlayerPopupPanelsPatch : BytecodePatch( if-eqz p4, :player_popup_panels_shown const/4 v0, 0x0 return-object v0 - """, listOf(ExternalLabel("player_popup_panels_shown", it.instruction(0))) + """, ExternalLabel("player_popup_panels_shown", it.getInstruction(0)) ) } ?: return EngagementPanelControllerFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/breakingnews/fingerprints/BreakingNewsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/breakingnews/fingerprints/BreakingNewsFingerprint.kt index ce81d13c4..bab03ab15 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/breakingnews/fingerprints/BreakingNewsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/breakingnews/fingerprints/BreakingNewsFingerprint.kt @@ -12,5 +12,5 @@ object BreakingNewsFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(horizontalCardListId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(horizontalCardListId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/breakingnews/patch/BreakingNewsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/breakingnews/patch/BreakingNewsPatch.kt index 4e63e6131..13b270750 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/breakingnews/patch/BreakingNewsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/breakingnews/patch/BreakingNewsPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -39,7 +39,7 @@ class BreakingNewsPatch : BytecodePatch( BreakingNewsFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, "invoke-static {v$targetRegister}, $GENERAL->hideBreakingNewsShelf(Landroid/view/View;)V" diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/FilterBarHeightFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/FilterBarHeightFingerprint.kt index 4603fce19..871489d37 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/FilterBarHeightFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/FilterBarHeightFingerprint.kt @@ -12,5 +12,5 @@ object FilterBarHeightFingerprint : MethodFingerprint( Opcode.MOVE_RESULT, Opcode.IPUT ), - customFingerprint = { it.isWideLiteralExists(filterBarHeightId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(filterBarHeightId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/RelatedChipCloudFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/RelatedChipCloudFingerprint.kt index c01879e17..bd30cf50c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/RelatedChipCloudFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/RelatedChipCloudFingerprint.kt @@ -11,5 +11,5 @@ object RelatedChipCloudFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(relatedChipCloudMarginId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(relatedChipCloudMarginId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/SearchResultsChipBarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/SearchResultsChipBarFingerprint.kt index 1e30b2de7..5cc04caff 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/SearchResultsChipBarFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/fingerprints/SearchResultsChipBarFingerprint.kt @@ -13,5 +13,5 @@ object SearchResultsChipBarFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(barContainerHeightId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(barContainerHeightId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/patch/CategoryBarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/patch/CategoryBarPatch.kt index 2de277fb7..4cc722d34 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/patch/CategoryBarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/categorybar/patch/CategoryBarPatch.kt @@ -5,9 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -50,7 +50,7 @@ class CategoryBarPatch : BytecodePatch( FilterBarHeightFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<TwoRegisterInstruction>(insertIndex).registerA + val register = getInstruction<TwoRegisterInstruction>(insertIndex).registerA addInstructions( insertIndex, """ @@ -67,7 +67,7 @@ class CategoryBarPatch : BytecodePatch( RelatedChipCloudFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(insertIndex).registerA + val register = getInstruction<OneRegisterInstruction>(insertIndex).registerA addInstruction( insertIndex + 1, @@ -82,7 +82,7 @@ class CategoryBarPatch : BytecodePatch( SearchResultsChipBarFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - 2 - val register = instruction<OneRegisterInstruction>(targetIndex).registerA + val register = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstructions( targetIndex + 1, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/channellistsubmenu/fingerprints/ChannelListSubMenuFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/channellistsubmenu/fingerprints/ChannelListSubMenuFingerprint.kt index 34fed951f..1e3596dad 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/channellistsubmenu/fingerprints/ChannelListSubMenuFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/channellistsubmenu/fingerprints/ChannelListSubMenuFingerprint.kt @@ -12,5 +12,5 @@ object ChannelListSubMenuFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(channelListSubMenuId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(channelListSubMenuId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/channellistsubmenu/patch/ChannelListSubMenuPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/channellistsubmenu/patch/ChannelListSubMenuPatch.kt index 6a6f4147c..eac2aeee5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/channellistsubmenu/patch/ChannelListSubMenuPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/channellistsubmenu/patch/ChannelListSubMenuPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -38,7 +38,7 @@ class ChannelListSubMenuPatch : BytecodePatch( ChannelListSubMenuFingerprint.result?.let { it.mutableMethod.apply { val endIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(endIndex).registerA + val register = getInstruction<OneRegisterInstruction>(endIndex).registerA addInstruction( endIndex + 1, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint.kt index e0ce6d870..46543d8a2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint.kt @@ -11,5 +11,5 @@ object CrowdfundingBoxFingerprint : MethodFingerprint( Opcode.MOVE_RESULT_OBJECT, Opcode.IPUT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(donationCompanionResourceId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(donationCompanionResourceId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/crowdfundingbox/patch/CrowdfundingBoxPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/crowdfundingbox/patch/CrowdfundingBoxPatch.kt index 32a3ab275..8662da52f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/crowdfundingbox/patch/CrowdfundingBoxPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/crowdfundingbox/patch/CrowdfundingBoxPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -38,7 +38,7 @@ class CrowdfundingBoxPatch : BytecodePatch( CrowdfundingBoxFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<TwoRegisterInstruction>(insertIndex).registerA + val register = getInstruction<TwoRegisterInstruction>(insertIndex).registerA addInstruction( insertIndex, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/floatingmicrophone/fingerprints/FloatingMicrophoneFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/floatingmicrophone/fingerprints/FloatingMicrophoneFingerprint.kt index 40a91c4b9..f2ecb9c1c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/floatingmicrophone/fingerprints/FloatingMicrophoneFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/floatingmicrophone/fingerprints/FloatingMicrophoneFingerprint.kt @@ -11,5 +11,5 @@ object FloatingMicrophoneFingerprint : MethodFingerprint( Opcode.IF_EQZ, Opcode.RETURN_VOID ), - customFingerprint = { it.isWideLiteralExists(fabId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(fabId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/floatingmicrophone/patch/FloatingMicrophonePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/floatingmicrophone/patch/FloatingMicrophonePatch.kt index c5860cfc5..afba455d6 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/floatingmicrophone/patch/FloatingMicrophonePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/floatingmicrophone/patch/FloatingMicrophonePatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -38,7 +38,7 @@ class FloatingMicrophonePatch : BytecodePatch( FloatingMicrophoneFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.startIndex - val register = instruction<TwoRegisterInstruction>(insertIndex).registerA + val register = getInstruction<TwoRegisterInstruction>(insertIndex).registerA addInstructions( insertIndex + 1, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/headerswitch/patch/HeaderSwitchPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/headerswitch/patch/HeaderSwitchPatch.kt index 09802aa0c..bab907a5a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/headerswitch/patch/HeaderSwitchPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/headerswitch/patch/HeaderSwitchPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultError diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/loadmorebutton/fingerprints/LoadMoreButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/loadmorebutton/fingerprints/LoadMoreButtonFingerprint.kt index eb53d2822..88273fd62 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/loadmorebutton/fingerprints/LoadMoreButtonFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/loadmorebutton/fingerprints/LoadMoreButtonFingerprint.kt @@ -12,5 +12,5 @@ object LoadMoreButtonFingerprint : MethodFingerprint( Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(expandButtonId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(expandButtonId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/loadmorebutton/patch/LoadMoreButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/loadmorebutton/patch/LoadMoreButtonPatch.kt index f674fb44a..44d3f73b6 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/loadmorebutton/patch/LoadMoreButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/loadmorebutton/patch/LoadMoreButtonPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -37,7 +37,7 @@ class LoadMoreButtonPatch : BytecodePatch( LoadMoreButtonFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, "invoke-static {v$targetRegister}, $GENERAL->hideLoadMoreButton(Landroid/view/View;)V" diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/personalinformation/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/personalinformation/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt index a1792c0d1..14fb497d0 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/personalinformation/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/personalinformation/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt @@ -15,5 +15,5 @@ object AccountSwitcherAccessibilityLabelFingerprint : MethodFingerprint( Opcode.APUT_OBJECT, Opcode.CONST ), - customFingerprint = { it.isWideLiteralExists(accountSwitcherAccessibilityId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(accountSwitcherAccessibilityId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/personalinformation/patch/HideEmailAddressPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/personalinformation/patch/HideEmailAddressPatch.kt index 450b24225..a6524b90a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/personalinformation/patch/HideEmailAddressPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/personalinformation/patch/HideEmailAddressPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -32,7 +32,7 @@ class HideEmailAddressPatch : BytecodePatch( AccountSwitcherAccessibilityLabelFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(insertIndex - 2).registerA + val register = getInstruction<OneRegisterInstruction>(insertIndex - 2).registerA addInstructions( insertIndex, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchEndpointFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchEndpointFingerprint.kt index b4ea8b077..dc3db855a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchEndpointFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchEndpointFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object SearchEndpointFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_STATIC, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchEndpointParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchEndpointParentFingerprint.kt index 7df9614a5..e7134c281 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchEndpointParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchEndpointParentFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object SearchEndpointParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), strings = listOf("voz-target-id") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchSuggestionEntryFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchSuggestionEntryFingerprint.kt index c753b316c..4e5ea5373 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchSuggestionEntryFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/fingerprints/SearchSuggestionEntryFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch. import app.revanced.util.bytecode.isWideLiteralExists object SearchSuggestionEntryFingerprint : MethodFingerprint( - customFingerprint = { it.isWideLiteralExists(searchSuggestionEntryId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(searchSuggestionEntryId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/patch/SearchTermsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/patch/SearchTermsPatch.kt index 71e2e3b49..41ca72358 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/patch/SearchTermsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/searchterms/patch/SearchTermsPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -45,7 +45,7 @@ class SearchTermsPatch : BytecodePatch( SearchEndpointFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.startIndex + 1 - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, @@ -57,7 +57,7 @@ class SearchTermsPatch : BytecodePatch( SearchSuggestionEntryFingerprint.result?.mutableMethod?.let { val targetIndex = it.getWideLiteralIndex(searchSuggestionEntryId) + 2 - val targetRegister = it.instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = it.getInstruction<OneRegisterInstruction>(targetIndex).registerA it.addInstruction( targetIndex + 4, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/snackbar/fingerprints/HideSnackBarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/snackbar/fingerprints/HideSnackBarFingerprint.kt index 39a552c0d..1f55c1e8a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/snackbar/fingerprints/HideSnackBarFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/snackbar/fingerprints/HideSnackBarFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object HideSnackBarFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L", "L"), - customFingerprint = { it.definingClass.endsWith("BottomUiContainer;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("BottomUiContainer;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/snackbar/patch/HideSnackBarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/snackbar/patch/HideSnackBarPatch.kt index f49887846..6844831be 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/snackbar/patch/HideSnackBarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/snackbar/patch/HideSnackBarPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -30,13 +30,13 @@ class HideSnackBarPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { HideSnackBarFingerprint.result?.mutableMethod?.let { - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $GENERAL->hideSnackBar()Z move-result v0 if-eqz v0, :default return-void - """, listOf(ExternalLabel("default", it.instruction(0))) + """, ExternalLabel("default", it.getInstruction(0)) ) } ?: return HideSnackBarFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorFingerprint.kt index 8d9f00a8d..8a5477a71 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorFingerprint.kt @@ -8,6 +8,6 @@ import org.jf.dexlib2.AccessFlags object MiniPlayerDimensionsCalculatorFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, - customFingerprint = { it.isWideLiteralExists(floatyBarTopMarginId) } + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + customFingerprint = { it, _ -> it.isWideLiteralExists(floatyBarTopMarginId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt index d40bd4d04..178983fd1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object MiniPlayerOverrideFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), strings = listOf("appName") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt index 3dead74d0..368cd9697 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt @@ -7,6 +7,6 @@ import org.jf.dexlib2.Opcode object MiniPlayerOverrideNoContextFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PRIVATE or AccessFlags.FINAL, + accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL, opcodes = listOf(Opcode.RETURN), // anchor to insert the instruction ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt index 967bb0ad2..d5df8fee9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object MiniPlayerResponseModelSizeCheckFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L", "L"), opcodes = listOf( Opcode.RETURN_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/patch/TabletMiniPlayerPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/patch/TabletMiniPlayerPatch.kt index d67e99cdb..ebe4c8828 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/patch/TabletMiniPlayerPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/tabletminiplayer/patch/TabletMiniPlayerPatch.kt @@ -6,8 +6,8 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.fingerprint.method.impl.MethodFingerprintResult import app.revanced.patcher.patch.BytecodePatch @@ -101,7 +101,7 @@ class TabletMiniPlayerPatch : BytecodePatch( val insertInstructions = this.implementation!!.instructions for ((index, instruction) in insertInstructions.withIndex()) { if (instruction.opcode != Opcode.RETURN) continue - val parameterRegister = this.instruction<OneRegisterInstruction>(index).registerA + val parameterRegister = getInstruction<OneRegisterInstruction>(index).registerA this.insertOverride(index, parameterRegister) this.insertOverride(insertInstructions.size - 1, parameterRegister) break @@ -111,7 +111,7 @@ class TabletMiniPlayerPatch : BytecodePatch( fun MethodFingerprintResult.unwrap(): Triple<MutableMethod, Int, Int> { val scanIndex = this.scanResult.patternScanResult!!.endIndex val method = this.mutableMethod - val parameterRegister = method.instruction<OneRegisterInstruction>(scanIndex).registerA + val parameterRegister = method.getInstruction<OneRegisterInstruction>(scanIndex).registerA return Triple(method, scanIndex, parameterRegister) } diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarOneFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarOneFingerprint.kt index 862e91606..03116ddc2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarOneFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarOneFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object WideSearchbarOneFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L", "L"), opcodes = listOf( Opcode.IF_NEZ, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarOneParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarOneParentFingerprint.kt index 78f8f6cbf..694785664 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarOneParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarOneParentFingerprint.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import org.jf.dexlib2.AccessFlags object WideSearchbarOneParentFingerprint : MethodFingerprint( - returnType = "V", access = AccessFlags.PRIVATE or AccessFlags.FINAL, + returnType = "V", accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL, parameters = listOf("L"), strings = listOf( "FEhistory", diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarTwoFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarTwoFingerprint.kt index f4d74abae..9bb402c26 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarTwoFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarTwoFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object WideSearchbarTwoFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, opcodes = listOf( Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarTwoParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarTwoParentFingerprint.kt index 540565202..251be30bb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarTwoParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/fingerprints/WideSearchbarTwoParentFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object WideSearchbarTwoParentFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, strings = listOf( "Callback already registered.", "Failed to create SpotlightModeController." diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/patch/WideSearchbarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/patch/WideSearchbarPatch.kt index 535c65000..a8f03f907 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/patch/WideSearchbarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/general/widesearchbar/bytecode/patch/WideSearchbarPatch.kt @@ -6,7 +6,7 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/homepage/patch/ChangeHomePagePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/homepage/patch/ChangeHomePagePatch.kt index 12147fe00..8f36aa6fa 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/homepage/patch/ChangeHomePagePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/homepage/patch/ChangeHomePagePatch.kt @@ -5,8 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -46,13 +47,13 @@ class ChangeHomePagePatch : BytecodePatch( it.mutableMethod.apply { val index = it.scanResult.patternScanResult!!.endIndex + 1 - addInstructions( + addInstructionsWithLabels( index, """ invoke-static {}, $NAVIGATION->changeHomePage()Z move-result v0 if-eqz v0, :default return-void - """, listOf(ExternalLabel("default", instruction(index))) + """, ExternalLabel("default", getInstruction(index)) ) } } ?: return IntentExceptionFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/label/fingerprints/PivotBarSetTextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/label/fingerprints/PivotBarSetTextFingerprint.kt index 46c1d169d..17da1919e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/label/fingerprints/PivotBarSetTextFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/label/fingerprints/PivotBarSetTextFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object PivotBarSetTextFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, parameters = listOf("L", "L", "L"), opcodes = listOf( Opcode.IPUT_OBJECT, @@ -19,5 +19,5 @@ object PivotBarSetTextFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.RETURN_VOID ), - customFingerprint = { it.name == "<init>" } + customFingerprint = { it, _ -> it.name == "<init>" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/label/patch/NavigationLabelPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/label/patch/NavigationLabelPatch.kt index 2a8829dc0..807ebf549 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/label/patch/NavigationLabelPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/label/patch/NavigationLabelPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -33,10 +33,10 @@ class NavigationLabelPatch : BytecodePatch( PivotBarSetTextFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - 2 - val targetReference = instruction<ReferenceInstruction>(targetIndex).reference.toString() + val targetReference = getInstruction<ReferenceInstruction>(targetIndex).reference.toString() if (targetReference != "Landroid/widget/TextView;") return PivotBarSetTextFingerprint.toErrorResult() - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, "invoke-static {v$targetRegister}, $NAVIGATION->hideNavigationLabel(Landroid/widget/TextView;)V" diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/navigationbuttons/patch/NavigationButtonsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/navigationbuttons/patch/NavigationButtonsPatch.kt index 0760a4fbe..cbb8aab92 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/navigationbuttons/patch/NavigationButtonsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/navigationbuttons/patch/NavigationButtonsPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -98,7 +98,7 @@ class NavigationButtonsPatch : BytecodePatch( AutoMotiveFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(insertIndex).registerA + val register = getInstruction<OneRegisterInstruction>(insertIndex).registerA addInstructions( insertIndex, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/fingerprints/ReelWatchEndpointFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/fingerprints/ReelWatchEndpointFingerprint.kt index 65692f45c..c761f45db 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/fingerprints/ReelWatchEndpointFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/fingerprints/ReelWatchEndpointFingerprint.kt @@ -4,5 +4,5 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object ReelWatchEndpointFingerprint : MethodFingerprint( returnType = "V", - customFingerprint = { it.name == "<init>" } + customFingerprint = { it, _ -> it.name == "<init>" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/fingerprints/SetPivotBarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/fingerprints/SetPivotBarFingerprint.kt index 352675b1a..69d7e7ad6 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/fingerprints/SetPivotBarFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/fingerprints/SetPivotBarFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object SetPivotBarFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PRIVATE or AccessFlags.FINAL, + accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL, parameters = listOf("Z"), opcodes = listOf( Opcode.CHECK_CAST, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/patch/ShortsNavBarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/patch/ShortsNavBarPatch.kt index 42e0fb8b4..b85cdb7ea 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/patch/ShortsNavBarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/shortsnavbar/patch/ShortsNavBarPatch.kt @@ -6,9 +6,9 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -46,7 +46,7 @@ class ShortsNavBarPatch : BytecodePatch( SetPivotBarFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { it.mutableMethod.apply { val startIndex = it.scanResult.patternScanResult!!.startIndex - val register = instruction<OneRegisterInstruction>(startIndex).registerA + val register = getInstruction<OneRegisterInstruction>(startIndex).registerA addInstruction( startIndex + 1, @@ -87,7 +87,7 @@ class ShortsNavBarPatch : BytecodePatch( }.forEach { instruction -> val insertIndex = indexOf(instruction) + 4 val targetRegister = - navigationEndpointMethod.instruction<OneRegisterInstruction>(insertIndex).registerA + navigationEndpointMethod.getInstruction<OneRegisterInstruction>(insertIndex).registerA navigationEndpointMethod.addInstructions( insertIndex, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/fingerprints/PivotBarChangedFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/fingerprints/PivotBarChangedFingerprint.kt index 906b2033e..a897aee23 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/fingerprints/PivotBarChangedFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/fingerprints/PivotBarChangedFingerprint.kt @@ -9,5 +9,5 @@ object PivotBarChangedFingerprint : MethodFingerprint( Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT ), - customFingerprint = { it.definingClass.endsWith("PivotBar;") && it.name == "onConfigurationChanged" } + customFingerprint = { it, _ -> it.definingClass.endsWith("PivotBar;") && it.name == "onConfigurationChanged" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/fingerprints/PivotBarStyleFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/fingerprints/PivotBarStyleFingerprint.kt index de76fcfe7..a85411733 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/fingerprints/PivotBarStyleFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/fingerprints/PivotBarStyleFingerprint.kt @@ -11,5 +11,5 @@ object PivotBarStyleFingerprint : MethodFingerprint( Opcode.MOVE_RESULT, Opcode.XOR_INT_2ADDR ), - customFingerprint = { it.definingClass.endsWith("PivotBar;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("PivotBar;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/patch/TabletNavigationBarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/patch/TabletNavigationBarPatch.kt index 6f7ff9a41..0cc925ecb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/patch/TabletNavigationBarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/navigation/tabletnavbar/patch/TabletNavigationBarPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprintResult import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -57,7 +57,7 @@ class TabletNavigationBarPatch : BytecodePatch( companion object { private fun MethodFingerprintResult.insertHook() { val targetIndex = this.scanResult.patternScanResult!!.startIndex + 1 - val register = mutableMethod.instruction<OneRegisterInstruction>(targetIndex).registerA + val register = mutableMethod.getInstruction<OneRegisterInstruction>(targetIndex).registerA mutableMethod.addInstructions( targetIndex + 1, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/autoplaybutton/patch/HideAutoplayButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/autoplaybutton/patch/HideAutoplayButtonPatch.kt index 3417d67cf..82c0e0794 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/autoplaybutton/patch/HideAutoplayButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/autoplaybutton/patch/HideAutoplayButtonPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -45,21 +45,21 @@ class HideAutoplayButtonPatch : BytecodePatch( LayoutConstructorFingerprint.result?.mutableMethod?.let { val insertInstruction = it.implementation!!.instructions - val dummyRegister = it.instruction<OneRegisterInstruction>(it.getStringIndex("1.0x")).registerA + val dummyRegister = it.getInstruction<OneRegisterInstruction>(it.getStringIndex("1.0x")).registerA val insertIndex = it.getWideLiteralIndex(autoNavPreviewId) val branchIndex = insertInstruction.subList(insertIndex + 1, insertInstruction.size - 1).indexOfFirst { instruction -> ((instruction as? ReferenceInstruction)?.reference as? MethodReference)?.name == "addOnLayoutChangeListener" } + 2 - val jumpInstruction = it.instruction<Instruction>(insertIndex + branchIndex) + val jumpInstruction = it.getInstruction<Instruction>(insertIndex + branchIndex) - it.addInstructions( + it.addInstructionsWithLabels( insertIndex, """ invoke-static {}, $PLAYER->hideAutoPlayButton()Z move-result v$dummyRegister if-nez v$dummyRegister, :hidden - """, listOf(ExternalLabel("hidden", jumpInstruction)) + """, ExternalLabel("hidden", jumpInstruction) ) } ?: return LayoutConstructorFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/captionsbutton/patch/HideCaptionsButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/captionsbutton/patch/HideCaptionsButtonPatch.kt index c593420ee..a0748d72d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/captionsbutton/patch/HideCaptionsButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/captionsbutton/patch/HideCaptionsButtonPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/castbutton/patch/HideCastButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/castbutton/patch/HideCastButtonPatch.kt index 1eea0a6b4..e032528b7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/castbutton/patch/HideCastButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/castbutton/patch/HideCastButtonPatch.kt @@ -4,7 +4,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutCircleFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutCircleFingerprint.kt index 4b2e6cc22..655dc7de5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutCircleFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutCircleFingerprint.kt @@ -13,5 +13,5 @@ object LayoutCircleFingerprint : MethodFingerprint( Opcode.MOVE_RESULT_OBJECT, Opcode.CHECK_CAST, ), - customFingerprint = { it.isWideLiteralExists(layoutCircleId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(layoutCircleId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutIconFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutIconFingerprint.kt index aca1805f0..54ff2efb2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutIconFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutIconFingerprint.kt @@ -13,5 +13,5 @@ object LayoutIconFingerprint : MethodFingerprint( Opcode.MOVE_RESULT_OBJECT, Opcode.CHECK_CAST, ), - customFingerprint = { it.isWideLiteralExists(layoutIconId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(layoutIconId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutVideoFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutVideoFingerprint.kt index 8b565d9fc..e055643d1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutVideoFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/fingerprints/LayoutVideoFingerprint.kt @@ -13,5 +13,5 @@ object LayoutVideoFingerprint : MethodFingerprint( Opcode.MOVE_RESULT_OBJECT, Opcode.CHECK_CAST, ), - customFingerprint = { it.isWideLiteralExists(layoutVideoId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(layoutVideoId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/patch/HideEndscreenCardsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/patch/HideEndscreenCardsPatch.kt index 0a5a2c14f..178edfac1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/patch/HideEndscreenCardsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/endscreencards/patch/HideEndscreenCardsPatch.kt @@ -6,7 +6,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprintResult import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -42,7 +42,7 @@ class HideEndscreenCardsPatch : BytecodePatch( fun MethodFingerprintResult.injectHideCalls() { val index = this.scanResult.patternScanResult!!.endIndex this.mutableMethod.apply { - val register = this.instruction<OneRegisterInstruction>(index).registerA + val register = getInstruction<OneRegisterInstruction>(index).registerA this.implementation!!.injectHideCall(index + 1, register, "layout/PlayerPatch", "hideEndScreen") } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/fingerprints/InfocardsIncognitoFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/fingerprints/InfocardsIncognitoFingerprint.kt index d5de48fb3..b97e7f286 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/fingerprints/InfocardsIncognitoFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/fingerprints/InfocardsIncognitoFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object InfocardsIncognitoFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, strings = listOf("vibrator") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/fingerprints/InfocardsIncognitoParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/fingerprints/InfocardsIncognitoParentFingerprint.kt index a28156499..88f50b306 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/fingerprints/InfocardsIncognitoParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/fingerprints/InfocardsIncognitoParentFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object InfocardsIncognitoParentFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, strings = listOf("player_overlay_info_card_teaser"), ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/patch/HideInfocardsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/patch/HideInfocardsPatch.kt index e67065384..092e276d1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/patch/HideInfocardsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/infocards/patch/HideInfocardsPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint.kt index cd78f1f11..841957472 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/musicbutton/fingerprints/MusicAppDeeplinkButtonFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object MusicAppDeeplinkButtonFingerprint : MethodFingerprint( returnType = "V", parameters = listOf("Z", "Z"), - customFingerprint = { it.definingClass.endsWith("MusicAppDeeplinkButtonController;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("MusicAppDeeplinkButtonController;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/musicbutton/patch/HideMusicButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/musicbutton/patch/HideMusicButtonPatch.kt index d490082c5..21ac136e7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/musicbutton/patch/HideMusicButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/musicbutton/patch/HideMusicButtonPatch.kt @@ -5,7 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -32,12 +33,12 @@ class HideMusicButtonPatch : BytecodePatch( MusicAppDeeplinkButtonFingerprint.result?.mutableMethod?.let { it.implementation!!.instructions.apply { val jumpInstruction = this[size - 1] as Instruction - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $PLAYER->hideMusicButton()Z move-result v0 if-nez v0, :hidden - """, listOf(ExternalLabel("hidden", jumpInstruction)) + """, ExternalLabel("hidden", jumpInstruction) ) } } ?: return MusicAppDeeplinkButtonFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/playerbuttonbg/fingerprints/HidePlayerButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/playerbuttonbg/fingerprints/HidePlayerButtonFingerprint.kt index ff9f5bf63..a8c5e16aa 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/playerbuttonbg/fingerprints/HidePlayerButtonFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/playerbuttonbg/fingerprints/HidePlayerButtonFingerprint.kt @@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.player.playerbuttonbg.fingerprints import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object HidePlayerButtonFingerprint : MethodFingerprint ( - customFingerprint = { + customFingerprint = { it, _ -> it.definingClass == "Lapp/revanced/integrations/patches/layout/PlayerPatch;" && it.name == "hidePlayerButton" } diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/playerbuttonbg/patch/HidePlayerButtonBackgroundPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/playerbuttonbg/patch/HidePlayerButtonBackgroundPatch.kt index c37273de7..91ca72c31 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/playerbuttonbg/patch/HidePlayerButtonBackgroundPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/playerbuttonbg/patch/HidePlayerButtonBackgroundPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/playeroverlayfilter/fingerprints/ScrimOverlayFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/playeroverlayfilter/fingerprints/ScrimOverlayFingerprint.kt index 9d3faea03..0ef4b872c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/playeroverlayfilter/fingerprints/ScrimOverlayFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/playeroverlayfilter/fingerprints/ScrimOverlayFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch. import app.revanced.util.bytecode.isWideLiteralExists object ScrimOverlayFingerprint : MethodFingerprint( - customFingerprint = { it.definingClass.endsWith("YouTubeControlsOverlay;") && it.isWideLiteralExists(scrimOverlayId) } + customFingerprint = { it, _ -> it.definingClass.endsWith("YouTubeControlsOverlay;") && it.isWideLiteralExists(scrimOverlayId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/playeroverlayfilter/patch/PlayerOverlayFilterPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/playeroverlayfilter/patch/PlayerOverlayFilterPatch.kt index 30eb38902..7397a95c3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/playeroverlayfilter/patch/PlayerOverlayFilterPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/playeroverlayfilter/patch/PlayerOverlayFilterPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultError @@ -41,8 +41,8 @@ class PlayerOverlayFilterPatch : BytecodePatch( ScrimOverlayFingerprint.result?.mutableMethod?.let { val targetIndex = it.getWideLiteralIndex(scrimOverlayId) + 3 - val targetParameter = it.instruction<ReferenceInstruction>(targetIndex).reference - val targetRegister = it.instruction<OneRegisterInstruction>(targetIndex).registerA + val targetParameter = it.getInstruction<ReferenceInstruction>(targetIndex).reference + val targetRegister = it.getInstruction<OneRegisterInstruction>(targetIndex).registerA if (!targetParameter.toString().endsWith("Landroid/widget/ImageView;")) return PatchResultError("Method signature parameter did not match: $targetParameter") diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/previousnextbutton/fingerprints/SupportsNextPreviousFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/previousnextbutton/fingerprints/SupportsNextPreviousFingerprint.kt index 044220533..b179bfb17 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/previousnextbutton/fingerprints/SupportsNextPreviousFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/previousnextbutton/fingerprints/SupportsNextPreviousFingerprint.kt @@ -8,7 +8,7 @@ object SupportsNextPreviousFingerprint : MethodFingerprint( returnType = "V", parameters = listOf("Z"), opcodes = listOf(Opcode.OR_INT_LIT8), - customFingerprint = { methodDef -> + customFingerprint = { methodDef, _ -> methodDef.implementation!!.instructions.any { ((it as? NarrowLiteralInstruction)?.narrowLiteral == 64) } diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/previousnextbutton/patch/HidePreviousNextButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/previousnextbutton/patch/HidePreviousNextButtonPatch.kt index 017b99067..adbb84b43 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/previousnextbutton/patch/HidePreviousNextButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/previousnextbutton/patch/HidePreviousNextButtonPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/suggestactions/fingerprints/SuggestedActionsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/suggestactions/fingerprints/SuggestedActionsFingerprint.kt index 4f024b151..c9ce39278 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/suggestactions/fingerprints/SuggestedActionsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/suggestactions/fingerprints/SuggestedActionsFingerprint.kt @@ -13,5 +13,5 @@ object SuggestedActionsFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(suggestedActionId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(suggestedActionId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/suggestactions/patch/SuggestedActionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/suggestactions/patch/SuggestedActionsPatch.kt index ef26e8de7..635db0bca 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/suggestactions/patch/SuggestedActionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/suggestactions/patch/SuggestedActionsPatch.kt @@ -6,7 +6,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -38,7 +38,7 @@ class SuggestedActionsPatch : BytecodePatch( SuggestedActionsFingerprint.result?.let{ it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA implementation!!.injectHideCall(targetIndex + 1, targetRegister, "layout/PlayerPatch", "hideSuggestedActions") } diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/fingerprints/HideWatermarkFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/fingerprints/HideWatermarkFingerprint.kt index 87e1b9f26..e62d600da 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/fingerprints/HideWatermarkFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/fingerprints/HideWatermarkFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object HideWatermarkFingerprint : MethodFingerprint ( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L", "L"), opcodes = listOf( Opcode.IF_EQZ, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/fingerprints/HideWatermarkParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/fingerprints/HideWatermarkParentFingerprint.kt index 7ad5c2044..f082b6f43 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/fingerprints/HideWatermarkParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/fingerprints/HideWatermarkParentFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object HideWatermarkParentFingerprint : MethodFingerprint ( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, strings = listOf("player_overlay_in_video_programming") ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/patch/HideChannelWatermarkPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/patch/HideChannelWatermarkPatch.kt index ba92dd4a9..3c3d9b8e8 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/patch/HideChannelWatermarkPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/watermark/patch/HideChannelWatermarkPatch.kt @@ -5,9 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.removeInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -36,7 +36,7 @@ class HideChannelWatermarkBytecodePatch : BytecodePatch( HideWatermarkFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - val register = instruction<TwoRegisterInstruction>(insertIndex).registerA + val register = getInstruction<TwoRegisterInstruction>(insertIndex).registerA removeInstruction(insertIndex) addInstructions( diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbar/patch/HideSeekbarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbar/patch/HideSeekbarPatch.kt index 77da1b2b7..a826c1608 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbar/patch/HideSeekbarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbar/patch/HideSeekbarPatch.kt @@ -4,8 +4,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -33,13 +33,13 @@ class HideSeekbarPatch : BytecodePatch() { val insertMethod = HookTimeBarPatch.setTimeBarMethod - insertMethod.addInstructions( + insertMethod.addInstructionsWithLabels( 0, """ invoke-static {}, $SEEKBAR->hideSeekbar()Z move-result v0 if-eqz v0, :show_seekbar return-void - """, listOf(ExternalLabel("show_seekbar", insertMethod.instruction(0))) + """, ExternalLabel("show_seekbar", insertMethod.getInstruction(0)) ) /** diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/ControlsOverlayFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/ControlsOverlayFingerprint.kt index 0f909e2a4..e2f45b406 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/ControlsOverlayFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/ControlsOverlayFingerprint.kt @@ -4,5 +4,5 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object ControlsOverlayFingerprint : MethodFingerprint( returnType = "V", - customFingerprint = {it.name == "<init>"} + customFingerprint = { it, _ -> it.name == "<init>"} ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/ControlsOverlayParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/ControlsOverlayParentFingerprint.kt index 96def633a..cf2134c38 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/ControlsOverlayParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/ControlsOverlayParentFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object ControlsOverlayParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PRIVATE or AccessFlags.STATIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PRIVATE or AccessFlags.STATIC or AccessFlags.FINAL, strings = listOf("Error screen presenter should be present") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/SeekbarColorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/SeekbarColorFingerprint.kt index 8b5316b0b..cbe1a3040 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/SeekbarColorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/fingerprints/SeekbarColorFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch. import app.revanced.util.bytecode.isWideLiteralExists object SeekbarColorFingerprint : MethodFingerprint( - customFingerprint = { it.isWideLiteralExists(inlineTimeBarColorizedBarPlayedColorDarkId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(inlineTimeBarColorizedBarPlayedColorDarkId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/patch/SeekbarColorBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/patch/SeekbarColorBytecodePatch.kt index 6caab086d..e865444f3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/patch/SeekbarColorBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbarcolor/bytecode/patch/SeekbarColorBytecodePatch.kt @@ -4,9 +4,9 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -77,7 +77,7 @@ class SeekbarColorBytecodePatch : BytecodePatch( private companion object { fun MutableMethod.hook(insertIndex: Int) { - val insertRegister = instruction<OneRegisterInstruction>(insertIndex).registerA + val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA addInstructions( insertIndex + 1, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/fingerprints/SeekbarTappingFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/fingerprints/SeekbarTappingFingerprint.kt index 0256fb2db..3d2c3c8ca 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/fingerprints/SeekbarTappingFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/fingerprints/SeekbarTappingFingerprint.kt @@ -8,7 +8,7 @@ import org.jf.dexlib2.Opcode object SeekbarTappingFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.NEW_INSTANCE, @@ -17,5 +17,5 @@ object SeekbarTappingFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.RETURN ), - customFingerprint = { it.name == "onTouchEvent" && it.isNarrowLiteralExists(2147483647) } + customFingerprint = { it, _ -> it.name == "onTouchEvent" && it.isNarrowLiteralExists(2147483647) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/fingerprints/SeekbarTappingParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/fingerprints/SeekbarTappingParentFingerprint.kt index 8aad92683..0db0cfdb2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/fingerprints/SeekbarTappingParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/fingerprints/SeekbarTappingParentFingerprint.kt @@ -8,6 +8,6 @@ import org.jf.dexlib2.AccessFlags object SeekbarTappingParentFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, - customFingerprint = { it.isWideLiteralExists(accessibilityProgressTimeId)} + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + customFingerprint = { it, _ -> it.isWideLiteralExists(accessibilityProgressTimeId)} ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/patch/SeekbarTappingPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/patch/SeekbarTappingPatch.kt index 050d77a01..de5f85de4 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/patch/SeekbarTappingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/seekbartapping/patch/SeekbarTappingPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -69,19 +69,19 @@ class SeekbarTappingPatch : BytecodePatch( val insertIndex = it.scanResult.patternScanResult!!.endIndex it.mutableMethod.apply { - val register = instruction<Instruction35c>(insertIndex - 1).registerC + val register = getInstruction<Instruction35c>(insertIndex - 1).registerC val pMethod = tapSeekMethods["P"]!! val oMethod = tapSeekMethods["O"]!! - addInstructions( + addInstructionsWithLabels( insertIndex, """ invoke-static {}, $SEEKBAR->enableSeekbarTapping()Z move-result v0 if-eqz v0, :off invoke-virtual { v$register, v2 }, ${oMethod.definingClass}->${oMethod.name}(I)V invoke-virtual { v$register, v2 }, ${pMethod.definingClass}->${pMethod.name}(I)V - """, listOf(ExternalLabel("off", instruction(insertIndex))) + """, ExternalLabel("off", getInstruction(insertIndex)) ) } } ?: return SeekbarTappingFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/speed/patch/AppendSpeedPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/speed/patch/AppendSpeedPatch.kt index 0f56beb04..f39361b9d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/speed/patch/AppendSpeedPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/speed/patch/AppendSpeedPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultError @@ -46,10 +46,10 @@ class AppendSpeedPatch : BytecodePatch( for ((targetIndex, targetInstruction) in withIndex()) { if (targetInstruction.opcode != Opcode.INVOKE_VIRTUAL) continue - if (it.instruction<ReferenceInstruction>(targetIndex).reference.toString() == + if (it.getInstruction<ReferenceInstruction>(targetIndex).reference.toString() == "Landroid/widget/TextView;->getText()Ljava/lang/CharSequence;") { insertIndex = targetIndex + 2 - val insertRegister = it.instruction<Instruction35c>(insertIndex).registerC + val insertRegister = it.getInstruction<Instruction35c>(insertIndex).registerC it.addInstructions( insertIndex, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/timestamps/fingerprints/TimeCounterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/timestamps/fingerprints/TimeCounterFingerprint.kt index 7ae234045..f6a7fd9e3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/timestamps/fingerprints/TimeCounterFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/timestamps/fingerprints/TimeCounterFingerprint.kt @@ -9,7 +9,7 @@ import org.jf.dexlib2.Opcode @FuzzyPatternScanMethod(3) object TimeCounterFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.IGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/timestamps/patch/HideTimeStampPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/timestamps/patch/HideTimeStampPatch.kt index 4556d5d24..31df788e4 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/timestamps/patch/HideTimeStampPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/timestamps/patch/HideTimeStampPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -30,13 +30,13 @@ class HideTimeStampPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { TimeCounterFingerprint.result?.mutableMethod?.let { - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $SEEKBAR->hideTimeStamp()Z move-result v0 if-eqz v0, :show_time_stamp return-void - """, listOf(ExternalLabel("show_time_stamp", it.instruction(0))) + """, ExternalLabel("show_time_stamp", it.getInstruction(0)) ) } ?: return TimeCounterFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsCommentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsCommentFingerprint.kt index fb3831fd4..f47bf598d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsCommentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsCommentFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch. import app.revanced.util.bytecode.isWideLiteralExists object ShortsCommentFingerprint : MethodFingerprint( - customFingerprint = { it.isWideLiteralExists(rightCommentId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(rightCommentId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsInfoPanelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsInfoPanelFingerprint.kt index 464ca40c6..a130a85de 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsInfoPanelFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsInfoPanelFingerprint.kt @@ -6,5 +6,5 @@ import app.revanced.util.bytecode.isWideLiteralExists object ShortsInfoPanelFingerprint : MethodFingerprint( returnType = "V", - customFingerprint = { it.isWideLiteralExists(reelPlayerInfoPanelId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(reelPlayerInfoPanelId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsPaidContentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsPaidContentFingerprint.kt index dfd0f9567..5898627bf 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsPaidContentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsPaidContentFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch. import app.revanced.util.bytecode.isWideLiteralExists object ShortsPaidContentFingerprint : MethodFingerprint( - customFingerprint = { it.isWideLiteralExists(reelPlayerBadgeId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(reelPlayerBadgeId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsRemixFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsRemixFingerprint.kt index 699b56fe3..adf89e59d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsRemixFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsRemixFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch. import app.revanced.util.bytecode.isWideLiteralExists object ShortsRemixFingerprint : MethodFingerprint( - customFingerprint = { it.isWideLiteralExists(reelRemixId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(reelRemixId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsSubscriptionsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsSubscriptionsFingerprint.kt index ba3271e45..56807e528 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsSubscriptionsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsSubscriptionsFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch. import app.revanced.util.bytecode.isWideLiteralExists object ShortsSubscriptionsFingerprint : MethodFingerprint( - customFingerprint = { it.isWideLiteralExists(reelPlayerPausedId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(reelPlayerPausedId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsSubscriptionsTabletParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsSubscriptionsTabletParentFingerprint.kt index dd765ffff..72e3e7207 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsSubscriptionsTabletParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/fingerprints/ShortsSubscriptionsTabletParentFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patches.youtube.misc.resourceid.patch.SharedResourceIdPatch. import app.revanced.util.bytecode.isWideLiteralExists object ShortsSubscriptionsTabletParentFingerprint : MethodFingerprint( - customFingerprint = { it.isWideLiteralExists(reelPlayerFooterId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(reelPlayerFooterId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsCommentButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsCommentButtonPatch.kt index b2e573312..5bce8b2b7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsCommentButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsCommentButtonPatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -25,7 +25,7 @@ class ShortsCommentButtonPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { ShortsCommentFingerprint.result?.mutableMethod?.let { val insertIndex = it.getWideLiteralIndex(rightCommentId) + 3 - val insertRegister = it.instruction<OneRegisterInstruction>(insertIndex).registerA + val insertRegister = it.getInstruction<OneRegisterInstruction>(insertIndex).registerA it.addInstruction( insertIndex + 1, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsInfoPanelPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsInfoPanelPatch.kt index f572c36f9..a8a85ea54 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsInfoPanelPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsInfoPanelPatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -25,7 +25,7 @@ class ShortsInfoPanelPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { ShortsInfoPanelFingerprint.result?.mutableMethod?.let { val insertIndex = it.getWideLiteralIndex(reelPlayerInfoPanelId) + 3 - val insertRegister = it.instruction<OneRegisterInstruction>(insertIndex).registerA + val insertRegister = it.getInstruction<OneRegisterInstruction>(insertIndex).registerA it.addInstructions( insertIndex + 1, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsPaidContentBannerPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsPaidContentBannerPatch.kt index c1ac68aa3..5e4301df2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsPaidContentBannerPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsPaidContentBannerPatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -42,7 +42,7 @@ class ShortsPaidContentBannerPatch : BytecodePatch( } private companion object { fun MutableMethod.insertHook(insertIndex: Int) { - val insertRegister = instruction<OneRegisterInstruction>(insertIndex).registerA + val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA addInstructions( insertIndex + 1, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsRemixButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsRemixButtonPatch.kt index e1e1bfb60..1d0934785 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsRemixButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsRemixButtonPatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -25,7 +25,7 @@ class ShortsRemixButtonPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { ShortsRemixFingerprint.result?.mutableMethod?.let { val insertIndex = it.getWideLiteralIndex(reelRemixId) - 2 - val insertRegister = it.instruction<OneRegisterInstruction>(insertIndex).registerA + val insertRegister = it.getInstruction<OneRegisterInstruction>(insertIndex).registerA it.addInstruction( insertIndex, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsSubscriptionsButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsSubscriptionsButtonPatch.kt index 03c9d07e9..634870e6a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsSubscriptionsButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/shortscomponent/patch/ShortsSubscriptionsButtonPatch.kt @@ -4,9 +4,9 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -35,7 +35,7 @@ class ShortsSubscriptionsButtonPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { ShortsSubscriptionsFingerprint.result?.mutableMethod?.let { val insertIndex = it.getWideLiteralIndex(reelPlayerPausedId) + 2 - val insertRegister = it.instruction<OneRegisterInstruction>(insertIndex).registerA + val insertRegister = it.getInstruction<OneRegisterInstruction>(insertIndex).registerA it.addInstruction( insertIndex + 1, @@ -46,8 +46,8 @@ class ShortsSubscriptionsButtonPatch : BytecodePatch( ShortsSubscriptionsTabletParentFingerprint.result?.let { parentResult -> parentResult.mutableMethod.apply { val targetIndex = getWideLiteralIndex(reelPlayerFooterId) - 1 - if (instruction(targetIndex).opcode != Opcode.IPUT) return ShortsSubscriptionsTabletFingerprint.toErrorResult() - subscriptionFieldReference = (instruction<ReferenceInstruction>(targetIndex)).reference as FieldReference + if (getInstruction(targetIndex).opcode != Opcode.IPUT) return ShortsSubscriptionsTabletFingerprint.toErrorResult() + subscriptionFieldReference = (getInstruction<ReferenceInstruction>(targetIndex)).reference as FieldReference } ShortsSubscriptionsTabletFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.mutableMethod?.let { diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt index 1fd4bd195..9dea80969 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object UserWasInShortsFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.CHECK_CAST, diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/startupshortsreset/patch/DisableShortsOnStartupPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/startupshortsreset/patch/DisableShortsOnStartupPatch.kt index 45a5278ed..f312eb6ce 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/startupshortsreset/patch/DisableShortsOnStartupPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/shorts/startupshortsreset/patch/DisableShortsOnStartupPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -33,14 +33,14 @@ class DisableShortsOnStartupPatch : BytecodePatch( UserWasInShortsFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex + 1 - val register = instruction<OneRegisterInstruction>(insertIndex - 1).registerA + 2 - addInstructions( + val register = getInstruction<OneRegisterInstruction>(insertIndex - 1).registerA + 2 + addInstructionsWithLabels( insertIndex, """ invoke-static { }, $SHORTS->disableStartupShortsPlayer()Z move-result v$register if-eqz v$register, :show_startup_shorts_player return-void - """, listOf(ExternalLabel("show_startup_shorts_player", instruction(insertIndex))) + """, ExternalLabel("show_startup_shorts_player", getInstruction(insertIndex)) ) } } ?: return UserWasInShortsFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeFingerprint.kt index 2281a7da2..420c5f406 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/fingerprints/PowerSaveModeFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object PowerSaveModeFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IGET_OBJECT, @@ -21,5 +21,5 @@ object PowerSaveModeFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.RETURN_VOID ), - customFingerprint = { it.name == "accept" } + customFingerprint = { it, _ -> it.name == "accept" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/patch/PowerSaveModePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/patch/PowerSaveModePatch.kt index 751eb21ac..c95ade5fc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/patch/PowerSaveModePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/ambientmode/patch/PowerSaveModePatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultError diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/clientspoof/patch/ClientSpoofPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/clientspoof/patch/ClientSpoofPatch.kt index b71859a0f..d537cd005 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/clientspoof/patch/ClientSpoofPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/clientspoof/patch/ClientSpoofPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -28,7 +28,7 @@ class ClientSpoofPatch : BytecodePatch( UserAgentHeaderBuilderFingerprint.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.endIndex - val packageNameRegister = instruction<FiveRegisterInstruction>(insertIndex).registerD + val packageNameRegister = getInstruction<FiveRegisterInstruction>(insertIndex).registerD addInstruction(insertIndex, "const-string v$packageNameRegister, \"$PACKAGE_NAME\"") } } ?: return UserAgentHeaderBuilderFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserPrimaryFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserPrimaryFingerprint.kt index b6c594a11..dde22f409 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserPrimaryFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserPrimaryFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ExternalBrowserPrimaryFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, opcodes = listOf( Opcode.CHECK_CAST, Opcode.NEW_INSTANCE, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserSecondaryFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserSecondaryFingerprint.kt index a206ea44f..0016ada6a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserSecondaryFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserSecondaryFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ExternalBrowserSecondaryFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.IPUT_OBJECT, Opcode.NEW_INSTANCE, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserTertiaryFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserTertiaryFingerprint.kt index 4b5498966..d676cac5e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserTertiaryFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/fingerprints/ExternalBrowserTertiaryFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object ExternalBrowserTertiaryFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, opcodes = listOf( Opcode.CHECK_CAST, Opcode.NEW_INSTANCE, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/patch/ExternalBrowserPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/patch/ExternalBrowserPatch.kt index cfec70a2e..65c008feb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/patch/ExternalBrowserPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/patch/ExternalBrowserPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -41,7 +41,7 @@ class ExternalBrowserPatch : BytecodePatch( val result = it.result?: return it.toErrorResult() it.result?.mutableMethod?.apply { val endIndex = result.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(endIndex).registerA + val register = getInstruction<OneRegisterInstruction>(endIndex).registerA addInstructions( endIndex + 1, """ invoke-static {v$register}, $MISC_PATH/ExternalBrowserPatch;->enableExternalBrowser(Ljava/lang/String;)Ljava/lang/String; diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/VideoCapabilitiesFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/VideoCapabilitiesFingerprint.kt index b79ba8de4..d3e6c761c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/VideoCapabilitiesFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/VideoCapabilitiesFingerprint.kt @@ -11,5 +11,5 @@ object VideoCapabilitiesFingerprint : MethodFingerprint( Opcode.IPUT, Opcode.IPUT ), - customFingerprint = { it.name == "<init>" } + customFingerprint = { it, _ -> it.name == "<init>" } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9PrimaryFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9PrimaryFingerprint.kt index 3c6ad418e..e83da3796 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9PrimaryFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9PrimaryFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object Vp9PrimaryFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("I"), opcodes = listOf( Opcode.RETURN, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9PropsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9PropsFingerprint.kt index 505b8fb0b..eb84a5e0d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9PropsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9PropsFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object Vp9PropsFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf(Opcode.OR_INT_LIT16) ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9SecondaryFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9SecondaryFingerprint.kt index 3a6804969..80149749c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9SecondaryFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/fingerprints/Vp9SecondaryFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object Vp9SecondaryFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("L", "I"), opcodes = listOf( Opcode.RETURN, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/patch/ForceVP9CodecPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/patch/ForceVP9CodecPatch.kt index 297a12474..c41f5ec08 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/patch/ForceVP9CodecPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/forcevp9/patch/ForceVP9CodecPatch.kt @@ -5,9 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.removeInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.fingerprint.method.impl.MethodFingerprintResult import app.revanced.patcher.patch.BytecodePatch @@ -109,8 +109,8 @@ class ForceVP9CodecPatch : BytecodePatch( val startIndex = scanResult.patternScanResult!!.startIndex val endIndex = scanResult.patternScanResult!!.endIndex - val startRegister = instruction<OneRegisterInstruction>(startIndex).registerA - val endRegister = instruction<OneRegisterInstruction>(endIndex).registerA + val startRegister = getInstruction<OneRegisterInstruction>(startIndex).registerA + val endRegister = getInstruction<OneRegisterInstruction>(endIndex).registerA hookOverride(endIndex + 1, endRegister) removeInstruction(endIndex) @@ -148,7 +148,7 @@ class ForceVP9CodecPatch : BytecodePatch( if (indexString != targetString) continue - val register = instruction<OneRegisterInstruction>(index).registerA + val register = getInstruction<OneRegisterInstruction>(index).registerA addInstructions( index + 1, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ServiceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ServiceFingerprint.kt index 922ff16e7..4d1795bbd 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ServiceFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ServiceFingerprint.kt @@ -3,6 +3,6 @@ package app.revanced.patches.youtube.misc.integrations.fingerprints import app.revanced.patches.shared.patch.integrations.AbstractIntegrationsPatch.IntegrationsFingerprint object ServiceFingerprint : IntegrationsFingerprint( - customFingerprint = { it.definingClass.endsWith("ApiPlayerService;") && it.name == "<init>" }, + customFingerprint = { it, _ -> it.definingClass.endsWith("ApiPlayerService;") && it.name == "<init>" }, contextRegisterResolver = { it.implementation!!.registerCount - it.parameters.size } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/layoutswitch/patch/LayoutSwitchPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/layoutswitch/patch/LayoutSwitchPatch.kt index ab5cc55ed..1512c0fad 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/layoutswitch/patch/LayoutSwitchPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/layoutswitch/patch/LayoutSwitchPatch.kt @@ -5,8 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -38,12 +39,12 @@ class LayoutSwitchPatch : BytecodePatch( ClientFormFactorFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { it.mutableMethod.apply { val jumpIndex = it.scanResult.patternScanResult!!.startIndex + 1 - addInstructions( + addInstructionsWithLabels( 1, """ invoke-static {}, $MISC_PATH/LayoutOverridePatch;->enableTabletLayout()Z move-result v2 if-nez v2, :tablet_layout - """, listOf(ExternalLabel("tablet_layout", instruction(jumpIndex))) + """, ExternalLabel("tablet_layout", getInstruction(jumpIndex)) ) } } ?: return ClientFormFactorFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/fingerprints/LithoThemeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/fingerprints/LithoThemeFingerprint.kt index 0525f630c..a5af1f6cb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/fingerprints/LithoThemeFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/fingerprints/LithoThemeFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object LithoThemeFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PROTECTED or AccessFlags.FINAL, + accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IF_NEZ, @@ -15,5 +15,5 @@ object LithoThemeFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, // Paint.setColor: inject point Opcode.RETURN_VOID ), - customFingerprint = { it.name == "onBoundsChange" } + customFingerprint = { it, _ -> it.name == "onBoundsChange" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/ByteBufferFilterPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/ByteBufferFilterPatch.kt index 746e96dde..0bd2bd652 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/ByteBufferFilterPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/ByteBufferFilterPatch.kt @@ -2,8 +2,8 @@ package app.revanced.patches.youtube.misc.litho.patch import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.ResourceContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.ResourcePatch @@ -11,7 +11,6 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.misc.playertype.patch.PlayerTypeHookPatch -import app.revanced.util.integrations.Constants.ADS_PATH @DependsOn( [ @@ -28,7 +27,7 @@ class ByteBufferFilterPatch : ResourcePatch { companion object{ fun inject(descriptor: String){ - LithoFilterPatch.lithoMethod.addInstructions( + LithoFilterPatch.lithoMethod.addInstructionsWithLabels( 0, """ move-object/from16 v10, p3 iget-object v10, v10, ${LithoFilterPatch.objectReference} @@ -44,7 +43,7 @@ class ByteBufferFilterPatch : ResourcePatch { move-result-object v0 iget-object v0, v0, ${LithoFilterPatch.emptyComponentFieldDescriptor} return-object v0 - """, listOf(ExternalLabel("do_not_block", LithoFilterPatch.lithoMethod.instruction(0))) + """, ExternalLabel("do_not_block", LithoFilterPatch.lithoMethod.getInstruction(0)) ) } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/LithoFilterPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/LithoFilterPatch.kt index 232013626..915fd0c61 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/LithoFilterPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/LithoFilterPatch.kt @@ -3,8 +3,8 @@ package app.revanced.patches.youtube.misc.litho.patch import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -48,12 +48,12 @@ class LithoFilterPatch : BytecodePatch( LithoBufferFingerprint.result?.let { val startIndex = it.scanResult.patternScanResult!!.startIndex - bufferReference = it.mutableMethod.instruction<ReferenceInstruction>(startIndex).reference + bufferReference = it.mutableMethod.getInstruction<ReferenceInstruction>(startIndex).reference } ?: return LithoBufferFingerprint.toErrorResult() LithoObjectFingerprint.result?.let { val endIndex = it.scanResult.patternScanResult!!.endIndex - objectRegister = it.mutableMethod.instruction<BuilderInstruction35c>(endIndex).registerC + objectRegister = it.mutableMethod.getInstruction<BuilderInstruction35c>(endIndex).registerC } ?: return LithoObjectFingerprint.toErrorResult() LithoFingerprint.result?.let { result -> @@ -62,23 +62,23 @@ class LithoFilterPatch : BytecodePatch( lithoMethod.apply { val bufferIndex = getNarrowLiteralIndex(168777401) - val bufferRegister = instruction<OneRegisterInstruction>(bufferIndex).registerA + val bufferRegister = getInstruction<OneRegisterInstruction>(bufferIndex).registerA val targetIndex = getStringIndex("Element missing type extension") + 2 - val identifierRegister = instruction<OneRegisterInstruction>(endIndex).registerA + val identifierRegister = getInstruction<OneRegisterInstruction>(endIndex).registerA - builderMethodDescriptor = instruction<ReferenceInstruction>(targetIndex).reference - emptyComponentFieldDescriptor = instruction<ReferenceInstruction>(targetIndex + 2).reference + builderMethodDescriptor = getInstruction<ReferenceInstruction>(targetIndex).reference + emptyComponentFieldDescriptor = getInstruction<ReferenceInstruction>(targetIndex + 2).reference implementation!!.instructions.apply { filter { instruction -> val fieldReference = (instruction as? ReferenceInstruction)?.reference as? FieldReference fieldReference?.let { it.type == "Ljava/lang/StringBuilder;" } == true }.forEach { instruction -> val insertIndex = indexOf(instruction) - val stringBuilderRegister = lithoMethod.instruction<TwoRegisterInstruction>(insertIndex).registerA + val stringBuilderRegister = lithoMethod.getInstruction<TwoRegisterInstruction>(insertIndex).registerA val objectIndex = lithoMethod.getStringIndex("") - 2 - objectReference = lithoMethod.instruction<ReferenceInstruction>(objectIndex).reference - lithoMethod.addInstructions( + objectReference = lithoMethod.getInstruction<ReferenceInstruction>(objectIndex).reference + lithoMethod.addInstructionsWithLabels( insertIndex + 1, """ move-object/from16 v$bufferRegister, p3 iget-object v$bufferRegister, v$bufferRegister, $objectReference @@ -93,7 +93,7 @@ class LithoFilterPatch : BytecodePatch( move-result-object v0 iget-object v0, v0, $emptyComponentFieldDescriptor return-object v0 - """, listOf(ExternalLabel("not_an_ad", lithoMethod.instruction(insertIndex + 1))) + """, ExternalLabel("not_an_ad", lithoMethod.getInstruction(insertIndex + 1)) ) } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/LithoThemePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/LithoThemePatch.kt index 43397482d..8a6ec4554 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/LithoThemePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/patch/LithoThemePatch.kt @@ -4,7 +4,7 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/bytecode/fingerprints/GooglePlayUtilityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/bytecode/fingerprints/GooglePlayUtilityFingerprint.kt index e7f0d94fd..02248c167 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/bytecode/fingerprints/GooglePlayUtilityFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/bytecode/fingerprints/GooglePlayUtilityFingerprint.kt @@ -5,6 +5,6 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import org.jf.dexlib2.AccessFlags object GooglePlayUtilityFingerprint : MethodFingerprint( - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, strings = listOf("This should never happen.", "MetadataValueReader", "com.google.android.gms") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint.kt index cc1550f95..599fd8bb2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object KidsMinimizedPlaybackPolicyControllerFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("I", "L", "L"), opcodes = listOf( Opcode.IF_EQZ, @@ -19,5 +19,5 @@ object KidsMinimizedPlaybackPolicyControllerFingerprint : MethodFingerprint( Opcode.IGET, Opcode.INVOKE_STATIC ), - customFingerprint = { it.definingClass.endsWith("MinimizedPlaybackPolicyController;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("MinimizedPlaybackPolicyController;") } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt index afcc19d0e..59d7618c5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt @@ -8,8 +8,8 @@ import org.jf.dexlib2.Opcode object MinimizedPlaybackManagerFingerprint : MethodFingerprint( returnType = "Z", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("L"), opcodes = listOf(Opcode.AND_INT_LIT16), - customFingerprint = { it.isNarrowLiteralExists(64657230) } + customFingerprint = { it, _ -> it.isNarrowLiteralExists(64657230) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt index 0e1b979ad..73185b417 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt @@ -9,7 +9,7 @@ import org.jf.dexlib2.Opcode object MinimizedPlaybackSettingsFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, opcodes = listOf( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT, @@ -19,5 +19,5 @@ object MinimizedPlaybackSettingsFingerprint : MethodFingerprint( Opcode.IF_NEZ, Opcode.GOTO ), - customFingerprint = { it.isWideLiteralExists(backgroundCategoryId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(backgroundCategoryId) } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt index c4b43be93..c22c4215c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt @@ -6,8 +6,8 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintPrimary.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintPrimary.kt index 992c08a2e..45c15c234 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintPrimary.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintPrimary.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object OpenLinksDirectlyFingerprintPrimary : MethodFingerprint( returnType = "Ljava/lang/Object", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("Ljava/lang/Object"), opcodes = listOf( Opcode.INVOKE_STATIC, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintSecondary.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintSecondary.kt index 2ac06d6c3..f84900f08 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintSecondary.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintSecondary.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object OpenLinksDirectlyFingerprintSecondary : MethodFingerprint( returnType = "Landroid/net/Uri", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("Ljava/lang/String"), opcodes = listOf( Opcode.INVOKE_STATIC, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt index b8d9db48c..ed9e641c9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.replaceInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -39,7 +39,7 @@ class OpenLinksDirectlyPatch : BytecodePatch( val result = it.result?: return it.toErrorResult() val insertIndex = result.scanResult.patternScanResult!!.startIndex result.mutableMethod.apply { - val register = instruction<Instruction35c>(insertIndex).registerC + val register = getInstruction<Instruction35c>(insertIndex).registerC replaceInstruction( insertIndex, "invoke-static {v$register}, $MISC_PATH/OpenLinksDirectlyPatch;->enableBypassRedirect(Ljava/lang/String;)Landroid/net/Uri;" diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/SpeedClassFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/SpeedClassFingerprint.kt index 18e902d28..5f81ecc37 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/SpeedClassFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/SpeedClassFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object SpeedClassFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("L"), opcodes = listOf(Opcode.RETURN_OBJECT), strings = listOf("PLAYBACK_RATE_MENU_BOTTOM_SHEET_FRAGMENT") diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedChangedFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedChangedFingerprint.kt index 4fc8b7a01..a0cf7d44b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedChangedFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedChangedFingerprint.kt @@ -12,5 +12,5 @@ object VideoSpeedChangedFingerprint : MethodFingerprint( Opcode.IGET_OBJECT, Opcode.INVOKE_VIRTUAL ), - customFingerprint = { it.name == "onItemClick" } + customFingerprint = { it, _ -> it.name == "onItemClick" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedParentFingerprint.kt index fbdc117fd..35b114d9a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedParentFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object VideoSpeedParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("L", "L", "[L", "I"), opcodes = listOf( Opcode.ARRAY_LENGTH, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedPatchFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedPatchFingerprint.kt index 18654c26a..936a56cbc 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedPatchFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedPatchFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object VideoSpeedPatchFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, parameters = listOf("F"), - customFingerprint = { it.definingClass.endsWith("/VideoSpeedPatch;") && it.name == "overrideSpeed"} + customFingerprint = { it, _ -> it.definingClass.endsWith("/VideoSpeedPatch;") && it.name == "overrideSpeed"} ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedSettingsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedSettingsFingerprint.kt index a2304e910..8c6386575 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedSettingsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/fingerprints/VideoSpeedSettingsFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object VideoSpeedSettingsFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("[L", "I"), strings = listOf("menu_item_playback_speed") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/patch/OverrideSpeedHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/patch/OverrideSpeedHookPatch.kt index 9d655af43..e806a7bbd 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/patch/OverrideSpeedHookPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/overridespeed/bytecode/patch/OverrideSpeedHookPatch.kt @@ -5,7 +5,11 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.* +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction +import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.fingerprint.method.impl.MethodFingerprintResult import app.revanced.patcher.patch.BytecodePatch @@ -49,9 +53,9 @@ class OverrideSpeedHookPatch : BytecodePatch( val startIndex = it.scanResult.patternScanResult!!.startIndex val endIndex = it.scanResult.patternScanResult!!.endIndex - val reference1 = instruction<ReferenceInstruction>(startIndex).reference - val reference2 = instruction<ReferenceInstruction>(endIndex - 1).reference - val reference3 = instruction<ReferenceInstruction>(endIndex).reference + val reference1 = getInstruction<ReferenceInstruction>(startIndex).reference + val reference2 = getInstruction<ReferenceInstruction>(endIndex - 1).reference + val reference3 = getInstruction<ReferenceInstruction>(endIndex).reference val fieldReference = reference2 as FieldReference val parentMutableClass = parentResult.mutableClass @@ -100,7 +104,7 @@ class OverrideSpeedHookPatch : BytecodePatch( SpeedClassFingerprint.result?.let { it.mutableMethod.apply { val index = it.scanResult.patternScanResult!!.endIndex - val register = instruction<OneRegisterInstruction>(index).registerA + val register = getInstruction<OneRegisterInstruction>(index).registerA SPEED_CLASS = this.returnType replaceInstruction( index, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playerbutton/fingerprints/LiveChatFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playerbutton/fingerprints/LiveChatFingerprint.kt index 8834a469c..e4cc22818 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playerbutton/fingerprints/LiveChatFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playerbutton/fingerprints/LiveChatFingerprint.kt @@ -7,5 +7,5 @@ import org.jf.dexlib2.Opcode object LiveChatFingerprint : MethodFingerprint( opcodes = listOf(Opcode.NEW_INSTANCE), - customFingerprint = { it.isWideLiteralExists(liveChatButtonId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(liveChatButtonId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playerbutton/patch/PlayerButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playerbutton/patch/PlayerButtonPatch.kt index 16ea7bc76..ad892a9bb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playerbutton/patch/PlayerButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playerbutton/patch/PlayerButtonPatch.kt @@ -5,8 +5,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -30,7 +30,7 @@ class PlayerButtonPatch : BytecodePatch( LiveChatFingerprint.result?.let { val endIndex = it.scanResult.patternScanResult!!.endIndex - val instructions = it.mutableMethod.instruction(endIndex) + val instructions = it.mutableMethod.getInstruction(endIndex) val imageButtonClass = context .findClass((instructions as BuilderInstruction21c) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt index ca729611e..4750d25a0 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt @@ -11,5 +11,5 @@ object BottomControlsInflateFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(bottomUiContainerResourceId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(bottomUiContainerResourceId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/ControlsLayoutInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/ControlsLayoutInflateFingerprint.kt index 55e975129..c377a132b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/ControlsLayoutInflateFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/ControlsLayoutInflateFingerprint.kt @@ -13,5 +13,5 @@ object ControlsLayoutInflateFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.isWideLiteralExists(controlsLayoutStubResourceId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(controlsLayoutStubResourceId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt index 59bbc8892..db8cf149e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt @@ -5,5 +5,5 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object PlayerControlsVisibilityFingerprint : MethodFingerprint( returnType = "V", parameters = listOf("Z", "Z"), - customFingerprint = { it.definingClass.endsWith("YouTubeControlsOverlay;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("YouTubeControlsOverlay;") } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/SeekEDUVisibleFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/SeekEDUVisibleFingerprint.kt index 98c865270..0600e4d9d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/SeekEDUVisibleFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/SeekEDUVisibleFingerprint.kt @@ -8,7 +8,7 @@ object SeekEDUVisibleFingerprint : MethodFingerprint( returnType = "V", parameters = listOf("Z"), opcodes = listOf(Opcode.OR_INT_LIT8), - customFingerprint = { methodDef -> + customFingerprint = { methodDef, _ -> methodDef.implementation!!.instructions.any { ((it as? NarrowLiteralInstruction)?.narrowLiteral == 32) } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/UserScrubbingFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/UserScrubbingFingerprint.kt index 0bd52a32c..09e8a94d0 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/UserScrubbingFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/UserScrubbingFingerprint.kt @@ -8,7 +8,7 @@ object UserScrubbingFingerprint : MethodFingerprint( returnType = "V", parameters = listOf("Z"), opcodes = listOf(Opcode.OR_INT_LIT8), - customFingerprint = { methodDef -> + customFingerprint = { methodDef, _ -> methodDef.implementation!!.instructions.any { ((it as? NarrowLiteralInstruction)?.narrowLiteral == 64) } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/patch/PlayerControlsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/patch/PlayerControlsPatch.kt index c440f29cb..657424c93 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/patch/PlayerControlsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/patch/PlayerControlsPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.fingerprint.method.impl.MethodFingerprintResult @@ -71,7 +71,7 @@ class PlayerControlsPatch : BytecodePatch( ) { val endIndex = scanResult.patternScanResult!!.endIndex with (mutableMethod) { - val viewRegister = (instruction(endIndex) as OneRegisterInstruction).registerA + val viewRegister = (getInstruction(endIndex) as OneRegisterInstruction).registerA addInstruction( endIndex + 1, "invoke-static {v$viewRegister}, $descriptor->initialize(Ljava/lang/Object;)V" diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt index 1fb5f9811..3cf1e8993 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt @@ -3,7 +3,7 @@ package app.revanced.patches.youtube.misc.playeroverlay.fingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object PlayerOverlaysOnFinishInflateFingerprint : MethodFingerprint( - customFingerprint = { + customFingerprint = { it, _ -> it.definingClass.endsWith("YouTubePlayerOverlaysLayout;") && it.name == "onFinishInflate" } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/patch/PlayerOverlaysHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/patch/PlayerOverlaysHookPatch.kt index a1d88ec98..771280517 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/patch/PlayerOverlaysHookPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/patch/PlayerOverlaysHookPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/UpdatePlayerTypeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/UpdatePlayerTypeFingerprint.kt index 7da13b6d1..ec6c7b9ee 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/UpdatePlayerTypeFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/UpdatePlayerTypeFingerprint.kt @@ -7,13 +7,13 @@ import org.jf.dexlib2.Opcode object UpdatePlayerTypeFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IF_NE, Opcode.RETURN_VOID ), - customFingerprint = { + customFingerprint = { it, _ -> it.definingClass.endsWith("YouTubePlayerOverlaysLayout;") } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/patch/PlayerTypeHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/patch/PlayerTypeHookPatch.kt index 82c07f616..c425b9e25 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/patch/PlayerTypeHookPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/patch/PlayerTypeHookPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/protobufpoof/fingerprints/SubtitleWindowFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/protobufpoof/fingerprints/SubtitleWindowFingerprint.kt index 3d91fc5e8..47f5a7867 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/protobufpoof/fingerprints/SubtitleWindowFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/protobufpoof/fingerprints/SubtitleWindowFingerprint.kt @@ -4,5 +4,5 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object SubtitleWindowFingerprint : MethodFingerprint( parameters = listOf("I", "I", "I", "Z", "Z"), - customFingerprint = { it.definingClass.endsWith("SubtitleWindowSettings;") && it.name == "<init>" } + customFingerprint = { it, _ -> it.definingClass.endsWith("SubtitleWindowSettings;") && it.name == "<init>" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/protobufpoof/patch/ProtobufSpoofPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/protobufpoof/patch/ProtobufSpoofPatch.kt index 4ae1e46d6..5ed8ff067 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/protobufpoof/patch/ProtobufSpoofPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/protobufpoof/patch/ProtobufSpoofPatch.kt @@ -6,8 +6,8 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/quic/fingerprints/CronetEngineBuilderFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/quic/fingerprints/CronetEngineBuilderFingerprint.kt index a9c6a92e5..0964094f9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/quic/fingerprints/CronetEngineBuilderFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/quic/fingerprints/CronetEngineBuilderFingerprint.kt @@ -5,7 +5,7 @@ import org.jf.dexlib2.AccessFlags object CronetEngineBuilderFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC.value, + accessFlags = AccessFlags.PUBLIC.value, parameters = listOf("Z"), - customFingerprint = { it.definingClass == "Lorg/chromium/net/CronetEngine\$Builder;" && it.name == "enableQuic" } + customFingerprint = { it, _ -> it.definingClass == "Lorg/chromium/net/CronetEngine\$Builder;" && it.name == "enableQuic" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/quic/fingerprints/ExperimentalCronetEngineBuilderFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/quic/fingerprints/ExperimentalCronetEngineBuilderFingerprint.kt index bd47cb0a3..15312d6c6 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/quic/fingerprints/ExperimentalCronetEngineBuilderFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/quic/fingerprints/ExperimentalCronetEngineBuilderFingerprint.kt @@ -5,7 +5,7 @@ import org.jf.dexlib2.AccessFlags object ExperimentalCronetEngineBuilderFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC.value, + accessFlags = AccessFlags.PUBLIC.value, parameters = listOf("Z"), - customFingerprint = { it.definingClass == "Lorg/chromium/net/ExperimentalCronetEngine\$Builder;" && it.name == "enableQuic" } + customFingerprint = { it, _ -> it.definingClass == "Lorg/chromium/net/ExperimentalCronetEngine\$Builder;" && it.name == "enableQuic" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/quic/patch/QUICProtocolPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/quic/patch/QUICProtocolPatch.kt index b5bced3b1..d9a9bb885 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/quic/patch/QUICProtocolPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/quic/patch/QUICProtocolPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentAtomicReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentAtomicReferenceFingerprint.kt index 9d659e311..dcc8291b7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentAtomicReferenceFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentAtomicReferenceFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object TextComponentAtomicReferenceFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PROTECTED or AccessFlags.FINAL, + accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_VIRTUAL, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentConstructorFingerprint.kt index 42497c86b..a17e8ca16 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentConstructorFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object TextComponentConstructorFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PRIVATE or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PRIVATE or AccessFlags.CONSTRUCTOR, strings = listOf("TextComponent") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentContextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentContextFingerprint.kt index 7dc7ffef5..9bb84d3ed 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentContextFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentContextFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object TextComponentContextFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PROTECTED or AccessFlags.FINAL, + accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IGET_OBJECT, // conversion context diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentTmpFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentTmpFingerprint.kt index 5874e4d75..f9e9a8f0d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentTmpFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/fingerprints/TextComponentTmpFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object TextComponentTmpFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PROTECTED or AccessFlags.FINAL, + accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_STATIC, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/patch/ReturnYouTubeDislikePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/patch/ReturnYouTubeDislikePatch.kt index 8c1d13542..6cd290c4f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/patch/ReturnYouTubeDislikePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/general/patch/ReturnYouTubeDislikePatch.kt @@ -5,9 +5,9 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.replaceInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch @@ -72,7 +72,7 @@ class ReturnYouTubeDislikePatch : BytecodePatch( with (it.mutableMethod) { val conversionContextIndex = it.scanResult.patternScanResult!!.startIndex conversionContextFieldReference = - instruction<ReferenceInstruction>(conversionContextIndex).reference + getInstruction<ReferenceInstruction>(conversionContextIndex).reference } } ?: return TextComponentContextFingerprint.toErrorResult() @@ -80,7 +80,7 @@ class ReturnYouTubeDislikePatch : BytecodePatch( it.mutableMethod.apply { val startIndex = it.scanResult.patternScanResult!!.startIndex tmpRegister = - instruction<FiveRegisterInstruction>(startIndex).registerE + getInstruction<FiveRegisterInstruction>(startIndex).registerE } } ?: return TextComponentTmpFingerprint.toErrorResult() @@ -89,10 +89,10 @@ class ReturnYouTubeDislikePatch : BytecodePatch( with (it.mutableMethod) { val atomicReferenceStartIndex = it.scanResult.patternScanResult!!.startIndex val insertIndex = it.scanResult.patternScanResult!!.endIndex - val moveCharSequenceInstruction = instruction<TwoRegisterInstruction>(insertIndex) + val moveCharSequenceInstruction = getInstruction<TwoRegisterInstruction>(insertIndex) val atomicReferenceRegister = - instruction<FiveRegisterInstruction>(atomicReferenceStartIndex).registerC + getInstruction<FiveRegisterInstruction>(atomicReferenceStartIndex).registerC val charSequenceRegister = moveCharSequenceInstruction.registerB diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/ButtonTagFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/ButtonTagFingerprint.kt index cf3fcbd87..ba983562b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/ButtonTagFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/ButtonTagFingerprint.kt @@ -8,7 +8,7 @@ import org.jf.dexlib2.AccessFlags object ButtonTagFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), - customFingerprint = { it.isWideLiteralExists(dislikeButtonId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(dislikeButtonId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/ButtonTagOnClickFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/ButtonTagOnClickFingerprint.kt index b46942e57..1af65fd9c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/ButtonTagOnClickFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/ButtonTagOnClickFingerprint.kt @@ -10,5 +10,5 @@ object ButtonTagOnClickFingerprint : MethodFingerprint( Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT ), - customFingerprint = { it.name == "onClick" } + customFingerprint = { it, _ -> it.name == "onClick" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonParentFingerprint.kt index 9427f2b53..ab1ae9a5d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonParentFingerprint.kt @@ -6,5 +6,5 @@ import app.revanced.util.bytecode.isWideLiteralExists object SlimMetadataButtonParentFingerprint : MethodFingerprint( returnType = "I", - customFingerprint = { it.isWideLiteralExists(slimMetadataToggleButtonId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(slimMetadataToggleButtonId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonTextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonTextFingerprint.kt index 0caa2ed8d..6eab7d40d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonTextFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonTextFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object SlimMetadataButtonTextFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.INVOKE_VIRTUAL, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonViewFingerprint.kt index 471e403db..03c7aeef1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonViewFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/fingerprints/SlimMetadataButtonViewFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object SlimMetadataButtonViewFingerprint : MethodFingerprint( returnType = "L", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), opcodes = listOf( Opcode.IGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/patch/ReturnYouTubeDislikeOldLayoutPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/patch/ReturnYouTubeDislikeOldLayoutPatch.kt index f1aa02034..eacef5ade 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/patch/ReturnYouTubeDislikeOldLayoutPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/oldlayout/patch/ReturnYouTubeDislikeOldLayoutPatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -42,14 +42,14 @@ class ReturnYouTubeDislikeOldLayoutPatch : BytecodePatch( it.mutableMethod.apply { val startIndex = it.scanResult.patternScanResult!!.startIndex slimMetadataButtonViewFieldReference = - instruction<ReferenceInstruction>(startIndex).reference + getInstruction<ReferenceInstruction>(startIndex).reference } } ?: return SlimMetadataButtonViewFingerprint.toErrorResult() SlimMetadataButtonTextFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.startIndex - val setTextInstruction = instruction<FiveRegisterInstruction>(insertIndex) + val setTextInstruction = getInstruction<FiveRegisterInstruction>(insertIndex) val tempRegister = setTextInstruction.registerC + 1 @@ -75,14 +75,14 @@ class ReturnYouTubeDislikeOldLayoutPatch : BytecodePatch( it.mutableMethod.apply { val startIndex = it.scanResult.patternScanResult!!.startIndex getActiveBooleanFieldReference = - instruction<ReferenceInstruction>(startIndex).reference + getInstruction<ReferenceInstruction>(startIndex).reference } } ?: return ButtonTagOnClickFingerprint.toErrorResult() parentResult.mutableMethod.apply { val dislikeButtonIndex = getWideLiteralIndex(dislikeButtonId) - val dislikeButtonRegister = instruction<OneRegisterInstruction>(dislikeButtonIndex).registerA - val dislikeButtonInstruction = instruction<TwoRegisterInstruction>(dislikeButtonIndex - 1) + val dislikeButtonRegister = getInstruction<OneRegisterInstruction>(dislikeButtonIndex).registerA + val dislikeButtonInstruction = getInstruction<TwoRegisterInstruction>(dislikeButtonIndex - 1) addInstructions( dislikeButtonIndex, """ @@ -93,8 +93,8 @@ class ReturnYouTubeDislikeOldLayoutPatch : BytecodePatch( ) val likeButtonIndex = getWideLiteralIndex(likeButtonId) - val likeButtonRegister = instruction<OneRegisterInstruction>(likeButtonIndex).registerA - val likeButtonInstruction = instruction<TwoRegisterInstruction>(likeButtonIndex - 1) + val likeButtonRegister = getInstruction<OneRegisterInstruction>(likeButtonIndex).registerA + val likeButtonInstruction = getInstruction<TwoRegisterInstruction>(likeButtonIndex - 1) addInstructions( likeButtonIndex, """ diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/shorts/patch/ReturnYouTubeDislikeShortsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/shorts/patch/ReturnYouTubeDislikeShortsPatch.kt index 15179d0c3..09df9cedb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/shorts/patch/ReturnYouTubeDislikeShortsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/returnyoutubedislike/shorts/patch/ReturnYouTubeDislikeShortsPatch.kt @@ -5,8 +5,8 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -30,14 +30,14 @@ class ReturnYouTubeDislikeShortsPatch : BytecodePatch( .getMethod() as MutableMethod ).apply { val insertIndex = implementation!!.instructions.size - 1 - val insertRegister = instruction<OneRegisterInstruction>(insertIndex).registerA + val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex).registerA this.insertShorts(insertIndex, insertRegister) } it.mutableMethod.apply { val insertIndex = it.scanResult.patternScanResult!!.startIndex + 2 - val insertRegister = instruction<OneRegisterInstruction>(insertIndex - 1).registerA + val insertRegister = getInstruction<OneRegisterInstruction>(insertIndex - 1).registerA this.insertShorts(insertIndex, insertRegister) } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/fingerprints/ThemeSetterSystemFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/fingerprints/ThemeSetterSystemFingerprint.kt index 3ea5ae528..707aa2355 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/fingerprints/ThemeSetterSystemFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/fingerprints/ThemeSetterSystemFingerprint.kt @@ -8,5 +8,5 @@ import org.jf.dexlib2.Opcode object ThemeSetterSystemFingerprint : MethodFingerprint( returnType = "L", opcodes = listOf(Opcode.RETURN_OBJECT), - customFingerprint = { it.isWideLiteralExists(appearanceStringId) } + customFingerprint = { it, _ -> it.isWideLiteralExists(appearanceStringId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsBytecodePatch.kt index bc9175ff9..b59be2295 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsBytecodePatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.replaceInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/fingerprints/OverlayViewLayoutFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/fingerprints/OverlayViewLayoutFingerprint.kt index d3af55937..f855d940d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/fingerprints/OverlayViewLayoutFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/fingerprints/OverlayViewLayoutFingerprint.kt @@ -12,5 +12,5 @@ object OverlayViewLayoutFingerprint : MethodFingerprint( Opcode.MOVE_RESULT_OBJECT, Opcode.CHECK_CAST ), - customFingerprint = { it.definingClass.endsWith("YouTubeControlsOverlay;") && it.isWideLiteralExists(insetOverlayViewLayoutId) } + customFingerprint = { it, _ -> it.definingClass.endsWith("YouTubeControlsOverlay;") && it.isWideLiteralExists(insetOverlayViewLayoutId) } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/fingerprints/PlayerControllerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/fingerprints/PlayerControllerFingerprint.kt index c68fcf754..4d9475a64 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/fingerprints/PlayerControllerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/fingerprints/PlayerControllerFingerprint.kt @@ -3,5 +3,5 @@ package app.revanced.patches.youtube.misc.sponsorblock.bytecode.fingerprints import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object PlayerControllerFingerprint : MethodFingerprint( - customFingerprint = { it.definingClass.endsWith("SegmentPlaybackController;") && it.name == "setSponsorBarRect" } + customFingerprint = { it, _ -> it.definingClass.endsWith("SegmentPlaybackController;") && it.name == "setSponsorBarRect" } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt index bf14f3b07..01ff85642 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt @@ -4,10 +4,10 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.replaceInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -96,7 +96,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( for ((index, instruction) in insertInstructions.withIndex()) { if (instruction.opcode != Opcode.INVOKE_STATIC) continue - val invokeInstruction = insertMethod.instruction<Instruction35c>(index) + val invokeInstruction = insertMethod.getInstruction<Instruction35c>(index) if ((invokeInstruction.reference as MethodReference).name != "round") continue val insertIndex = index + 2 @@ -143,7 +143,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( val drawSegmentInstructionInsertIndex = index - 1 val (canvasInstance, centerY) = - insertMethod.instruction<FiveRegisterInstruction>(drawSegmentInstructionInsertIndex).let { it.registerC to it.registerE } + insertMethod.getInstruction<FiveRegisterInstruction>(drawSegmentInstructionInsertIndex).let { it.registerC to it.registerE } insertMethod.addInstruction( drawSegmentInstructionInsertIndex, @@ -173,7 +173,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( TotalTimeFingerprint.result?.mutableMethod?.let { it.apply { val targetIndex = getWideLiteralIndex(totalTimeId) + 2 - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstructions( targetIndex + 1, """ @@ -190,7 +190,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( OverlayViewLayoutFingerprint.result?.mutableMethod?.let{ it.apply{ val targetIndex = getWideLiteralIndex(insetOverlayViewLayoutId) + 3 - val targetRegister = instruction<OneRegisterInstruction>(targetIndex).registerA + val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA addInstruction( targetIndex + 1, @@ -207,7 +207,7 @@ class SponsorBlockBytecodePatch : BytecodePatch( for ((index, instruction) in instructions.withIndex()) { if (instruction.opcode != Opcode.CONST_STRING) continue - val register = it.instruction<OneRegisterInstruction>(index).registerA + val register = it.getInstruction<OneRegisterInstruction>(index).registerA it.replaceInstruction( index, "const-string v$register, \"${MainstreamVideoIdPatch.reactReference}\"" diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/timebar/fingerprints/OnDrawFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/timebar/fingerprints/OnDrawFingerprint.kt index 4934dd92f..b5b90bb2c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/timebar/fingerprints/OnDrawFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/timebar/fingerprints/OnDrawFingerprint.kt @@ -7,11 +7,11 @@ import org.jf.dexlib2.Opcode object OnDrawFingerprint : MethodFingerprint ( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.MOVE_OBJECT_FROM16, Opcode.MOVE_OBJECT_FROM16 ), - customFingerprint = {it.name == "onDraw"} + customFingerprint = { it, _ -> it.name == "onDraw"} ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt index 30ca9f748..d91d6eb92 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/fingerprint/LegacyVideoIdFingerprint.kt @@ -7,10 +7,10 @@ import org.jf.dexlib2.Opcode object LegacyVideoIdFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.DECLARED_SYNCHRONIZED or AccessFlags.FINAL or AccessFlags.PUBLIC, + accessFlags = AccessFlags.DECLARED_SYNCHRONIZED or AccessFlags.FINAL or AccessFlags.PUBLIC, parameters = listOf("L"), opcodes = listOf(Opcode.INVOKE_INTERFACE), - customFingerprint = { + customFingerprint = { it, _ -> it.definingClass.endsWith("PlaybackLifecycleMonitor;") } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt index a51796071..9a6feb413 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/legacy/patch/LegacyVideoIdPatch.kt @@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt index a1af6f296..c689094b8 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/MainstreamVideoIdFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object MainstreamVideoIdFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.INVOKE_INTERFACE, @@ -15,5 +15,5 @@ object MainstreamVideoIdFingerprint : MethodFingerprint( Opcode.INVOKE_INTERFACE, Opcode.MOVE_RESULT_OBJECT ), - customFingerprint = { it.definingClass.endsWith("SubtitlesOverlayPresenter;") } + customFingerprint = { it, _ -> it.definingClass.endsWith("SubtitlesOverlayPresenter;") } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt index 664b8ce6c..233b7f90c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/TimebarFingerprint.kt @@ -6,9 +6,9 @@ import org.jf.dexlib2.AccessFlags object TimebarFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), - customFingerprint = { + customFingerprint = { it, _ -> it.definingClass.endsWith("/TimeBar;") && it.name.contains("draw") } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt index e58f4a07a..a6a9f6d50 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/fingerprint/VideoTimeHighPrecisionFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object VideoTimeHighPrecisionFingerprint : MethodFingerprint ( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, parameters = listOf("J", "J", "J", "J", "I", "L"), opcodes = listOf( Opcode.INVOKE_DIRECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt index 0d4485c55..1d6e360c7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videoid/mainstream/patch/MainstreamVideoIdPatch.kt @@ -6,7 +6,9 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.* +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult @@ -90,7 +92,7 @@ class MainstreamVideoIdPatch : BytecodePatch( } ?: return SeekFingerprint.toErrorResult() } ?: return PlayerInitFingerprint.toErrorResult() - /* + /** * Set the high precision video time method */ VideoTimeHighPrecisionParentFingerprint.result?.let { parentResult -> @@ -99,12 +101,12 @@ class MainstreamVideoIdPatch : BytecodePatch( } ?: return VideoTimeHighPrecisionFingerprint.toErrorResult() } ?: return VideoTimeHighPrecisionParentFingerprint.toErrorResult() - /* + /** * Hook the methods which set the time */ highPrecisionTimeHook(INTEGRATIONS_CLASS_DESCRIPTOR, "setVideoTime") - /* + /** * Set current video time */ PlayerControllerSetTimeReferenceFingerprint.result?.let { diff --git a/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrols/bytecode/fingerprints/SwipeControlsHostActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrols/bytecode/fingerprints/SwipeControlsHostActivityFingerprint.kt index 2671a8b00..d03071028 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrols/bytecode/fingerprints/SwipeControlsHostActivityFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrols/bytecode/fingerprints/SwipeControlsHostActivityFingerprint.kt @@ -3,7 +3,7 @@ package app.revanced.patches.youtube.swipe.swipecontrols.bytecode.fingerprints import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object SwipeControlsHostActivityFingerprint : MethodFingerprint( - customFingerprint = { it.definingClass == "Lapp/revanced/integrations/swipecontrols/SwipeControlsHostActivity;" + customFingerprint = { it, _ -> it.definingClass == "Lapp/revanced/integrations/swipecontrols/SwipeControlsHostActivity;" && it.name == "<init>" } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrols/bytecode/fingerprints/WatchWhileActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrols/bytecode/fingerprints/WatchWhileActivityFingerprint.kt index ae538e593..6bd59f247 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrols/bytecode/fingerprints/WatchWhileActivityFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrols/bytecode/fingerprints/WatchWhileActivityFingerprint.kt @@ -3,7 +3,7 @@ package app.revanced.patches.youtube.swipe.swipecontrols.bytecode.fingerprints import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint object WatchWhileActivityFingerprint : MethodFingerprint( - customFingerprint = { + customFingerprint = { it, _ -> it.definingClass.endsWith("WatchWhileActivity;") && it.name == "<init>" } diff --git a/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrolshdr/patch/SwipeControlsHDRPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrolshdr/patch/SwipeControlsHDRPatch.kt index a75354129..15a1d7bc0 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrolshdr/patch/SwipeControlsHDRPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/swipe/swipecontrolshdr/patch/SwipeControlsHDRPatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -25,13 +25,13 @@ class SwipeControlsHDRPatch : BytecodePatch( override fun execute(context: BytecodeContext): PatchResult { HDRVideoFingerprint.result?.mutableMethod?.let { - it.addInstructions( + it.addInstructionsWithLabels( 0, """ invoke-static {}, $SWIPE_PATH/EnableSwipeGestureBrightnessInHDRPatch;->enableSwipeGestureBrightnessInHDR()Z move-result v0 if-eqz v0, :default return-void - """, listOf(ExternalLabel("default", it.instruction(0))) + """, ExternalLabel("default", it.getInstruction(0)) ) } ?: return HDRVideoFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/SpeedArrayGeneratorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/SpeedArrayGeneratorFingerprint.kt index 1f3001d88..8453286c3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/SpeedArrayGeneratorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/SpeedArrayGeneratorFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object SpeedArrayGeneratorFingerprint : MethodFingerprint( returnType = "[L", - access = AccessFlags.PUBLIC or AccessFlags.STATIC, + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC, strings = listOf("0.0#") ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/SpeedLimiterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/SpeedLimiterFingerprint.kt index 14d2ab5f8..fb5083f60 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/SpeedLimiterFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/SpeedLimiterFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object SpeedLimiterFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("F"), opcodes = listOf( Opcode.INVOKE_STATIC, diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/VideoSpeedEntriesFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/VideoSpeedEntriesFingerprint.kt index ad52080e9..2033d6384 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/VideoSpeedEntriesFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/fingerprints/VideoSpeedEntriesFingerprint.kt @@ -5,7 +5,7 @@ import org.jf.dexlib2.Opcode object VideoSpeedEntriesFingerprint : MethodFingerprint( opcodes = listOf(Opcode.FILL_ARRAY_DATA), - customFingerprint = { + customFingerprint = { it, _ -> it.definingClass.endsWith("VideoSpeedEntries;") && it.name == "<clinit>" } ) diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/patch/CustomVideoSpeedBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/patch/CustomVideoSpeedBytecodePatch.kt index b2f64d647..525261780 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/patch/CustomVideoSpeedBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/customspeed/patch/CustomVideoSpeedBytecodePatch.kt @@ -5,17 +5,24 @@ import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.extensions.replaceInstruction -import app.revanced.patcher.patch.* +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.OptionsContainer +import app.revanced.patcher.patch.PatchOption +import app.revanced.patcher.patch.PatchResult +import app.revanced.patcher.patch.PatchResultError +import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.patch.annotations.Patch import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.shared.annotation.YouTubeCompatibility import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch.Companion.contexts -import app.revanced.patches.youtube.video.customspeed.fingerprints.* +import app.revanced.patches.youtube.video.customspeed.fingerprints.SpeedArrayGeneratorFingerprint +import app.revanced.patches.youtube.video.customspeed.fingerprints.SpeedLimiterFingerprint +import app.revanced.patches.youtube.video.customspeed.fingerprints.VideoSpeedEntriesFingerprint import app.revanced.util.integrations.Constants.VIDEO_PATH import app.revanced.util.resources.ResourceHelper.addEntries import app.revanced.util.resources.ResourceHelper.addEntryValues @@ -62,14 +69,14 @@ class CustomVideoSpeedPatch : BytecodePatch( val sizeCallResultRegister = (implementation!!.instructions.elementAt(sizeCallIndex + 1) as OneRegisterInstruction).registerA - addInstructions( + addInstructionsWithLabels( sizeCallIndex + 2, """ invoke-static {}, $VIDEO_PATH/VideoSpeedPatch;->isCustomVideoSpeedEnabled()Z move-result v9 if-eqz v9, :defaultspeed const/4 v$sizeCallResultRegister, 0x0 - """, listOf(ExternalLabel("defaultspeed", instruction(sizeCallIndex + 2))) + """, ExternalLabel("defaultspeed", getInstruction(sizeCallIndex + 2)) ) val (arrayLengthConstIndex, arrayLengthConst) = implementation!!.instructions.withIndex() @@ -79,13 +86,13 @@ class CustomVideoSpeedPatch : BytecodePatch( val videoSpeedsArrayType = "$VIDEO_PATH/VideoSpeedEntries;->videoSpeed:[F" - addInstructions( + addInstructionsWithLabels( arrayLengthConstIndex + 1, """ if-eqz v9, :defaultspeed sget-object v$arrayLengthConstDestination, $videoSpeedsArrayType array-length v$arrayLengthConstDestination, v$arrayLengthConstDestination - """, listOf(ExternalLabel("defaultspeed", instruction(arrayLengthConstIndex + 1))) + """, ExternalLabel("defaultspeed", getInstruction(arrayLengthConstIndex + 1)) ) val (originalArrayFetchIndex, originalArrayFetch) = implementation!!.instructions.withIndex() @@ -97,12 +104,12 @@ class CustomVideoSpeedPatch : BytecodePatch( val originalArrayFetchDestination = (originalArrayFetch as OneRegisterInstruction).registerA - addInstructions( + addInstructionsWithLabels( originalArrayFetchIndex + 1, """ if-eqz v9, :defaultspeed sget-object v$originalArrayFetchDestination, $videoSpeedsArrayType - """, listOf(ExternalLabel("defaultspeed", instruction(originalArrayFetchIndex + 1))) + """, ExternalLabel("defaultspeed", getInstruction(originalArrayFetchIndex + 1)) ) } } ?: return SpeedArrayGeneratorFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/hdr/fingerprints/HdrCapabilitiesFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/hdr/fingerprints/HdrCapabilitiesFingerprint.kt index 98df5e3ff..7db2c648b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/hdr/fingerprints/HdrCapabilitiesFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/hdr/fingerprints/HdrCapabilitiesFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object HdrCapabilitiesFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L", "L"), opcodes = listOf( Opcode.INVOKE_VIRTUAL_RANGE, diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/hdr/patch/DisableHdrVideoPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/hdr/patch/DisableHdrVideoPatch.kt index e64ba34a2..14154096e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/hdr/patch/DisableHdrVideoPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/hdr/patch/DisableHdrVideoPatch.kt @@ -6,8 +6,8 @@ import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext import app.revanced.patcher.data.toMethodWalker -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess @@ -39,14 +39,14 @@ class DisableHdrVideoPatch : BytecodePatch( .nextMethod(it.scanResult.patternScanResult!!.endIndex, true) .getMethod() as MutableMethod ) { - addInstructions( + addInstructionsWithLabels( 0, """ invoke-static {}, $VIDEO_PATH/HDRVideoPatch;->disableHDRVideo()Z move-result v0 if-nez v0, :default return v0 - """, listOf(ExternalLabel("default", instruction(0))) + """, ExternalLabel("default", getInstruction(0)) ) } } ?: return HdrCapabilitiesFingerprint.toErrorResult() diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/livestream/patch/LiveStreamPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/livestream/patch/LiveStreamPatch.kt index 59f983cc2..3c08b2b90 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/livestream/patch/LiveStreamPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/livestream/patch/LiveStreamPatch.kt @@ -4,7 +4,7 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualityReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualityReferenceFingerprint.kt index ceb107e32..a2c39243f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualityReferenceFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualityReferenceFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object VideoQualityReferenceFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IPUT_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySetterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySetterFingerprint.kt index d092b0517..0ac2e7ca8 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySetterFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySetterFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object VideoQualitySetterFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), strings = listOf("VIDEO_QUALITIES_MENU_BOTTOM_SHEET_FRAGMENT") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySettingsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySettingsFingerprint.kt index 1376e01a4..99563837f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySettingsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySettingsFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object VideoQualitySettingsFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("L"), opcodes = listOf( Opcode.IGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySettingsParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySettingsParentFingerprint.kt index 9dff6f217..8ff2dce5b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySettingsParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoQualitySettingsParentFingerprint.kt @@ -7,7 +7,7 @@ import org.jf.dexlib2.Opcode object VideoQualitySettingsParentFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("[L", "I", "Z"), opcodes = listOf( Opcode.IF_NE, diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoUserQualityChangeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoUserQualityChangeFingerprint.kt index 38ae4dcf0..c481a4cff 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoUserQualityChangeFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/fingerprints/VideoUserQualityChangeFingerprint.kt @@ -6,6 +6,6 @@ import org.jf.dexlib2.AccessFlags object VideoUserQualityChangeFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, - customFingerprint = { it.name == "onItemClick" } + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + customFingerprint = { it, _ -> it.name == "onItemClick" } ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt index 4bf2413fd..e98e62db6 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/bytecode/patch/VideoQualityBytecodePatch.kt @@ -4,8 +4,8 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/fingerprints/VideoSpeedSettingsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/fingerprints/VideoSpeedSettingsFingerprint.kt index a4bf12a85..c647034fb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/fingerprints/VideoSpeedSettingsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/fingerprints/VideoSpeedSettingsFingerprint.kt @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags object VideoSpeedSettingsFingerprint : MethodFingerprint( returnType = "V", - access = AccessFlags.PUBLIC or AccessFlags.FINAL, + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf("[L", "I"), strings = listOf("menu_item_playback_speed") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt index c29e37528..7d9bf4e34 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/bytecode/patch/VideoSpeedBytecodePatch.kt @@ -4,7 +4,7 @@ import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess diff --git a/src/main/kotlin/app/revanced/util/bytecode/BytecodeHelper.kt b/src/main/kotlin/app/revanced/util/bytecode/BytecodeHelper.kt index 11e2c1b0d..2ed3c00ed 100644 --- a/src/main/kotlin/app/revanced/util/bytecode/BytecodeHelper.kt +++ b/src/main/kotlin/app/revanced/util/bytecode/BytecodeHelper.kt @@ -1,8 +1,8 @@ package app.revanced.util.bytecode import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.replaceInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.util.integrations.Constants.UTILS_PATH internal object BytecodeHelper { diff --git a/src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt b/src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt index 6b7d68d41..353e8787d 100644 --- a/src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt +++ b/src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt @@ -1,8 +1,8 @@ package app.revanced.util.microg import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.replaceInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import app.revanced.patcher.util.proxy.mutableTypes.MutableClass import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod diff --git a/src/main/kotlin/app/revanced/util/pivotbar/InjectionUtils.kt b/src/main/kotlin/app/revanced/util/pivotbar/InjectionUtils.kt index d873ae7a6..931858960 100644 --- a/src/main/kotlin/app/revanced/util/pivotbar/InjectionUtils.kt +++ b/src/main/kotlin/app/revanced/util/pivotbar/InjectionUtils.kt @@ -1,7 +1,7 @@ package app.revanced.util.pivotbar -import app.revanced.patcher.extensions.addInstruction -import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import org.jf.dexlib2.Opcode.MOVE_RESULT_OBJECT import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @@ -20,7 +20,7 @@ internal object InjectionUtils { // Register to pass to the hook val registerIndex = insertIndex - 1 // MOVE_RESULT_OBJECT is always the previous instruction - val register = injectTarget.instruction<OneRegisterInstruction>(registerIndex).registerA + val register = injectTarget.getInstruction<OneRegisterInstruction>(registerIndex).registerA injectTarget.addInstruction( insertIndex,