mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-06-13 05:37:40 +02:00
feat: generate an exception when an invalid value is entered
This commit is contained in:
@ -68,7 +68,7 @@ class CustomBrandingNamePatch : ResourcePatch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} ?: return PatchResultError("No app name provided")
|
} ?: return PatchResultError("Invalid app name.")
|
||||||
|
|
||||||
return PatchResultSuccess()
|
return PatchResultSuccess()
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import app.revanced.patcher.data.ResourceContext
|
|||||||
import app.revanced.patcher.patch.OptionsContainer
|
import app.revanced.patcher.patch.OptionsContainer
|
||||||
import app.revanced.patcher.patch.PatchOption
|
import app.revanced.patcher.patch.PatchOption
|
||||||
import app.revanced.patcher.patch.PatchResult
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultError
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
import app.revanced.patcher.patch.ResourcePatch
|
import app.revanced.patcher.patch.ResourcePatch
|
||||||
import app.revanced.patcher.patch.annotations.DependsOn
|
import app.revanced.patcher.patch.annotations.DependsOn
|
||||||
@ -28,17 +29,11 @@ import app.revanced.patches.music.utils.fix.decoding.patch.DecodingPatch
|
|||||||
class CustomBrandingNamePatch : ResourcePatch {
|
class CustomBrandingNamePatch : ResourcePatch {
|
||||||
override fun execute(context: ResourceContext): PatchResult {
|
override fun execute(context: ResourceContext): PatchResult {
|
||||||
|
|
||||||
val longName =
|
val longName = MusicLongName
|
||||||
if (MusicLongName != null)
|
?: throw PatchResultError("Invalid app name.")
|
||||||
MusicLongName
|
|
||||||
else
|
|
||||||
"ReVanced Extended Music"
|
|
||||||
|
|
||||||
val shortName =
|
val shortName = MusicShortName
|
||||||
if (MusicShortName != null)
|
?: throw PatchResultError("Invalid app name.")
|
||||||
MusicShortName
|
|
||||||
else
|
|
||||||
"RVX Music"
|
|
||||||
|
|
||||||
context.xmlEditor["res/values/strings.xml"].use { editor ->
|
context.xmlEditor["res/values/strings.xml"].use { editor ->
|
||||||
val document = editor.file
|
val document = editor.file
|
||||||
|
@ -6,6 +6,7 @@ import app.revanced.patcher.annotation.Version
|
|||||||
import app.revanced.patcher.data.BytecodeContext
|
import app.revanced.patcher.data.BytecodeContext
|
||||||
import app.revanced.patcher.patch.BytecodePatch
|
import app.revanced.patcher.patch.BytecodePatch
|
||||||
import app.revanced.patcher.patch.PatchResult
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultError
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
import app.revanced.patcher.patch.annotations.DependsOn
|
import app.revanced.patcher.patch.annotations.DependsOn
|
||||||
import app.revanced.patcher.patch.annotations.Patch
|
import app.revanced.patcher.patch.annotations.Patch
|
||||||
@ -55,8 +56,14 @@ class MicroGPatch : BytecodePatch(
|
|||||||
// - "com.google.android.gms.phenotype.UPDATE",
|
// - "com.google.android.gms.phenotype.UPDATE",
|
||||||
// - "com.google.android.gms.phenotype",
|
// - "com.google.android.gms.phenotype",
|
||||||
override fun execute(context: BytecodeContext): PatchResult {
|
override fun execute(context: BytecodeContext): PatchResult {
|
||||||
val packageNameYouTube = PackageNamePatch.YouTubePackageName!!
|
val youtubePackageName = PackageNamePatch.YouTubePackageName
|
||||||
val packageNameMusic = PackageNamePatch.MusicPackageName!!
|
?: throw PatchResultError("Invalid package name.")
|
||||||
|
|
||||||
|
val musicPackageName = PackageNamePatch.MusicPackageName
|
||||||
|
?: throw PatchResultError("Invalid package name.")
|
||||||
|
|
||||||
|
if (youtubePackageName == YOUTUBE_PACKAGE_NAME || musicPackageName == MUSIC_PACKAGE_NAME)
|
||||||
|
throw PatchResultError("Original package name is not available as package name for MicroG build.")
|
||||||
|
|
||||||
// apply common microG patch
|
// apply common microG patch
|
||||||
MicroGBytecodeHelper.patchBytecode(
|
MicroGBytecodeHelper.patchBytecode(
|
||||||
@ -64,13 +71,13 @@ class MicroGPatch : BytecodePatch(
|
|||||||
arrayOf(
|
arrayOf(
|
||||||
MicroGBytecodeHelper.packageNameTransform(
|
MicroGBytecodeHelper.packageNameTransform(
|
||||||
YOUTUBE_PACKAGE_NAME,
|
YOUTUBE_PACKAGE_NAME,
|
||||||
packageNameYouTube
|
youtubePackageName
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
MicroGBytecodeHelper.PrimeMethodTransformationData(
|
MicroGBytecodeHelper.PrimeMethodTransformationData(
|
||||||
PrimeFingerprint,
|
PrimeFingerprint,
|
||||||
MUSIC_PACKAGE_NAME,
|
MUSIC_PACKAGE_NAME,
|
||||||
packageNameMusic
|
musicPackageName
|
||||||
),
|
),
|
||||||
listOf(
|
listOf(
|
||||||
ServiceCheckFingerprint,
|
ServiceCheckFingerprint,
|
||||||
|
@ -2,6 +2,7 @@ package app.revanced.patches.music.utils.microg.resource.patch
|
|||||||
|
|
||||||
import app.revanced.patcher.data.ResourceContext
|
import app.revanced.patcher.data.ResourceContext
|
||||||
import app.revanced.patcher.patch.PatchResult
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultError
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
import app.revanced.patcher.patch.ResourcePatch
|
import app.revanced.patcher.patch.ResourcePatch
|
||||||
import app.revanced.patcher.patch.annotations.DependsOn
|
import app.revanced.patcher.patch.annotations.DependsOn
|
||||||
@ -16,12 +17,16 @@ import app.revanced.util.resources.MusicResourceHelper.setMicroG
|
|||||||
@DependsOn([PackageNamePatch::class])
|
@DependsOn([PackageNamePatch::class])
|
||||||
class MicroGResourcePatch : ResourcePatch {
|
class MicroGResourcePatch : ResourcePatch {
|
||||||
override fun execute(context: ResourceContext): PatchResult {
|
override fun execute(context: ResourceContext): PatchResult {
|
||||||
val packageNameMusic = PackageNamePatch.MusicPackageName!!
|
val packageName = PackageNamePatch.MusicPackageName
|
||||||
|
?: throw PatchResultError("Invalid package name.")
|
||||||
|
|
||||||
|
if (packageName == MUSIC_PACKAGE_NAME)
|
||||||
|
throw PatchResultError("Original package name is not available as package name for MicroG build.")
|
||||||
|
|
||||||
// update manifest
|
// update manifest
|
||||||
context.patchManifest(
|
context.patchManifest(
|
||||||
MUSIC_PACKAGE_NAME,
|
MUSIC_PACKAGE_NAME,
|
||||||
packageNameMusic
|
packageName
|
||||||
)
|
)
|
||||||
|
|
||||||
// add metadata to the manifest
|
// add metadata to the manifest
|
||||||
@ -30,7 +35,7 @@ class MicroGResourcePatch : ResourcePatch {
|
|||||||
SPOOFED_PACKAGE_SIGNATURE
|
SPOOFED_PACKAGE_SIGNATURE
|
||||||
)
|
)
|
||||||
|
|
||||||
context.setMicroG(packageNameMusic)
|
context.setMicroG(packageName)
|
||||||
|
|
||||||
return PatchResultSuccess()
|
return PatchResultSuccess()
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import app.revanced.patcher.data.ResourceContext
|
|||||||
import app.revanced.patcher.patch.OptionsContainer
|
import app.revanced.patcher.patch.OptionsContainer
|
||||||
import app.revanced.patcher.patch.PatchOption
|
import app.revanced.patcher.patch.PatchOption
|
||||||
import app.revanced.patcher.patch.PatchResult
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultError
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
import app.revanced.patcher.patch.ResourcePatch
|
import app.revanced.patcher.patch.ResourcePatch
|
||||||
import app.revanced.patcher.patch.annotations.DependsOn
|
import app.revanced.patcher.patch.annotations.DependsOn
|
||||||
@ -29,11 +30,8 @@ import app.revanced.util.resources.ResourceHelper.updatePatchStatusLabel
|
|||||||
class CustomBrandingNamePatch : ResourcePatch {
|
class CustomBrandingNamePatch : ResourcePatch {
|
||||||
override fun execute(context: ResourceContext): PatchResult {
|
override fun execute(context: ResourceContext): PatchResult {
|
||||||
|
|
||||||
val appName =
|
val appName = YouTubeAppName
|
||||||
if (YouTubeAppName != null)
|
?: throw PatchResultError("Invalid app name.")
|
||||||
YouTubeAppName
|
|
||||||
else
|
|
||||||
"ReVanced Extended"
|
|
||||||
|
|
||||||
context.xmlEditor["res/values/strings.xml"].use { editor ->
|
context.xmlEditor["res/values/strings.xml"].use { editor ->
|
||||||
val document = editor.file
|
val document = editor.file
|
||||||
|
@ -7,6 +7,7 @@ import app.revanced.patcher.data.ResourceContext
|
|||||||
import app.revanced.patcher.patch.OptionsContainer
|
import app.revanced.patcher.patch.OptionsContainer
|
||||||
import app.revanced.patcher.patch.PatchOption
|
import app.revanced.patcher.patch.PatchOption
|
||||||
import app.revanced.patcher.patch.PatchResult
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultError
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
import app.revanced.patcher.patch.ResourcePatch
|
import app.revanced.patcher.patch.ResourcePatch
|
||||||
import app.revanced.patcher.patch.annotations.DependsOn
|
import app.revanced.patcher.patch.annotations.DependsOn
|
||||||
@ -41,6 +42,9 @@ class ThemePatch : ResourcePatch {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun ResourceContext.setTheme(valuesPath: String) {
|
private fun ResourceContext.setTheme(valuesPath: String) {
|
||||||
|
val darkThemeColor = darkThemeBackgroundColor
|
||||||
|
?: throw PatchResultError("Invalid color.")
|
||||||
|
|
||||||
this.xmlEditor["res/$valuesPath/colors.xml"].use { editor ->
|
this.xmlEditor["res/$valuesPath/colors.xml"].use { editor ->
|
||||||
val resourcesNode = editor.file.getElementsByTagName("resources").item(0) as Element
|
val resourcesNode = editor.file.getElementsByTagName("resources").item(0) as Element
|
||||||
|
|
||||||
@ -49,7 +53,7 @@ class ThemePatch : ResourcePatch {
|
|||||||
|
|
||||||
node.textContent = when (node.getAttribute("name")) {
|
node.textContent = when (node.getAttribute("name")) {
|
||||||
"yt_black0", "yt_black1", "yt_black1_opacity95", "yt_black1_opacity98", "yt_black2", "yt_black3",
|
"yt_black0", "yt_black1", "yt_black1_opacity95", "yt_black1_opacity98", "yt_black2", "yt_black3",
|
||||||
"yt_black4", "yt_status_bar_background_dark", "material_grey_850" -> darkThemeBackgroundColor
|
"yt_black4", "yt_status_bar_background_dark", "material_grey_850" -> darkThemeColor
|
||||||
|
|
||||||
else -> continue
|
else -> continue
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package app.revanced.patches.youtube.utils.microg.bytecode.patch
|
|||||||
import app.revanced.patcher.data.BytecodeContext
|
import app.revanced.patcher.data.BytecodeContext
|
||||||
import app.revanced.patcher.patch.BytecodePatch
|
import app.revanced.patcher.patch.BytecodePatch
|
||||||
import app.revanced.patcher.patch.PatchResult
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultError
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
import app.revanced.patcher.patch.annotations.DependsOn
|
import app.revanced.patcher.patch.annotations.DependsOn
|
||||||
import app.revanced.patches.shared.patch.packagename.PackageNamePatch
|
import app.revanced.patches.shared.patch.packagename.PackageNamePatch
|
||||||
@ -37,7 +38,11 @@ class MicroGBytecodePatch : BytecodePatch(
|
|||||||
) {
|
) {
|
||||||
override fun execute(context: BytecodeContext): PatchResult {
|
override fun execute(context: BytecodeContext): PatchResult {
|
||||||
|
|
||||||
val packageName = PackageNamePatch.YouTubePackageName!!
|
val packageName = PackageNamePatch.YouTubePackageName
|
||||||
|
?: throw PatchResultError("Invalid package name.")
|
||||||
|
|
||||||
|
if (packageName == PACKAGE_NAME)
|
||||||
|
throw PatchResultError("Original package name is not available as package name for MicroG build.")
|
||||||
|
|
||||||
// apply common microG patch
|
// apply common microG patch
|
||||||
MicroGBytecodeHelper.patchBytecode(
|
MicroGBytecodeHelper.patchBytecode(
|
||||||
|
@ -5,6 +5,7 @@ import app.revanced.patcher.annotation.Name
|
|||||||
import app.revanced.patcher.annotation.Version
|
import app.revanced.patcher.annotation.Version
|
||||||
import app.revanced.patcher.data.ResourceContext
|
import app.revanced.patcher.data.ResourceContext
|
||||||
import app.revanced.patcher.patch.PatchResult
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultError
|
||||||
import app.revanced.patcher.patch.PatchResultSuccess
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
import app.revanced.patcher.patch.ResourcePatch
|
import app.revanced.patcher.patch.ResourcePatch
|
||||||
import app.revanced.patcher.patch.annotations.DependsOn
|
import app.revanced.patcher.patch.annotations.DependsOn
|
||||||
@ -36,7 +37,11 @@ import app.revanced.util.resources.ResourceHelper.setMicroG
|
|||||||
class MicroGPatch : ResourcePatch {
|
class MicroGPatch : ResourcePatch {
|
||||||
override fun execute(context: ResourceContext): PatchResult {
|
override fun execute(context: ResourceContext): PatchResult {
|
||||||
|
|
||||||
val packageName = PackageNamePatch.YouTubePackageName!!
|
val packageName = PackageNamePatch.YouTubePackageName
|
||||||
|
?: throw PatchResultError("Invalid package name.")
|
||||||
|
|
||||||
|
if (packageName == PACKAGE_NAME)
|
||||||
|
throw PatchResultError("Original package name is not available as package name for MicroG build.")
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add settings
|
* Add settings
|
||||||
|
Reference in New Issue
Block a user