mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-16 07:43:56 +00:00
Compare commits
11 Commits
v4.7.0
...
v4.8.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6d2cf5a93 | ||
|
|
fe461c1d14 | ||
|
|
6b33cd2d8f | ||
|
|
c727c6f19d | ||
|
|
49db0cee1b | ||
|
|
531955a111 | ||
|
|
e53cc9bba9 | ||
|
|
fc43dd709f | ||
|
|
3a018ff002 | ||
|
|
86f11480e7 | ||
|
|
0190d5a5c9 |
33
CHANGELOG.md
33
CHANGELOG.md
@@ -1,3 +1,36 @@
|
||||
# [4.8.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v4.8.0-dev.3...v4.8.0-dev.4) (2024-04-23)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **YouTube - Comments:** Add option to hide timestamp and emoji buttons ([#3076](https://github.com/ReVanced/revanced-patches/issues/3076)) ([7efe5ae](https://github.com/ReVanced/revanced-patches/commit/7efe5aefb252a2ed908907ff218b879e2ad1a331))
|
||||
|
||||
# [4.8.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v4.8.0-dev.2...v4.8.0-dev.3) (2024-04-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Publicize abstract property ([b7c108e](https://github.com/ReVanced/revanced-patches/commit/b7c108ee201c84df31b079f3fecb6cc2f5eaf9f1))
|
||||
|
||||
# [4.8.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.8.0-dev.1...v4.8.0-dev.2) (2024-04-21)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Case patch option title correctly ([259c8b4](https://github.com/ReVanced/revanced-patches/commit/259c8b4e58df51d92d7e19417e13afa3848afc73))
|
||||
|
||||
# [4.8.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.7.0...v4.8.0-dev.1) (2024-04-21)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube - Hide video action buttons:** Remove obsolete `hide Shop button` ([#3057](https://github.com/ReVanced/revanced-patches/issues/3057)) ([b5e34f3](https://github.com/ReVanced/revanced-patches/commit/b5e34f3aabc1d9df8c41f92251618243caecdc9f))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **YouTube - Hide Shorts components:** Hide like / dislike button in video ads ([#3062](https://github.com/ReVanced/revanced-patches/issues/3062)) ([1296985](https://github.com/ReVanced/revanced-patches/commit/12969853adfe530eb6006df38e1a5aa30b28fdf9))
|
||||
|
||||
# [4.7.0](https://github.com/ReVanced/revanced-patches/compare/v4.6.0...v4.7.0) (2024-04-21)
|
||||
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ public final class app/revanced/patches/all/misc/debugging/EnableAndroidDebuggin
|
||||
|
||||
public final class app/revanced/patches/all/misc/hex/HexPatch : app/revanced/patches/shared/misc/hex/BaseHexPatch {
|
||||
public fun <init> ()V
|
||||
public fun getReplacements ()Ljava/util/List;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/all/misc/network/OverrideCertificatePinningPatch : app/revanced/patcher/patch/ResourcePatch {
|
||||
@@ -677,6 +678,7 @@ public abstract class app/revanced/patches/shared/misc/hex/BaseHexPatch : app/re
|
||||
public fun <init> ()V
|
||||
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
|
||||
public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
|
||||
public abstract fun getReplacements ()Ljava/util/List;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/shared/misc/hex/BaseHexPatch$Replacement {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
org.gradle.parallel = true
|
||||
org.gradle.caching = true
|
||||
kotlin.code.style = official
|
||||
version = 4.7.0
|
||||
version = 4.8.0-dev.4
|
||||
|
||||
@@ -19,7 +19,7 @@ class HexPatch : BaseHexPatch() {
|
||||
// Replace the custom option type with a stringArrayOption once the issue is resolved.
|
||||
private val replacementsOption by registerNewPatchOption<PatchClass<*>, List<String>>(
|
||||
key = "replacements",
|
||||
title = "replacements",
|
||||
title = "Replacements",
|
||||
description = """
|
||||
Hexadecimal patterns to search for and replace with another in a target file.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import app.revanced.patcher.patch.RawResourcePatch
|
||||
import kotlin.math.max
|
||||
|
||||
abstract class BaseHexPatch : RawResourcePatch() {
|
||||
internal abstract val replacements: List<Replacement>
|
||||
abstract val replacements: List<Replacement>
|
||||
|
||||
override fun execute(context: ResourceContext) {
|
||||
replacements.groupBy { it.targetFilePath }.forEach { (targetFilePath, replacements) ->
|
||||
|
||||
@@ -62,7 +62,17 @@ object SettingsPatch : BytecodePatch(
|
||||
AddResourcesPatch(this::class)
|
||||
|
||||
PreferenceScreen.MISC.OTHER.addPreferences(
|
||||
SwitchPreference("revanced_debug")
|
||||
// The debug setting is shared across multiple apps and the key must be the same.
|
||||
// But the title and summary must be different, otherwise when the strings file is flattened
|
||||
// for Crowdin push, Crowdin gets confused by the duplicate keys.
|
||||
// FIXME: Ideally the shared debug strings are extracted into a common app group
|
||||
// and then both apps import that. But for now unique unique title and summary keys also works.
|
||||
SwitchPreference(
|
||||
key = "revanced_debug",
|
||||
titleKey = "revanced_twitch_debug_title",
|
||||
summaryOnKey = "revanced_twitch_debug_summary_on",
|
||||
summaryOffKey = "revanced_twitch_debug_summary_off"
|
||||
)
|
||||
)
|
||||
|
||||
// Hook onCreate to handle fragment creation
|
||||
|
||||
@@ -65,8 +65,7 @@ object HideButtonsPatch : ResourcePatch() {
|
||||
SwitchPreference("revanced_hide_download_button"),
|
||||
SwitchPreference("revanced_hide_thanks_button"),
|
||||
SwitchPreference("revanced_hide_clip_button"),
|
||||
SwitchPreference("revanced_hide_playlist_button"),
|
||||
SwitchPreference("revanced_hide_shop_button")
|
||||
SwitchPreference("revanced_hide_playlist_button")
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
@@ -58,7 +58,8 @@ object CommentsPatch : ResourcePatch() {
|
||||
"revanced_comments_screen",
|
||||
preferences = setOf(
|
||||
SwitchPreference("revanced_hide_preview_comment"),
|
||||
SwitchPreference("revanced_hide_comments_section")
|
||||
SwitchPreference("revanced_hide_comments_section"),
|
||||
SwitchPreference("revanced_hide_comment_timestamp_and_emoji_buttons")
|
||||
),
|
||||
sorting = PreferenceScreen.Sorting.UNSORTED
|
||||
)
|
||||
|
||||
@@ -103,7 +103,6 @@ object HideLayoutComponentsPatch : BytecodePatch(
|
||||
SwitchPreference("revanced_hide_info_panels"),
|
||||
SwitchPreference("revanced_hide_join_membership_button"),
|
||||
SwitchPreference("revanced_hide_medical_panels"),
|
||||
SwitchPreference("revanced_hide_playables"),
|
||||
SwitchPreference("revanced_hide_quick_actions"),
|
||||
SwitchPreference("revanced_hide_related_videos"),
|
||||
SwitchPreference("revanced_hide_subscribers_community_guidelines"),
|
||||
@@ -122,6 +121,7 @@ object HideLayoutComponentsPatch : BytecodePatch(
|
||||
SwitchPreference("revanced_hide_mix_playlists"),
|
||||
SwitchPreference("revanced_hide_movies_section"),
|
||||
SwitchPreference("revanced_hide_notify_me_button"),
|
||||
SwitchPreference("revanced_hide_playables"),
|
||||
SwitchPreference("revanced_hide_search_result_recommendations"),
|
||||
SwitchPreference("revanced_hide_search_result_shelf_header"),
|
||||
SwitchPreference("revanced_hide_show_more_button"),
|
||||
|
||||
@@ -13,11 +13,14 @@ import app.revanced.patches.youtube.misc.integrations.IntegrationsPatch
|
||||
import app.revanced.patches.youtube.misc.litho.filter.LithoFilterPatch
|
||||
import app.revanced.patches.youtube.misc.navigation.NavigationBarHookPatch
|
||||
import app.revanced.util.exception
|
||||
import app.revanced.util.getReference
|
||||
import app.revanced.util.indexOfIdResourceOrThrow
|
||||
import app.revanced.util.injectHideViewCall
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
@Patch(
|
||||
name = "Hide Shorts components",
|
||||
@@ -155,17 +158,24 @@ object HideShortsComponentsPatch : BytecodePatch(
|
||||
}
|
||||
|
||||
private enum class ShortsButtons(private val resourceName: String, private val methodName: String) {
|
||||
LIKE("reel_dyn_like", "hideLikeButton"),
|
||||
DISLIKE("reel_dyn_dislike", "hideDislikeButton"),
|
||||
COMMENTS("reel_dyn_comment", "hideShortsCommentsButton"),
|
||||
REMIX("reel_dyn_remix", "hideShortsRemixButton"),
|
||||
SHARE("reel_dyn_share", "hideShortsShareButton"),
|
||||
;
|
||||
SHARE("reel_dyn_share", "hideShortsShareButton");
|
||||
|
||||
fun injectHideCall(method: MutableMethod) {
|
||||
val referencedIndex = method.indexOfIdResourceOrThrow(resourceName)
|
||||
|
||||
val setIdIndex = referencedIndex + 1
|
||||
val instruction = method.implementation!!.instructions
|
||||
.subList(referencedIndex, referencedIndex + 20)
|
||||
.first {
|
||||
it.opcode == Opcode.INVOKE_VIRTUAL && it.getReference<MethodReference>()?.name == "setId"
|
||||
}
|
||||
|
||||
val setIdIndex = instruction.location.index
|
||||
val viewRegister = method.getInstruction<FiveRegisterInstruction>(setIdIndex).registerC
|
||||
method.injectHideViewCall(setIdIndex, viewRegister, FILTER_CLASS_DESCRIPTOR, methodName)
|
||||
method.injectHideViewCall(setIdIndex + 1, viewRegister, FILTER_CLASS_DESCRIPTOR, methodName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
<string name="revanced_hide_channel_bar_title">Hide channel bar</string>
|
||||
<string name="revanced_hide_channel_bar_summary_on">Channel bar is hidden</string>
|
||||
<string name="revanced_hide_channel_bar_summary_off">Channel bar is shown</string>
|
||||
<string name="revanced_hide_playables_title">Hide playables</string>
|
||||
<string name="revanced_hide_playables_title">Hide Playables</string>
|
||||
<string name="revanced_hide_playables_summary_on">Playables are hidden</string>
|
||||
<string name="revanced_hide_playables_summary_off">Playables are shown</string>
|
||||
<string name="revanced_hide_quick_actions_title">Hide quick actions in fullscreen</string>
|
||||
@@ -249,7 +249,7 @@
|
||||
<string name="revanced_hide_general_ads_summary_on">General ads are hidden</string>
|
||||
<string name="revanced_hide_general_ads_summary_off">General ads are shown</string>
|
||||
<string name="revanced_hide_fullscreen_ads_title">Hide fullscreen ads</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_on">Fullscreen ads are hidden</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_on">Fullscreen ads are hidden\n\nThis feature is only available for older devices</string>
|
||||
<string name="revanced_hide_fullscreen_ads_summary_off">Fullscreen ads are shown</string>
|
||||
<string name="revanced_hide_buttoned_ads_title">Hide buttoned ads</string>
|
||||
<string name="revanced_hide_buttoned_ads_summary_on">Buttoned ads are hidden</string>
|
||||
@@ -272,7 +272,7 @@
|
||||
<string name="revanced_hide_merchandise_banners_title">Hide merchandise banners</string>
|
||||
<string name="revanced_hide_merchandise_banners_summary_on">Merchandise banners are hidden</string>
|
||||
<string name="revanced_hide_merchandise_banners_summary_off">Merchandise banners are shown</string>
|
||||
<string name="revanced_hide_fullscreen_ads_feature_not_available_toast">Could not hide fullscreen ad. Hide setting disabled to prevent issues.</string>
|
||||
<string name="revanced_hide_fullscreen_ads_feature_not_available_toast">Hide fullscreen ads only works with older devices</string>
|
||||
</patch>
|
||||
<patch id="ad.getpremium.HideGetPremiumPatch">
|
||||
<string name="revanced_hide_get_premium_title">Hide YouTube Premium promotions</string>
|
||||
@@ -393,11 +393,6 @@
|
||||
<string name="revanced_hide_playlist_button_title">Hide Save to playlist</string>
|
||||
<string name="revanced_hide_playlist_button_summary_on">Save to playlist button is hidden</string>
|
||||
<string name="revanced_hide_playlist_button_summary_off">Save to playlist button is shown</string>
|
||||
<!-- 'Shop' should be translated with the same localized wording that YouTube displays.
|
||||
Shop button appears only for some videos in certain regions. Translate the button name normally if this menu is never shown. -->
|
||||
<string name="revanced_hide_shop_button_title">Hide Shop</string>
|
||||
<string name="revanced_hide_shop_button_summary_on">Shop button is hidden</string>
|
||||
<string name="revanced_hide_shop_button_summary_off">Shop button is shown</string>
|
||||
</patch>
|
||||
<patch id="layout.buttons.autoplay.HideAutoplayButtonPatch">
|
||||
<string name="revanced_hide_autoplay_button_title">Hide autoplay button</string>
|
||||
@@ -508,6 +503,9 @@
|
||||
<string name="revanced_hide_comments_section_title">Hide comments section</string>
|
||||
<string name="revanced_hide_comments_section_summary_on">Comment section is hidden</string>
|
||||
<string name="revanced_hide_comments_section_summary_off">Comment section is shown</string>
|
||||
<string name="revanced_hide_comment_timestamp_and_emoji_buttons_title">Hide timestamp and emoji buttons</string>
|
||||
<string name="revanced_hide_comment_timestamp_and_emoji_buttons_summary_on">Comment timestamp and emoji buttons are hidden</string>
|
||||
<string name="revanced_hide_comment_timestamp_and_emoji_buttons_summary_off">Comment timestamp and emoji buttons are shown</string>
|
||||
</patch>
|
||||
<patch id="layout.hide.crowdfundingbox.CrowdfundingBoxResourcePatch">
|
||||
<string name="revanced_hide_crowdfunding_box_title">Hide crowdfunding box</string>
|
||||
@@ -1155,9 +1153,9 @@
|
||||
<string name="revanced_other_category_title">Other settings</string>
|
||||
<string name="revanced_client_ads_category_title">Client-side ads</string>
|
||||
<string name="revanced_surestream_ads_category_title">Server-side surestream ads</string>
|
||||
<string name="revanced_debug_title">Debug logging</string>
|
||||
<string name="revanced_debug_summary_on">Debug logs are enabled</string>
|
||||
<string name="revanced_debug_summary_off">Debug logs are disabled</string>
|
||||
<string name="revanced_twitch_debug_title">Debug logging</string>
|
||||
<string name="revanced_twitch_debug_summary_on">Debug logs are enabled</string>
|
||||
<string name="revanced_twitch_debug_summary_off">Debug logs are disabled</string>
|
||||
</patch>
|
||||
</app>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user