Compare commits
62 Commits
92311b8e56
...
36813e6828
Author | SHA1 | Date | |
---|---|---|---|
36813e6828 | |||
b9245427ed | |||
dab672f7c5 | |||
cd995636f9 | |||
bdc6fad974 | |||
203ccbf121 | |||
3be24c02c1 | |||
370f7e02a4 | |||
9175b23e83 | |||
4d2decd99c | |||
8891e2594d | |||
c089a7d1a9 | |||
5791b0e641 | |||
9cd436a948 | |||
38987cfb46 | |||
21b69efddf | |||
39ef7f16bc | |||
d4e127ccf2 | |||
11bf82640d | |||
1e91a5cb52 | |||
8dbd5765e7 | |||
555099bef8 | |||
263fb212ad | |||
a2440cbadf | |||
ad46da8039 | |||
c2c0b8e94a | |||
bb05341cdb | |||
46a97d9e14 | |||
0fac05f134 | |||
d62649da49 | |||
76dcd4c479 | |||
3f868cd995 | |||
dd45ddde80 | |||
9dd4a5e1bc | |||
57f3a92189 | |||
9b9679a3aa | |||
60a02aa90a | |||
50b735da19 | |||
2ee3f69c4f | |||
ae527462e3 | |||
610ebf3711 | |||
b2f27a66c3 | |||
92b54e85a8 | |||
e5c7a88550 | |||
b1c9b5e47c | |||
afdf66dab4 | |||
b9838f80fd | |||
8ade9e8802 | |||
cb23e62f48 | |||
5b55077ccc | |||
f1a87a28f2 | |||
49521fb702 | |||
647756008e | |||
82e530a510 | |||
e9545a11c4 | |||
ea208b37cb | |||
b0d693e431 | |||
ccfc313ff7 | |||
b80ec7758f | |||
88abc37b49 | |||
0693212ba5 | |||
5f6d03b705 |
36
CHANGELOG.md
36
CHANGELOG.md
@ -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)
|
||||
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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") }
|
||||
}
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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
|
||||
)
|
||||
}
|
@ -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,
|
||||
)
|
||||
}
|
@ -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" }
|
||||
}
|
@ -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" }
|
||||
}
|
@ -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,
|
||||
)
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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" }
|
||||
}
|
@ -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",
|
||||
)
|
||||
}
|
@ -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")
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
@ -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+")
|
||||
}
|
@ -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"
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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,
|
||||
)
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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
|
||||
)
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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")
|
||||
}
|
@ -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,
|
||||
)
|
||||
}
|
@ -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(...)")
|
||||
}
|
@ -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()
|
||||
)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
@ -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" }
|
||||
}
|
@ -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,
|
||||
)
|
||||
}
|
@ -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)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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" }
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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,
|
||||
)
|
||||
}
|
@ -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")
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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;")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
"""
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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 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_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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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 & 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>
|
||||
|
@ -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>
|
||||
|
@ -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") }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user