feat: generate an exception when an invalid value is entered

This commit is contained in:
inotia00
2023-07-24 04:41:02 +09:00
parent 3663d072b9
commit 63b0227e2a
8 changed files with 45 additions and 26 deletions

View File

@ -68,7 +68,7 @@ class CustomBrandingNamePatch : ResourcePatch {
}
}
} ?: return PatchResultError("No app name provided")
} ?: return PatchResultError("Invalid app name.")
return PatchResultSuccess()
}

View File

@ -7,6 +7,7 @@ import app.revanced.patcher.data.ResourceContext
import app.revanced.patcher.patch.OptionsContainer
import app.revanced.patcher.patch.PatchOption
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.DependsOn
@ -28,17 +29,11 @@ import app.revanced.patches.music.utils.fix.decoding.patch.DecodingPatch
class CustomBrandingNamePatch : ResourcePatch {
override fun execute(context: ResourceContext): PatchResult {
val longName =
if (MusicLongName != null)
MusicLongName
else
"ReVanced Extended Music"
val longName = MusicLongName
?: throw PatchResultError("Invalid app name.")
val shortName =
if (MusicShortName != null)
MusicShortName
else
"RVX Music"
val shortName = MusicShortName
?: throw PatchResultError("Invalid app name.")
context.xmlEditor["res/values/strings.xml"].use { editor ->
val document = editor.file

View File

@ -6,6 +6,7 @@ import app.revanced.patcher.annotation.Version
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.PatchResult
import app.revanced.patcher.patch.PatchResultError
import app.revanced.patcher.patch.PatchResultSuccess
import app.revanced.patcher.patch.annotations.DependsOn
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",
override fun execute(context: BytecodeContext): PatchResult {
val packageNameYouTube = PackageNamePatch.YouTubePackageName!!
val packageNameMusic = PackageNamePatch.MusicPackageName!!
val youtubePackageName = PackageNamePatch.YouTubePackageName
?: 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
MicroGBytecodeHelper.patchBytecode(
@ -64,13 +71,13 @@ class MicroGPatch : BytecodePatch(
arrayOf(
MicroGBytecodeHelper.packageNameTransform(
YOUTUBE_PACKAGE_NAME,
packageNameYouTube
youtubePackageName
)
),
MicroGBytecodeHelper.PrimeMethodTransformationData(
PrimeFingerprint,
MUSIC_PACKAGE_NAME,
packageNameMusic
musicPackageName
),
listOf(
ServiceCheckFingerprint,

View File

@ -2,6 +2,7 @@ package app.revanced.patches.music.utils.microg.resource.patch
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.DependsOn
@ -16,12 +17,16 @@ import app.revanced.util.resources.MusicResourceHelper.setMicroG
@DependsOn([PackageNamePatch::class])
class MicroGResourcePatch : ResourcePatch {
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
context.patchManifest(
MUSIC_PACKAGE_NAME,
packageNameMusic
packageName
)
// add metadata to the manifest
@ -30,7 +35,7 @@ class MicroGResourcePatch : ResourcePatch {
SPOOFED_PACKAGE_SIGNATURE
)
context.setMicroG(packageNameMusic)
context.setMicroG(packageName)
return PatchResultSuccess()
}

View File

@ -7,6 +7,7 @@ import app.revanced.patcher.data.ResourceContext
import app.revanced.patcher.patch.OptionsContainer
import app.revanced.patcher.patch.PatchOption
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.DependsOn
@ -29,11 +30,8 @@ import app.revanced.util.resources.ResourceHelper.updatePatchStatusLabel
class CustomBrandingNamePatch : ResourcePatch {
override fun execute(context: ResourceContext): PatchResult {
val appName =
if (YouTubeAppName != null)
YouTubeAppName
else
"ReVanced Extended"
val appName = YouTubeAppName
?: throw PatchResultError("Invalid app name.")
context.xmlEditor["res/values/strings.xml"].use { editor ->
val document = editor.file

View File

@ -7,6 +7,7 @@ import app.revanced.patcher.data.ResourceContext
import app.revanced.patcher.patch.OptionsContainer
import app.revanced.patcher.patch.PatchOption
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.DependsOn
@ -41,6 +42,9 @@ class ThemePatch : ResourcePatch {
}
private fun ResourceContext.setTheme(valuesPath: String) {
val darkThemeColor = darkThemeBackgroundColor
?: throw PatchResultError("Invalid color.")
this.xmlEditor["res/$valuesPath/colors.xml"].use { editor ->
val resourcesNode = editor.file.getElementsByTagName("resources").item(0) as Element
@ -49,7 +53,7 @@ class ThemePatch : ResourcePatch {
node.textContent = when (node.getAttribute("name")) {
"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
}

View File

@ -3,6 +3,7 @@ package app.revanced.patches.youtube.utils.microg.bytecode.patch
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.PatchResult
import app.revanced.patcher.patch.PatchResultError
import app.revanced.patcher.patch.PatchResultSuccess
import app.revanced.patcher.patch.annotations.DependsOn
import app.revanced.patches.shared.patch.packagename.PackageNamePatch
@ -37,7 +38,11 @@ class MicroGBytecodePatch : BytecodePatch(
) {
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
MicroGBytecodeHelper.patchBytecode(

View File

@ -5,6 +5,7 @@ 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.DependsOn
@ -36,7 +37,11 @@ import app.revanced.util.resources.ResourceHelper.setMicroG
class MicroGPatch : ResourcePatch {
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