From 86bef3e4efc048c897389c5c9f0c1709874ce0f0 Mon Sep 17 00:00:00 2001 From: Pdawg11239 <83825746+Pdawg-bytes@users.noreply.github.com> Date: Mon, 14 Sep 2026 16:26:39 -0400 Subject: [PATCH 1/4] Add ABadAvatar 1.3 --- BadBuilder/Application/BuilderApp.Homebrew.cs | 4 ++-- BadBuilder/Application/BuilderApp.cs | 16 ++++++++-------- BadBuilder/Configuration/ArtifactCatalog.cs | 10 ++++++++++ BadBuilder/Configuration/Models.cs | 1 + BadBuilder/UI/Controls.cs | 2 +- README.md | 3 ++- 6 files changed, 24 insertions(+), 12 deletions(-) diff --git a/BadBuilder/Application/BuilderApp.Homebrew.cs b/BadBuilder/Application/BuilderApp.Homebrew.cs index ebc83bf..eaf0de3 100644 --- a/BadBuilder/Application/BuilderApp.Homebrew.cs +++ b/BadBuilder/Application/BuilderApp.Homebrew.cs @@ -1,6 +1,6 @@ -using BadBuilder.Configuration; -using BadBuilder.Services; using BadBuilder.UI; +using BadBuilder.Services; +using BadBuilder.Configuration; namespace BadBuilder.Application; diff --git a/BadBuilder/Application/BuilderApp.cs b/BadBuilder/Application/BuilderApp.cs index 0f14504..9667b4e 100644 --- a/BadBuilder/Application/BuilderApp.cs +++ b/BadBuilder/Application/BuilderApp.cs @@ -1,7 +1,7 @@ -using BadBuilder.Configuration; +using BadBuilder.UI; using BadBuilder.Services; +using BadBuilder.Configuration; using BadBuilder.Services.Disks; -using BadBuilder.UI; using System.Runtime.InteropServices; namespace BadBuilder.Application; @@ -20,13 +20,13 @@ internal static async Task RunAsync(CancellationToken cancellationToken) List> options = [ - new MenuOption(RootAction.ConfigureDrive, "Target drive"), - new MenuOption(RootAction.ConfigureExploit, "Exploit"), + new MenuOption(RootAction.ConfigureDrive, "Target drive"), + new MenuOption(RootAction.ConfigureExploit, "Exploit"), new MenuOption(RootAction.ConfigureBootstrap, "Post-exploit bootstrap"), - new MenuOption(RootAction.ConfigureHomebrew, "Homebrew"), - new MenuOption(RootAction.UpdateXbox, "Update Xbox Dashboard"), - new MenuOption(RootAction.Install, "Install"), - new MenuOption(RootAction.Exit, "Exit") + new MenuOption(RootAction.ConfigureHomebrew, "Homebrew"), + new MenuOption(RootAction.UpdateXbox, "Update Xbox Dashboard"), + new MenuOption(RootAction.Install, "Install"), + new MenuOption(RootAction.Exit, "Exit") ]; if (Config.FirmwareUpdateEnabled) diff --git a/BadBuilder/Configuration/ArtifactCatalog.cs b/BadBuilder/Configuration/ArtifactCatalog.cs index 74ae77f..8f8bcba 100644 --- a/BadBuilder/Configuration/ArtifactCatalog.cs +++ b/BadBuilder/Configuration/ArtifactCatalog.cs @@ -14,6 +14,16 @@ internal static class ArtifactCatalog [ new InstallOperation(InstallOperationKind.CopyDirectory, ".", ".") ], ArtifactPriority.Exploit ), + [ExploitOption.ABadAvatarUpdate] = new + ( + "exploit-abadavatarupdate", + "ABadAvatar 1.3", + "An unofficial version of the ABadAvatar exploit with improved speed", + "exploit", + new GitHubReleaseSource("bibarub", "Xbox360BadUpdate"), + [new InstallOperation(InstallOperationKind.CopyDirectory, ".", ".")], + ArtifactPriority.Exploit + ), [ExploitOption.BadUpdate] = new ( "exploit-badupdate", diff --git a/BadBuilder/Configuration/Models.cs b/BadBuilder/Configuration/Models.cs index f036957..19fa368 100644 --- a/BadBuilder/Configuration/Models.cs +++ b/BadBuilder/Configuration/Models.cs @@ -3,6 +3,7 @@ internal enum ExploitOption { ABadAvatar, + ABadAvatarUpdate, BadUpdate, } diff --git a/BadBuilder/UI/Controls.cs b/BadBuilder/UI/Controls.cs index c56d22f..1fd4eef 100644 --- a/BadBuilder/UI/Controls.cs +++ b/BadBuilder/UI/Controls.cs @@ -29,7 +29,7 @@ internal static void RenderHeader() [#CCE388]██████╔╝██║ ██║██████╔╝██████╔╝╚██████╔╝██║███████╗██████╔╝███████╗██║ ██║[/] [#CCE388]╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═════╝ ╚══════╝╚═╝ ╚═╝[/] - [#76B900]───────────────────────────────────────────────────────────────────────v2.00[/] + [#76B900]───────────────────────────────────────────────────────────────────────v2.10[/] ───────────────────────Xbox 360 [#FF7200]BadUpdate[/] USB Builder─────────────────────── [#848589]Created by Pdawg[/] [#76B900]────────────────────────────────────────────────────────────────────────────[/] diff --git a/README.md b/README.md index b9b642f..1f75e0c 100644 --- a/README.md +++ b/README.md @@ -54,8 +54,9 @@ If you encounter any problems, please create a new issue with details about your ### Credits - **Grimdoomer:** [BadUpdate](https://github.com/grimdoomer/Xbox360BadUpdate) - **Shutterbug2000:** [ABadAvatar](https://github.com/shutterbug2000/ABadAvatar) +- **Bibarub:** [ABadAvatar 1.3](https://github.com/bibarub/Xbox360BadUpdate) - **InvoxiPlayGames:** [FreeMyXe](https://github.com/FreeMyXe/FreeMyXe) - **Byrom90:** [XeUnshackle](https://github.com/Byrom90/XeUnshackle) - **Swizzy:** [Simple 360 NAND Flasher](https://github.com/Swizzy/XDK_Projects) - **Team XeDEV:** XeXMenu -- **Phoenix:** [Aurora Dashboard](https://phoenix.xboxunity.net/) +- **Phoenix:** [Aurora Dashboard](https://phoenix.xboxunity.net/) \ No newline at end of file From 2f87408d602eb27d85f6a4eb724176af69257d69 Mon Sep 17 00:00:00 2001 From: Pdawg11239 <83825746+Pdawg-bytes@users.noreply.github.com> Date: Mon, 14 Sep 2026 16:51:21 -0400 Subject: [PATCH 2/4] Add 'Back' options to submenus --- .../Application/BuilderApp.Configuration.cs | 13 +++++++++---- BadBuilder/Application/BuilderApp.Homebrew.cs | 15 ++++++++++----- BadBuilder/UI/Controls.cs | 3 +++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/BadBuilder/Application/BuilderApp.Configuration.cs b/BadBuilder/Application/BuilderApp.Configuration.cs index 05bca6f..b6e7f93 100644 --- a/BadBuilder/Application/BuilderApp.Configuration.cs +++ b/BadBuilder/Application/BuilderApp.Configuration.cs @@ -25,11 +25,16 @@ static string FormatDriveLabel(DiskInfo drive) return $"{drive.Name} ({sizeGigabytes:0.00} GB) - {drive.Type}"; } - Config.TargetDisk = Controls.PromptSelection( + DiskInfo? targetDisk = Controls.PromptSelection( "Choose target drive", - [..drives.Select(drive => new MenuOption(drive, FormatDriveLabel(drive)))], + [..Controls.OptionsWithBack(drives.Select(drive => new MenuOption(drive, FormatDriveLabel(drive))))], "[bold white]All data will be lost on this drive.[/] Make sure to select the correct drive." ); + + if (targetDisk is not null) + Config.TargetDisk = targetDisk; + else + return; } private static void ConfigureExploit() @@ -38,7 +43,7 @@ private static void ConfigureExploit() Config.SelectedExploit = Controls.PromptSelection( "Choose exploit", - [..ArtifactCatalog.Exploits.Select(pair => new MenuOption(pair.Key, pair.Value.DisplayName, pair.Value.Description))], + [..Controls.OptionsWithBack(ArtifactCatalog.Exploits.Select(pair => new MenuOption(pair.Key, pair.Value.DisplayName, pair.Value.Description)))], "Executes the console exploit and unlocks the hypervisor, allowing further unsigned code execution." ); } @@ -49,7 +54,7 @@ private static void ConfigureBootstrap() BootstrapOption selected = Controls.PromptSelection( "Choose post-exploit bootstrap", - [..ArtifactCatalog.Bootstraps.Select(pair => new MenuOption(pair.Key, pair.Value.DisplayName, pair.Value.Description))], + [..Controls.OptionsWithBack(ArtifactCatalog.Bootstraps.Select(pair => new MenuOption(pair.Key, pair.Value.DisplayName, pair.Value.Description)))], "The payload executed immediately after a successful hypervisor exploit to patch the kernel and initialize homebrew capabilities." ); diff --git a/BadBuilder/Application/BuilderApp.Homebrew.cs b/BadBuilder/Application/BuilderApp.Homebrew.cs index eaf0de3..fbcc732 100644 --- a/BadBuilder/Application/BuilderApp.Homebrew.cs +++ b/BadBuilder/Application/BuilderApp.Homebrew.cs @@ -123,11 +123,13 @@ private static void RemoveCustomHomebrew() return; } - string selectedId = Controls.PromptSelection( + string? selectedId = Controls.PromptSelection( "Select a homebrew entry to remove", - [..Config.Homebrew.Select(homebrew => new MenuOption(homebrew.Artifact.ID, homebrew.Artifact.DisplayName, homebrew.SourcePath ?? "Included package"))] + [..Controls.OptionsWithBack(Config.Homebrew.Select(homebrew => new MenuOption(homebrew.Artifact.ID, homebrew.Artifact.DisplayName, homebrew.SourcePath ?? "Included package")))] ); + if (selectedId is null) return; + HomebrewEntry removed = Config.Homebrew.First(homebrew => homebrew.Artifact.ID == selectedId); Config.Homebrew.RemoveAll(homebrew => homebrew.Artifact.ID == selectedId); @@ -149,8 +151,8 @@ private static void ConfigureLaunchHomebrew() } HomebrewEntry[] availableHomebrew = [..Config.Homebrew.Where(homebrew => homebrew.EntryPointRelativePath is not null)]; - MenuOption[] options = [..availableHomebrew - .Select(homebrew => new MenuOption(homebrew.Artifact.ID, homebrew.Artifact.DisplayName, homebrew.Artifact.Description))]; + MenuOption[] options = [..Controls.OptionsWithBack(availableHomebrew + .Select(homebrew => new MenuOption(homebrew.Artifact.ID, homebrew.Artifact.DisplayName, homebrew.Artifact.Description)))]; if (options.Length == 0) { @@ -159,7 +161,10 @@ private static void ConfigureLaunchHomebrew() return; } - string selectedLaunch = Controls.PromptSelection("Choose default launch program", options); + string? selectedLaunch = Controls.PromptSelection("Choose default launch program", options); + + if (selectedLaunch is null) return; + Config.LaunchHomebrew = availableHomebrew.FirstOrDefault(h => h.Artifact.ID == selectedLaunch); } diff --git a/BadBuilder/UI/Controls.cs b/BadBuilder/UI/Controls.cs index 1fd4eef..9b7fbf9 100644 --- a/BadBuilder/UI/Controls.cs +++ b/BadBuilder/UI/Controls.cs @@ -46,6 +46,9 @@ internal static void RenderHeader() internal static void WriteSuccess(string message) => AnsiConsole.MarkupLine($"[{ToMarkupColor(AppTheme.GreenStyle.Foreground)}]{Escape("[+]")}[/] {message}"); + internal static IReadOnlyList> OptionsWithBack(IEnumerable> options) => [..options.Append(new MenuOption(default, "Back"))]; + + internal static T PromptSelection(string title, IReadOnlyList> options, string? details = null) => AnsiConsole.Prompt( new SelectionPrompt>() .Title($"[{ToMarkupColor(AppTheme.OrangeStyle.Foreground)}]{Escape(title)}[/]" + From 2a85d0d581402abb362bffe3d4c4913d86fd8295 Mon Sep 17 00:00:00 2001 From: Pdawg11239 <83825746+Pdawg-bytes@users.noreply.github.com> Date: Mon, 14 Sep 2026 16:57:12 -0400 Subject: [PATCH 3/4] Add manifest to autorun as admin on Windows --- BadBuilder/BadBuilder.csproj | 1 + BadBuilder/app.manifest | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 BadBuilder/app.manifest diff --git a/BadBuilder/BadBuilder.csproj b/BadBuilder/BadBuilder.csproj index 505f4fd..6c41a5b 100644 --- a/BadBuilder/BadBuilder.csproj +++ b/BadBuilder/BadBuilder.csproj @@ -6,6 +6,7 @@ enable enable true + app.manifest diff --git a/BadBuilder/app.manifest b/BadBuilder/app.manifest new file mode 100644 index 0000000..6bb32a6 --- /dev/null +++ b/BadBuilder/app.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file From f33c967eb47e11ab006d915af144b9fe9139cad4 Mon Sep 17 00:00:00 2001 From: Pdawg11239 <83825746+Pdawg-bytes@users.noreply.github.com> Date: Mon, 14 Sep 2026 17:04:45 -0400 Subject: [PATCH 4/4] Fix version string --- BadBuilder/UI/Controls.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BadBuilder/UI/Controls.cs b/BadBuilder/UI/Controls.cs index 9b7fbf9..b900c23 100644 --- a/BadBuilder/UI/Controls.cs +++ b/BadBuilder/UI/Controls.cs @@ -22,14 +22,14 @@ internal static void RenderHeader() AnsiConsole.Clear(); AnsiConsole.Markup( """ - [#4D8C00]██████╗ █████╗ ██████╗ ██████╗ ██╗ ██╗██╗██╗ ██████╗ ███████╗██████╗[/] + [#4D8C00]██████╗ █████╗ ██████╗ ██████╗ ██╗ ██╗██╗██╗ ██████╗ ███████╗██████╗ [/] [#65A800]██╔══██╗██╔══██╗██╔══██╗██╔══██╗██║ ██║██║██║ ██╔══██╗██╔════╝██╔══██╗[/] [#76B900]██████╔╝███████║██║ ██║██████╔╝██║ ██║██║██║ ██║ ██║█████╗ ██████╔╝[/] [#A1CF3E]██╔══██╗██╔══██║██║ ██║██╔══██╗██║ ██║██║██║ ██║ ██║██╔══╝ ██╔══██╗[/] [#CCE388]██████╔╝██║ ██║██████╔╝██████╔╝╚██████╔╝██║███████╗██████╔╝███████╗██║ ██║[/] [#CCE388]╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═════╝ ╚══════╝╚═╝ ╚═╝[/] - [#76B900]───────────────────────────────────────────────────────────────────────v2.10[/] + [#76B900]──────────────────────────────────────────────────────────────────────v2.1.0[/] ───────────────────────Xbox 360 [#FF7200]BadUpdate[/] USB Builder─────────────────────── [#848589]Created by Pdawg[/] [#76B900]────────────────────────────────────────────────────────────────────────────[/]