Compare commits

...

11 Commits

Author SHA1 Message Date
semantic-release-bot
6d9c743618 chore(release): 2.79.1 [skip ci]
## [2.79.1](https://github.com/revanced/revanced-patches/compare/v2.79.0...v2.79.1) (2022-10-03)

### Bug Fixes

* **youtube/disable-startup-shorts-player:** do not prevent playing videos on startup ([#714](https://github.com/revanced/revanced-patches/issues/714)) ([5711cd8](6c9986290b))
2022-10-03 23:42:37 +00:00
OxrxL
6c9986290b fix(youtube/disable-startup-shorts-player): do not prevent playing videos on startup (#714) 2022-10-04 01:40:11 +02:00
semantic-release-bot
adc7f670d1 chore(release): 2.79.0 [skip ci]
# [2.79.0](https://github.com/revanced/revanced-patches/compare/v2.78.0...v2.79.0) (2022-10-03)

### Features

* `hide-video-buttons` patch ([39da5b7](1e54bc457f))
2022-10-03 11:42:13 +00:00
oSumAtrIX
fdc34023fc refactor(youtube/general-ads): abstract integrations code 2022-10-03 13:38:07 +02:00
oSumAtrIX
1e54bc457f feat: hide-video-buttons patch 2022-10-03 13:37:30 +02:00
semantic-release-bot
9552100878 chore(release): 2.78.0 [skip ci]
# [2.78.0](https://github.com/revanced/revanced-patches/compare/v2.77.1...v2.78.0) (2022-10-02)

### Features

* **youtube/general-ads:** check for ad in identifier ([fe6f3bd](9166024b01))
2022-10-02 23:26:59 +00:00
oSumAtrIX
9166024b01 feat(youtube/general-ads): check for ad in identifier 2022-10-03 01:25:08 +02:00
semantic-release-bot
acc0f5018c chore(release): 2.77.1 [skip ci]
## [2.77.1](https://github.com/revanced/revanced-patches/compare/v2.77.0...v2.77.1) (2022-10-01)

### Bug Fixes

* **tiktok/tiktok-downloads:** add missing patch dependencies ([#686](https://github.com/revanced/revanced-patches/issues/686)) ([2b6bbba](05c043ada3))
2022-10-01 04:30:50 +00:00
d4rkk3y
05c043ada3 fix(tiktok/tiktok-downloads): add missing patch dependencies (#686) 2022-10-01 06:28:40 +02:00
semantic-release-bot
e30967bedd chore(release): 2.77.0 [skip ci]
# [2.77.0](https://github.com/revanced/revanced-patches/compare/v2.76.3...v2.77.0) (2022-10-01)

### Features

* **youtube/hdr-auto-brightness:** increase strength of fingerprint ([91e2f88](40d56f6e59))
2022-10-01 03:22:03 +00:00
oSumAtrIX
40d56f6e59 feat(youtube/hdr-auto-brightness): increase strength of fingerprint 2022-10-01 05:19:00 +02:00
11 changed files with 153 additions and 29 deletions

View File

@@ -1,3 +1,38 @@
## [2.79.1](https://github.com/revanced/revanced-patches/compare/v2.79.0...v2.79.1) (2022-10-03)
### Bug Fixes
* **youtube/disable-startup-shorts-player:** do not prevent playing videos on startup ([#714](https://github.com/revanced/revanced-patches/issues/714)) ([9a0d379](https://github.com/revanced/revanced-patches/commit/9a0d3798afd75bba5c63e1b8803dc25814586be9))
# [2.79.0](https://github.com/revanced/revanced-patches/compare/v2.78.0...v2.79.0) (2022-10-03)
### Features
* `hide-video-buttons` patch ([584803a](https://github.com/revanced/revanced-patches/commit/584803aa900f94de1b2b2a0c41fb0884fa9270d3))
# [2.78.0](https://github.com/revanced/revanced-patches/compare/v2.77.1...v2.78.0) (2022-10-02)
### Features
* **youtube/general-ads:** check for ad in identifier ([fd0506e](https://github.com/revanced/revanced-patches/commit/fd0506eb95dbf398eb7d6bfa8732f517b9867545))
## [2.77.1](https://github.com/revanced/revanced-patches/compare/v2.77.0...v2.77.1) (2022-10-01)
### Bug Fixes
* **tiktok/tiktok-downloads:** add missing patch dependencies ([#686](https://github.com/revanced/revanced-patches/issues/686)) ([5c3b4ed](https://github.com/revanced/revanced-patches/commit/5c3b4ed0530e89d50db3b5bb9893e1ef4b463bae))
# [2.77.0](https://github.com/revanced/revanced-patches/compare/v2.76.3...v2.77.0) (2022-10-01)
### Features
* **youtube/hdr-auto-brightness:** increase strength of fingerprint ([2379b58](https://github.com/revanced/revanced-patches/commit/2379b5892b3505c8780f475bbc56f520613fa31d))
## [2.76.3](https://github.com/revanced/revanced-patches/compare/v2.76.2...v2.76.3) (2022-10-01)

View File

@@ -125,6 +125,7 @@ The official Patch bundle provided by ReVanced and the community.
| `custom-branding` | Changes the YouTube launcher icon and name to your choice (defaults to ReVanced). | all |
| `hide-create-button` | Hides the create button in the navigation bar. | 17.36.37 |
| `hide-shorts-button` | Hides the shorts button on the navigation bar. | 17.36.37 |
| `hide-video-buttons` | Adds options to hide action buttons under a video. | 17.36.37 |
| `theme` | Applies a custom theme. | all |
| `hide-email-address` | Hides the email address in the account switcher. | 17.36.37 |
| `sponsorblock` | Integrate SponsorBlock. | 17.36.37 |

View File

@@ -1,2 +1,2 @@
kotlin.code.style = official
version = 2.76.3
version = 2.79.1

File diff suppressed because one or more lines are too long

View File

@@ -12,6 +12,7 @@ import app.revanced.patcher.extensions.replaceInstructions
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.patch.impl.BytecodePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
@@ -20,13 +21,16 @@ import app.revanced.patches.tiktok.interaction.downloads.fingerprints.ACLCommonS
import app.revanced.patches.tiktok.interaction.downloads.fingerprints.ACLCommonShareFingerprint2
import app.revanced.patches.tiktok.interaction.downloads.fingerprints.ACLCommonShareFingerprint3
import app.revanced.patches.tiktok.interaction.downloads.fingerprints.DownloadPathParentFingerprint
import app.revanced.patches.tiktok.misc.integrations.patch.TikTokIntegrationsPatch
import app.revanced.patches.tiktok.misc.settings.fingerprints.SettingsStatusLoadFingerprint
import app.revanced.patches.tiktok.misc.settings.patch.TikTokSettingsPatch
import org.jf.dexlib2.Opcode
import org.jf.dexlib2.iface.instruction.OneRegisterInstruction
import org.jf.dexlib2.iface.instruction.ReferenceInstruction
import org.jf.dexlib2.iface.reference.StringReference
@Patch
@DependsOn([TikTokIntegrationsPatch::class, TikTokSettingsPatch::class])
@Name("tiktok-download")
@Description("Removes download restrictions and changes the default path to download to.")
@DownloadsCompatibility

View File

@@ -357,7 +357,7 @@ class GeneralBytecodeAdsPatch : BytecodePatch() {
lithoMethod.addInstructions(
insertIndex, // right after setting the component.pathBuilder field,
"""
invoke-static {v5}, Lapp/revanced/integrations/patches/GeneralBytecodeAdsPatch;->isAdComponent(Ljava/lang/StringBuilder;)Z
invoke-static {v5, v2}, Lapp/revanced/integrations/patches/LithoFilterPatch;->filter(Ljava/lang/StringBuilder;Ljava/lang/String;)Z
move-result v$clobberedRegister
if-eqz v$clobberedRegister, :not_an_ad
move-object/from16 v2, p1

View File

@@ -0,0 +1,13 @@
package app.revanced.patches.youtube.layout.buttons.annotations
import app.revanced.patcher.annotation.Compatibility
import app.revanced.patcher.annotation.Package
@Compatibility(
[Package(
"com.google.android.youtube", arrayOf("17.25.34", "17.26.35", "17.27.39", "17.28.34", "17.29.34", "17.32.35", "17.33.42", "17.34.35", "17.34.36", "17.36.37")
)]
)
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
internal annotation class HideButtonsCompatibility

View File

@@ -0,0 +1,81 @@
package app.revanced.patches.youtube.layout.buttons.patch
import app.revanced.patcher.annotation.Description
import app.revanced.patcher.annotation.Name
import app.revanced.patcher.annotation.Version
import app.revanced.patcher.data.impl.ResourceData
import app.revanced.patcher.patch.PatchResult
import app.revanced.patcher.patch.PatchResultSuccess
import app.revanced.patcher.patch.annotations.DependsOn
import app.revanced.patcher.patch.annotations.Patch
import app.revanced.patcher.patch.impl.ResourcePatch
import app.revanced.patches.youtube.ad.general.bytecode.patch.GeneralBytecodeAdsPatch
import app.revanced.patches.youtube.layout.buttons.annotations.HideButtonsCompatibility
import app.revanced.patches.youtube.misc.mapping.patch.ResourceMappingResourcePatch
import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch
import app.revanced.patches.youtube.misc.settings.framework.components.impl.PreferenceScreen
import app.revanced.patches.youtube.misc.settings.framework.components.impl.StringResource
import app.revanced.patches.youtube.misc.settings.framework.components.impl.SwitchPreference
@Patch
@DependsOn([ResourceMappingResourcePatch::class, GeneralBytecodeAdsPatch::class])
@Name("hide-video-buttons")
@Description("Adds options to hide action buttons under a video.")
@HideButtonsCompatibility
@Version("0.0.1")
class HideButtonsPatch : ResourcePatch() {
override fun execute(data: ResourceData): PatchResult {
SettingsPatch.PreferenceScreen.LAYOUT.addPreferences(
PreferenceScreen(
"revanced_hide_buttons",
StringResource("revanced_hide_buttons_title", "Hide action buttons"),
listOf(
SwitchPreference(
"revanced_like_button",
StringResource("revanced_like_button_title", "Hide like button"),
false,
StringResource("revanced_like_button_on", "Like button is hidden"),
StringResource("revanced_like_button_off", "Like button is shown")
),
SwitchPreference(
"revanced_dislike_button",
StringResource("revanced_dislike_button_title", "Hide dislike button"),
false,
StringResource("revanced_dislike_button_on", "Dislike button is hidden"),
StringResource("revanced_dislike_button_off", "Dislike button is shown")
),
SwitchPreference(
"revanced_download_button",
StringResource("revanced_download_button_title", "Hide download button"),
false,
StringResource("revanced_download_button_on", "Download button is hidden"),
StringResource("revanced_download_button_off", "Download button is shown")
),
SwitchPreference(
"revanced_playlist_button",
StringResource("revanced_playlist_button_title", "Hide playlist button"),
false,
StringResource("revanced_playlist_button_on", "Playlist button is hidden"),
StringResource("revanced_playlist_button_off", "Playlist button is shown")
),
SwitchPreference(
"revanced_action_button",
StringResource("revanced_action_button_title", "Hide create, clip and thanks buttons"),
true,
StringResource("revanced_action_button_on", "Buttons are hidden"),
StringResource("revanced_action_button_off", "Buttons are shown")
),
SwitchPreference(
"revanced_share_button",
StringResource("revanced_share_button_title", "Hide share button"),
false,
StringResource("revanced_share_button_on", "Share button is hidden"),
StringResource("revanced_share_button_off", "Share button is shown")
),
),
StringResource("revanced_hide_buttons_summary", "Hide or show buttons under videos")
)
)
return PatchResultSuccess()
}
}

View File

@@ -9,11 +9,11 @@ import app.revanced.patches.youtube.layout.startupshortsreset.annotations.Startu
import org.jf.dexlib2.AccessFlags
import org.jf.dexlib2.Opcode
@Name("action-open-shorts-fingerprint")
@MatchingMethod("Lkyt;", "l")
@Name("user-was-in-shorts-fingerprint")
@MatchingMethod("Lkzb;", "e")
@StartupShortsResetCompatibility
@Version("0.0.1")
object ActionOpenShortsFingerprint : MethodFingerprint(
"V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L", "L"),
strings = listOf("com.google.android.youtube.action.open.shorts"),
object UserWasInShortsFingerprint : MethodFingerprint(
"V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L"),
strings = listOf("Failed to read user_was_in_shorts proto after successful warmup"),
)

View File

@@ -11,14 +11,11 @@ import app.revanced.patcher.patch.annotations.DependsOn
import app.revanced.patcher.patch.annotations.Patch
import app.revanced.patcher.patch.impl.BytecodePatch
import app.revanced.patches.youtube.layout.startupshortsreset.annotations.StartupShortsResetCompatibility
import app.revanced.patches.youtube.layout.startupshortsreset.fingerprints.ActionOpenShortsFingerprint
import app.revanced.patches.youtube.layout.startupshortsreset.fingerprints.UserWasInShortsFingerprint
import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch
import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch
import app.revanced.patches.youtube.misc.settings.framework.components.impl.StringResource
import app.revanced.patches.youtube.misc.settings.framework.components.impl.SwitchPreference
import org.jf.dexlib2.builder.instruction.BuilderInstruction21c
import org.jf.dexlib2.iface.instruction.OneRegisterInstruction
import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction
@Patch
@DependsOn([IntegrationsPatch::class, SettingsPatch::class])
@@ -28,7 +25,7 @@ import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction
@Version("0.0.1")
class DisableShortsOnStartupPatch : BytecodePatch(
listOf(
ActionOpenShortsFingerprint
UserWasInShortsFingerprint
)
) {
override fun execute(data: BytecodeData): PatchResult {
@@ -42,22 +39,14 @@ class DisableShortsOnStartupPatch : BytecodePatch(
)
)
val actionOpenShortsResult = ActionOpenShortsFingerprint.result
val actionOpenShortsMethod = actionOpenShortsResult!!.mutableMethod
val actionOpenShortsInstructions = actionOpenShortsMethod.implementation!!.instructions
val userWasInShortsMethod = UserWasInShortsFingerprint.result!!.mutableMethod
val moveResultIndex = actionOpenShortsResult.scanResult.stringsScanResult!!.matches.first().index + 4
val iPutBooleanIndex = moveResultIndex + 2
val moveResultRegister = (actionOpenShortsInstructions[moveResultIndex] as OneRegisterInstruction).registerA
val iPutBooleanRegister = (actionOpenShortsInstructions[iPutBooleanIndex] as TwoRegisterInstruction).registerA
actionOpenShortsMethod.addInstructions(
moveResultIndex + 1, """
userWasInShortsMethod.addInstructions(
0, """
invoke-static { }, Lapp/revanced/integrations/patches/DisableStartupShortsPlayerPatch;->disableStartupShortsPlayer()Z
move-result v$moveResultRegister
if-eqz v$moveResultRegister, :cond_startup_shorts_reset
const/4 v$iPutBooleanRegister, 0x0
move-result v0
if-eqz v0, :cond_startup_shorts_reset
return-void
:cond_startup_shorts_reset
nop
"""

View File

@@ -5,7 +5,7 @@ import app.revanced.patcher.annotation.Version
import app.revanced.patcher.fingerprint.method.annotation.MatchingMethod
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
import app.revanced.patches.youtube.misc.hdrbrightness.annotations.HDRBrightnessCompatibility
import org.jf.dexlib2.AccessFlags
import org.jf.dexlib2.Opcode
@Name("hdr-brightness-fingerprint")
@MatchingMethod(
@@ -14,6 +14,7 @@ import org.jf.dexlib2.AccessFlags
@HDRBrightnessCompatibility
@Version("0.0.1")
object HDRBrightnessFingerprint : MethodFingerprint(
"V", AccessFlags.FINAL.value,
"V",
opcodes = listOf(Opcode.CMPL_FLOAT),
strings = listOf("c.SettingNotFound;", "screen_brightness", "android.mediaview"),
)