mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-04-30 22:54:36 +02:00
feat(YouTube): add Spoof device dimensions
patch
This commit is contained in:
parent
ea754fe996
commit
4e19cab824
@ -0,0 +1,79 @@
|
|||||||
|
package app.revanced.patches.youtube.misc.spoofdimensions
|
||||||
|
|
||||||
|
import app.revanced.extensions.exception
|
||||||
|
import app.revanced.patcher.data.BytecodeContext
|
||||||
|
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||||
|
import app.revanced.patcher.patch.BytecodePatch
|
||||||
|
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||||
|
import app.revanced.patcher.patch.annotation.Patch
|
||||||
|
import app.revanced.patches.youtube.misc.spoofdimensions.fingerprints.DeviceDimensionsModelToStringFingerprint
|
||||||
|
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
||||||
|
import app.revanced.util.integrations.Constants.MISC_PATH
|
||||||
|
import com.android.tools.smali.dexlib2.util.MethodUtil
|
||||||
|
|
||||||
|
@Patch(
|
||||||
|
name = "Spoof device dimensions",
|
||||||
|
description = "Spoofs the device dimensions in order to unlock higher video qualities " +
|
||||||
|
"that may not be available on your device.",
|
||||||
|
dependencies = [SettingsPatch::class],
|
||||||
|
compatiblePackages = [
|
||||||
|
CompatiblePackage(
|
||||||
|
"com.google.android.youtube",
|
||||||
|
[
|
||||||
|
"18.24.37",
|
||||||
|
"18.25.40",
|
||||||
|
"18.27.36",
|
||||||
|
"18.29.38",
|
||||||
|
"18.30.37",
|
||||||
|
"18.31.40",
|
||||||
|
"18.32.39",
|
||||||
|
"18.33.40",
|
||||||
|
"18.34.38",
|
||||||
|
"18.35.36",
|
||||||
|
"18.36.39",
|
||||||
|
"18.37.36",
|
||||||
|
"18.38.44",
|
||||||
|
"18.39.41",
|
||||||
|
"18.40.34"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
object SpoofDeviceDimensionsPatch : BytecodePatch(
|
||||||
|
setOf(DeviceDimensionsModelToStringFingerprint)
|
||||||
|
) {
|
||||||
|
private const val INTEGRATIONS_CLASS_DESCRIPTOR =
|
||||||
|
"$MISC_PATH/SpoofDeviceDimensionsPatch;"
|
||||||
|
|
||||||
|
override fun execute(context: BytecodeContext) {
|
||||||
|
DeviceDimensionsModelToStringFingerprint.result?.let { result ->
|
||||||
|
result.mutableClass.methods.first { method -> MethodUtil.isConstructor(method) }
|
||||||
|
.addInstructions(
|
||||||
|
1, // Add after super call.
|
||||||
|
mapOf(
|
||||||
|
1 to "MinHeightOrWidth", // p1 = min height
|
||||||
|
2 to "MaxHeightOrWidth", // p2 = max height
|
||||||
|
3 to "MinHeightOrWidth", // p3 = min width
|
||||||
|
4 to "MaxHeightOrWidth" // p4 = max width
|
||||||
|
).map { (parameter, method) ->
|
||||||
|
"""
|
||||||
|
invoke-static { p$parameter }, $INTEGRATIONS_CLASS_DESCRIPTOR->get$method(I)I
|
||||||
|
move-result p$parameter
|
||||||
|
"""
|
||||||
|
}.joinToString("\n") { it }
|
||||||
|
)
|
||||||
|
} ?: throw DeviceDimensionsModelToStringFingerprint.exception
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add settings
|
||||||
|
*/
|
||||||
|
SettingsPatch.addPreference(
|
||||||
|
arrayOf(
|
||||||
|
"SETTINGS: EXPERIMENTAL_FLAGS",
|
||||||
|
"SETTINGS: SPOOF_DEVICE_DIMENSIONS"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
SettingsPatch.updatePatchStatus("Spoof device dimensions")
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package app.revanced.patches.youtube.misc.spoofdimensions.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
|
||||||
|
object DeviceDimensionsModelToStringFingerprint : MethodFingerprint(
|
||||||
|
returnType = "L",
|
||||||
|
strings = listOf("minh.", ";maxh.")
|
||||||
|
)
|
@ -669,6 +669,8 @@ If later turned off, the old UI may remain until clear the app data"</string>
|
|||||||
<string name="revanced_spoof_app_version_target_summary">Type the spoof app version target</string>
|
<string name="revanced_spoof_app_version_target_summary">Type the spoof app version target</string>
|
||||||
<string name="revanced_spoof_app_version_target_title">Edit spoof app version</string>
|
<string name="revanced_spoof_app_version_target_title">Edit spoof app version</string>
|
||||||
<string name="revanced_spoof_app_version_title">Spoof app version</string>
|
<string name="revanced_spoof_app_version_title">Spoof app version</string>
|
||||||
|
<string name="revanced_spoof_device_dimensions_summary">Spoofs the device dimensions in order to unlock higher video qualities that may not be available on your device</string>
|
||||||
|
<string name="revanced_spoof_device_dimensions_title">Spoof device dimensions</string>
|
||||||
<string name="revanced_spoof_player_parameter_in_feed_summary_off">"Player parameter not spoofed for feed videos
|
<string name="revanced_spoof_player_parameter_in_feed_summary_off">"Player parameter not spoofed for feed videos
|
||||||
|
|
||||||
Known issues
|
Known issues
|
||||||
|
@ -313,6 +313,9 @@
|
|||||||
<ListPreference android:title="@string/revanced_spoof_app_version_target_entry_title" android:key="revanced_spoof_app_version_target" android:entries="@array/revanced_spoof_app_version_target_entry" android:defaultValue="18.17.43" android:entryValues="@array/revanced_spoof_app_version_target_entry_value" />
|
<ListPreference android:title="@string/revanced_spoof_app_version_target_entry_title" android:key="revanced_spoof_app_version_target" android:entries="@array/revanced_spoof_app_version_target_entry" android:defaultValue="18.17.43" android:entryValues="@array/revanced_spoof_app_version_target_entry_value" />
|
||||||
<app.revanced.integrations.settingsmenu.ResettableEditTextPreference android:hint="18.17.43" android:title="@string/revanced_spoof_app_version_target_title" android:key="revanced_spoof_app_version_target" android:summary="@string/revanced_spoof_app_version_target_summary" android:inputType="text" android:dependency="revanced_spoof_app_version" />SETTINGS: SPOOF_APP_VERSION -->
|
<app.revanced.integrations.settingsmenu.ResettableEditTextPreference android:hint="18.17.43" android:title="@string/revanced_spoof_app_version_target_title" android:key="revanced_spoof_app_version_target" android:summary="@string/revanced_spoof_app_version_target_summary" android:inputType="text" android:dependency="revanced_spoof_app_version" />SETTINGS: SPOOF_APP_VERSION -->
|
||||||
|
|
||||||
|
<!-- SETTINGS: SPOOF_DEVICE_DIMENSIONS
|
||||||
|
<SwitchPreference android:title="@string/revanced_spoof_device_dimensions_title" android:key="revanced_spoof_device_dimensions" android:defaultValue="false" android:summary="@string/revanced_spoof_device_dimensions_summary" />SETTINGS: SPOOF_DEVICE_DIMENSIONS -->
|
||||||
|
|
||||||
<!-- SETTINGS: SPOOF_PLAYER_PARAMETER
|
<!-- SETTINGS: SPOOF_PLAYER_PARAMETER
|
||||||
<SwitchPreference android:title="@string/revanced_spoof_player_parameter_title" android:key="revanced_spoof_player_parameter" android:defaultValue="false" android:summary="@string/revanced_spoof_player_parameter_summary" />
|
<SwitchPreference android:title="@string/revanced_spoof_player_parameter_title" android:key="revanced_spoof_player_parameter" android:defaultValue="false" android:summary="@string/revanced_spoof_player_parameter_summary" />
|
||||||
<SwitchPreference android:title="@string/revanced_spoof_player_parameter_in_feed_title" android:key="revanced_spoof_player_parameter_in_feed" android:defaultValue="false" android:summaryOn="@string/revanced_spoof_player_parameter_in_feed_summary_on" android:summaryOff="@string/revanced_spoof_player_parameter_in_feed_summary_off" android:dependency="revanced_spoof_player_parameter" />SETTINGS: SPOOF_PLAYER_PARAMETER -->
|
<SwitchPreference android:title="@string/revanced_spoof_player_parameter_in_feed_title" android:key="revanced_spoof_player_parameter_in_feed" android:defaultValue="false" android:summaryOn="@string/revanced_spoof_player_parameter_in_feed_summary_on" android:summaryOff="@string/revanced_spoof_player_parameter_in_feed_summary_off" android:dependency="revanced_spoof_player_parameter" />SETTINGS: SPOOF_PLAYER_PARAMETER -->
|
||||||
@ -382,6 +385,7 @@
|
|||||||
<Preference android:title="Force video codec" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="Force video codec" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
<Preference android:title="Layout switch" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="Layout switch" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
<Preference android:title="Spoof app version" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="Spoof app version" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
|
<Preference android:title="Spoof device dimensions" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
<Preference android:title="Spoof player parameters" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="Spoof player parameters" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
|
|
||||||
<Preference android:title=" " android:selectable="false" android:summary="@string/revanced_navigation" />
|
<Preference android:title=" " android:selectable="false" android:summary="@string/revanced_navigation" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user