Compare commits

...

62 Commits

Author SHA1 Message Date
36813e6828 Merge remote-tracking branch 'upstream/main'
Some checks failed
Release / Release (push) Failing after 1m34s
Pull strings / Pull strings (push) Failing after 10s
2025-06-18 23:14:43 +09:00
b9245427ed Merge pull request 'feat(kakaotalk): update compatibility to version 25.5.1 for multiple patches' (#5) from kakaotalk-dev into main
Reviewed-on: #5
2025-06-18 23:14:04 +09:00
dab672f7c5 feat(kakaotalk): temporarily disable ShowDeletedMessagePatch due to duplicate prefix issue 2025-06-18 23:13:53 +09:00
cd995636f9 feat(kakaotalk): update compatibility to version 25.5.1 for multiple patches 2025-06-18 23:11:22 +09:00
bdc6fad974 chore: Release v5.27.0 [skip ci]
# [5.27.0](https://github.com/ReVanced/revanced-patches/compare/v5.26.0...v5.27.0) (2025-06-09)

### Bug Fixes

* **Bandcamp - Remove play limits:** Support latest app version ([#5124](https://github.com/ReVanced/revanced-patches/issues/5124)) ([863e92b](863e92b20a))
* **Spotify:** `Hide Create button` patch failing in edge cases ([#5131](https://github.com/ReVanced/revanced-patches/issues/5131)) ([0923600](0923600739))
* **Spotify:** Prevent hiding all navigation bar buttons ([#5122](https://github.com/ReVanced/revanced-patches/issues/5122)) ([8afbef0](8afbef0134))
* **YouTube - Hide layout components:** Remove broken option 'Hide comments emoji picker' ([#5121](https://github.com/ReVanced/revanced-patches/issues/5121)) ([9a6a639](9a6a639c49))
* **YouTube - Hide Shorts components:** Disable A/B player flags that prevents hiding buttons ([bef0dac](bef0dacac5))
* **YouTube - Video quality:** Remove non-functional Shorts 144p default quality ([3113cd6](3113cd6d09))

### Features

* Add `Hide app icon` patch ([#4977](https://github.com/ReVanced/revanced-patches/issues/4977)) ([92311b8](92311b8e56))
* **Google Photos:** Add `Enable DCIM folders backup control` patch ([#5138](https://github.com/ReVanced/revanced-patches/issues/5138)) ([328d232](328d232fe7))
* **Messenger:** Add `Hide Facebook button` patch ([#5057](https://github.com/ReVanced/revanced-patches/issues/5057)) ([9175b23](9175b23e83))
* **YouTube - Hide player overlay buttons:** Add in app setting for "Hide player control buttons background" ([#5147](https://github.com/ReVanced/revanced-patches/issues/5147)) ([dd8afa2](dd8afa2b07))
* **YouTube - Hide Shorts components:** Add hide 'New posts' button ([ac6b916](ac6b916c0c))
* **YouTube - Theme:** Add option for black and white splash screen animation ([#5119](https://github.com/ReVanced/revanced-patches/issues/5119)) ([42db0c2](42db0c2e36))
2025-06-09 18:37:59 +00:00
203ccbf121 chore: Merge branch dev to main (#5115) 2025-06-09 20:35:14 +02:00
3be24c02c1 chore: Release v5.27.0-dev.9 [skip ci]
# [5.27.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.27.0-dev.8...v5.27.0-dev.9) (2025-06-09)

### Features

* **Messenger:** Add `Hide Facebook button` patch ([#5057](https://github.com/ReVanced/revanced-patches/issues/5057)) ([9175b23](9175b23e83))
2025-06-09 18:18:19 +00:00
370f7e02a4 chore: Sync translations (#5151) 2025-06-09 20:15:28 +02:00
9175b23e83 feat(Messenger): Add Hide Facebook button patch (#5057) 2025-06-09 20:13:05 +02:00
4d2decd99c chore: Release v5.27.0-dev.8 [skip ci]
# [5.27.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.27.0-dev.7...v5.27.0-dev.8) (2025-06-09)

### Features

* Add `Hide app icon` patch ([#4977](https://github.com/ReVanced/revanced-patches/issues/4977)) ([92311b8](92311b8e56))
2025-06-09 14:11:00 +00:00
8891e2594d Merge remote-tracking branch 'upstream/main' 2025-06-08 02:09:03 +09:00
c089a7d1a9 Merge pull request 'feat(kakaotalk): update compatibility to version 25.4.3 and add show deleted messages patch' (#4) from kakaotalk-dev into main
Reviewed-on: #4
2025-06-08 02:04:14 +09:00
5791b0e641 feat(kakaotalk): update compatibility to version 25.4.3 and add show deleted messages patch 2025-06-08 02:02:36 +09:00
9cd436a948 feat(kakaotalk): add methods to set text colors for deleted and hidden messages 2025-05-28 18:19:52 +09:00
38987cfb46 feat(kakaotalk): update ShowDeletedOrHiddenMessagePatch to handle date and chat log checks
Something's wrong, chatLog is fetched twice, performance degradation expected, fix needed
2025-05-28 15:09:45 +09:00
21b69efddf feat(kakaotalk): rename and update patch to handle deleted and hidden messages in chat logs
This is the 7th commit to make deleted, hidden messages visible.
2025-05-28 02:58:16 +09:00
39ef7f16bc feat(kakaotalk): add fingerprint for creating ChatLogViewHolder from real data
This is the 6th commit to make deleted, hidden messages visible.
2025-05-28 02:29:58 +09:00
d4e127ccf2 feat(kakaotalk): add methods to handle deleted and hidden message layouts in ChatInfoView
This is the fifth commit to make deleted, hidden messages visible.
2025-05-28 02:17:06 +09:00
11bf82640d feat(kakaotalk): add layout handling for deleted and hidden messages in chat log
This is the fourth commit to make deleted, hidden messages visible.
2025-05-28 01:29:08 +09:00
1e91a5cb52 feat(kakaotalk): implement layout handling for deleted messages in chat log
This is the third commit to make deleted, hidden messages visible.
2025-05-26 03:00:11 +09:00
8dbd5765e7 feat(kakaotalk): add patches to handle deleted and hidden messages in chat logs
This is the second commit to make deleted, hidden messages visible.
2025-05-26 02:35:09 +09:00
555099bef8 feat(kakaotalk): add patch to include real deleted and hidden flags in chat log
This is the first commit to make deleted, hidden messages visible.
2025-05-26 02:03:26 +09:00
263fb212ad feat(kakaotalk): add patch to change package name in source code (WIP)
Because of a unique bug, applying that patch will make the class duplicate, and we don't have time to deal with it now, so we'll deal with it later.
2025-05-26 01:03:54 +09:00
a2440cbadf Merge remote-tracking branch 'upstream/main' 2025-05-23 09:25:33 +09:00
ad46da8039 Merge pull request 'feat: initial kakaotalk patches' (#3) from feat/kakaotalk into main
Reviewed-on: #3
2025-05-23 09:12:50 +09:00
c2c0b8e94a feat(kakaotalk): remove unused import for instruction extensions in AllowReplyToFeedPatch 2025-05-23 09:07:38 +09:00
bb05341cdb feat(kakaotalk): refactor patch to simplify reply handling for feed messages 2025-05-22 14:40:29 +09:00
46a97d9e14 feat(kakaotalk): add patch and fingerprints to allow replying to feed messages 2025-05-22 14:32:37 +09:00
0fac05f134 feat(kakaotalk): add patch and fingerprint to force enable debug mode 2025-05-21 18:23:43 +09:00
d62649da49 feat(kakaotalk): add patch and fingerprint to remove native ad 2025-05-21 17:29:43 +09:00
76dcd4c479 feat(kakaotalk): rename fingerprint variables for clarity and consistency
Going forward, fingerprints will follow the filename of the corresponding patch, but will name the variables that are finely fingerprinted after the functionality of the method for the intended target. This is to promote reusability, and hopefully increase maintainability in the future.
2025-05-21 02:55:35 +09:00
3f868cd995 feat(kakaotalk): add patch and fingerprint to remove More tab ad 2025-05-21 02:45:44 +09:00
dd45ddde80 feat(kakaotalk): enhance version info patch to include build timestamp 2025-05-20 23:22:31 +09:00
9dd4a5e1bc feat(kakaotalk): add patch and fingerprint to remove focus ad 2025-05-20 23:17:01 +09:00
57f3a92189 feat(kakaotalk): add patch and fingerprint to remove OpenLink chat room list ad 2025-05-19 20:49:23 +09:00
9b9679a3aa refactor(kakaotalk): remove debug print statement from BypassMoatCheckPatch 2025-05-19 20:48:27 +09:00
60a02aa90a feat(kakaotalk): add bypass moat check patch and associated fingerprints
It's up, but it's not working, need to check further
2025-05-19 20:23:04 +09:00
50b735da19 refactor(kakaotalk): rename BypassRequestChecksumsFingerprint to BypassRequestChecksumsPatch for clarity 2025-05-19 19:24:30 +09:00
2ee3f69c4f feat(kakaotalk): update compatibility to version 25.4.2
fix some fingerprint at BypassRequestChecksumsFingerprint.kt
2025-05-19 02:11:00 +09:00
ae527462e3 fix(kakaotalk): fix RemoveBizBoardPatch
I simply deleted the bizboard, but there is an issue with having 2 divider, especially on the friends tab.
But it's deleted, so let's move on for now
2025-05-17 22:19:59 +09:00
610ebf3711 feat(kakaotalk): Add additional opcodes to GhostModeFingerprint for enhanced functionality
For support 25.4.1
2025-05-17 22:10:47 +09:00
b2f27a66c3 feat(kakaotalk): Add additional opcodes to GhostModeFingerprint for enhanced functionality
For support 25.4.1
2025-05-17 22:10:42 +09:00
92b54e85a8 feat(kakaotalk): Update compatibility to version 25.4.1 for multiple patches 2025-05-17 18:48:32 +09:00
e5c7a88550 feat(kakaotalk): Add bypass request checksums patch to prevent checksum verification 2025-05-14 17:59:57 +09:00
b1c9b5e47c feat(kakaotalk): Fix syntax in GhostModePatch for instruction clarity 2025-05-14 17:59:50 +09:00
afdf66dab4 feat(kakaotalk): Rename signature package to integrity for clarity 2025-05-14 17:49:00 +09:00
b9838f80fd feat(kakaotalk): Add KotlinUnitInstanceFingerprint for ghost mode patch 2025-05-14 17:47:36 +09:00
8ade9e8802 feat(kakaotalk): Add Ghost Mode patch to hide typing status 2025-05-14 13:48:43 +09:00
cb23e62f48 feat(kakaotalk): Update compatible version for multiple patches to 25.4.0 2025-05-14 13:48:37 +09:00
5b55077ccc feat(kakaotalk): Clean up RemoveShopTabFingerprint by removing unused imports 2025-05-04 17:22:49 +09:00
f1a87a28f2 feat(kakaotalk): Remove unused custom filtering logic from shop tab removal patch 2025-05-04 17:21:51 +09:00
49521fb702 feat(kakaotalk): Add patch to force enable emoticon plus feature 2025-05-04 16:45:15 +09:00
647756008e feat(kakaotalk): Add patch to remove shop tab from the bottom navigation bar 2025-05-04 03:14:33 +09:00
82e530a510 feat(kakaotalk): Add patch to remove 99 unread limit in chat logs 2025-05-04 01:25:10 +09:00
e9545a11c4 feat(kakaotalk): Refactor version info patch to improve readability of instruction filtering 2025-05-04 01:07:05 +09:00
ea208b37cb feat(kakaotalk): Add support for version info preview fingerprint patch 2025-05-04 01:06:18 +09:00
b0d693e431 feat(kakaotalk): Add version info patch to include '(ReVanced)' in the version string 2025-05-04 00:52:51 +09:00
ccfc313ff7 feat(kakaotalk): Add patches to remove 300+ unread limit in chatrooms 2025-05-04 00:10:46 +09:00
b80ec7758f feat(kakaotalk): Update import for verifying signature fingerprint 2025-05-03 20:04:30 +09:00
88abc37b49 feat(kakaotalk): Add patches for changing device model and verifying signature 2025-05-03 19:52:43 +09:00
0693212ba5 feat(kakaotalk): Add patches for changing device model and disabling signature verification 2025-05-03 19:25:46 +09:00
5f6d03b705 fix: Update Maven repository configuration to use GiteaPackages 2025-05-03 18:43:37 +09:00
92 changed files with 1889 additions and 108 deletions

View File

@ -1,3 +1,39 @@
# [5.27.0](https://github.com/ReVanced/revanced-patches/compare/v5.26.0...v5.27.0) (2025-06-09)
### Bug Fixes
* **Bandcamp - Remove play limits:** Support latest app version ([#5124](https://github.com/ReVanced/revanced-patches/issues/5124)) ([863e92b](https://github.com/ReVanced/revanced-patches/commit/863e92b20ad6682f10524e475ed18f879048ecae))
* **Spotify:** `Hide Create button` patch failing in edge cases ([#5131](https://github.com/ReVanced/revanced-patches/issues/5131)) ([0923600](https://github.com/ReVanced/revanced-patches/commit/0923600739a126329fc62100b500216860d7005e))
* **Spotify:** Prevent hiding all navigation bar buttons ([#5122](https://github.com/ReVanced/revanced-patches/issues/5122)) ([8afbef0](https://github.com/ReVanced/revanced-patches/commit/8afbef01343c1e3e6e7e4a4cec6319aebfa4b11c))
* **YouTube - Hide layout components:** Remove broken option 'Hide comments emoji picker' ([#5121](https://github.com/ReVanced/revanced-patches/issues/5121)) ([9a6a639](https://github.com/ReVanced/revanced-patches/commit/9a6a639c4905b00d6dffb0923c839c8e3ae54d0c))
* **YouTube - Hide Shorts components:** Disable A/B player flags that prevents hiding buttons ([bef0dac](https://github.com/ReVanced/revanced-patches/commit/bef0dacac54caf1ca9511d7bc19b19140ccb4eaf))
* **YouTube - Video quality:** Remove non-functional Shorts 144p default quality ([3113cd6](https://github.com/ReVanced/revanced-patches/commit/3113cd6d092952c8657454452f34c0ae85358ec9))
### Features
* Add `Hide app icon` patch ([#4977](https://github.com/ReVanced/revanced-patches/issues/4977)) ([92311b8](https://github.com/ReVanced/revanced-patches/commit/92311b8e5675f3d4b80ed690d34b699fb847e3cd))
* **Google Photos:** Add `Enable DCIM folders backup control` patch ([#5138](https://github.com/ReVanced/revanced-patches/issues/5138)) ([328d232](https://github.com/ReVanced/revanced-patches/commit/328d232fe77406fa93a14768fc66e7b998506fba))
* **Messenger:** Add `Hide Facebook button` patch ([#5057](https://github.com/ReVanced/revanced-patches/issues/5057)) ([9175b23](https://github.com/ReVanced/revanced-patches/commit/9175b23e8360d13c8c1c9c8602ca0b5931d13627))
* **YouTube - Hide player overlay buttons:** Add in app setting for "Hide player control buttons background" ([#5147](https://github.com/ReVanced/revanced-patches/issues/5147)) ([dd8afa2](https://github.com/ReVanced/revanced-patches/commit/dd8afa2b07b50be24d764c0f6ddc9e1bbdb91bf1))
* **YouTube - Hide Shorts components:** Add hide 'New posts' button ([ac6b916](https://github.com/ReVanced/revanced-patches/commit/ac6b916c0c212167c4645e2110500dc811b3e54a))
* **YouTube - Theme:** Add option for black and white splash screen animation ([#5119](https://github.com/ReVanced/revanced-patches/issues/5119)) ([42db0c2](https://github.com/ReVanced/revanced-patches/commit/42db0c2e36fefccdbeaa072edcec48b1e05b6270))
# [5.27.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.27.0-dev.8...v5.27.0-dev.9) (2025-06-09)
### Features
* **Messenger:** Add `Hide Facebook button` patch ([#5057](https://github.com/ReVanced/revanced-patches/issues/5057)) ([9175b23](https://github.com/ReVanced/revanced-patches/commit/9175b23e8360d13c8c1c9c8602ca0b5931d13627))
# [5.27.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.27.0-dev.7...v5.27.0-dev.8) (2025-06-09)
### Features
* Add `Hide app icon` patch ([#4977](https://github.com/ReVanced/revanced-patches/issues/4977)) ([92311b8](https://github.com/ReVanced/revanced-patches/commit/92311b8e5675f3d4b80ed690d34b699fb847e3cd))
# [5.27.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.27.0-dev.6...v5.27.0-dev.7) (2025-06-08)

View File

@ -2,13 +2,15 @@ package app.revanced.extension.messenger.metaai;
@SuppressWarnings("unused")
public class RemoveMetaAIPatch {
public static boolean overrideConfigBool(long id, boolean value) {
// It seems like all configs starting with 363219 are related to Meta AI.
// A list of specific ones that need disabling would probably be better,
// but these config numbers seem to change slightly with each update.
// These first 6 digits don't though.
if (Long.toString(id).startsWith("363219"))
public static boolean overrideBooleanFlag(long id, boolean value) {
// This catches all flag IDs related to Meta AI.
// The IDs change slightly with every update,
// so to work around this, IDs from different versions were compared
// to find what they have in common, which turned out to be those first bits.
// TODO: Find the specific flags that we care about and patch the code they control instead.
if ((id & 0x7FFFFFC000000000L) == 0x810A8000000000L) {
return false;
}
return value;
}

View File

@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.27.0-dev.7
version = 5.27.0

View File

@ -256,6 +256,83 @@ public final class app/revanced/patches/irplus/ad/RemoveAdsPatchKt {
public static final fun getRemoveAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/ads/RemoveBizBoardPatchKt {
public static final fun getRemoveBizBoardPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/ads/RemoveFocusAdPatchKt {
public static final fun getRemoveFocusAdPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/ads/RemoveMoreTabAdPatchKt {
public static final fun getRemoveMoreTabAdPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/ads/RemoveNativeAdPatchKt {
public static final fun getRemoveNativeAdPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/ads/RemoveOlkChatRoomListAdPatchKt {
public static final fun getRemoveOlkChatRoomListAdPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/changemodel/ChangeModelPatchKt {
public static final fun getChangeModelPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/chatlog/Remove99ClampPatchKt {
public static final fun getRemove99ClampPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/chatlog/ShowDeletedMessagePatchKt {
public static final fun getShowDeletedMessagePatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/chatroom/Remove300PlusLimitPatchKt {
public static final fun getRemove300PlusLimitBaseChatRoomPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
public static final fun getRemove300PlusLimitOpenChatRoomPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/emoticon/ForceEnableEmoticonPlusPatchKt {
public static final fun getForceEnableEmoticonPlusPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/ghost/GhostModePatchKt {
public static final fun getGhostMode ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/integrity/BypassMoatCheckPatchKt {
public static final fun getBypassMoatCheckPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/integrity/BypassRequestChecksumsPatchKt {
public static final fun getBypassRequestChecksumPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/integrity/VerifyingSignaturePatchKt {
public static final fun getVerifyingSignaturePatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/misc/ForceEnableDebugModePatchKt {
public static final fun getForceEnableDebugModePatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/misc/RemoveShopTabPatchKt {
public static final fun getRemoveShopTabPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/packagename/ChangePackageNameInSourcePatchKt {
public static final fun getChangePackageNameInSourcePatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/send/AllowReplyToFeedPatchKt {
public static final fun getAllowReplyToFeedPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/kakaotalk/versioninfo/VersionInfoPatchKt {
public static final fun getVersionInfoPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/lightroom/misc/login/DisableMandatoryLoginPatchKt {
public static final fun getDisableMandatoryLoginPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
@ -292,6 +369,10 @@ public final class app/revanced/patches/messenger/inputfield/DisableTypingIndica
public static final fun getDisableTypingIndicatorPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/messenger/layout/HideFacebookButtonPatchKt {
public static final fun getHideFacebookButtonPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/messenger/metaai/RemoveMetaAIPatchKt {
public static final fun getRemoveMetaAIPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}

View File

@ -47,12 +47,14 @@ kotlin {
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/revanced/revanced-patches")
credentials {
username = System.getenv("GITHUB_ACTOR")
password = System.getenv("GITHUB_TOKEN")
name = "GiteaPackages"
url = uri("https://git.naijun.dev/api/packages/ReVanced/maven")
credentials(HttpHeaderCredentials::class) {
name = "Authorization"
value = "token ${project.findProperty("gitea.accessToken") as String? ?: System.getenv("GITEA_TOKEN")}"
}
authentication { create<HttpHeaderAuthentication>("header") }
}
}
}

View File

@ -0,0 +1,30 @@
package app.revanced.patches.kakaotalk.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.ads.fingerprints.measuringBizBoardFingerprint
@Suppress("unused")
val removeBizBoardPatch = bytecodePatch(
name = "Remove BizBoard ads",
description = "Removes the BizBoard ad by forcing its dimensions to 0x0 and visibility to GONE in onMeasure.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val method = measuringBizBoardFingerprint.method
method.addInstructions(
0,
"""
const/4 v0, 0x0
invoke-virtual {p0, v0, v0}, Landroid/view/View;->setMeasuredDimension(II)V
const/16 v0, 0x8
invoke-virtual {p0, v0}, Landroid/view/View;->setVisibility(I)V
return-void
""".trimIndent()
)
}
}

View File

@ -0,0 +1,22 @@
package app.revanced.patches.kakaotalk.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.ads.fingerprints.loadFocusAdFingerprint
val removeFocusAdPatch = bytecodePatch(
name = "Remove focus ad",
description = "Removes the focus ad from the app.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
loadFocusAdFingerprint.method.addInstructions(
0,
"""
const/4 v0, 0x1
return v0
""".trimIndent()
)
}
}

View File

@ -0,0 +1,45 @@
package app.revanced.patches.kakaotalk.ads
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.ads.fingerprints.adBigUIModelFingerprint
import app.revanced.patches.kakaotalk.ads.fingerprints.addSectionToMoreTabUIFingerprint
import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
val removeMoreTabAdPatch = bytecodePatch(
name = "Remove More tab ad",
description = "Removes the ad from the More tab.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val addSectionToMoreTabUIMethod = addSectionToMoreTabUIFingerprint.method
val addSectionToMoreTabUIInsns = addSectionToMoreTabUIMethod.instructions
val adBigUIModelClass = adBigUIModelFingerprint.method.definingClass
val matches = addSectionToMoreTabUIInsns.mapIndexedNotNull { idx, inst ->
if (inst is BuilderInstruction35c
&& inst.opcode == Opcode.INVOKE_VIRTUAL
&& (inst.getReference<MethodReference>()?.name == "add")
) {
val prev = addSectionToMoreTabUIInsns.getOrNull(idx - 1) as? BuilderInstruction35c
val ref = (prev?.getReference<MethodReference>())
if (ref?.definingClass == adBigUIModelClass) {
Pair(idx - 1, idx)
} else null
} else null
}
matches
.sortedByDescending { it.second }
.forEach { (loadIdx, invokeIdx) ->
addSectionToMoreTabUIMethod.removeInstruction(invokeIdx)
addSectionToMoreTabUIMethod.removeInstruction(loadIdx)
}
}
}

View File

@ -0,0 +1,24 @@
package app.revanced.patches.kakaotalk.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.ads.fingerprints.loadNativeAdFingerprint
val removeNativeAdPatch = bytecodePatch(
name = "Remove native ad",
description = "Removes the native ad from the app.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val method = loadNativeAdFingerprint.method
method.addInstructions(
0,
"""
const/4 v0, 0x1
return v0
""".trimIndent()
)
}
}

View File

@ -0,0 +1,31 @@
package app.revanced.patches.kakaotalk.ads
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.ads.fingerprints.addOlkChatRoomListAdFingerprint
import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint
@Suppress("unused")
val removeOlkChatRoomListAdPatch = bytecodePatch(
name = "Remove OpenLink chat room list ad",
description = "Removes the OpenLink chat room list ad.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val findUnit = kotlinUnitInstanceFingerprint.method
val unitClass = findUnit.definingClass
val method = addOlkChatRoomListAdFingerprint.method
// I tried to find the field name, but it's pretty obvious to me, so I hardcode it.
// If it changes, we need to fix it
method.addInstructions(
0,
"""
sget-object v0, $unitClass->a:$unitClass
return-object v0
""".trimIndent()
)
}
}

View File

@ -0,0 +1,27 @@
package app.revanced.patches.kakaotalk.ads.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val measuringBizBoardFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
returns("V")
parameters("I", "I")
opcodes(
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT,
Opcode.INT_TO_FLOAT,
Opcode.CONST,
Opcode.MUL_FLOAT_2ADDR,
Opcode.FLOAT_TO_INT,
Opcode.IGET,
Opcode.IF_LE,
Opcode.MOVE,
Opcode.CONST_HIGH16,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT,
Opcode.INVOKE_SUPER,
Opcode.RETURN_VOID
)
}

View File

@ -0,0 +1,22 @@
package app.revanced.patches.kakaotalk.ads.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val loadFocusAdFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
parameters("Lcom/kakao/adfit/ads/focus/FocusAdLoader\$OnAdLoadListener;")
returns("Z")
strings("listener", " owner is destroyed.", " loading is already started.", "Request Focus AD", " loading is started.", "Focus ad is cached. [id = ")
opcodes(
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.IGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT_OBJECT,
Opcode.SGET_OBJECT,
Opcode.CONST_4,
Opcode.IF_NE,
)
}

View File

@ -0,0 +1,46 @@
package app.revanced.patches.kakaotalk.ads.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val addSectionToMoreTabUIFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Ljava/lang/Object;")
returns("Ljava/lang/Object;")
strings(
"call to \'resume\' before \'invoke\' with coroutine",
"null cannot be cast to non-null type com.kakao.talk.moretab.ui.model.KakaoPayUiModel",
"null cannot be cast to non-null type com.kakao.talk.moretab.ui.model.WalletUiModel",
"null cannot be cast to non-null type com.kakao.talk.moretab.ui.model.WeatherUiModel",
"null cannot be cast to non-null type com.kakao.talk.moretab.ui.model.KakaoNowUiModel",
"null cannot be cast to non-null type com.kakao.talk.moretab.ui.model.TalkManualUiModel",
"null cannot be cast to non-null type com.kakao.talk.moretab.ui.model.ServiceGroupUiModel",
"null cannot be cast to non-null type com.kakao.talk.moretab.ui.model.WalletBannerUiModel",
"null cannot be cast to non-null type kotlin.Boolean",
)
opcodes(
Opcode.SGET_OBJECT,
Opcode.IGET,
Opcode.CONST_4,
Opcode.IF_EQZ,
)
}
internal val adBigUIModelFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters()
returns("Ljava/lang/String;")
strings(
"AdBig(uiModel=",
)
opcodes(
Opcode.NEW_INSTANCE,
Opcode.CONST_STRING,
Opcode.INVOKE_DIRECT,
Opcode.IGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.CONST_STRING,
)
custom { method, classDef -> method.name == "toString" }
}

View File

@ -0,0 +1,34 @@
package app.revanced.patches.kakaotalk.ads.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val loadNativeAdFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("I", "Lcom/kakao/adfit/ads/media/NativeAdLoader\$AdLoadListener;")
returns("Z")
strings(
"listener",
" owner is destroyed.",
" loading is already started.",
"Request Native AD",
" loading is started.",
"Native ad is cached. [id = ",
"] [dsp = ",
"] [count = ",
"Invalid Count: "
)
opcodes(
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.IF_LEZ,
Opcode.IGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT_OBJECT,
Opcode.SGET_OBJECT,
Opcode.CONST_4,
Opcode.IF_NE,
)
custom { method, classDef -> method.name == "load" }
}

View File

@ -0,0 +1,25 @@
package app.revanced.patches.kakaotalk.ads.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val addOlkChatRoomListAdFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Ljava/lang/Object;")
returns("Ljava/lang/Object;")
strings("list", "key_ad_info", "")
opcodes(
Opcode.MOVE_OBJECT_FROM16,
Opcode.SGET_OBJECT,
Opcode.INVOKE_STATIC_RANGE,
Opcode.SGET_BOOLEAN,
Opcode.IGET_OBJECT,
Opcode.IGET,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT,
Opcode.CONST_STRING,
Opcode.IGET_OBJECT,
Opcode.IF_EQZ,
)
}

View File

@ -0,0 +1,28 @@
package app.revanced.patches.kakaotalk.changemodel
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patches.kakaotalk.changemodel.fingerprints.changeModelFingerprint
@Suppress("unused")
val changeModelPatch = bytecodePatch(
name = "Change model",
description = "Changes the device model to supporting subdevice features",
) {
val changeModelOption = stringOption(
"model", "SM-X926N"
)
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
changeModelFingerprint.method.addInstructions(
0,
"""
const-string v0, "${changeModelOption.value}"
return-object v0
""".trimIndent()
)
}
}

View File

@ -0,0 +1,12 @@
package app.revanced.patches.kakaotalk.changemodel.fingerprints
import app.revanced.patcher.fingerprint
@Suppress("unused")
internal val changeModelFingerprint = fingerprint {
strings("MODEL", "\\s", "-", "US", "toUpperCase(...)")
custom {
_, classDef ->
classDef.methods.indexOf(classDef.methods.last()) > 2
}
}

View File

@ -0,0 +1,30 @@
package app.revanced.patches.kakaotalk.chatlog
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.chatlog.fingerprints.processWatermarkCountFingerprint
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction10t
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction22t
@Suppress("unused")
val remove99ClampPatch = bytecodePatch(
name = "Disable 99 unread limit",
description = "Skip the 99-cap so unread count shows full value"
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val method = processWatermarkCountFingerprint.method
method.instructions
.filterIsInstance<BuilderInstruction22t>()
.filter { it.opcode == Opcode.IF_LE }
.forEach { ifle ->
val idx = method.instructions.indexOf(ifle)
val goto = BuilderInstruction10t(Opcode.GOTO, ifle.target)
method.replaceInstruction(idx, goto)
}
}
}

View File

@ -0,0 +1,65 @@
package app.revanced.patches.kakaotalk.chatlog
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.chatlog.fingerprints.chatLogGetTextFingerprint
import app.revanced.patches.kakaotalk.chatlog.fingerprints.chatLogSetTextFingerprint
import app.revanced.patches.kakaotalk.chatlog.fingerprints.replaceToFeedFingerprint
import com.android.tools.smali.dexlib2.Opcode
val showDeletedMessagePatch = bytecodePatch(
name = "Show deleted messages",
description = "Allows you to see deleted messages in chat logs.",
use = false // FIXME: We haven't solved the problem of duplicate prefixes for deleted messages yet, as it was becoming an eyesore, so we temporarily disabled it.
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val method = replaceToFeedFingerprint.method
val insns = method.instructions
val orInsnsIdx = insns
.indexOfFirst { it.opcode == Opcode.OR_INT_LIT16 }
if (orInsnsIdx == -1) error("could not find or built message $orInsnsIdx")
method.addInstructions(
orInsnsIdx + 1,
"""
const/16 p1, 0x1
""".trimIndent()
)
val setTextMethod = chatLogSetTextFingerprint.method.name
val getTextMethod = chatLogGetTextFingerprint.method.name
val chatLogClass = chatLogSetTextFingerprint.method.definingClass
method.replaceInstruction(
orInsnsIdx + 2,
"nop"
)
method.addInstructions(
orInsnsIdx + 3,
"""
invoke-virtual {p0}, $chatLogClass->$getTextMethod()Ljava/lang/String;
move-result-object v2
const-string v1, "[Deleted] "
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, $chatLogClass->$setTextMethod(Ljava/lang/String;)V
invoke-virtual {p0}, $chatLogClass->getChatRoomId()J
move-result-wide v2
""".trimIndent()
)
}
}

View File

@ -0,0 +1,52 @@
package app.revanced.patches.kakaotalk.chatlog.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val chatLogFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
returns("Ljava/lang/String;")
parameters()
strings(
"[class:",
"] ChatLog [id=",
)
}
internal val chatLogSetTextFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
returns("V")
parameters("Ljava/lang/String;")
opcodes(
Opcode.CONST_4,
Opcode.CONST_STRING,
Opcode.CONST_STRING,
Opcode.IF_EQZ,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT,
Opcode.IF_EQZ,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT,
Opcode.CONST_16,
Opcode.IF_LE,
)
custom { method, classDef -> classDef.sourceFile == "ChatLog.kt" }
}
internal val chatLogGetTextFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC)
returns("Ljava/lang/String;")
parameters()
opcodes(
Opcode.IGET_BOOLEAN,
Opcode.CONST_STRING,
Opcode.IF_EQZ,
Opcode.GOTO,
Opcode.IGET_OBJECT,
Opcode.IF_NEZ,
Opcode.GOTO,
Opcode.MOVE_OBJECT,
)
custom { method, classDef -> classDef.sourceFile == "ChatLog.kt" }
}

View File

@ -0,0 +1,20 @@
package app.revanced.patches.kakaotalk.chatlog.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal val replaceToFeedFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("V")
strings(
"feedType",
"{}",
"safeBot",
"getString(...)",
"hidden",
"byHost",
"previous_message",
"previous_enc",
"enc : %s, %s",
)
}

View File

@ -0,0 +1,11 @@
package app.revanced.patches.kakaotalk.chatlog.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal val processWatermarkCountFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Ljava/lang/Object;")
parameters()
strings("notiRead", "openlinkSettingShowUnreadCount")
}

View File

@ -0,0 +1,58 @@
package app.revanced.patches.kakaotalk.chatroom
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.chatroom.fingerprints.limit300PlusBaseChatRoomFingerprint
import app.revanced.patches.kakaotalk.chatroom.fingerprints.limit300PlusOpenChatRoomFingerprint
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction10t
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction22t
@Suppress("unused")
val remove300PlusLimitBaseChatRoomPatch = bytecodePatch(
name = "Disable 300+ unread limit (BaseChatRoom)",
description = "Always show the real unread count instead of '300+' in base chatroom list"
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val method = limit300PlusBaseChatRoomFingerprint.method
val branches = method.instructions
.filterIsInstance<BuilderInstruction22t>()
.filter { it.opcode == Opcode.IF_LT }
.toList()
branches.forEach { iflt ->
val idx = method.instructions.indexOf(iflt)
val gotoInsn = BuilderInstruction10t(
Opcode.GOTO,
iflt.target
)
method.replaceInstruction(idx, gotoInsn)
}
}
}
@Suppress("unused")
val remove300PlusLimitOpenChatRoomPatch = bytecodePatch(
name = "Disable 300+ unread limit (OpenChatRoom)",
description = "Always show the real unread count instead of '300+' in open chatroom list"
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val method = limit300PlusOpenChatRoomFingerprint.method
method.instructions
.filterIsInstance<BuilderInstruction22t>()
.filter { it.opcode == Opcode.IF_LT }
.toList()
.forEach { iflt ->
val idx = method.instructions.indexOf(iflt)
val gotoInsn = BuilderInstruction10t(Opcode.GOTO, iflt.target)
method.replaceInstruction(idx, gotoInsn)
}
}
}

View File

@ -0,0 +1,20 @@
package app.revanced.patches.kakaotalk.chatroom.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
@Suppress("unused")
internal val limit300PlusBaseChatRoomFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V")
parameters("Lcom/kakao/talk/widget/ViewBindable;")
strings("300+")
}
@Suppress("unused")
internal val limit300PlusOpenChatRoomFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V")
parameters()
strings("300+")
}

View File

@ -0,0 +1,19 @@
package app.revanced.patches.kakaotalk.common.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val kotlinUnitInstanceFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters()
returns("Ljava/lang/String;")
strings("kotlin.Unit")
opcodes(
Opcode.CONST_STRING,
Opcode.RETURN_OBJECT
)
custom { method, classDef ->
method.name == "toString"
}
}

View File

@ -0,0 +1,23 @@
package app.revanced.patches.kakaotalk.emoticon
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.emoticon.fingerprints.isEnableEmoticonPlusFingerprint
@Suppress("unused")
val forceEnableEmoticonPlusPatch = bytecodePatch(
name = "Force enable emoticon plus feature",
description = "Force enable emoticon plus feature (Unpurchased emoticon can be sent once per day)",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
isEnableEmoticonPlusFingerprint.method.addInstructions(
0,
"""
const/4 v0, 0x1
return v0
""".trimIndent()
)
}
}

View File

@ -0,0 +1,24 @@
package app.revanced.patches.kakaotalk.emoticon.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val isEnableEmoticonPlusFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Z")
parameters()
strings("emoticonPlusMe")
opcodes(
Opcode.SGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.SGET_OBJECT,
Opcode.IF_EQZ,
Opcode.IGET_BOOLEAN,
Opcode.RETURN,
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.CONST_4,
Opcode.THROW,
)
}

View File

@ -0,0 +1,31 @@
package app.revanced.patches.kakaotalk.ghost
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint
import app.revanced.patches.kakaotalk.ghost.fingerprints.sendCurrentActionFingerprint
@Suppress("unused")
val ghostMode = bytecodePatch(
name = "Ghost Mode",
description = "Don't expose your typing status to the other party.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val findUnit = kotlinUnitInstanceFingerprint.method
val unitClass = findUnit.definingClass
val method = sendCurrentActionFingerprint.method
// I tried to find the field name, but it's pretty obvious to me, so I hardcode it.
// If it changes, we need to fix it
method.addInstructions(
0,
"""
sget-object v0, $unitClass->a:$unitClass
return-object v0
""".trimIndent()
)
}
}

View File

@ -0,0 +1,36 @@
package app.revanced.patches.kakaotalk.ghost.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val sendCurrentActionFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Ljava/lang/Object;")
parameters("Ljava/lang/Object;")
strings(
"method",
"chatId",
"type",
"linkId"
)
opcodes(
Opcode.SGET_OBJECT,
Opcode.INVOKE_STATIC,
Opcode.SGET_OBJECT,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT,
Opcode.IF_EQZ,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT_OBJECT,
Opcode.NEW_INSTANCE,
Opcode.IGET_WIDE,
Opcode.INVOKE_DIRECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT_WIDE,
Opcode.CONST_WIDE_16,
Opcode.CMP_LONG,
Opcode.IF_GEZ,
Opcode.GOTO
)
}

View File

@ -0,0 +1,79 @@
package app.revanced.patches.kakaotalk.integrity
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.integrity.fingerprints.moatCheckResultFingerprintOne
import app.revanced.patches.kakaotalk.integrity.fingerprints.moatCheckResultFingerprintTwo
import app.revanced.patches.kakaotalk.integrity.fingerprints.postprocessMoatCheckFailedFingerprint
import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c
import com.android.tools.smali.dexlib2.iface.instruction.Instruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.immutable.reference.ImmutableFieldReference
@Suppress("unused")
val bypassMoatCheckPatch = bytecodePatch(
name = "Bypass Moat check",
description = "Bypass Moat check that prevents the app from running.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val patch: (Fingerprint) -> Unit = {
val method = it.method
val insns = method.instructions
insns
.filterIsInstance<BuilderInstruction21c>()
.filter { inst ->
inst.opcode == Opcode.SGET_OBJECT &&
inst.reference == ImmutableFieldReference(
"Ljava/lang/Boolean;", "FALSE", "Ljava/lang/Boolean;"
)
}
.forEach { inst ->
val idx = insns.indexOf(inst)
method.replaceInstruction(
idx,
BuilderInstruction21c(
Opcode.SGET_OBJECT,
inst.registerA,
ImmutableFieldReference(
"Ljava/lang/Boolean;", "TRUE", "Ljava/lang/Boolean;"
)
)
)
}
val postprocessMoatCheckFailedMethod = postprocessMoatCheckFailedFingerprint.method
val toRemove = mutableListOf<Instruction>()
insns.forEachIndexed { i, inst ->
if (inst is BuilderInstruction35c &&
inst.opcode == Opcode.INVOKE_VIRTUAL &&
(inst.getReference<MethodReference>()?.name == postprocessMoatCheckFailedMethod.name) &&
inst.getReference<MethodReference>()?.definingClass ==
"Lcom/kakaopay/shared/security/moat/PaySecurityWorker;"
) {
for (j in 0..3) {
insns.getOrNull(i + j)?.let { toRemove += it }
}
}
}
toRemove
.distinct()
.sortedByDescending { insns.indexOf(it) }
.forEach { inst ->
method.removeInstruction(insns.indexOf(inst))
}
}
patch(moatCheckResultFingerprintOne)
patch(moatCheckResultFingerprintTwo)
}
}

View File

@ -0,0 +1,31 @@
package app.revanced.patches.kakaotalk.integrity
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.common.fingerprints.kotlinUnitInstanceFingerprint
import app.revanced.patches.kakaotalk.integrity.fingerprints.requestChecksumsFingerprint
@Suppress("unused")
val bypassRequestChecksumPatch = bytecodePatch(
name = "Bypass requestChecksums",
description = "Prevents the execution of checksum verification logic by making it return early."
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val findUnit = kotlinUnitInstanceFingerprint.method
val unitClass = findUnit.definingClass
val method = requestChecksumsFingerprint.method
// I tried to find the field name, but it's pretty obvious to me, so I hardcode it.
// If it changes, we need to fix it
method.addInstructions(
0,
"""
sget-object v0, $unitClass->a:$unitClass
return-object v0
""".trimIndent()
)
}
}

View File

@ -0,0 +1,23 @@
package app.revanced.patches.kakaotalk.integrity
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.integrity.fingerprints.verifyingSignatureFingerprint
@Suppress("unused")
val verifyingSignaturePatch = bytecodePatch(
name = "Disable verifying signature",
description = "Disables the signature verification check that prevents the app from running.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
verifyingSignatureFingerprint.method.addInstructions(
0,
"""
const/4 v0, 0x1
return v0
""".trimIndent()
)
}
}

View File

@ -0,0 +1,65 @@
package app.revanced.patches.kakaotalk.integrity.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val moatCheckResultFingerprintOne = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Ljava/lang/Object;", "Ljava/lang/Object;", "Ljava/lang/Object;")
returns("Ljava/lang/Object;")
strings("detectResult", "<unused var>")
opcodes(
Opcode.CHECK_CAST,
Opcode.CHECK_CAST,
Opcode.CHECK_CAST,
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.INVOKE_STATIC,
Opcode.SGET_OBJECT,
Opcode.SGET_OBJECT,
Opcode.CONST_4,
Opcode.IF_NE,
Opcode.CHECK_CAST,
Opcode.INVOKE_INTERFACE,
Opcode.MOVE_RESULT_OBJECT,
Opcode.INVOKE_INTERFACE,
Opcode.MOVE_RESULT,
)
custom { method, classDef -> classDef.sourceFile == "PaySecurityWorker.kt" }
}
internal val moatCheckResultFingerprintTwo = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Ljava/lang/Object;", "Ljava/lang/Object;", "Ljava/lang/Object;")
returns("Ljava/lang/Object;")
strings("detectResult", "<unused var>")
opcodes(
Opcode.CHECK_CAST,
Opcode.CHECK_CAST,
Opcode.CHECK_CAST,
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.INVOKE_STATIC,
Opcode.CHECK_CAST,
Opcode.NEW_INSTANCE,
Opcode.INVOKE_DIRECT,
Opcode.INVOKE_INTERFACE,
Opcode.MOVE_RESULT_OBJECT,
Opcode.INVOKE_INTERFACE,
Opcode.MOVE_RESULT,
Opcode.SGET_OBJECT,
Opcode.IF_EQZ,
)
custom { method, classDef -> classDef.sourceFile == "PaySecurityWorker.kt" }
}
internal val postprocessMoatCheckFailedFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Lcom/kakaopay/kpsd/moat/sdk/MoatFlag;", "Ljava/lang/String;", "[Ljava/lang/String;")
strings("msg_title", "msg_body", "OUTPUT_KEY_FAILURE_TITLE", "OUTPUT_KEY_FAILURE_REASON", "ADS_BLOCK은 result message를 사용해야 합니다.", "let(...)", "OUTPUT_KEY_FAILURE_TYPE", "OUTPUT_KEY_PACKAGE_NAMES")
}

View File

@ -0,0 +1,36 @@
package app.revanced.patches.kakaotalk.integrity.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val requestChecksumsFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("Ljava/lang/Object;")
strings(
"context"
)
opcodes(
Opcode.INSTANCE_OF,
Opcode.IF_EQZ,
Opcode.MOVE_OBJECT,
Opcode.CHECK_CAST,
Opcode.IGET,
Opcode.CONST_HIGH16,
Opcode.AND_INT,
Opcode.IF_EQZ,
Opcode.SUB_INT_2ADDR,
Opcode.IPUT,
Opcode.GOTO,
Opcode.NEW_INSTANCE,
Opcode.INVOKE_DIRECT,
Opcode.IGET_OBJECT,
Opcode.SGET_OBJECT,
Opcode.IGET,
Opcode.CONST_4,
Opcode.IF_EQZ,
Opcode.IF_NE,
Opcode.INVOKE_STATIC,
Opcode.GOTO,
)
}

View File

@ -0,0 +1,12 @@
package app.revanced.patches.kakaotalk.integrity.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
@Suppress("unused")
internal val verifyingSignatureFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC)
returns("Z")
parameters()
strings("getPackageName(...)")
}

View File

@ -0,0 +1,31 @@
package app.revanced.patches.kakaotalk.misc
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.misc.fingerprints.configConstructorFingerprint
import com.android.tools.smali.dexlib2.Opcode
@Suppress("unused")
val forceEnableDebugModePatch = bytecodePatch(
name = "Force enable debug mode",
description = "Enables debug mode in the app.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val method = configConstructorFingerprint.method
val insns = method.instructions
val idxReturn = insns.indexOfFirst { it.opcode == Opcode.RETURN_VOID } // RETURN_VOID
val clazz = method.definingClass
method.addInstructions(
idxReturn,
"""
const/4 v0, 0x1
sput-boolean v0, $clazz->a:Z
""".trimIndent()
)
}
}

View File

@ -0,0 +1,44 @@
package app.revanced.patches.kakaotalk.misc
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.misc.fingerprints.addNavigationTabFingerprint
import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
val removeShopTabPatch = bytecodePatch(
name = "Remove shop tab",
description = "Removes the shop tab from the bottom navigation bar.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val method = addNavigationTabFingerprint.method
val insns = method.instructions
val matches = insns.mapIndexedNotNull { idx, inst ->
if (inst is BuilderInstruction35c
&& inst.opcode == Opcode.INVOKE_VIRTUAL
&& (inst.getReference<MethodReference>()?.name == "add")
) {
val prev = insns.getOrNull(idx - 1) as? BuilderInstruction21c
val fldName = (prev?.reference as? FieldReference)?.name
if (fldName == "SHOPPING_TAB" || fldName == "CALL_TAB") {
Pair(idx - 1, idx)
} else null
} else null
}
matches
.sortedByDescending { it.second }
.forEach { (loadIdx, invokeIdx) ->
method.removeInstruction(invokeIdx)
method.removeInstruction(loadIdx)
}
}
}

View File

@ -0,0 +1,25 @@
package app.revanced.patches.kakaotalk.misc.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val configConstructorFingerprint = fingerprint {
accessFlags(AccessFlags.STATIC, AccessFlags.CONSTRUCTOR)
returns("V")
parameters()
strings("getBytes(...)")
opcodes(
Opcode.SGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT_OBJECT,
Opcode.SGET_OBJECT,
Opcode.CONST_4,
Opcode.CONST_4,
Opcode.IF_EQ,
Opcode.MOVE,
Opcode.GOTO,
)
custom { method, classDef -> classDef.sourceFile == "Config.kt" }
}

View File

@ -0,0 +1,26 @@
package app.revanced.patches.kakaotalk.misc.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val addNavigationTabFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
returns("V")
parameters()
strings("webtoon")
opcodes(
Opcode.IGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.SGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT_OBJECT,
Opcode.INVOKE_INTERFACE,
Opcode.MOVE_RESULT,
Opcode.CONST_4,
Opcode.IF_EQZ,
Opcode.SGET_OBJECT,
Opcode.GOTO,
)
}

View File

@ -0,0 +1,65 @@
package app.revanced.patches.kakaotalk.packagename
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.findMutableMethodOf
import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction21c
import com.android.tools.smali.dexlib2.iface.reference.StringReference
import com.android.tools.smali.dexlib2.immutable.reference.ImmutableStringReference
val changePackageNameInSourcePatch = bytecodePatch(
name = "Change package name in source",
description = "Changes the package name in the source code of KakaoTalk.",
use = false,
) {
// dependsOn(changePackageNamePatch)
execute {
// val newPackageName = if (packageNameOption.value == packageNameOption.default) {
// "com.kakao.talk.revanced"
// } else {
// packageNameOption.value!!
// }
val newPackageName = "com.kakao.talk.revanced"
val newStringReference = ImmutableStringReference(newPackageName)
classes.forEach { classDef ->
classDef.methods.forEach { method ->
val insns = method.implementation?.instructions ?: return@forEach
for ((i, insn) in insns.withIndex()) {
if (insn is Instruction21c &&
insn.opcode == Opcode.CONST_STRING &&
insn.getReference<StringReference>()!!.string == "com.kakao.talk") {
val mutableMethod = proxy(classDef).mutableClass.findMutableMethodOf(method)
mutableMethod.instructions
.filterIsInstance<BuilderInstruction21c>()
.filter { it.opcode == Opcode.CONST_STRING &&
it.getReference<StringReference>()!!.string == "com.kakao.talk" }
.forEach {
val idx = mutableMethod.instructions.indexOf(it)
println("Replacing package name in method $mutableMethod at index $idx")
mutableMethod.replaceInstruction(
idx,
BuilderInstruction21c(
Opcode.CONST_STRING,
it.registerA,
ImmutableStringReference(newPackageName)
)
)
}
}
}
}
}
}
}

View File

@ -0,0 +1,48 @@
package app.revanced.patches.kakaotalk.send
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patches.kakaotalk.send.fingerprints.allowSwipeReplyToFeedFingerprint
import app.revanced.patches.kakaotalk.send.fingerprints.realActionForReplyFingerprint
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction11n
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction21t
@Suppress("unused")
val allowReplyToFeedPatch = app.revanced.patcher.patch.bytecodePatch(
name = "Allow reply to feed",
description = "Allows replying to feed messages",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val patch: (Fingerprint) -> Unit = { fp ->
val method = fp.method
val insns = method.instructions
val idxIfnez = insns.indexOfFirst { it is Instruction21t && it.opcode == Opcode.IF_NEZ }
val idxIfnezTarget = (insns[idxIfnez] as Instruction21t).registerA
val idxInvoke = insns.subList(0, idxIfnez)
.indexOfLast { it.opcode == Opcode.INVOKE_VIRTUAL }
(idxInvoke until idxIfnez).toList()
.sortedDescending()
.forEach { method.removeInstruction(it) }
method.replaceInstruction(
idxInvoke,
BuilderInstruction11n(
Opcode.CONST_4,
idxIfnezTarget,
0x0,
)
)
}
patch(realActionForReplyFingerprint)
patch(allowSwipeReplyToFeedFingerprint)
}
}

View File

@ -0,0 +1,53 @@
package app.revanced.patches.kakaotalk.send.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val realActionForReplyFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR)
returns("V")
strings(
"chatLog",
"chatRoom"
)
opcodes(
Opcode.CONST_STRING,
Opcode.CONST_STRING,
Opcode.CONST,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT_OBJECT,
Opcode.CONST_4,
Opcode.INVOKE_DIRECT,
Opcode.IPUT_OBJECT,
Opcode.IPUT_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT_OBJECT,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT,
Opcode.IF_NEZ,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT_OBJECT,
Opcode.SGET_OBJECT,
Opcode.IF_NE,
Opcode.GOTO_16
)
}
internal val allowSwipeReplyToFeedFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters("Landroidx/recyclerview/widget/RecyclerView;", "Landroidx/recyclerview/widget/RecyclerView\$D;")
returns("I")
strings("recyclerView", "viewHolder")
opcodes(
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.CONST_STRING,
Opcode.INVOKE_STATIC,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT,
Opcode.CONST_4,
Opcode.CONST_4,
)
custom { method, classDef -> method.name == "getMovementFlags" }
}

View File

@ -0,0 +1,57 @@
package app.revanced.patches.kakaotalk.versioninfo
import app.revanced.patcher.Fingerprint
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.kakaotalk.versioninfo.fingerprints.versionInfoFingerprint
import app.revanced.patches.kakaotalk.versioninfo.fingerprints.versionInfoPreviewFingerprint
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
import com.android.tools.smali.dexlib2.iface.reference.StringReference
import com.android.tools.smali.dexlib2.immutable.reference.ImmutableStringReference
import java.time.format.DateTimeFormatter
@Suppress("unused")
val versionInfoPatch = bytecodePatch(
name = "Version info patch",
description = "Patches the version info to include '(ReVanced)' in the version string.",
) {
compatibleWith("com.kakao.talk"("25.5.1"))
execute {
val runPatch: (Fingerprint, Boolean) -> Unit = { fp, inDetail ->
val versionInfo = fp.method.instructions
.filterIsInstance<BuilderInstruction21c>()
.first { inst ->
inst.opcode == Opcode.CONST_STRING
}
val versionString = (versionInfo.reference as StringReference).string
fp.method
.replaceInstruction(
versionInfo.location.index,
BuilderInstruction21c(
Opcode.CONST_STRING,
versionInfo.registerA,
ImmutableStringReference(
if (inDetail) {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
"$versionString (ReVanced)\nBuild at: ${
formatter.format(
java.time.LocalDateTime.now()
)
}"
} else {
"$versionString (ReVanced)"
}
)
)
)
}
runPatch(versionInfoFingerprint, true)
runPatch(versionInfoPreviewFingerprint, false)
}
}

View File

@ -0,0 +1,44 @@
package app.revanced.patches.kakaotalk.versioninfo.fingerprints
import app.revanced.patcher.fingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
internal val versionInfoFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC, AccessFlags.FINAL)
returns("V")
opcodes(
Opcode.CONST,
Opcode.INVOKE_INTERFACE,
Opcode.MOVE_RESULT_OBJECT,
Opcode.AND_INT_LIT8,
Opcode.CONST_STRING,
Opcode.CONST_4,
Opcode.IF_NEZ,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT,
Opcode.IF_EQZ,
Opcode.CONST_4,
Opcode.GOTO
)
custom { method, classDef -> classDef.sourceFile == "VersionSettingItem.kt" }
}
internal val versionInfoPreviewFingerprint = fingerprint {
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
parameters()
returns("Ljava/lang/String;")
opcodes(
Opcode.CONST_STRING,
Opcode.SGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.NEW_INSTANCE,
Opcode.CONST_4,
Opcode.CONST_4,
Opcode.INVOKE_DIRECT,
Opcode.SGET_OBJECT,
Opcode.INVOKE_STATIC,
Opcode.MOVE_RESULT_OBJECT,
Opcode.CHECK_CAST,
)
}

View File

@ -0,0 +1,10 @@
package app.revanced.patches.messenger.layout
import app.revanced.patcher.fingerprint
internal val isFacebookButtonEnabledFingerprint = fingerprint {
parameters()
returns("Z")
strings("com.facebook.messaging.inbox.tab.plugins.core.tabtoolbarbutton." +
"facebookbutton.facebooktoolbarbutton.FacebookButtonTabButtonImplementation")
}

View File

@ -0,0 +1,16 @@
package app.revanced.patches.messenger.layout
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.returnEarly
@Suppress("unused")
val hideFacebookButtonPatch = bytecodePatch(
name = "Hide Facebook button",
description = "Hides the Facebook button in the top toolbar."
) {
compatibleWith("com.facebook.orca")
execute {
isFacebookButtonEnabledFingerprint.method.returnEarly(false)
}
}

View File

@ -6,9 +6,8 @@ import app.revanced.patcher.fingerprint
internal val getMobileConfigBoolFingerprint = fingerprint {
parameters("J")
returns("Z")
opcodes(Opcode.RETURN)
custom { method, classDef ->
method.implementation ?: return@custom false // unsure if this is necessary
opcodes(Opcode.RETURN)
custom { _, classDef ->
classDef.interfaces.contains("Lcom/facebook/mobileconfig/factory/MobileConfigUnsafeContext;")
}
}
}

View File

@ -25,10 +25,10 @@ val removeMetaAIPatch = bytecodePatch(
addInstructions(
returnIndex,
"""
invoke-static { p1, p2, v$returnRegister }, $EXTENSION_CLASS_DESCRIPTOR->overrideConfigBool(JZ)Z
invoke-static { p1, p2, v$returnRegister }, $EXTENSION_CLASS_DESCRIPTOR->overrideBooleanFlag(JZ)Z
move-result v$returnRegister
"""
)
}
}
}
}

View File

@ -2,4 +2,4 @@ package app.revanced.patches.messenger.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
val sharedExtensionPatch = sharedExtensionPatch("messenger", mainActivityOnCreateHook)
val sharedExtensionPatch = sharedExtensionPatch("messenger", mainActivityOnCreateHook)

View File

@ -681,6 +681,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">إخفاء زر التشغيل التلقائي</string>
<string name="revanced_hide_autoplay_button_summary_on">تم إخفاء زر التشغيل التلقائي</string>
<string name="revanced_hide_autoplay_button_summary_off">يتم عرض زر التشغيل التلقائي</string>
<string name="revanced_hide_player_control_buttons_background_title">إخفاء خلفية أزرار التحكم في المشغل</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">تم إخفاء خلفية أزرار التحكم في المشغل</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">تم إظهار خلفية أزرار التحكم في المشغل</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">إخفاء بطاقات شاشة النهاية</string>
@ -765,6 +768,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">إخفاء زر الشاشة الخضراء</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">تم إخفاء زر الشاشة الخضراء</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">يتم عرض زر الشاشة الخضراء</string>
<string name="revanced_hide_shorts_new_posts_button_title">إخفاء زر \"مشاركات جديدة\"</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">يتم عرض زر \"مشاركات جديدة\"</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">تم إخفاء زر \"مشاركات جديدة\"</string>
<string name="revanced_hide_shorts_hashtag_button_title">إخفاء زر الهاشتاج</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">تم إخفاء زر الهاشتاج</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">يتم عرض زر الهاشتاج</string>

View File

@ -311,6 +311,9 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız."</string>
<string name="revanced_hide_comments_create_a_short_button_title">\"Shorts Yarat\" düyməsini gizlət</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Short yarat düyməsi gizlidir</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Short yarat düyməsi görünür</string>
<string name="revanced_hide_comments_timestamp_button_title">Vaxt möhürü düyməsini gizlət</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Vaxt damğası düyməsi gizlidir</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Vaxt möhürü düyməsi göstərilir</string>
<string name="revanced_hide_comments_preview_comment_title">Önbaxış şərhin gizlət</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Önbaxış şərhi gizlədilib</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Önbaxış şərhi göstərilir</string>
@ -1252,6 +1255,9 @@ Genişləndirmək və ya bağlamaq üçün sürüşdür"</string>
<string name="revanced_gradient_loading_screen_title">Dəyişkən yükləmə ekranını aktivləşdir</string>
<string name="revanced_gradient_loading_screen_summary_on">Yükləmə ekranı, dəyişkən arxa plana malik olacaq</string>
<string name="revanced_gradient_loading_screen_summary_off">Yükləmə ekranı, vahid arxa plana malik olacaq</string>
<string name="splash_screen_animation_style_title">Sıçrama ekran üslubu</string>
<string name="splash_screen_animation_style_entry_1">Rəng</string>
<string name="splash_screen_animation_style_entry_2">Qara və ağ</string>
<string name="revanced_seekbar_custom_color_title">Fərdi irəliləmə cizgisi rəngini aktivləşdir</string>
<string name="revanced_seekbar_custom_color_summary_on">Fərdi irəliləmə cizgisi rəngi göstərilir</string>
<string name="revanced_seekbar_custom_color_summary_off">Orijinal irəliləmə cizgisi rəngi göstərilir</string>

View File

@ -681,6 +681,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">Схаваць кнопку «Аўтапрайграванне»</string>
<string name="revanced_hide_autoplay_button_summary_on">Кнопка аўтазапуску схавана</string>
<string name="revanced_hide_autoplay_button_summary_off">Паказана кнопка аўтазапуску</string>
<string name="revanced_hide_player_control_buttons_background_title">Схаваць фон кнопак кіравання прайгравальнікам</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Фон кнопак кіравання прайгравальнікам схаваны</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Фон кнопак кіравання прайгравальнікам паказаны</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Схаваць карткі канцавога экрана</string>
@ -765,6 +768,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">Схаваць кнопку «Зялёны экран»</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Кнопка с зелёным экраном Shorts скрыта</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Кнопка с зелёным экраном Shorts отображается</string>
<string name="revanced_hide_shorts_new_posts_button_title">Схаваць кнопку «Новыя паведамленні»</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Кнопка «Новыя паведамленні» паказана</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Кнопка «Новыя паведамленні» схавана</string>
<string name="revanced_hide_shorts_hashtag_button_title">Скрыть хештег-кнопку Shorts</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Хештег-кнопка Shorts скрыта</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Хештег-кнопка Shorts отображается</string>

View File

@ -681,6 +681,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">Скриване на бутона Autoplay</string>
<string name="revanced_hide_autoplay_button_summary_on">Бутона за авт. изпълнение е скрит</string>
<string name="revanced_hide_autoplay_button_summary_off">Бутона за авт. изпълнение се показва</string>
<string name="revanced_hide_player_control_buttons_background_title">Скриване на фона на бутоните за управление на плейъра</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Фонът на бутоните за управление на плейъра е скрит</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Фонът на бутоните за управление на плейъра е показан</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Скриване на препоръките в края</string>
@ -765,6 +768,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">Скриване на бутона Green screen</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Бутон \"Зелен екран\" е скрит</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Бутон \"Зелен екран\" се показва</string>
<string name="revanced_hide_shorts_new_posts_button_title">Скриване на бутона \"Нови публикации\"</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Бутонът \"Нови публикации\" се показва</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Бутонът \"Нови публикации\" е скрит</string>
<string name="revanced_hide_shorts_hashtag_button_title">Скриване на бутона за хаштаг</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Бутона за хаштаг е скрит</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Бутона за хаштаг се показва</string>

View File

@ -677,6 +677,9 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_autoplay_button_title">অটোপ্লে বোতামটি লুকান</string>
<string name="revanced_hide_autoplay_button_summary_on">autoplay বোতাম লুকানো আছে</string>
<string name="revanced_hide_autoplay_button_summary_off">autoplay বোতাম দেখানো হচ্ছে</string>
<string name="revanced_hide_player_control_buttons_background_title">প্লেয়ার কন্ট্রোল বোতামগুলির পটভূমি লুকান</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">প্লেয়ার কন্ট্রোল বোতামগুলির পটভূমি লুকানো আছে</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">প্লেয়ার কন্ট্রোল বোতামগুলির পটভূমি দেখানো হয়েছে</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">শেষ স্ক্রীন কার্ড লুকান</string>
@ -761,6 +764,9 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
<string name="revanced_hide_shorts_green_screen_button_title">গ্রিন স্ক্রিন বোতামটি লুকান</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">সবুজ পর্দা বোতাম লুকানো আছে</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">সবুজ পর্দা বোতাম দেখানো হচ্ছে</string>
<string name="revanced_hide_shorts_new_posts_button_title">নতুন পোস্ট বোতাম লুকান</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">নতুন পোস্ট বোতাম দেখানো হয়েছে</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">নতুন পোস্ট বোতাম লুকানো হয়েছে</string>
<string name="revanced_hide_shorts_hashtag_button_title">হ্যাশট্যাগ বোতাম লুকান</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">হ্যাশট্যাগ বোতাম লুকানো আছে</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">হ্যাশট্যাগ বোতাম দেখানো হচ্ছে</string>

View File

@ -681,6 +681,9 @@ Per mostrar el menú de la pista d'àudio, canvieu \"Suplanta els fluxos de víd
<string name="revanced_hide_autoplay_button_title">Amaga el botó Reproducció automàtica</string>
<string name="revanced_hide_autoplay_button_summary_on">El botó de reproducció automàtica està ocult</string>
<string name="revanced_hide_autoplay_button_summary_off">El botón de reproducción automática se muestra</string>
<string name="revanced_hide_player_control_buttons_background_title">Amaga el fons dels botons de control del reproductor</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">S\'amaga el fons dels botons de control del reproductor</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Es mostra el fons dels botons de control del reproductor</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Ocultar tarjetas de pantalla final</string>
@ -765,6 +768,9 @@ Per mostrar el menú de la pista d'àudio, canvieu \"Suplanta els fluxos de víd
<string name="revanced_hide_shorts_green_screen_button_title">Amaga el botó Pantalla verda</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">El botó de pantalla verda està ocult</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">El botó de pantalla verda està visible</string>
<string name="revanced_hide_shorts_new_posts_button_title">Amaga el botó de publicacions noves</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Es mostra el botó de publicacions noves</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">S\'amaga el botó de publicacions noves</string>
<string name="revanced_hide_shorts_hashtag_button_title">Amagar botó de hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">El botó de hashtag està ocult</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">El botó de hashtag està visible</string>

View File

@ -681,6 +681,9 @@ Chcete-li zobrazit nabídku zvukové stopy, změňte možnost „Zfalšovat stre
<string name="revanced_hide_autoplay_button_title">Skrýt tlačítko Automatické přehrávání</string>
<string name="revanced_hide_autoplay_button_summary_on">Tlačítko automatického přehrávání je skryto</string>
<string name="revanced_hide_autoplay_button_summary_off">Tlačítko automatického přehrávání je zobrazeno</string>
<string name="revanced_hide_player_control_buttons_background_title">Skrýt pozadí ovládacích tlačítek přehrávače</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Pozadí ovládacích tlačítek přehrávače je skryté</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Zobrazuje se pozadí ovládacích tlačítek přehrávače</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Skrýt karty s informacemi o videu</string>
@ -765,6 +768,9 @@ Chcete-li zobrazit nabídku zvukové stopy, změňte možnost „Zfalšovat stre
<string name="revanced_hide_shorts_green_screen_button_title">Skrýt tlačítko Zelená obrazovka</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Tlačítko zelené obrazovky je skryté</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Tlačítko zelené obrazovky je zobrazeno</string>
<string name="revanced_hide_shorts_new_posts_button_title">Skrýt tlačítko Nové příspěvky</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Tlačítko Nové příspěvky je zobrazeno</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Tlačítko Nové příspěvky je skryto</string>
<string name="revanced_hide_shorts_hashtag_button_title">Skrýt tlačítko hashtagů</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Tlačítko hashtagů je skryté</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Tlačítko hashtagů je zobrazeno</string>

View File

@ -681,6 +681,9 @@ For at vise lydspormenuen skal du ændre \"Spoof videostream\" til iOS TV"</stri
<string name="revanced_hide_autoplay_button_title">Skjul knappen Automatisk afspilning</string>
<string name="revanced_hide_autoplay_button_summary_on">Automatisk spil-knap er skjult</string>
<string name="revanced_hide_autoplay_button_summary_off">Automatisk afspilningsknap vises</string>
<string name="revanced_hide_player_control_buttons_background_title">Skjul baggrunden for afspillerens kontrolknapper</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Baggrunden for afspillerens kontrolknapper er skjult</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Baggrunden for afspillerens kontrolknapper vises</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Skjul slutskærmkort</string>
@ -765,6 +768,9 @@ For at vise lydspormenuen skal du ændre \"Spoof videostream\" til iOS TV"</stri
<string name="revanced_hide_shorts_green_screen_button_title">Skjul knappen Grøn skærm</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Grøn skærmknap er skjult</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Grøn skærmknap vises</string>
<string name="revanced_hide_shorts_new_posts_button_title">Skjul knappen Nye indlæg</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Knappen Nye indlæg vises</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Knappen Nye indlæg er skjult</string>
<string name="revanced_hide_shorts_hashtag_button_title">Skjul hashtag knap</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Hashtag knap er skjult</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Hashtag knappen er vist</string>

View File

@ -674,6 +674,9 @@ Um das Audiotrack-Menü anzuzeigen, ändere \"Video-Streams fälschen\" zu iOS T
<string name="revanced_hide_autoplay_button_title">Autoplay-Button ausblenden</string>
<string name="revanced_hide_autoplay_button_summary_on">Autoplay Button ist ausgeblendet</string>
<string name="revanced_hide_autoplay_button_summary_off">Autoplay Button wird angezeigt</string>
<string name="revanced_hide_player_control_buttons_background_title">Hintergrund der Player-Steuerungstasten ausblenden</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Hintergrund der Player-Steuerungstasten ist ausgeblendet</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Hintergrund der Player-Steuerungstasten wird angezeigt</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Endkarte ausblenden</string>
@ -758,6 +761,9 @@ Um das Audiotrack-Menü anzuzeigen, ändere \"Video-Streams fälschen\" zu iOS T
<string name="revanced_hide_shorts_green_screen_button_title">Green-Screen-Button ausblenden</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Grünbildschirm-Taste ist ausgeblendet</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Grünbildschirm-Taste wird angezeigt</string>
<string name="revanced_hide_shorts_new_posts_button_title">Schaltfläche \"Neue Beiträge ausblenden\"</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Schaltfläche \"Neue Beiträge\" wird angezeigt</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Schaltfläche \"Neue Beiträge\" ist ausgeblendet</string>
<string name="revanced_hide_shorts_hashtag_button_title">Hashtag Button ausblenden</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Hashtag Button ist ausgeblendet</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Hashtag Button wird angezeigt</string>

View File

@ -313,9 +313,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">Κουμπί «Δημιουργία Short»</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_comments_timestamp_button_title">Απόκρυψη κουμπιού χρονοσήμανσης</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Το κουμπί χρονοσήμανσης είναι κρυφό</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Εμφανίζεται το κουμπί χρονοσήμανσης</string>
<string name="revanced_hide_comments_timestamp_button_title">Κουμπί χρονοσήμανσης</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_comments_preview_comment_title">Προεπισκόπηση σχολίου</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Κρυμμένη</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Εμφανίζεται</string>
@ -683,6 +683,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">Κουμπί αυτόματης αναπαραγωγής</string>
<string name="revanced_hide_autoplay_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_autoplay_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_player_control_buttons_background_title">Φόντο κουμπιών ελέγχου οθόνης αναπαραγωγής</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Κρυμμένο</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Εμφανίζεται</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Κάρτες τελικής οθόνης</string>
@ -752,9 +755,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">Ετικέτα τοποθεσίας</string>
<string name="revanced_hide_shorts_location_label_summary_on">Κρυμμένη</string>
<string name="revanced_hide_shorts_location_label_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_shorts_preview_comment_title">Απόκρυψη προεπισκόπησης σχολίου</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Το σχόλιο προεπισκόπησης είναι κρυφό</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Εμφανίζεται η προεπισκόπηση του σχολίου</string>
<string name="revanced_hide_shorts_preview_comment_title">Προεπισκόπηση σχολίου</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Κρυμμένη</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_shorts_save_sound_button_title">Κουμπί «Αποθήκευση μουσικής»</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Εμφανίζεται</string>
@ -767,6 +770,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">Κουμπί «Green screen»</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_shorts_new_posts_button_title">Κουμπί «Νέες αναρτήσεις»</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Εμφανίζεται</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_shorts_hashtag_button_title">Κουμπί hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Κρυμμένο</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Εμφανίζεται</string>
@ -1258,8 +1264,8 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_summary_on">Η οθόνη φόρτωσης θα έχει σταδιακές αποχρώσεις φόντο</string>
<string name="revanced_gradient_loading_screen_summary_off">Η οθόνη φόρτωσης θα έχει στατική απόχρωση φόντο</string>
<string name="splash_screen_animation_style_title">Στυλ οθόνης εκκίνησης</string>
<string name="splash_screen_animation_style_entry_1">Χρώμα</string>
<string name="splash_screen_animation_style_entry_2">Μαύρο και άσπρο</string>
<string name="splash_screen_animation_style_entry_1">Χρωματιστή</string>
<string name="splash_screen_animation_style_entry_2">Ασπρόμαυρη</string>
<string name="revanced_seekbar_custom_color_title">Προσαρμοσμένο χρώμα γραμμής προόδου</string>
<string name="revanced_seekbar_custom_color_summary_on">Η γραμμή προόδου εμφανίζεται με προσαρμοσμένο χρώμα</string>
<string name="revanced_seekbar_custom_color_summary_off">Η γραμμή προόδου εμφανίζεται με το αρχικό χρώμα</string>

View File

@ -678,6 +678,9 @@ Para mostrar el menú de la pista de audio, cambia \"Suplantar transmisiones de
<string name="revanced_hide_autoplay_button_title">Ocultar el botón Reproducción automática</string>
<string name="revanced_hide_autoplay_button_summary_on">El botón de reproducción automática está oculto</string>
<string name="revanced_hide_autoplay_button_summary_off">Se muestra el botón de reproducción automática</string>
<string name="revanced_hide_player_control_buttons_background_title">Ocultar el fondo de los botones de control del reproductor</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">El fondo de los botones de control del reproductor está oculto</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Se muestra el fondo de los botones de control del reproductor</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Ocultar tarjetas de pantalla final</string>
@ -762,6 +765,9 @@ Para mostrar el menú de la pista de audio, cambia \"Suplantar transmisiones de
<string name="revanced_hide_shorts_green_screen_button_title">Ocultar el botón Pantalla verde</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">El botón verde de pantalla está oculto</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Se muestra el botón verde de pantalla</string>
<string name="revanced_hide_shorts_new_posts_button_title">Ocultar el botón Publicaciones nuevas</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Se muestra el botón Publicaciones nuevas</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">El botón Publicaciones nuevas está oculto</string>
<string name="revanced_hide_shorts_hashtag_button_title">Ocultar botón de hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">El botón Hashtag está oculto</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Se muestra el botón Hashtag</string>

View File

@ -681,6 +681,9 @@ Heliriba menüü kuvamiseks muutke valikut „Võltsitud videovoogedastus“ vä
<string name="revanced_hide_autoplay_button_title">Peida Automaatse esitamise nupp</string>
<string name="revanced_hide_autoplay_button_summary_on">Automaatse esituse nupp on peidetud</string>
<string name="revanced_hide_autoplay_button_summary_off">Automaatse esituse nupp on nähtav</string>
<string name="revanced_hide_player_control_buttons_background_title">Peida pleieri juhtnuppude taust</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Pleieri juhtnuppude taust on peidetud</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Pleieri juhtnuppude taust on näidatud</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Peida lõpukujunduse kaardid</string>
@ -765,6 +768,9 @@ Heliriba menüü kuvamiseks muutke valikut „Võltsitud videovoogedastus“ vä
<string name="revanced_hide_shorts_green_screen_button_title">Peida Roheline ekraan nupp</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Rohelise ekraani nupp on peidetud</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Rohelise ekraani nupp on nähtav</string>
<string name="revanced_hide_shorts_new_posts_button_title">Peida uute postituste nupp</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Uute postituste nupp on nähtav</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Uute postituste nupp on peidetud</string>
<string name="revanced_hide_shorts_hashtag_button_title">Peida räsimärgi nupp</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Räsimärgi nupp on peidetud</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Räsimärgi nupp on nähtav</string>

View File

@ -311,6 +311,9 @@ Et saa ilmoituksia odottamattomista tapahtumista."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Piilota \"Luo Shorts-video\" -painike</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Luo Shorts-video -painike on piilotettu</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Luo Shorts-video -painike näytetään</string>
<string name="revanced_hide_comments_timestamp_button_title">Piilota aikaleimapainike</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Aikaleimapainike on piilotettu</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Aikaleimapainike näytetään</string>
<string name="revanced_hide_comments_preview_comment_title">Piilota kommentin esikatselu</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Kommentin esikatselu on piilotettu</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Kommentin esikatselu näytetään</string>
@ -1253,7 +1256,9 @@ Pyyhkäise laajentaaksesi tai sulkeaksesi"</string>
<string name="revanced_gradient_loading_screen_title">Ota liukuvärillinen latausruutu käyttöön</string>
<string name="revanced_gradient_loading_screen_summary_on">Latausruudulla on liukuvärillinen tausta</string>
<string name="revanced_gradient_loading_screen_summary_off">Latausruudulla on yksivärinen tausta</string>
<string name="splash_screen_animation_style_title">Aloitussivun tyyli</string>
<string name="splash_screen_animation_style_entry_1">Väri</string>
<string name="splash_screen_animation_style_entry_2">Musta ja valkoinen</string>
<string name="revanced_seekbar_custom_color_title">Ota mukautettu etenemispalkin väri käyttöön</string>
<string name="revanced_seekbar_custom_color_summary_on">Mukautettu etenemispalkin väri näytetään</string>
<string name="revanced_seekbar_custom_color_summary_off">Alkuperäinen etenemispalkin väri näytetään</string>

View File

@ -679,6 +679,9 @@ Upang ipakita ang menu ng Audio track, baguhin ang 'Spoof video streams' sa iOS
<string name="revanced_hide_autoplay_button_title">Itago ang Autoplay button</string>
<string name="revanced_hide_autoplay_button_summary_on">Nakatago ang autoplay button</string>
<string name="revanced_hide_autoplay_button_summary_off">Ang autoplay na button ay ipinapakita</string>
<string name="revanced_hide_player_control_buttons_background_title">Itago ang background ng mga button ng kontrol ng player</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Nakatago ang background ng mga button ng kontrol ng player</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Ipinapakita ang background ng mga button ng kontrol ng player</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Itago ang mga end screen card</string>
@ -763,6 +766,9 @@ Upang ipakita ang menu ng Audio track, baguhin ang 'Spoof video streams' sa iOS
<string name="revanced_hide_shorts_green_screen_button_title">Itago ang Green screen button</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Nakatago ang pindutan ng \"Green screen\"</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Ipinapakita ang pindutan ng \"Green screen\"</string>
<string name="revanced_hide_shorts_new_posts_button_title">Itago ang button na Mga bagong post</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Ipinapakita ang button na Mga bagong post</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Nakatago ang button na Mga bagong post</string>
<string name="revanced_hide_shorts_hashtag_button_title">Itago ang pindutan ng \"Hashtag\"</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Nakatago ang pindutan ng \"Hashtag\"</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Ipinapakita ang pindutan ng \"Hashtag\"</string>

View File

@ -311,9 +311,9 @@ Vous ne serez pas informé des événements inattendus."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Masquer le bouton Créer un Short</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Le bouton \"Créer un Short\" est masqué</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Le bouton \"Créer un Short\" est affiché</string>
<string name="revanced_hide_comments_timestamp_button_title">Masquer le bouton dhorodatage</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Le bouton dhorodatage est masqué</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Le bouton dhorodatage est affiché</string>
<string name="revanced_hide_comments_timestamp_button_title">Masquer le bouton d\'horodatage</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Le bouton d\'horodatage est masqué</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Le bouton d\'horodatage est affiché</string>
<string name="revanced_hide_comments_preview_comment_title">Masquer le commentaire servant d\'aperçu</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Le commentaire servant d\'aperçu est masqué</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Le commentaire servant d\'aperçu est affiché</string>
@ -681,6 +681,9 @@ Pour afficher le menu Piste audio, définissez \"Falsifier les flux vidéo\" sur
<string name="revanced_hide_autoplay_button_title">Masquer le bouton Lecture automatique</string>
<string name="revanced_hide_autoplay_button_summary_on">Le bouton Lecture automatique est masqué</string>
<string name="revanced_hide_autoplay_button_summary_off">Le bouton Lecture automatique est affiché</string>
<string name="revanced_hide_player_control_buttons_background_title">Masquer l\'arrière-plan des boutons de commande du lecteur</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">L\'arrière-plan des boutons de commande du lecteur est masqué</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">L\'arrière-plan des boutons de commande du lecteur est affiché</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Masquer les écrans de fin au format fiche</string>
@ -765,6 +768,9 @@ Pour afficher le menu Piste audio, définissez \"Falsifier les flux vidéo\" sur
<string name="revanced_hide_shorts_green_screen_button_title">Masquer le bouton Écran vert</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Le bouton Écran vert est masqué</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Le bouton Écran vert est affiché</string>
<string name="revanced_hide_shorts_new_posts_button_title">Masquer le bouton Nouveaux posts</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Le bouton Nouveaux posts est affiché</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Le bouton Nouveaux posts est masqué</string>
<string name="revanced_hide_shorts_hashtag_button_title">Masquer le bouton de hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Le bouton de hashtag est masqué</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Le bouton de hashtag est affiché</string>
@ -1255,7 +1261,7 @@ Balayez pour agrandir ou fermer"</string>
<string name="revanced_gradient_loading_screen_title">Activer le dégradé sur l\'écran de chargement</string>
<string name="revanced_gradient_loading_screen_summary_on">Le fond de l\'écran de chargement sera un dégradé de couleurs</string>
<string name="revanced_gradient_loading_screen_summary_off">Le fond de l\'écran de chargement sera une couleur unie</string>
<string name="splash_screen_animation_style_title">Style d\'écran de démarrage</string>
<string name="splash_screen_animation_style_title">Style de l\'écran de lancement</string>
<string name="splash_screen_animation_style_entry_1">Couleur </string>
<string name="splash_screen_animation_style_entry_2">Noir et blanc</string>
<string name="revanced_seekbar_custom_color_title">Personnaliser la couleur de la barre de progression</string>

View File

@ -681,6 +681,9 @@ Chun roghchlár na rian fuaime a thaispeáint, athraigh 'Srutháin físeáin bhr
<string name="revanced_hide_autoplay_button_title">Folaigh cnaipe an Uathoimh</string>
<string name="revanced_hide_autoplay_button_summary_on">Tá cnaipe Autoplay i bhfolach</string>
<string name="revanced_hide_autoplay_button_summary_off">Taispeántar cnaipe Autoplay</string>
<string name="revanced_hide_player_control_buttons_background_title">Folaigh cúlra cnaipí rialaithe an tseinnteora</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Tá cúlra cnaipí rialaithe an tseinnteora folaithe</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Taispeántar cúlra cnaipí rialaithe an tseinnteora</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Folaigh cártaí scáileáin deireadh</string>
@ -765,6 +768,9 @@ Chun roghchlár na rian fuaime a thaispeáint, athraigh 'Srutháin físeáin bhr
<string name="revanced_hide_shorts_green_screen_button_title">Folaigh cnaipe \'Scáileán glas\'</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Tá cnaipe an scáileáin glas i bhfolach</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Taispeántar cnaipe an scáileáin glas</string>
<string name="revanced_hide_shorts_new_posts_button_title">Folaigh cnaipe na bpostálacha nua</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Taispeántar cnaipe na bpostálacha nua</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Tá cnaipe na bpostálacha nua i bhfolach</string>
<string name="revanced_hide_shorts_hashtag_button_title">Folaigh an cnaipe hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Tá cnaipe hashtag i bhfolach</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Taispeántar an cnaipe hashtag</string>

View File

@ -681,6 +681,9 @@ Az audiosáv menü megjelenítéséhez módosítsa a \"Videófolyamok hamisítá
<string name="revanced_hide_autoplay_button_title">Automatikus lejátszás gomb elrejtése</string>
<string name="revanced_hide_autoplay_button_summary_on">Az automatikus lejátszás gomb el van rejtve</string>
<string name="revanced_hide_autoplay_button_summary_off">Az automatikus lejátszás gomb látható</string>
<string name="revanced_hide_player_control_buttons_background_title">A lejátszó vezérlőgombjainak hátterének elrejtése</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">A lejátszó vezérlőgombjainak háttere rejtve</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">A lejátszó vezérlőgombjainak háttere látható</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Záróképernyő kártyák elrejtése</string>
@ -765,6 +768,9 @@ Az audiosáv menü megjelenítéséhez módosítsa a \"Videófolyamok hamisítá
<string name="revanced_hide_shorts_green_screen_button_title">Zöld háttér gomb elrejtése</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">A zöld képernyő gomb el van rejtve</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">A zöld képernyő gomb látható</string>
<string name="revanced_hide_shorts_new_posts_button_title">Új bejegyzések gomb elrejtése</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Az új bejegyzések gomb megjelenik</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Az új bejegyzések gomb rejtve van</string>
<string name="revanced_hide_shorts_hashtag_button_title">A hashtag gomb elrejtése</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">A Hashtag gomb el van rejtve</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">A Hashtag gomb látható</string>

View File

@ -681,6 +681,9 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
<string name="revanced_hide_autoplay_button_title">Թաքցնել Ավտոմատ կրկնում կոճակը</string>
<string name="revanced_hide_autoplay_button_summary_on">Ավտոմատ վերարտադրման կոճակը թաքցված է</string>
<string name="revanced_hide_autoplay_button_summary_off">Ավտոմատ վերարտադրման կոճակը երևում է</string>
<string name="revanced_hide_player_control_buttons_background_title">Թաքցնել նվագարկչի կառավարման կոճակների ֆոնը</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Նվագարկչի կառավարման կոճակների ֆոնը թաքնված է</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Նվագարկչի կառավարման կոճակների ֆոնը ցուցադրվում է</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Էկրանի վերջում քարտերը թաքցնել</string>
@ -765,6 +768,9 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
<string name="revanced_hide_shorts_green_screen_button_title">Թաքցնել Կանաչ էկրան կոճակը</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">\"Green Screen\" կոճակը թաքցված է</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">\"Green Screen\" կոճակը երևում է</string>
<string name="revanced_hide_shorts_new_posts_button_title">Թաքցնել «Նոր գրառումներ» կոճակը</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">«Նոր գրառումներ» կոճակը երևում է</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">«Նոր գրառումներ» կոճակը թաքցված է</string>
<string name="revanced_hide_shorts_hashtag_button_title">Թաքցնել \"Hashtag\" կոճակը</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">\"Hashtag\" կոճակը թաքցված է</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">\"Hashtag\" կոճակը երևում է</string>

View File

@ -311,9 +311,9 @@ Anda tidak akan diberi tahu tentang kejadian yang tidak terduga."</string>
<string name="revanced_hide_comments_create_a_short_button_title">Sembunyikan tombol \'Buat Short\'</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Tombol Buat Short disembunyikan</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Tombol Buat Short ditampilkan</string>
<string name="revanced_hide_comments_timestamp_button_title">Sembunyikan tombol stempel waktu</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Tombol stempel waktu disembunyikan</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Tombol stempel waktu ditampilkan</string>
<string name="revanced_hide_comments_timestamp_button_title">Sembunyikan tombol penanda waktu</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Tombol penanda waktu disembunyikan</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Tombol penanda waktu ditampilkan</string>
<string name="revanced_hide_comments_preview_comment_title">Sembunyikan pratinjau komentar</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Pratinjau komentar disembunyikan</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Pratinjau komentar ditampilkan</string>
@ -424,12 +424,12 @@ Fitur ini hanya tersedia untuk perangkat yang lebih lama"</string>
</patch>
<patch id="interaction.copyvideourl.copyVideoUrlResourcePatch">
<string name="revanced_share_copy_url_success">URL disalin ke papan klip</string>
<string name="revanced_share_copy_url_timestamp_success">URL dengan timestamp telah disalin</string>
<string name="revanced_share_copy_url_timestamp_success">URL dengan penanda waktu telah disalin</string>
<string name="revanced_copy_video_url_title">Tampilkan tombol salin URL video</string>
<string name="revanced_copy_video_url_summary_on">Tombol ditampilkan. Ketuk untuk menyalin URL video. Ketuk dan tahan untuk menyalin dengan stempel waktu</string>
<string name="revanced_copy_video_url_summary_on">Tombol ditampilkan. Ketuk untuk menyalin URL video. Ketuk dan tahan untuk menyalin dengan penanda waktu</string>
<string name="revanced_copy_video_url_summary_off">Tombol tidak ditampilkan</string>
<string name="revanced_copy_video_url_timestamp_title">Tampilkan tombol salin timestamp URL</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Tombol ditampilkan. Ketuk untuk menyalin URL video dengan stempel waktu. Ketuk dan tahan untuk menyalin tanpa stempel waktu</string>
<string name="revanced_copy_video_url_timestamp_title">Tampilkan tombol salin penanda waktu URL</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Tombol ditampilkan. Ketuk untuk menyalin URL video dengan stempel waktu. Ketuk dan tahan untuk menyalin tanpa penanda waktu</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Tombol tidak ditampilkan</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
@ -681,6 +681,9 @@ Untuk menampilkan menu trek Audio, ubah 'Spoof aliran video' ke iOS TV"</string>
<string name="revanced_hide_autoplay_button_title">Sembunyikan tombol Putar Otomatis</string>
<string name="revanced_hide_autoplay_button_summary_on">Tombol putar otomatis disembunyikan</string>
<string name="revanced_hide_autoplay_button_summary_off">Tombol putar otomatis ditampilkan</string>
<string name="revanced_hide_player_control_buttons_background_title">Sembunyikan latar belakang tombol kontrol pemutar</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Latar belakang tombol kontrol pemutar disembunyikan</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Latar belakang tombol kontrol pemutar ditampilkan</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Sembunyikan kartu layar akhir</string>
@ -765,6 +768,9 @@ Untuk menampilkan menu trek Audio, ubah 'Spoof aliran video' ke iOS TV"</string>
<string name="revanced_hide_shorts_green_screen_button_title">Sembunyikan tombol Layar Hijau</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Tombol layar hijau disembunyikan</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Tombol layar hijau ditampilkan</string>
<string name="revanced_hide_shorts_new_posts_button_title">Sembunyikan tombol postingan Baru</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Tombol postingan baru ditampilkan</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Tombol postingan baru disembunyikan</string>
<string name="revanced_hide_shorts_hashtag_button_title">Sembunyikan tombol tagar</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Tombol tagar disembunyikan</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Tombol tagar ditampilkan</string>
@ -830,9 +836,9 @@ Pengaturan → Pemutaran → Putar otomatis video berikutnya"</string>
<string name="revanced_hide_related_video_overlay_summary_off">Hamparan video terkait ditampilkan</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
<string name="revanced_hide_timestamp_title">Sembunyikan timestamp video</string>
<string name="revanced_hide_timestamp_summary_on">Timestamp disembunyikan</string>
<string name="revanced_hide_timestamp_summary_off">Timestamp ditampilkan</string>
<string name="revanced_hide_timestamp_title">Sembunyikan penanda waktu video</string>
<string name="revanced_hide_timestamp_summary_on">Penanda waktu disembunyikan</string>
<string name="revanced_hide_timestamp_summary_off">Penanda waktu ditampilkan</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
<string name="revanced_hide_player_popup_panels_title">Sembunyikan panel popup pemutar</string>
@ -1255,8 +1261,8 @@ Geser untuk memperluas atau menutup"</string>
<string name="revanced_gradient_loading_screen_title">Aktifkan layar pemuatan gradien</string>
<string name="revanced_gradient_loading_screen_summary_on">Layar pemuatan akan memiliki latar belakang gradien</string>
<string name="revanced_gradient_loading_screen_summary_off">Layar pemuatan akan memiliki latar belakang yang solid</string>
<string name="splash_screen_animation_style_title">Gaya layar splash</string>
<string name="splash_screen_animation_style_entry_1">Warna</string>
<string name="splash_screen_animation_style_title">Gaya layar pembuka</string>
<string name="splash_screen_animation_style_entry_1">Berwarna</string>
<string name="splash_screen_animation_style_entry_2">Hitam dan putih</string>
<string name="revanced_seekbar_custom_color_title">Aktifkan warna seekbar khusus</string>
<string name="revanced_seekbar_custom_color_summary_on">Warna seekbar khusus ditampilkan</string>

View File

@ -681,6 +681,9 @@ Per mostrare il menu della traccia audio, cambia \"Spoof video streams\" in iOS
<string name="revanced_hide_autoplay_button_title">Nascondi il pulsante Riproduzione Automatica</string>
<string name="revanced_hide_autoplay_button_summary_on">Il pulsante Riproduzione Automatica è nascosto</string>
<string name="revanced_hide_autoplay_button_summary_off">Il pulsante Riproduzione Automatica è visibile</string>
<string name="revanced_hide_player_control_buttons_background_title">Nascondi sfondo dei pulsanti di controllo del player</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Lo sfondo dei pulsanti di controllo del player è nascosto</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Lo sfondo dei pulsanti di controllo del player è mostrato</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Nascondi le schede della schermata finale</string>
@ -765,6 +768,9 @@ Per mostrare il menu della traccia audio, cambia \"Spoof video streams\" in iOS
<string name="revanced_hide_shorts_green_screen_button_title">Nascondi il pulsante Green Screen</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Il pulsante Schermo verde è nascosto</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Il pulsante Schermo verde è visibile</string>
<string name="revanced_hide_shorts_new_posts_button_title">Nascondi il pulsante Nuovi post</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Il pulsante Nuovi post è visibile</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Il pulsante Nuovi post è nascosto</string>
<string name="revanced_hide_shorts_hashtag_button_title">Nascondi il pulsante Hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Il pulsante Hashtag è nascosto</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Il pulsante Hashtag è visibile</string>

View File

@ -681,6 +681,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">הסתר לחצן הפעלה אוטומטית</string>
<string name="revanced_hide_autoplay_button_summary_on">לחצן הפעלה אוטומטית מוסתר</string>
<string name="revanced_hide_autoplay_button_summary_off">לחצן הפעלה אוטומטית מוצג</string>
<string name="revanced_hide_player_control_buttons_background_title">הסתר רקע של לחצני שליטה בנגן</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">רקע לחצני השליטה בנגן מוסתר</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">רקע לחצני השליטה בנגן מוצג</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">הסתר כרטיסי מסך סיום</string>
@ -765,6 +768,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">הסתר לחצן מסך ירוק</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">לחצן מסך ירוק מוסתר</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">לחצן מסך ירוק מוצג</string>
<string name="revanced_hide_shorts_new_posts_button_title">הסתר לחצן \"פוסטים חדשים\"</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">לחצן \"פוסטים חדשים\" מוצג</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">לחצן \"פוסטים חדשים\" מוסתר</string>
<string name="revanced_hide_shorts_hashtag_button_title">הסתר לחצן hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">לחצן hashtag מוסתר</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">לחצן hashtag מוצג</string>

View File

@ -684,6 +684,9 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
<string name="revanced_hide_autoplay_button_title">自動再生ボタンを非表示</string>
<string name="revanced_hide_autoplay_button_summary_on">自動再生ボタンはオーバーレイに表示されません</string>
<string name="revanced_hide_autoplay_button_summary_off">自動再生ボタンはオーバーレイに表示されます</string>
<string name="revanced_hide_player_control_buttons_background_title">プレーヤーのコントロール ボタンの背景を非表示</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">プレーヤーのコントロール ボタンの背景は表示されません</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">プレーヤーのコントロール ボタンの背景は表示されます</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">動画の終了画面を非表示</string>
@ -768,6 +771,9 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
<string name="revanced_hide_shorts_green_screen_button_title">グリーンスクリーン ボタンを非表示</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">グリーンスクリーン ボタンは表示されません</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">グリーンスクリーン ボタンは表示されます</string>
<string name="revanced_hide_shorts_new_posts_button_title">「新しい投稿」ボタンを非表示</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">「新しい投稿」ボタンは表示されます</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">「新しい投稿」ボタンは表示されません</string>
<string name="revanced_hide_shorts_hashtag_button_title">ハッシュタグ ボタンを非表示</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">ハッシュタグ ボタンは表示されません</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">ハッシュタグ ボタンは表示されます</string>
@ -1125,14 +1131,14 @@ MicroG GmsCore に対する電池の最適化を無効にしても、バッテ
<string name="revanced_change_form_factor_entry_2">スマートフォン</string>
<string name="revanced_change_form_factor_entry_3">タブレット</string>
<string name="revanced_change_form_factor_entry_4">Automotive</string>
<string name="revanced_change_form_factor_user_dialog_message">"変更点は以下のとおりです:
<string name="revanced_change_form_factor_user_dialog_message">"以下の変更を伴います:
タブレット レイアウト
• コミュニティ投稿が表示されない
Automotive レイアウト
• ショート動画を通常のプレーヤーで開く
• フィードがトピックチャンネルで分類される"</string>
• フィードがトピックチャンネルごとに分類された形で表示される"</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">アプリのバージョンを偽装する</string>
@ -1256,7 +1262,7 @@ Automotive レイアウト
<string name="revanced_gradient_loading_screen_title">グラデーションの読み込み画面を使用する</string>
<string name="revanced_gradient_loading_screen_summary_on">画面読み込み時にグラデーションの背景が表示されます</string>
<string name="revanced_gradient_loading_screen_summary_off">画面読み込み時に通常の背景が表示されます</string>
<string name="splash_screen_animation_style_title">スプラッシュ スクリーンのスタイル</string>
<string name="splash_screen_animation_style_title">スプラッシュ画面のスタイル</string>
<string name="splash_screen_animation_style_entry_1">カラー</string>
<string name="splash_screen_animation_style_entry_2">白黒</string>
<string name="revanced_seekbar_custom_color_title">編集したシークバーの色を使用する</string>

View File

@ -189,9 +189,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_show_more_button_title">\'자세히 보기\' 버튼 숨기기</string>
<string name="revanced_hide_show_more_button_summary_on">\'자세히 보기\' 버튼이 숨겨집니다</string>
<string name="revanced_hide_show_more_button_summary_off">\'자세히 보기\' 버튼이 표시됩니다</string>
<string name="revanced_hide_ticket_shelf_title">콘서트 티켓 선반 숨기기</string>
<string name="revanced_hide_ticket_shelf_summary_on">콘서트 티켓 선반이 숨겨집니다\n• 일부 국가에서는 아직 서비스가 제공되지 않습니다</string>
<string name="revanced_hide_ticket_shelf_summary_off">콘서트 티켓 선반이 표시됩니다\n• 일부 국가에서는 아직 서비스가 제공되지 않습니다</string>
<string name="revanced_hide_ticket_shelf_title">이벤트 티켓 선반 숨기기</string>
<string name="revanced_hide_ticket_shelf_summary_on">이벤트 티켓 선반이 숨겨집니다</string>
<string name="revanced_hide_ticket_shelf_summary_off">이벤트 티켓 선반이 표시됩니다</string>
<string name="revanced_hide_timed_reactions_title">실시간 이모티콘 리액션 숨기기</string>
<string name="revanced_hide_timed_reactions_summary_on">실시간 이모티콘 리액션이 숨겨집니다</string>
<string name="revanced_hide_timed_reactions_summary_off">실시간 이모티콘 리액션이 표시됩니다</string>
@ -681,6 +681,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_autoplay_button_title">자동재생 버튼 숨기기</string>
<string name="revanced_hide_autoplay_button_summary_on">자동재생 버튼이 숨겨집니다</string>
<string name="revanced_hide_autoplay_button_summary_off">자동재생 버튼이 표시됩니다</string>
<string name="revanced_hide_player_control_buttons_background_title">플레이어 컨트롤 버튼 배경 숨기기</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">플레이어 컨트롤 버튼 배경이 숨겨집니다</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">플레이어 컨트롤 버튼 배경이 표시됩니다</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">최종 화면 카드 숨기기</string>
@ -765,6 +768,9 @@ MicroG 앱 배터리 최적화를 비활성화(제한 없음)하더라도, 배
<string name="revanced_hide_shorts_green_screen_button_title">그린 스크린 버튼 숨기기</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">그린 스크린 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">그린 스크린 버튼이 표시됩니다</string>
<string name="revanced_hide_shorts_new_posts_button_title">새로운 게시물 버튼 숨기기</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">새로운 게시물 버튼이 표시됩니다</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">새로운 게시물 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_hashtag_button_title">해시태그 버튼 숨기기</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">해시태그 버튼이 숨겨집니다</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">해시태그 버튼이 표시됩니다</string>

View File

@ -679,6 +679,9 @@ Jei pakeitus šį nustatymą neįsigalioja, pabandykite perjungti į inkognito r
<string name="revanced_hide_autoplay_button_title">Paslėpti mygtuką „Automatinis atkūrimas\"</string>
<string name="revanced_hide_autoplay_button_summary_on">Automatinio paleidimo mygtukas yra paslėptas</string>
<string name="revanced_hide_autoplay_button_summary_off">Automatinio paleidimo mygtukas yra rodomas</string>
<string name="revanced_hide_player_control_buttons_background_title">Slėpti grotuvo valdymo mygtukų foną</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Grotuvo valdymo mygtukų fonas paslėptas</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Grotuvo valdymo mygtukų fonas rodomas</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Slėpti ekrano pabaigos korteles</string>
@ -763,6 +766,9 @@ Jei pakeitus šį nustatymą neįsigalioja, pabandykite perjungti į inkognito r
<string name="revanced_hide_shorts_green_screen_button_title">Paslėpti mygtuką „Žalias ekranas\"</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">\"Žaliojo ekrano\" mygtukas paslėptas</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">\"Žaliojo ekrano\" mygtukas rodomas</string>
<string name="revanced_hide_shorts_new_posts_button_title">Slėpti mygtuką „Nauji įrašai“</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Rodomas mygtukas „Nauji įrašai“</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Paslėptas mygtukas „Nauji įrašai“</string>
<string name="revanced_hide_shorts_hashtag_button_title">Slėpti grotažymės mygtuką</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Grotažymės mygtukas paslėptas</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Grotažymės mygtukas rodomas</string>

View File

@ -681,6 +681,9 @@ Lai parādītu audio celiņu izvēlni, mainiet \"Video straumju viltošana\" uz
<string name="revanced_hide_autoplay_button_title">Paslēpt pogu \"Automātiskā atskaņošana\"</string>
<string name="revanced_hide_autoplay_button_summary_on">Automātiskās atskaņošanas poga ir paslēpta</string>
<string name="revanced_hide_autoplay_button_summary_off">Automātiskās atskaņošanas poga ir redzama</string>
<string name="revanced_hide_player_control_buttons_background_title">Slēpt atskaņotāja vadības pogu fonu</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Atskaņotāja vadības pogu fons ir paslēpts</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Atskaņotāja vadības pogu fons ir redzams</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Paslēpt ekrāna beigās esošās kartītes</string>
@ -765,6 +768,9 @@ Lai parādītu audio celiņu izvēlni, mainiet \"Video straumju viltošana\" uz
<string name="revanced_hide_shorts_green_screen_button_title">Paslēpt pogu \"Zaļais ekrāns\"</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Zaļā ekrāna poga ir paslēpta</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Zaļā ekrāna poga ir redzama</string>
<string name="revanced_hide_shorts_new_posts_button_title">Paslēpt pogu Jauni ieraksti</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Poga Jauni ieraksti ir redzama</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Poga Jauni ieraksti ir paslēpta</string>
<string name="revanced_hide_shorts_hashtag_button_title">Paslēpt hashtags pogu</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Hashtags poga ir paslēpta</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Hashtags poga ir redzama</string>

View File

@ -681,6 +681,9 @@ Om het audiotrackmenu weer te geven, wijzigt u 'Videostreams vervalsen' in iOS T
<string name="revanced_hide_autoplay_button_title">Verberg knop voor automatisch afspelen</string>
<string name="revanced_hide_autoplay_button_summary_on">Automatische afspeelknop is verborgen</string>
<string name="revanced_hide_autoplay_button_summary_off">Automatische afspeelknop wordt weergegeven</string>
<string name="revanced_hide_player_control_buttons_background_title">Achtergrond van afspeelknoppen verbergen</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Achtergrond van afspeelknoppen is verborgen</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Achtergrond van afspeelknoppen wordt weergegeven</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Verberg eindschermkaarten</string>
@ -765,6 +768,9 @@ Om het audiotrackmenu weer te geven, wijzigt u 'Videostreams vervalsen' in iOS T
<string name="revanced_hide_shorts_green_screen_button_title">Verberg de knop \"Groen scherm\"</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">De knop \"Groen scherm\" is verborgen</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">De knop \"Groen scherm\" is zichtbaar</string>
<string name="revanced_hide_shorts_new_posts_button_title">Knop Nieuwe berichten verbergen</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Knop Nieuwe berichten wordt weergegeven</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Knop Nieuwe berichten is verborgen</string>
<string name="revanced_hide_shorts_hashtag_button_title">Verberg de knop \"Hashtag\"</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">De knop \"Hashtag\" is verborgen</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">De knop \"Hashtag\" is zichtbaar</string>

View File

@ -677,6 +677,9 @@ Aby pokazać menu ścieżki audio, zmień opcję „Fałszuj strumienie wideo”
<string name="revanced_hide_autoplay_button_title">Ukryj przycisk automatycznego odtwarzania</string>
<string name="revanced_hide_autoplay_button_summary_on">Przycisk automatycznego odtwarzania jest ukryty</string>
<string name="revanced_hide_autoplay_button_summary_off">Przycisk automatycznego odtwarzania jest widoczny</string>
<string name="revanced_hide_player_control_buttons_background_title">Ukryj tło przycisków sterowania odtwarzacza</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Tło przycisków sterowania odtwarzacza jest ukryte</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Tło przycisków sterowania odtwarzacza jest wyświetlane</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Karty ekranu końcowego</string>
@ -761,6 +764,9 @@ Aby pokazać menu ścieżki audio, zmień opcję „Fałszuj strumienie wideo”
<string name="revanced_hide_shorts_green_screen_button_title">Ukryj przycisk \"Zielony ekran\"</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Przycisk od greenscreena jest ukryty</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Przycisk od greenscreena jest widoczny</string>
<string name="revanced_hide_shorts_new_posts_button_title">Ukryj przycisk Nowe posty</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Przycisk Nowe posty jest widoczny</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Przycisk Nowe posty jest ukryty</string>
<string name="revanced_hide_shorts_hashtag_button_title">Przycisk hashtagu</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Przycisk hashtagu jest ukryty</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Przycisk hashtagu jest widoczny</string>

View File

@ -679,6 +679,9 @@ Para exibir o menu da faixa de áudio, altere \"Spoof video streams\" para iOS T
<string name="revanced_hide_autoplay_button_title">Ocultar botão Reprodução automática</string>
<string name="revanced_hide_autoplay_button_summary_on">Botão de reprodução automática está oculto</string>
<string name="revanced_hide_autoplay_button_summary_off">Botão de reprodução automática não está oculto</string>
<string name="revanced_hide_player_control_buttons_background_title">Ocultar o fundo dos botões de controle do player</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">O fundo dos botões de controle do player está oculto</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">O fundo dos botões de controle do player está visível</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Ocultar cartões de tela final</string>
@ -763,6 +766,9 @@ Para exibir o menu da faixa de áudio, altere \"Spoof video streams\" para iOS T
<string name="revanced_hide_shorts_green_screen_button_title">Ocultar botão Tela verde</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">O botão de tela verde está oculto</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">O botão de tela verde será exibido</string>
<string name="revanced_hide_shorts_new_posts_button_title">Ocultar botão de novas postagens</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">O botão de novas postagens é exibido</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">O botão de novas postagens está oculto</string>
<string name="revanced_hide_shorts_hashtag_button_title">Ocultar botão hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">O botão hashtag está oculto</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Botão hashtag é mostrado</string>

View File

@ -681,6 +681,9 @@ Para mostrar o menu da faixa de áudio, altere \"Spoof video streams\" para iOS
<string name="revanced_hide_autoplay_button_title">Ocultar botão de reprodução automática</string>
<string name="revanced_hide_autoplay_button_summary_on">O botão de reprodução automática está escondido</string>
<string name="revanced_hide_autoplay_button_summary_off">Botão de reprodução automática é visível</string>
<string name="revanced_hide_player_control_buttons_background_title">Ocultar o fundo dos botões de controlo do reprodutor</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">O fundo dos botões de controlo do reprodutor está oculto</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">O fundo dos botões de controlo do reprodutor é mostrado</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Esconder cartões de ecrã final</string>
@ -765,6 +768,9 @@ Para mostrar o menu da faixa de áudio, altere \"Spoof video streams\" para iOS
<string name="revanced_hide_shorts_green_screen_button_title">Botão de ecrã verde está oculto</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">O botão de ecrã verde está oculto</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Botão de ecrã verde é mostrado</string>
<string name="revanced_hide_shorts_new_posts_button_title">Ocultar botão Novas postagens</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">O botão Novas postagens é exibido</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">O botão Novas postagens está oculto</string>
<string name="revanced_hide_shorts_hashtag_button_title">Ocultar botão de hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">O botão Hashtag está oculto</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Botão Hashtag é mostrado</string>

View File

@ -681,6 +681,9 @@ Pentru a afișa meniul pentru pista audio, schimbați opțiunea „Falsifică fl
<string name="revanced_hide_autoplay_button_title">Ascunde butonul Redare automată</string>
<string name="revanced_hide_autoplay_button_summary_on">Butonul Autoplay este ascuns</string>
<string name="revanced_hide_autoplay_button_summary_off">Butonul Auto-redare este afișat</string>
<string name="revanced_hide_player_control_buttons_background_title">Ascunde fundalul butoanelor de control al playerului</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Fundalul butoanelor de control al playerului este ascuns</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Fundalul butoanelor de control al playerului este afișat</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Ascunde cardurile ecranului final</string>
@ -765,6 +768,9 @@ Pentru a afișa meniul pentru pista audio, schimbați opțiunea „Falsifică fl
<string name="revanced_hide_shorts_green_screen_button_title">Ascunde butonul Ecran verde</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Butonul de ecran verde este ascuns</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Butonul de ecran verde este afișat</string>
<string name="revanced_hide_shorts_new_posts_button_title">Ascunde butonul Postări noi</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Butonul Postări noi este afișat</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Butonul Postări noi este ascuns</string>
<string name="revanced_hide_shorts_hashtag_button_title">Ascunde butonul hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Butonul Hashtag este ascuns</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Butonul Hashtag este afișat</string>

View File

@ -311,9 +311,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_comments_create_a_short_button_title">Скрыть кнопку \"Создать Short\"</string>
<string name="revanced_hide_comments_create_a_short_button_summary_on">Кнопка \"Создать Short\" при ответе на комментарий скрыта</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Кнопка \"Создать Short\" при ответе на комментарий показана</string>
<string name="revanced_hide_comments_timestamp_button_title">Скрыть кнопку меток времени</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Кнопка меток времени скрыта</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Кнопка меток времени отображается</string>
<string name="revanced_hide_comments_timestamp_button_title">Скрыть кнопку метки времени</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Кнопка метки времени скрыта</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Кнопка метки времени показана</string>
<string name="revanced_hide_comments_preview_comment_title">Скрыть предпросмотр комментария</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Предпросмотр комментария под плеером скрыт</string>
<string name="revanced_hide_comments_preview_comment_summary_off">Предпросмотр комментария под плеером показан</string>
@ -681,6 +681,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">Скрыть кнопку \"Автовоспроизведение\"</string>
<string name="revanced_hide_autoplay_button_summary_on">Кнопка \"Автовоспроизведение\" в плеере скрыта</string>
<string name="revanced_hide_autoplay_button_summary_off">Кнопка \"Автовоспроизведение\" в плеере показана</string>
<string name="revanced_hide_player_control_buttons_background_title">Скрыть фон кнопок управления плеера</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Фон кнопок управления плеера скрыт</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Фон кнопок управления плеера показан</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Скрыть заставки следующих видео</string>
@ -750,9 +753,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_location_label_title">Скрыть метку местоположения</string>
<string name="revanced_hide_shorts_location_label_summary_on">Метка местоположения в Shorts скрыта</string>
<string name="revanced_hide_shorts_location_label_summary_off">Метка местоположения в Shorts показана</string>
<string name="revanced_hide_shorts_preview_comment_title">Скрыть предпросмотр комментария</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Предпросмотр комментария под плеером скрыт</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Предпросмотр комментария под плеером показан</string>
<string name="revanced_hide_shorts_preview_comment_title">Скрыть превью комментариев</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Превью комментариев под плеером скрыто</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Превью комментариев под плеером показано</string>
<string name="revanced_hide_shorts_save_sound_button_title">Скрыть кнопку \"Сохранить музыку\"</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Кнопка \"Сохранить музыку\" в Shorts скрыта</string>
<string name="revanced_hide_shorts_save_sound_button_summary_off">Кнопка \"Сохранить музыку\" в Shorts показана</string>
@ -765,6 +768,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">Скрыть кнопку \"Зеленый экран\"</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Кнопка \"Зеленый экран\" в Shorts скрыта</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Кнопка \"Зеленый экран\" в Shorts показана</string>
<string name="revanced_hide_shorts_new_posts_button_title">Скрыть кнопку \"Новые публикации\"</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Кнопка \"Новые публикации\" в плеере Shorts показана</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Кнопка \"Новые публикации\" в плеере Shorts скрыта</string>
<string name="revanced_hide_shorts_hashtag_button_title">Скрыть кнопку хэштега</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Кнопка хэштега в Shorts скрыта</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Кнопка хэштега в Shorts показана</string>
@ -1256,8 +1262,8 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_title">Включить градиентный фон экрана загрузки</string>
<string name="revanced_gradient_loading_screen_summary_on">Градиентный фон экрана загрузки макета включен</string>
<string name="revanced_gradient_loading_screen_summary_off">Сплошной фон экрана загрузки макета включен</string>
<string name="splash_screen_animation_style_title">Стиль заставки</string>
<string name="splash_screen_animation_style_entry_1">Цвет</string>
<string name="splash_screen_animation_style_title">Стиль экрана заставки</string>
<string name="splash_screen_animation_style_entry_1">Цветной</string>
<string name="splash_screen_animation_style_entry_2">Черно-белый</string>
<string name="revanced_seekbar_custom_color_title">Включить кастомный цвет полосы прогресса</string>
<string name="revanced_seekbar_custom_color_summary_on">Кастомный цвет полосы прогресса включен</string>

View File

@ -674,6 +674,9 @@ Ak chcete zobraziť ponuku zvukovej stopy, zmeňte možnosť „Oklamať videost
<string name="revanced_hide_autoplay_button_title">Skryť tlačidlo Automatické prehrávanie</string>
<string name="revanced_hide_autoplay_button_summary_on">Tlačidlo automatického prehrávania je skryté</string>
<string name="revanced_hide_autoplay_button_summary_off">Zobrazí sa tlačidlo automatického prehrávania</string>
<string name="revanced_hide_player_control_buttons_background_title">Skryť pozadie tlačidiel ovládania prehrávača</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Pozadie tlačidiel ovládania prehrávača je skryté</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Zobrazuje sa pozadie tlačidiel ovládania prehrávača</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Skryť karty záverečnej obrazovky</string>
@ -758,6 +761,9 @@ Ak chcete zobraziť ponuku zvukovej stopy, zmeňte možnosť „Oklamať videost
<string name="revanced_hide_shorts_green_screen_button_title">Skryť tlačidlo Zelená obrazovka</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Tlačidlo pre zelené pozadie bude skryté</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Tlačidlo pre zelené pozadie bude zobrazené</string>
<string name="revanced_hide_shorts_new_posts_button_title">Skryť tlačidlo Nové príspevky</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Zobrazí sa tlačidlo Nové príspevky</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Tlačidlo Nové príspevky je skryté</string>
<string name="revanced_hide_shorts_hashtag_button_title">Skryť tlačidlo pre hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Tlačidlo pre hashtag bude skryté</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Tlačidlo pre hashtag bude zobrazené</string>

View File

@ -681,6 +681,9 @@ Opomba: Omogočanje tega tudi prisilno skrije video oglase"</string>
<string name="revanced_hide_autoplay_button_title">Skrij gumb \'Samodejno predvajanje\'</string>
<string name="revanced_hide_autoplay_button_summary_on">Gumb za samodejno predvajanje je skrit</string>
<string name="revanced_hide_autoplay_button_summary_off">Gumb za samodejno predvajanje je prikazan</string>
<string name="revanced_hide_player_control_buttons_background_title">Skrij ozadje gumbov za upravljanje predvajalnika</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Ozadje gumbov za upravljanje predvajalnika je skrito</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Ozadje gumbov za upravljanje predvajalnika je prikazano</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Skrij kartice na končnem zaslonu</string>
@ -765,6 +768,9 @@ Opomba: Omogočanje tega tudi prisilno skrije video oglase"</string>
<string name="revanced_hide_shorts_green_screen_button_title">Skrij gumb \'Zelena scena\'</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Gumb za zeleno ozadje je skrit</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Gumb za zeleno ozadje je prikazan</string>
<string name="revanced_hide_shorts_new_posts_button_title">Skrij gumb za nove objave</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Gumb za nove objave je prikazan</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Gumb za nove objave je skrit</string>
<string name="revanced_hide_shorts_hashtag_button_title">Skrij gumb za ključnik</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Gumb za ključnik je skrit</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Gumb za ključnik je prikazan</string>

View File

@ -681,6 +681,9 @@ Për të shfaqur menunë e pistës audio, ndryshoni 'Falsifiko transmetimet vide
<string name="revanced_hide_autoplay_button_title">Fsheh butonin Autoplay</string>
<string name="revanced_hide_autoplay_button_summary_on">Butoni \"Riprodho automatikisht\" është i fshehur</string>
<string name="revanced_hide_autoplay_button_summary_off">Butoni \"Riprodho automatikisht\" është i dukshëm</string>
<string name="revanced_hide_player_control_buttons_background_title">Fshihni sfondin e butonave të kontrollit të luajtësit</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Sfondi i butonave të kontrollit të luajtësit është i fshehur</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Sfondi i butonave të kontrollit të luajtësit është shfaqur</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Fsheh kartat e ekranit të fundit</string>
@ -765,6 +768,9 @@ Për të shfaqur menunë e pistës audio, ndryshoni 'Falsifiko transmetimet vide
<string name="revanced_hide_shorts_green_screen_button_title">Fsheh butonin Ekran jeshil</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Butoni \"Ekrani i gjelbër\" është i fshehur</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Butoni \"Ekrani i gjelbër\" është i dukshëm</string>
<string name="revanced_hide_shorts_new_posts_button_title">Fshih butonin e postimeve të reja</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Butoni i postimeve të reja shfaqet</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Butoni i postimeve të reja është i fshehur</string>
<string name="revanced_hide_shorts_hashtag_button_title">Fsheh butonin \"Hashtag\"</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Butoni \"Hashtag\" është i fshehur</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Butoni \"Hashtag\" është i dukshëm</string>

View File

@ -681,6 +681,9 @@ Da biste prikazali meni „Audio snimak”, promenite opciju „Lažirani video
<string name="revanced_hide_autoplay_button_title">Sakrij dugme „Autoplej”</string>
<string name="revanced_hide_autoplay_button_summary_on">Dugme „Autoplej” je skriveno</string>
<string name="revanced_hide_autoplay_button_summary_off">Dugme „Autoplej” je prikazano</string>
<string name="revanced_hide_player_control_buttons_background_title">Sakrij pozadinu dugmadi za kontrolu plejera</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Pozadina dugmadi za kontrolu plejera je skrivena</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Pozadina dugmadi za kontrolu plejera je prikazana</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Sakrij kartice završnog ekrana</string>
@ -765,6 +768,9 @@ Da biste prikazali meni „Audio snimak”, promenite opciju „Lažirani video
<string name="revanced_hide_shorts_green_screen_button_title">Sakrij dugme „Zeleni ekran”</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Dugme „Zeleni ekran” je skriveno</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Dugme „Zeleni ekran” je prikazano</string>
<string name="revanced_hide_shorts_new_posts_button_title">Sakrij dugme „Nove objave”</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Dugme „Nove objave” je prikazano</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Dugme „Nove objave” je skriveno</string>
<string name="revanced_hide_shorts_hashtag_button_title">Sakrij dugme heš-oznake</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Dugme heš-oznake je skriveno</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Dugme heš-oznake je prikazano</string>

View File

@ -681,6 +681,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">Сакриј дугме „Аутоплеј”</string>
<string name="revanced_hide_autoplay_button_summary_on">Дугме „Аутоплеј” је скривено</string>
<string name="revanced_hide_autoplay_button_summary_off">Дугме „Аутоплеј” је приказано</string>
<string name="revanced_hide_player_control_buttons_background_title">Сакриј позадину дугмади за контролу плејера</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Позадина дугмади за контролу плејера је скривена</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Позадина дугмади за контролу плејера је приказана</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Сакриј картице завршног екрана</string>
@ -765,6 +768,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">Сакриј дугме „Зелени екран”</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Дугме „Зелени екран” је скривено</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Дугме „Зелени екран” је приказано</string>
<string name="revanced_hide_shorts_new_posts_button_title">Сакриј дугме „Нове објаве”</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Дугме „Нове објаве” је приказано</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Дугме „Нове објаве” је скривено</string>
<string name="revanced_hide_shorts_hashtag_button_title">Сакриј дугме хеш-ознаке</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Дугме хеш-ознаке је скривено</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Дугме хеш-ознаке је приказано</string>

View File

@ -681,6 +681,9 @@ För att visa ljudspårsmenyn, ändra \"Spoof video streams\" till iOS TV"</stri
<string name="revanced_hide_autoplay_button_title">Dölj knappen för automatisk uppspelning</string>
<string name="revanced_hide_autoplay_button_summary_on">Knappen för automatisk uppspelning är dold</string>
<string name="revanced_hide_autoplay_button_summary_off">Knappen för automatisk uppspelning är synlig</string>
<string name="revanced_hide_player_control_buttons_background_title">Dölj bakgrunden för spelarens kontrollknappar</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Bakgrunden för spelarens kontrollknappar är dold</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Bakgrunden för spelarens kontrollknappar visas</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Dölj slutskärmskort</string>
@ -765,6 +768,9 @@ För att visa ljudspårsmenyn, ändra \"Spoof video streams\" till iOS TV"</stri
<string name="revanced_hide_shorts_green_screen_button_title">Dölj grön skärm-knapp</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Grön skärm-knappen är dold</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Grön skärmknapp visas</string>
<string name="revanced_hide_shorts_new_posts_button_title">Dölj knappen Nya inlägg</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Knappen Nya inlägg är synlig</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Knappen Nya inlägg är dold</string>
<string name="revanced_hide_shorts_hashtag_button_title">Dölj hashtag-knapp</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Hashtag-knappen är dold</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Hashtag-knappen visas</string>

View File

@ -679,6 +679,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">ซ่อนปุ่มเล่นอัตโนมัติ</string>
<string name="revanced_hide_autoplay_button_summary_on">ปุ่มเล่นอัตโนมัติซ่อนอยู่</string>
<string name="revanced_hide_autoplay_button_summary_off">ปุ่มเล่นอัตโนมัติแสดงอยู่</string>
<string name="revanced_hide_player_control_buttons_background_title">ซ่อนพื้นหลังปุ่มควบคุมเครื่องเล่น</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">พื้นหลังปุ่มควบคุมเครื่องเล่นถูกซ่อนอยู่</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">พื้นหลังปุ่มควบคุมเครื่องเล่นปรากฏ</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">ซ่อนการ์ดหน้าจอสิ้นสุด</string>
@ -763,6 +766,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">ซ่อนปุ่มกรีนสกรีน</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">ปุ่ม Green Screen ถูกซ่อน</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">ปุ่ม Green Screen แสดงขึ้น</string>
<string name="revanced_hide_shorts_new_posts_button_title">ซ่อนปุ่มโพสต์ใหม่</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">ปุ่มโพสต์ใหม่แสดงอยู่</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">ปุ่มโพสต์ใหม่ถูกซ่อน</string>
<string name="revanced_hide_shorts_hashtag_button_title">ซ่อนปุ่ม Hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">ปุ่ม Hashtag ถูกซ่อน</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">ปุ่ม Hashtag แสดงขึ้น</string>

View File

@ -681,6 +681,9 @@ Ses parçası menüsünü göstermek için \"Video akışlarını taklit et\" ay
<string name="revanced_hide_autoplay_button_title">Otomatik oynatma düğmesini gizle</string>
<string name="revanced_hide_autoplay_button_summary_on">Otomatik oynatma düğmesi gizli</string>
<string name="revanced_hide_autoplay_button_summary_off">Otomatik oynatma düğmesi görünür</string>
<string name="revanced_hide_player_control_buttons_background_title">Oynatıcı kontrol düğmeleri arka planını gizle</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Oynatıcı kontrol düğmeleri arka planı gizlendi</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Oynatıcı kontrol düğmeleri arka planı gösteriliyor</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Bitiş ekranı kartlarını gizle</string>
@ -765,6 +768,9 @@ Ses parçası menüsünü göstermek için \"Video akışlarını taklit et\" ay
<string name="revanced_hide_shorts_green_screen_button_title">Yeşil ekran düğmesini gizle</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Yeşil ekran düğmesi gizli</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Yeşil ekran düğmesi görünür</string>
<string name="revanced_hide_shorts_new_posts_button_title">Yeni gönderiler düğmesini gizle</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Yeni gönderiler düğmesi görünür</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Yeni gönderiler düğmesi gizli</string>
<string name="revanced_hide_shorts_hashtag_button_title">Hashtag düğmesini gizle</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Hashtag düğmesi gizli</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Hashtag düğmesi görünür</string>

View File

@ -682,6 +682,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">Приховати кнопку \"Автовідтворення\"</string>
<string name="revanced_hide_autoplay_button_summary_on">Кнопку \"Автовідтворення\" у відеоплеєрі приховано</string>
<string name="revanced_hide_autoplay_button_summary_off">Кнопка \"Автовідтворення\" у відеоплеєрі показується</string>
<string name="revanced_hide_player_control_buttons_background_title">Приховати фон кнопок керування плеєром</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Фон кнопок керування плеєром приховано</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Фон кнопок керування плеєром показується</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Приховати картки на кінцевому екрані</string>
@ -766,6 +769,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">Приховати \"Зелений екран\"</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Кнопку \"Зелений екран\" приховано</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Кнопка \"Зелений екран\" показується</string>
<string name="revanced_hide_shorts_new_posts_button_title">Приховати \"Нові дописи\"</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Кнопка \"Нові дописи\" показується</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Кнопку \"Нові дописи\" приховано</string>
<string name="revanced_hide_shorts_hashtag_button_title">Приховати кнопку хештегу</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Кнопку хештегу приховано</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Кнопка хештегу показується</string>
@ -1257,8 +1263,8 @@ Second \"item\" text"</string>
<string name="revanced_gradient_loading_screen_summary_on">Екран завантаження макета матиме градієнтне тло</string>
<string name="revanced_gradient_loading_screen_summary_off">Екран завантаження макета матиме суцільне тло</string>
<string name="splash_screen_animation_style_title">Стиль заставки</string>
<string name="splash_screen_animation_style_entry_1">Колір</string>
<string name="splash_screen_animation_style_entry_2">Чорно-білий</string>
<string name="splash_screen_animation_style_entry_1">Кольорова</string>
<string name="splash_screen_animation_style_entry_2">Чорно-біла</string>
<string name="revanced_seekbar_custom_color_title">Увімкнути користувацький колір</string>
<string name="revanced_seekbar_custom_color_summary_on">Показується користувацький колір смуги прогресу</string>
<string name="revanced_seekbar_custom_color_summary_off">Показується оригінальний колір смуги прогресу</string>

View File

@ -41,15 +41,15 @@ Second \"item\" text"</string>
<string name="revanced_settings_restart">Khởi động lại</string>
<string name="revanced_settings_import">Nhập</string>
<string name="revanced_settings_import_copy">Sao chép</string>
<string name="revanced_settings_import_reset">Cài đặt ReVanced đặt lại thành mặc định</string>
<string name="revanced_settings_import_reset">Đặt lại cài đặt ReVanced về mặc định</string>
<string name="revanced_settings_import_success">Đã nhập cài đặt %d</string>
<string name="revanced_settings_import_failure_parse">Nhập thất bại: %s</string>
<string name="revanced_settings_search_hint">Tìm kiếm</string>
<string name="revanced_settings_search_no_results_title">Không tìm thấy kết quả nào cho \'%s\'</string>
<string name="revanced_settings_search_no_results_summary">Thử một từ khóa khác</string>
<string name="revanced_settings_search_remove_message">Xóa khỏi lịch sử tìm kiếm?</string>
<string name="revanced_show_menu_icons_title">Hiện biểu tượng cài đặt ReVanced</string>
<string name="revanced_show_menu_icons_summary_on">Các biểu tượng cài đặt được hiện</string>
<string name="revanced_show_menu_icons_title">Hiển thị biểu tượng cài đặt ReVanced</string>
<string name="revanced_show_menu_icons_summary_on">Các biểu tượng cài đặt được hiển thị</string>
<string name="revanced_show_menu_icons_summary_off">Các biểu tượng cài đặt không được hiển thị</string>
<string name="revanced_language_title">Ngôn ngữ ReVanced</string>
<string name="revanced_language_user_dialog_message">"Bản dịch cho một số ngôn ngữ có thể bị thiếu hoặc không đầy đủ.
@ -76,11 +76,11 @@ Hãy làm theo hướng dẫn \"Don't kill my app\" dành cho điện thoại c
Việc cấp quyền chạy nền là bắt buộc để ứng dụng hoạt động."</string>
<string name="gms_core_dialog_open_website_text">Mở trang web</string>
<string name="gms_core_dialog_not_whitelisted_using_battery_optimizations_message">"Tối ưu hóa pin cho MicroG GmsCore phải được tắt để tránh sự cố.
<string name="gms_core_dialog_not_whitelisted_using_battery_optimizations_message">"Cần phải tắt tối ưu hóa pin cho MicroG GmsCore để tránh sự cố.
Tắt tối ưu hóa pin cho MicroG sẽ không ảnh hưởng tiêu cực đến việc sử dụng pin.
Tắt tối ưu hóa pin cho MicroG sẽ không ảnh hưởng đáng kể đến hiệu suất sử dụng pin.
Nhấn nút tiếp tục và cho phép thay đổi tối ưu hóa."</string>
Nhấn nút tiếp tục và cho phép thay đổi lựa chọn tối ưu hóa."</string>
<string name="gms_core_dialog_continue_text">Tiếp tục</string>
</patch>
</app>
@ -94,7 +94,7 @@ Nhấn nút tiếp tục và cho phép thay đổi tối ưu hóa."</string>
<string name="revanced_settings_screen_05_player_title">Trình phát</string>
<string name="revanced_settings_screen_07_seekbar_title">Thanh tiến trình</string>
<string name="revanced_settings_screen_08_swipe_controls_title">Cử chỉ vuốt</string>
<string name="revanced_settings_screen_11_misc_title">Cài đặt khác</string>
<string name="revanced_settings_screen_11_misc_title">Khác</string>
<string name="revanced_settings_screen_12_video_title">Video</string>
<string name="revanced_restore_old_settings_menus_title">Khôi phục trình đơn cài đặt cũ</string>
<string name="revanced_restore_old_settings_menus_summary_on">Các trình đơn cài đặt cũ được hiển thị</string>
@ -125,7 +125,7 @@ Tuy nhiên, việc bật tính năng này cũng sẽ ghi lại một số dữ l
<string name="revanced_debug_stacktrace_title">Ghi nhật ký truy vết ngăn xếp</string>
<string name="revanced_debug_stacktrace_summary_on">Nhật ký gỡ lỗi bao gồm truy vết ngăn xếp</string>
<string name="revanced_debug_stacktrace_summary_off">Nhật ký gỡ lỗi không bao gồm truy vết ngăn xếp</string>
<string name="revanced_debug_toast_on_error_title">Hiện thông báo nổi về lỗi ReVanced</string>
<string name="revanced_debug_toast_on_error_title">Hiển thị thông báo nổi về lỗi ReVanced</string>
<string name="revanced_debug_toast_on_error_summary_on">Thông báo nổi được hiển thị nếu xảy ra lỗi</string>
<string name="revanced_debug_toast_on_error_summary_off">Thông báo nổi không được hiển thị nếu xảy ra lỗi</string>
<string name="revanced_debug_toast_on_error_user_dialog_message">"Tắt thông báo lỗi sẽ ẩn tất cả thông báo lỗi của ReVanced.
@ -169,7 +169,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_join_membership_button_summary_off">Nút được hiển thị</string>
<!-- 'For you' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_for_you_shelf_title">Ẩn kệ \'Dành cho bạn\'</string>
<string name="revanced_hide_for_you_shelf_summary_on">Kệ trên trang kênh được ẩn</string>
<string name="revanced_hide_for_you_shelf_summary_on">Kệ trên trang kênh đã bị ẩn</string>
<string name="revanced_hide_for_you_shelf_summary_off">Kệ trên trang kênh được hiển thị</string>
<!-- 'Notify me' should be translated using the same localized wording YouTube displays.
This item appear in the subscription feed for future livestreams or unreleased videos. -->
@ -178,16 +178,16 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_notify_me_button_summary_off">Nút được hiển thị</string>
<!-- 'People also watched' and 'You might also like' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendation_labels_title">Ẩn nhãn video đề xuất</string>
<string name="revanced_hide_search_result_recommendation_labels_summary_on">Nhãn “Mọi người cũng xem” và “Bạn cũng có thể thích” được ẩn</string>
<string name="revanced_hide_search_result_recommendation_labels_summary_off">Nhãn “Mọi người cũng xem” và “Bạn cũng có thể thích” được hiện</string>
<string name="revanced_hide_search_result_recommendation_labels_summary_on">Nhãn “Mọi người cũng xem” và “Bạn cũng có thể thích” đã bị ẩn</string>
<string name="revanced_hide_search_result_recommendation_labels_summary_off">Nhãn “Mọi người cũng xem” và “Bạn cũng có thể thích” được hiển thị</string>
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
This button usually appears when searching for a YT creator. -->
<string name="revanced_hide_show_more_button_title">Ẩn nút \'Hiện thêm\'</string>
<string name="revanced_hide_show_more_button_summary_on">Nút đã bị ẩn</string>
<string name="revanced_hide_show_more_button_summary_off">Nút được hiển thị</string>
<string name="revanced_hide_ticket_shelf_title">Ẩn kệ vé</string>
<string name="revanced_hide_ticket_shelf_summary_on">Kệ vé được ẩn</string>
<string name="revanced_hide_ticket_shelf_summary_off">Kệ vé được hiện</string>
<string name="revanced_hide_ticket_shelf_summary_on">Kệ vé đã bị ẩn</string>
<string name="revanced_hide_ticket_shelf_summary_off">Kệ vé đang hiển thị</string>
<string name="revanced_hide_timed_reactions_title">Ẩn phản ứng theo thời gian</string>
<string name="revanced_hide_timed_reactions_summary_on">Phản ứng theo thời gian đã bị ẩn</string>
<string name="revanced_hide_timed_reactions_summary_off">Phản ứng theo thời gian được hiển thị</string>
@ -198,8 +198,8 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_chips_shelf_summary_on">Kệ danh mục được đề xuất đã bị ẩn</string>
<string name="revanced_hide_chips_shelf_summary_off">Kệ danh mục được đề xuất được hiển thị</string>
<string name="revanced_hide_expandable_chip_title">Ẩn thẻ có thể mở rộng bên dưới video</string>
<string name="revanced_hide_expandable_chip_summary_on">Thẻ có thể mở rộng được ẩn</string>
<string name="revanced_hide_expandable_chip_summary_off">Thẻ có thể mở rộng được hiện</string>
<string name="revanced_hide_expandable_chip_summary_on">Thẻ có thể mở rộng đã bị ẩn</string>
<string name="revanced_hide_expandable_chip_summary_off">Thẻ có thể mở rộng được hiển thị</string>
<string name="revanced_hide_community_posts_title">Ẩn bài đăng cộng đồng</string>
<string name="revanced_hide_community_posts_summary_on">Bài đăng cộng đồng đã bị ẩn</string>
<string name="revanced_hide_community_posts_summary_off">Bài đăng cộng đồng được hiển thị</string>
@ -217,7 +217,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_community_guidelines_summary_off">Nguyên tắc cộng đồng được hiển thị</string>
<string name="revanced_hide_subscribers_community_guidelines_title">Ẩn nguyên tắc cộng đồng cho người đăng ký</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_on">Nguyên tắc cộng đồng cho người đăng ký đã bị ẩn</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Nguyên tắc cộng đồng dành cho người đăng ký được hiện</string>
<string name="revanced_hide_subscribers_community_guidelines_summary_off">Nguyên tắc cộng đồng dành cho người đăng ký được hiển thị</string>
<string name="revanced_hide_channel_member_shelf_title">Ẩn kệ hội viên kênh</string>
<string name="revanced_hide_channel_member_shelf_summary_on">Kệ hội viên kênh đã bị ẩn</string>
<string name="revanced_hide_channel_member_shelf_summary_off">Kệ hội viên kênh được hiển thị</string>
@ -229,13 +229,13 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_info_panels_summary_off">Bảng thông tin được hiển thị</string>
<string name="revanced_hide_medical_panels_title">Ẩn bảng thông tin y tế</string>
<string name="revanced_hide_medical_panels_summary_on">Bảng thông tin y tế đã bị ẩn</string>
<string name="revanced_hide_medical_panels_summary_off">Bảng thông tin y tế được hiện</string>
<string name="revanced_hide_medical_panels_summary_off">Bảng thông tin y tế được hiển thị</string>
<string name="revanced_hide_channel_bar_title">Ẩn nút kênh</string>
<string name="revanced_hide_channel_bar_summary_on">Nút kênh đã bị ẩn</string>
<string name="revanced_hide_channel_bar_summary_off">Nút kênh được hiển thị</string>
<string name="revanced_hide_playables_title">Ẩn kệ Chơi trò chơi</string>
<string name="revanced_hide_playables_summary_on">Kệ Chơi trò chơi được ẩn</string>
<string name="revanced_hide_playables_summary_off">Kệ Chơi trò chơi được hiện</string>
<string name="revanced_hide_playables_title">Ẩn Chơi game trên Youtube</string>
<string name="revanced_hide_playables_summary_on">Chơi game đã bị ẩn</string>
<string name="revanced_hide_playables_summary_off">Chơi game được hiển thị</string>
<string name="revanced_hide_quick_actions_title">Ẩn các hành động nhanh khi ở toàn màn hình</string>
<string name="revanced_hide_quick_actions_summary_on">Hành động nhanh đã bị ẩn</string>
<string name="revanced_hide_quick_actions_summary_off">Hành động nhanh được hiển thị</string>
@ -255,20 +255,20 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_artist_cards_summary_on">Thẻ nghệ sĩ đã bị ẩn</string>
<string name="revanced_hide_artist_cards_summary_off">Thẻ nghệ sĩ được hiển thị</string>
<string name="revanced_hide_ai_generated_video_summary_section_title">Ẩn \'Bản tóm tắt video do AI tạo\'</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">Phần tóm tắt video được ẩn</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">Phần tóm tắt video đã bị ẩn</string>
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">Phần tóm tắt video được hiển thị</string>
<string name="revanced_hide_ask_section_title">Ẩn Hỏi</string>
<string name="revanced_hide_ask_section_summary_on">Phần Hỏi được ẩn</string>
<string name="revanced_hide_ask_section_summary_off">Phần Hỏi được hiện</string>
<string name="revanced_hide_ask_section_summary_on">Phần Hỏi đã bị ẩn</string>
<string name="revanced_hide_ask_section_summary_off">Phần Hỏi được hiển thị</string>
<string name="revanced_hide_attributes_section_title">Ẩn Thuộc tính</string>
<string name="revanced_hide_attributes_section_summary_on">Phần Địa điểm nổi bật, Trò chơi, Âm nhạc và Người được đề cập được ẩn</string>
<string name="revanced_hide_attributes_section_summary_on">Phần Địa điểm nổi bật, Trò chơi, Âm nhạc và Người được đề cập đã bị ẩn</string>
<string name="revanced_hide_attributes_section_summary_off">Phần Địa điểm nổi bật, Trò chơi, Âm nhạc và Người được đề cập được hiển thị</string>
<string name="revanced_hide_chapters_section_title">Ẩn Chương</string>
<string name="revanced_hide_chapters_section_summary_on">Phần chương đã bị ẩn</string>
<string name="revanced_hide_chapters_section_summary_off">Phần chương được hiển thị</string>
<string name="revanced_hide_how_this_was_made_section_title">Ẩn \'Cách nội dung này được tạo ra\'</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Phần cách nội dung được tạo ra được ẩn</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Phần cách nội dung được tạo ra được hiện</string>
<string name="revanced_hide_how_this_was_made_section_summary_on">Phần cách nội dung được tạo ra đã bị ẩn</string>
<string name="revanced_hide_how_this_was_made_section_summary_off">Phần cách nội dung được tạo ra được hiển thị</string>
<string name="revanced_hide_podcast_section_title">Ẩn \'Khám phá podcast\'</string>
<string name="revanced_hide_podcast_section_summary_on">Phần Khám phá podcast đã bị ẩn</string>
<string name="revanced_hide_podcast_section_summary_off">Phần Khám phá podcast được hiển thị</string>
@ -301,10 +301,10 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_comments_ai_chat_summary_summary_off">Tóm tắt cuộc trò chuyện được hiển thị</string>
<string name="revanced_hide_comments_ai_summary_title">Ẩn tóm tắt Bình luận AI</string>
<string name="revanced_hide_comments_ai_summary_summary_on">Tóm tắt bình luận đã bị ẩn</string>
<string name="revanced_hide_comments_ai_summary_summary_off">Tóm tắt bình luận được hiện</string>
<string name="revanced_hide_comments_ai_summary_summary_off">Tóm tắt bình luận được hiển thị</string>
<string name="revanced_hide_comments_by_members_header_title">Ẩn tiêu đề \'Bình luận của hội viên\'</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Tiêu đề Bình luận của hội viên được ẩn</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Tiêu đề Bình luận của hội viên được hiện</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Tiêu đề bình luận của hội viên đã bị ẩn</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Tiêu đề bình luận của hội viên được hiển thị</string>
<string name="revanced_hide_comments_section_title">Ẩn phần bình luận</string>
<string name="revanced_hide_comments_section_summary_on">Phần Bình luận đã bị ẩn</string>
<string name="revanced_hide_comments_section_summary_off">Phần Bình luận được hiển thị</string>
@ -312,7 +312,7 @@ Bạn sẽ không được thông báo về bất kỳ sự kiện bất ngờ n
<string name="revanced_hide_comments_create_a_short_button_summary_on">Nút Tạo video ngắn đã bị ẩn</string>
<string name="revanced_hide_comments_create_a_short_button_summary_off">Nút Tạo video ngắn được hiển thị</string>
<string name="revanced_hide_comments_timestamp_button_title">Ẩn nút dấu thời gian</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Nút dấu thời gian được ẩn</string>
<string name="revanced_hide_comments_timestamp_button_summary_on">Nút dấu thời gian đã bị ẩn</string>
<string name="revanced_hide_comments_timestamp_button_summary_off">Nút dấu thời gian được hiện</string>
<string name="revanced_hide_comments_preview_comment_title">Ẩn xem trước bình luận</string>
<string name="revanced_hide_comments_preview_comment_summary_on">Xem trước bình luận đã bị ẩn</string>
@ -443,9 +443,9 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn"</string>
<string name="revanced_external_downloader_screen_summary">Các thiết lập trình tải xuống bên ngoài</string>
<string name="revanced_external_downloader_title">Hiện nút tải xuống bên ngoài</string>
<string name="revanced_external_downloader_summary_on">Nút tải xuống trong trình phát đã được hiển thị</string>
<string name="revanced_external_downloader_summary_off">Nút tải xuống trong trình phát không được hiện</string>
<string name="revanced_external_downloader_summary_off">Nút tải xuống trong trình phát không được hiển thị</string>
<!-- 'download action button' should be translated using the same wording as the translation of 'revanced_hide_download_button_title' -->
<string name="revanced_external_downloader_action_button_title">Thay thế Nút hành động tải xuống</string>
<string name="revanced_external_downloader_action_button_title">Thay thế nút hành động Tải xuống</string>
<string name="revanced_external_downloader_action_button_summary_on">Nút tải xuống mở trình tải xuống bên ngoài</string>
<string name="revanced_external_downloader_action_button_summary_off">Nút tải xuống mở trình tải xuống nội bộ ứng dụng</string>
<string name="revanced_external_downloader_name_title">Tên gói trình tải xuống</string>
@ -568,23 +568,23 @@ Tính năng này chỉ khả dụng cho các thiết bị cũ hơn"</string>
<string name="revanced_navigation_buttons_screen_summary">Ẩn hoặc thay đổi các nút ở thanh điều hướng</string>
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
<string name="revanced_hide_home_button_title">Ẩn Trang chủ</string>
<string name="revanced_hide_home_button_summary_on">Nút trang chủ được ẩn</string>
<string name="revanced_hide_home_button_summary_off">Nút trang chủ được hiện</string>
<string name="revanced_hide_home_button_summary_on">Nút trang chủ đã bị ẩn</string>
<string name="revanced_hide_home_button_summary_off">Nút trang chủ được hiển thị</string>
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_hide_shorts_button_title">Ẩn Shorts</string>
<string name="revanced_hide_shorts_button_summary_on">Nút Shorts đã bị ẩn</string>
<string name="revanced_hide_shorts_button_summary_off">Nút Shorts được hiện</string>
<string name="revanced_hide_shorts_button_summary_off">Nút Shorts được hiển thị</string>
<!-- The Create button has no display name. Translate normally. -->
<string name="revanced_hide_create_button_title">Ẩn nút Tạo</string>
<string name="revanced_hide_create_button_summary_on">Nút tạo đã bị ẩn</string>
<string name="revanced_hide_create_button_summary_off">Nút tạo được hiển thị</string>
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_hide_subscriptions_button_title">Ẩn Kênh đăng ký</string>
<string name="revanced_hide_subscriptions_button_summary_on">Nút kênh đăng ký được ẩn</string>
<string name="revanced_hide_subscriptions_button_summary_off">Nút kênh đăng ký được hiện</string>
<string name="revanced_hide_subscriptions_button_summary_on">Nút kênh đăng ký đã bị ẩn</string>
<string name="revanced_hide_subscriptions_button_summary_off">Nút kênh đăng ký được hiển thị</string>
<string name="revanced_hide_notifications_button_title">Ẩn Thông báo</string>
<string name="revanced_hide_notifications_button_summary_on">Nút thông báo được ẩn</string>
<string name="revanced_hide_notifications_button_summary_off">Nút thông báo được hiện</string>
<string name="revanced_hide_notifications_button_summary_on">Nút Thông báo đã bị ẩn</string>
<string name="revanced_hide_notifications_button_summary_off">Nút Thông báo được hiển thị</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Chuyển vị nút Tạo với nút Thông báo</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">"Nút tạo được chuyển đổi với nút Thông báo
@ -595,7 +595,7 @@ Lưu ý: Bật tính năng này cũng sẽ tự động ẩn quảng cáo video"
Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử chuyển sang chế độ Ẩn danh."</string>
<string name="revanced_hide_navigation_button_labels_title">Ẩn các nhãn nút điều hướng</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Các nhãn được ẩn</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Các nhãn đã bị ẩn</string>
<string name="revanced_hide_navigation_button_labels_summary_off">Các nhãn được hiển thị</string>
<string name="revanced_disable_translucent_status_bar_title">Vô hiệu hóa thanh trạng thái trong suốt</string>
<string name="revanced_disable_translucent_status_bar_summary_on">Thanh trạng thái là đục</string>
@ -656,16 +656,16 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_player_flyout_audio_track_summary_on">Nút bản âm thanh đã bị ẩn</string>
<string name="revanced_hide_player_flyout_audio_track_summary_off">Nút bản âm thanh được hiển thị</string>
<!-- 'Spoof video streams' should be the same translation used for revanced_spoof_video_streams_screen_title -->
<string name="revanced_hide_player_flyout_audio_track_not_available">"Menu theo dõi âm thanh được ẩn
<string name="revanced_hide_player_flyout_audio_track_not_available">"Trình đơn bản âm thanh đã bị ẩn
Để hiện trình đơn Theo dõi âm thanh, hãy thay đổi 'Giả mạo luồng video' thành iOS TV"</string>
Để hiển thị trình đơn Bản âm thanh, hãy thay đổi 'Giả mạo luồng phát video' thành iOS TV"</string>
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
<string name="revanced_hide_player_flyout_watch_in_vr_title">Ẩn Xem trong thực tế ảo</string>
<string name="revanced_hide_player_flyout_watch_in_vr_summary_on">Trình đơn xem trong thực tế ảo đã bị ẩn</string>
<string name="revanced_hide_player_flyout_watch_in_vr_summary_off">Trình đơn xem trong thực tế ảo được hiển thị</string>
<string name="revanced_hide_player_flyout_video_quality_footer_title">Ẩn trình đơn chất lượng chân video</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_on">Trình đơn chất lượng chân video được ẩn</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Trình đơn chất lượng chân video được hiện</string>
<string name="revanced_hide_player_flyout_video_quality_footer_title">Ẩn phần chân trình đơn chất lượng video</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_on">Phần chân trình đơn chất lượng video đã bị ẩn</string>
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">Phần chân trình đơn chất lượng video đã bị ẩn được hiển thị</string>
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_player_previous_next_buttons_title">Ẩn các nút Trước &amp; Tiếp theo</string>
@ -673,7 +673,7 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_player_previous_next_buttons_summary_off">Các nút được hiển thị</string>
<string name="revanced_hide_cast_button_title">Ẩn nút truyền</string>
<string name="revanced_hide_cast_button_summary_on">Nút Truyền đã bị ẩn</string>
<string name="revanced_hide_cast_button_summary_off">Nút Truyền được hiện</string>
<string name="revanced_hide_cast_button_summary_off">Nút Truyền được hiển thị</string>
<!-- This button does not display any text, but 'captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title' -->
<string name="revanced_hide_captions_button_title">Ẩn nút Chú thích</string>
<string name="revanced_hide_captions_button_summary_on">Nút phụ đề đã bị ẩn</string>
@ -681,6 +681,9 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_autoplay_button_title">Ẩn nút Tự động phát</string>
<string name="revanced_hide_autoplay_button_summary_on">Nút tự động phát đã bị ẩn</string>
<string name="revanced_hide_autoplay_button_summary_off">Nút tự động phát được hiển thị</string>
<string name="revanced_hide_player_control_buttons_background_title">Ẩn nền của các nút điều khiển trình phát</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">Nền của các nút điều khiển trình phát đã ẩn</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">Nền của các nút điều khiển trình phát đã hiển thị</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">Ẩn thẻ kết thúc màn hình</string>
@ -744,14 +747,14 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_shorts_super_thanks_button_title">Ẩn nút Mua Super Thanks</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_on">Nút Super Thanks đã bị ẩn</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_off">Nút Super Thanks được hiển thị</string>
<string name="revanced_hide_shorts_tagged_products_title">Ẩn sản phẩm được gắn thê</string>
<string name="revanced_hide_shorts_tagged_products_title">Ẩn sản phẩm được gắn th</string>
<string name="revanced_hide_shorts_tagged_products_summary_on">Sản phẩm được gắn thẻ đã bị ẩn</string>
<string name="revanced_hide_shorts_tagged_products_summary_off">Sản phẩm được gắn thẻ được hiển thị</string>
<string name="revanced_hide_shorts_location_label_title">Ẩn nhãn vị trí</string>
<string name="revanced_hide_shorts_location_label_summary_on">Nhãn vị trí đã bị ẩn</string>
<string name="revanced_hide_shorts_location_label_summary_off">Nhãn vị trí được hiển thị</string>
<string name="revanced_hide_shorts_preview_comment_title">Ẩn xem trước bình luận</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Xem trước bình luận được ẩn</string>
<string name="revanced_hide_shorts_preview_comment_summary_on">Xem trước bình luận đã bị ẩn</string>
<string name="revanced_hide_shorts_preview_comment_summary_off">Xem trước bình luận được hiện</string>
<string name="revanced_hide_shorts_save_sound_button_title">Ẩn nút Lưu âm thanh</string>
<string name="revanced_hide_shorts_save_sound_button_summary_on">Nút lưu nhạc đã bị ẩn</string>
@ -765,6 +768,9 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_shorts_green_screen_button_title">Ẩn nút Phông xanh</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">Nút phông xanh đã bị ẩn</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">Nút phông xanh được hiển thị</string>
<string name="revanced_hide_shorts_new_posts_button_title">Ẩn nút Bài đăng mới</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">Nút Bài đăng mới đang hiển thị</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">Nút Bài đăng mới đã bị ẩn</string>
<string name="revanced_hide_shorts_hashtag_button_title">Ẩn nút hashtag</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">Nút hashtag đã bị ẩn</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">Nút hashtag được hiển thị</string>
@ -776,7 +782,7 @@ Nếu việc thay đổi cài đặt này không có hiệu lực, hãy thử ch
<string name="revanced_hide_shorts_stickers_summary_off">Nhãn dán được hiển thị</string>
<string name="revanced_hide_shorts_like_fountain_title">Ẩn hiệu ứng đài phun nút Thích</string>
<string name="revanced_hide_shorts_like_fountain_summary_on">Hiệu ứng đài phun nút thích được ẩn</string>
<string name="revanced_hide_shorts_like_fountain_summary_off">Hiệu ứng đài phun nút thích được hiện</string>
<string name="revanced_hide_shorts_like_fountain_summary_off">Hiệu ứng đài phun nút thích được hiển thị</string>
<string name="revanced_hide_shorts_like_button_title">Ẩn nút Thích</string>
<string name="revanced_hide_shorts_like_button_summary_on">Nút thích đã bị ẩn</string>
<string name="revanced_hide_shorts_like_button_summary_off">Nút thích được hiển thị</string>

View File

@ -681,6 +681,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_autoplay_button_title">隐藏「自动播放」按钮</string>
<string name="revanced_hide_autoplay_button_summary_on">自动播放按钮已隐藏</string>
<string name="revanced_hide_autoplay_button_summary_off">自动播放按钮已显示</string>
<string name="revanced_hide_player_control_buttons_background_title">隐藏播放器控件按钮背景</string>
<string name="revanced_hide_player_control_buttons_background_summary_on">播放器控件按钮背景已隐藏</string>
<string name="revanced_hide_player_control_buttons_background_summary_off">播放器控件按钮背景已显示</string>
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
<string name="revanced_hide_endscreen_cards_title">隐藏片尾卡</string>
@ -765,6 +768,9 @@ Second \"item\" text"</string>
<string name="revanced_hide_shorts_green_screen_button_title">隐藏「绿幕」按钮</string>
<string name="revanced_hide_shorts_green_screen_button_summary_on">绿屏按钮已隐藏</string>
<string name="revanced_hide_shorts_green_screen_button_summary_off">绿屏按钮已显示</string>
<string name="revanced_hide_shorts_new_posts_button_title">隐藏“新帖”按钮</string>
<string name="revanced_hide_shorts_new_posts_button_summary_off">显示“新帖”按钮</string>
<string name="revanced_hide_shorts_new_posts_button_summary_on">隐藏“新帖”按钮</string>
<string name="revanced_hide_shorts_hashtag_button_title">隐藏话题标签按钮</string>
<string name="revanced_hide_shorts_hashtag_button_summary_on">话题标签按钮已隐藏</string>
<string name="revanced_hide_shorts_hashtag_button_summary_off">话题标签按钮已显示</string>

View File

@ -12,6 +12,16 @@ pluginManagement {
password = providers.gradleProperty("gpr.key").getOrElse(System.getenv("GITHUB_TOKEN"))
}
}
maven {
name = "GiteaPackages"
url = uri("https://git.naijun.dev/api/packages/ReVanced/maven")
credentials(HttpHeaderCredentials::class) {
name = "Authorization"
value = "token ${providers.gradleProperty("gitea.accessToken")}"
}
authentication { create<HttpHeaderAuthentication>("header") }
}
}
}