diff --git a/CHANGELOG.md b/CHANGELOG.md index c8788c5aa..c638ea10a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.45.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.2...v5.45.0-dev.3) (2025-10-27) + + +### Features + +* **YouTube - Change Header:** Use SVG for header logo ([#6178](https://github.com/ReVanced/revanced-patches/issues/6178)) ([e9f45ce](https://github.com/ReVanced/revanced-patches/commit/e9f45ce92695d5857473ff71c14b190bded28a73)) + # [5.45.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.1...v5.45.0-dev.2) (2025-10-26) diff --git a/gradle.properties b/gradle.properties index 16f71b818..55e310f9b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.45.0-dev.2 +version = 5.45.0-dev.3 diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/AddBrandLicensePatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/AddBrandLicensePatch.kt new file mode 100644 index 000000000..629a53e2e --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/AddBrandLicensePatch.kt @@ -0,0 +1,25 @@ +package app.revanced.patches.shared.layout.branding + +import app.revanced.patcher.patch.rawResourcePatch +import app.revanced.util.inputStreamFromBundledResource +import java.nio.file.Files + +/** + * Copies a branding license text file to the target apk. + * + * This patch must be a dependency for all patches that add ReVanced branding to the target app. + */ +internal val addBrandLicensePatch = rawResourcePatch { + execute { + val brandingLicenseFileName = "LICENSE_REVANCED.TXT" + + val inputFileStream = inputStreamFromBundledResource( + "branding-license", + brandingLicenseFileName + )!! + + val targetFile = get(brandingLicenseFileName, false).toPath() + + Files.copy(inputFileStream, targetFile) + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt index d3e718085..a2b88d7f1 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt @@ -123,6 +123,7 @@ internal fun baseCustomBrandingPatch( dependsOn( addResourcesPatch, resourceMappingPatch, + addBrandLicensePatch, bytecodePatch { execute { mainActivityOnCreateFingerprint.method.addInstruction( diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt index 2624cb504..3587e9d54 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt @@ -6,6 +6,7 @@ import app.revanced.patcher.patch.resourcePatch import app.revanced.patches.all.misc.resources.addResource import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResourcesPatch +import app.revanced.patches.shared.layout.branding.addBrandLicensePatch import app.revanced.patches.shared.misc.settings.preference.BasePreference import app.revanced.patches.shared.misc.settings.preference.PreferenceCategory import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference @@ -51,7 +52,11 @@ fun settingsPatch ( rootPreferences: List>? = null, preferences: Set, ) = resourcePatch { - dependsOn(addResourcesPatch, settingsColorPatch) + dependsOn( + addResourcesPatch, + settingsColorPatch, + addBrandLicensePatch + ) execute { copyResources( diff --git a/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt index 3b4840a83..bc6cc2bff 100644 --- a/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt @@ -5,6 +5,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWith import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.util.smali.ExternalLabel +import app.revanced.patches.shared.layout.branding.addBrandLicensePatch import app.revanced.patches.tiktok.misc.extension.sharedExtensionPatch import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction22c @@ -18,7 +19,7 @@ val settingsPatch = bytecodePatch( name = "Settings", description = "Adds ReVanced settings to TikTok.", ) { - dependsOn(sharedExtensionPatch) + dependsOn(sharedExtensionPatch, addBrandLicensePatch) compatibleWith( "com.ss.android.ugc.trill"("36.5.4"), diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt index 999abc9e9..19c65089f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt @@ -9,6 +9,7 @@ import app.revanced.patcher.patch.stringOption import app.revanced.patcher.util.Document import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResourcesPatch +import app.revanced.patches.shared.layout.branding.addBrandLicensePatch import app.revanced.patches.shared.misc.mapping.ResourceType import app.revanced.patches.shared.misc.mapping.getResourceId import app.revanced.patches.shared.misc.mapping.resourceMappingPatch @@ -54,7 +55,10 @@ private val customHeaderResourceFileNames = variants.map { variant -> private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ChangeHeaderPatch;" private val changeHeaderBytecodePatch = bytecodePatch { - dependsOn(resourceMappingPatch) + dependsOn( + resourceMappingPatch, + addBrandLicensePatch + ) execute { // Verify images exist. Resources are not used during patching but extension code does. diff --git a/patches/src/main/resources/branding-license/LICENSE_REVANCED.TXT b/patches/src/main/resources/branding-license/LICENSE_REVANCED.TXT new file mode 100644 index 000000000..c32047dba --- /dev/null +++ b/patches/src/main/resources/branding-license/LICENSE_REVANCED.TXT @@ -0,0 +1,5 @@ +The ReVanced branding found in this software is copyrighted and not covered under the GPL. + +To use or distribute ReVanced branding, you must obtain permission by contacting branding@revanced.app + +For more information see https://github.com/ReVanced/revanced-branding diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml index 9f337b7c1..5af74bac1 100644 --- a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml +++ b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml @@ -3,6 +3,7 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="129dp" android:height="48dp" + android:autoMirrored="false" android:viewportWidth="129" android:viewportHeight="48"> diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml index a40169f45..d36de64b2 100644 --- a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml +++ b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml @@ -3,6 +3,7 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="129dp" android:height="48dp" + android:autoMirrored="false" android:viewportWidth="129" android:viewportHeight="48"> diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml index 73de0de42..90c589e63 100644 --- a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml +++ b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml @@ -3,54 +3,55 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="129dp" android:height="48dp" + android:autoMirrored="false" android:viewportWidth="129" android:viewportHeight="48"> - - - - - - - - - - + + + + + + + + + + + + - + + android:color="#F04E98" + android:offset="0" /> + android:color="#5F65D4" + android:offset="0.5" /> + android:color="#4E98F0" + android:offset="1" /> diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml index a6e1cbe5e..2523e2f6a 100644 --- a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml +++ b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml @@ -3,54 +3,55 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="129dp" android:height="48dp" + android:autoMirrored="false" android:viewportWidth="129" android:viewportHeight="48"> - - - - - - - - - - + + + + + + + + + + + + - + + android:color="#F04E98" + android:offset="0" /> + android:color="#5F65D4" + android:offset="0.5" /> + android:color="#4E98F0" + android:offset="1" />