mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-19 00:53:57 +00:00
Compare commits
7 Commits
v2.167.0-d
...
v2.167.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4b2e54b1e | ||
|
|
fb5380a03e | ||
|
|
8e59165ad1 | ||
|
|
b0ee6ebb99 | ||
|
|
8950648370 | ||
|
|
e3eafd9fbb | ||
|
|
45b28613d3 |
33
CHANGELOG.md
33
CHANGELOG.md
@@ -1,3 +1,36 @@
|
|||||||
|
## [2.167.1](https://github.com/revanced/revanced-patches/compare/v2.167.0...v2.167.1) (2023-04-13)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **youtube/spoof-signature-verification:** fixed subtitles in wrong location ([#1833](https://github.com/revanced/revanced-patches/issues/1833)) ([0dbfa62](https://github.com/revanced/revanced-patches/commit/0dbfa6247e6e7ff51e8fee86fd798f693ab05bcf))
|
||||||
|
* **youtube/spoof-signature-verification:** spoof videos in playlists ([0a858ec](https://github.com/revanced/revanced-patches/commit/0a858ecef3f152dfd97e7f2d27501201968de4e4))
|
||||||
|
|
||||||
|
# [2.167.0](https://github.com/revanced/revanced-patches/compare/v2.166.0...v2.167.0) (2023-03-29)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **youtube/remember-playback-speed:** allow to not remember playback speed ([#1762](https://github.com/revanced/revanced-patches/issues/1762)) ([49ec3e8](https://github.com/revanced/revanced-patches/commit/49ec3e83f18ec4eb180d220c5a7015f8e4feb3a7))
|
||||||
|
* **youtube/sponsorblock:** fix segments not skipping during background play ([#1765](https://github.com/revanced/revanced-patches/issues/1765)) ([7620ea1](https://github.com/revanced/revanced-patches/commit/7620ea1752406d703deb15aa0267d4572b1b171a))
|
||||||
|
* **youtube/spoof-signature-verification:** fix audio during home feed video playback ([#1754](https://github.com/revanced/revanced-patches/issues/1754)) ([7dd067b](https://github.com/revanced/revanced-patches/commit/7dd067b0e96679fe653c9796bef31d743287b2d0))
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* `export-all-activities` patch ([#1751](https://github.com/revanced/revanced-patches/issues/1751)) ([aad6e05](https://github.com/revanced/revanced-patches/commit/aad6e055380f91462d94fc96c4ec17a27e283c64))
|
||||||
|
* **reddit:** bump compatibility to `2023.10.0` ([#1772](https://github.com/revanced/revanced-patches/issues/1772)) ([f95ab6e](https://github.com/revanced/revanced-patches/commit/f95ab6e13e70667fdffe479b7292112244e6bb9e))
|
||||||
|
* **twitter:** remove `monochrome-icon` patch ([#1786](https://github.com/revanced/revanced-patches/issues/1786)) ([b8bf804](https://github.com/revanced/revanced-patches/commit/b8bf804835e75c9f2c8453c8ce22cfd8d17318ce))
|
||||||
|
* **youtube/microg-support:** do not depend on `spoof-signature-verification` patch ([af4e765](https://github.com/revanced/revanced-patches/commit/af4e765ca87c6c979e95bc274b32c764a0a32a88))
|
||||||
|
* **youtube/spoof-signature-verification:** automatic signature spoofing ([f1395f4](https://github.com/revanced/revanced-patches/commit/f1395f49fae1c0a00de074d58fa7d81f562d3009))
|
||||||
|
|
||||||
|
# [2.167.0-dev.6](https://github.com/revanced/revanced-patches/compare/v2.167.0-dev.5...v2.167.0-dev.6) (2023-03-22)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **twitter:** remove `monochrome-icon` patch ([#1786](https://github.com/revanced/revanced-patches/issues/1786)) ([b8bf804](https://github.com/revanced/revanced-patches/commit/b8bf804835e75c9f2c8453c8ce22cfd8d17318ce))
|
||||||
|
|
||||||
# [2.167.0-dev.5](https://github.com/revanced/revanced-patches/compare/v2.167.0-dev.4...v2.167.0-dev.5) (2023-03-20)
|
# [2.167.0-dev.5](https://github.com/revanced/revanced-patches/compare/v2.167.0-dev.4...v2.167.0-dev.5) (2023-03-20)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
35
README.md
35
README.md
@@ -136,7 +136,6 @@ The official Patch bundle provided by ReVanced and the community.
|
|||||||
| `hide-ads` | Hides ads. | all |
|
| `hide-ads` | Hides ads. | all |
|
||||||
| `hide-recommended-users` | Hides recommended users. | all |
|
| `hide-recommended-users` | Hides recommended users. | all |
|
||||||
| `hide-views-stats` | Hides the view stats under tweets. | 9.71.0-release.0 |
|
| `hide-views-stats` | Hides the view stats under tweets. | 9.71.0-release.0 |
|
||||||
| `monochrome-icon` | Adds a monochrome icon. | all |
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### [📦 `com.spotify.music`](https://play.google.com/store/apps/details?id=com.spotify.music)
|
### [📦 `com.spotify.music`](https://play.google.com/store/apps/details?id=com.spotify.music)
|
||||||
@@ -290,15 +289,7 @@ The official Patch bundle provided by ReVanced and the community.
|
|||||||
| `unlock-prime` | Unlocks Nova Prime and all functions of the app. | all |
|
| `unlock-prime` | Unlocks Nova Prime and all functions of the app. | all |
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### [📦 `org.totschnig.myexpenses`](https://play.google.com/store/apps/details?id=org.totschnig.myexpenses)
|
### [📦 `ginlemon.iconpackstudio`](https://play.google.com/store/apps/details?id=ginlemon.iconpackstudio)
|
||||||
<details>
|
|
||||||
|
|
||||||
| 💊 Patch | 📜 Description | 🏹 Target Version |
|
|
||||||
|:--------:|:--------------:|:-----------------:|
|
|
||||||
| `unlock-pro` | Unlocks all professional features. | 3.4.9 |
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### [📦 `com.awedea.nyx`](https://play.google.com/store/apps/details?id=com.awedea.nyx)
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
| 💊 Patch | 📜 Description | 🏹 Target Version |
|
| 💊 Patch | 📜 Description | 🏹 Target Version |
|
||||||
@@ -314,14 +305,6 @@ The official Patch bundle provided by ReVanced and the community.
|
|||||||
| `unlock-pro` | Unlocks all pro features. | all |
|
| `unlock-pro` | Unlocks all pro features. | all |
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### [📦 `ginlemon.iconpackstudio`](https://play.google.com/store/apps/details?id=ginlemon.iconpackstudio)
|
|
||||||
<details>
|
|
||||||
|
|
||||||
| 💊 Patch | 📜 Description | 🏹 Target Version |
|
|
||||||
|:--------:|:--------------:|:-----------------:|
|
|
||||||
| `unlock-pro` | Unlocks all pro features. | all |
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### [📦 `com.ithebk.expensemanager`](https://play.google.com/store/apps/details?id=com.ithebk.expensemanager)
|
### [📦 `com.ithebk.expensemanager`](https://play.google.com/store/apps/details?id=com.ithebk.expensemanager)
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
@@ -330,6 +313,22 @@ The official Patch bundle provided by ReVanced and the community.
|
|||||||
| `unlock-pro` | Unlocks pro features. | all |
|
| `unlock-pro` | Unlocks pro features. | all |
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
### [📦 `org.totschnig.myexpenses`](https://play.google.com/store/apps/details?id=org.totschnig.myexpenses)
|
||||||
|
<details>
|
||||||
|
|
||||||
|
| 💊 Patch | 📜 Description | 🏹 Target Version |
|
||||||
|
|:--------:|:--------------:|:-----------------:|
|
||||||
|
| `unlock-pro` | Unlocks all professional features. | 3.4.9 |
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### [📦 `com.awedea.nyx`](https://play.google.com/store/apps/details?id=com.awedea.nyx)
|
||||||
|
<details>
|
||||||
|
|
||||||
|
| 💊 Patch | 📜 Description | 🏹 Target Version |
|
||||||
|
|:--------:|:--------------:|:-----------------:|
|
||||||
|
| `unlock-pro` | Unlocks all pro features. | all |
|
||||||
|
</details>
|
||||||
|
|
||||||
### [📦 `com.ticktick.task`](https://play.google.com/store/apps/details?id=com.ticktick.task)
|
### [📦 `com.ticktick.task`](https://play.google.com/store/apps/details?id=com.ticktick.task)
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
kotlin.code.style = official
|
kotlin.code.style = official
|
||||||
version = 2.167.0-dev.5
|
version = 2.167.1
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,8 +0,0 @@
|
|||||||
package app.revanced.patches.twitter.misc.monochrome.annotations
|
|
||||||
|
|
||||||
import app.revanced.patcher.annotation.Compatibility
|
|
||||||
import app.revanced.patcher.annotation.Package
|
|
||||||
|
|
||||||
@Compatibility([Package("com.twitter.android")])
|
|
||||||
@Target(AnnotationTarget.CLASS)
|
|
||||||
internal annotation class MonochromeIconCompatibility
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
package app.revanced.patches.twitter.misc.monochrome.patch
|
|
||||||
|
|
||||||
import app.revanced.patcher.annotation.Description
|
|
||||||
import app.revanced.patcher.annotation.Name
|
|
||||||
import app.revanced.patcher.annotation.Version
|
|
||||||
import app.revanced.patcher.data.ResourceContext
|
|
||||||
import app.revanced.patcher.patch.PatchResult
|
|
||||||
import app.revanced.patcher.patch.PatchResultError
|
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
|
||||||
import app.revanced.patcher.patch.ResourcePatch
|
|
||||||
import app.revanced.patcher.patch.annotations.Patch
|
|
||||||
import app.revanced.patches.twitter.misc.monochrome.annotations.MonochromeIconCompatibility
|
|
||||||
import java.io.FileWriter
|
|
||||||
import java.nio.file.Files
|
|
||||||
|
|
||||||
@Patch
|
|
||||||
@Name("monochrome-icon")
|
|
||||||
@Description("Adds a monochrome icon.")
|
|
||||||
@MonochromeIconCompatibility
|
|
||||||
@Version("0.0.1")
|
|
||||||
class MonochromeIconPatch : ResourcePatch {
|
|
||||||
override fun execute(context: ResourceContext): PatchResult {
|
|
||||||
val resDirectory = context["res"]
|
|
||||||
if (!resDirectory.isDirectory) return PatchResultError("The res folder can not be found.")
|
|
||||||
|
|
||||||
val mipmapV33Directory = resDirectory.resolve("mipmap-anydpi-v33")
|
|
||||||
if (!mipmapV33Directory.isDirectory) Files.createDirectories(mipmapV33Directory.toPath())
|
|
||||||
|
|
||||||
FileWriter(mipmapV33Directory.resolve("ic_launcher_twitter.xml")).use {
|
|
||||||
it.write(
|
|
||||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
|
|
||||||
"<adaptive-icon\n" +
|
|
||||||
" xmlns:android=\"http://schemas.android.com/apk/res/android\">\n" +
|
|
||||||
" <background android:drawable=\"@color/ic_launcher_background\" />\n" +
|
|
||||||
" <foreground android:drawable=\"@mipmap/ic_launcher_twitter_foreground\" />\n" +
|
|
||||||
" <monochrome android:drawable=\"@mipmap/ic_launcher_twitter_foreground\" />\n" +
|
|
||||||
"</adaptive-icon>"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
FileWriter(mipmapV33Directory.resolve("ic_launcher_twitter_round.xml")).use {
|
|
||||||
it.write(
|
|
||||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
|
|
||||||
"<adaptive-icon\n" +
|
|
||||||
" xmlns:android=\"http://schemas.android.com/apk/res/android\">\n" +
|
|
||||||
" <background android:drawable=\"@color/ic_launcher_background\" />\n" +
|
|
||||||
" <foreground android:drawable=\"@mipmap/ic_launcher_twitter_foreground\" />\n" +
|
|
||||||
" <monochrome android:drawable=\"@mipmap/ic_launcher_twitter_foreground\" />\n" +
|
|
||||||
"</adaptive-icon>"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
return PatchResultSuccess()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package app.revanced.patches.youtube.misc.fix.playback.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
|
||||||
|
object SubtitleWindowSettingsConstructorFingerprint : MethodFingerprint(
|
||||||
|
parameters = listOf("I", "I", "I", "Z", "Z"),
|
||||||
|
customFingerprint = { methodDef ->
|
||||||
|
methodDef.definingClass == "Lcom/google/android/libraries/youtube/player/subtitles/model/SubtitleWindowSettings;"
|
||||||
|
&& methodDef.name == "<init>"
|
||||||
|
}
|
||||||
|
)
|
||||||
@@ -19,7 +19,9 @@ import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
|
|||||||
import app.revanced.patches.youtube.misc.fix.playback.annotation.ProtobufSpoofCompatibility
|
import app.revanced.patches.youtube.misc.fix.playback.annotation.ProtobufSpoofCompatibility
|
||||||
import app.revanced.patches.youtube.misc.fix.playback.fingerprints.OpenCronetDataSourceFingerprint
|
import app.revanced.patches.youtube.misc.fix.playback.fingerprints.OpenCronetDataSourceFingerprint
|
||||||
import app.revanced.patches.youtube.misc.fix.playback.fingerprints.ProtobufParameterBuilderFingerprint
|
import app.revanced.patches.youtube.misc.fix.playback.fingerprints.ProtobufParameterBuilderFingerprint
|
||||||
|
import app.revanced.patches.youtube.misc.fix.playback.fingerprints.SubtitleWindowSettingsConstructorFingerprint
|
||||||
import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch
|
import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch
|
||||||
|
import app.revanced.patches.youtube.misc.playertype.patch.PlayerTypeHookPatch
|
||||||
import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch
|
import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch
|
||||||
import org.jf.dexlib2.iface.instruction.OneRegisterInstruction
|
import org.jf.dexlib2.iface.instruction.OneRegisterInstruction
|
||||||
|
|
||||||
@@ -27,12 +29,13 @@ import org.jf.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
@Name("spoof-signature-verification")
|
@Name("spoof-signature-verification")
|
||||||
@Description("Spoofs the client to prevent playback issues.")
|
@Description("Spoofs the client to prevent playback issues.")
|
||||||
@ProtobufSpoofCompatibility
|
@ProtobufSpoofCompatibility
|
||||||
@DependsOn([IntegrationsPatch::class, SettingsPatch::class])
|
@DependsOn([IntegrationsPatch::class, SettingsPatch::class, PlayerTypeHookPatch::class])
|
||||||
@Version("0.0.1")
|
@Version("0.0.1")
|
||||||
class SpoofSignatureVerificationPatch : BytecodePatch(
|
class SpoofSignatureVerificationPatch : BytecodePatch(
|
||||||
listOf(
|
listOf(
|
||||||
ProtobufParameterBuilderFingerprint,
|
ProtobufParameterBuilderFingerprint,
|
||||||
OpenCronetDataSourceFingerprint,
|
OpenCronetDataSourceFingerprint,
|
||||||
|
SubtitleWindowSettingsConstructorFingerprint,
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
override fun execute(context: BytecodeContext): PatchResult {
|
override fun execute(context: BytecodeContext): PatchResult {
|
||||||
@@ -82,6 +85,25 @@ class SpoofSignatureVerificationPatch : BytecodePatch(
|
|||||||
|
|
||||||
} ?: return OpenCronetDataSourceFingerprint.toErrorResult()
|
} ?: return OpenCronetDataSourceFingerprint.toErrorResult()
|
||||||
|
|
||||||
|
// hook override subtitles
|
||||||
|
SubtitleWindowSettingsConstructorFingerprint.result?.let {
|
||||||
|
it.mutableMethod.apply {
|
||||||
|
addInstructions(
|
||||||
|
0,
|
||||||
|
"""
|
||||||
|
invoke-static {p1, p2, p3, p4, p5}, $INTEGRATIONS_CLASS_DESCRIPTOR->getSubtitleWindowSettingsOverride(IIIZZ)[I
|
||||||
|
move-result-object v0
|
||||||
|
const/4 v1, 0x0
|
||||||
|
aget p1, v0, v1 # ap, anchor configuration
|
||||||
|
const/4 v1, 0x1
|
||||||
|
aget p2, v0, v1 # ah, horizontal anchor
|
||||||
|
const/4 v1, 0x2
|
||||||
|
aget p3, v0, v1 # av, vertical anchor
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} ?: return SubtitleWindowSettingsConstructorFingerprint.toErrorResult()
|
||||||
|
|
||||||
return PatchResultSuccess()
|
return PatchResultSuccess()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user