4.7 KiB
BadBuilder
BadBuilder is a tool for creating a BadUpdate USB drive for the Xbox 360. It automates the process of formatting the USB drive, downloading required files, extracting them, and allowing the addition of homebrew applications.
Features
USB Formatting (Windows Only)
- Uses a custom FAT32 formatter that supports large USB drives (≥32GB).
- Ensures compatibility with the Xbox 360.
Note
Currently, the formatting feature is Windows-only. If you compile BadBuilder for another OS, it'll prompt you to manually format your target disk.
Automatic File Downloading
- Detects and downloads the latest required files automatically.
- Recognizes previously downloaded files and reuses them by default.
- Allows specifying custom paths for required files if they are already on your system.
Important
BadBuilder does not dynamically locate files inside ZIP archives. If your provided archive has a different folder structure than expected, the process will fail abruptly. Ensure your archive matches the expected format if specifying an existing copy.
File Extraction & Copying
- Extracts all necessary files automatically.
- Prepares the USB drive for the BadUpdate exploit by copying all required files.
- Includes optional content packs such as ABadAvatar and the Aurora Dashboard.
Requirements
- .NET 8.0 Desktop Runtime (required to run framework-dependent builds)
Build
Run these commands from the repository root:
dotnet restore
dotnet build BadBuilder.sln
To publish a self-contained single-file release for 64-bit Windows:
dotnet publish BadBuilder/BadBuilder.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
If you want the runtime bundled but with trimming and compression enabled (smaller exe, may require extra testing):
dotnet publish BadBuilder/BadBuilder.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true -p:EnableCompressionInSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=false
To create framework-dependent single-file publishes (requires .NET 8 runtime on the target machine), omit --self-contained true and pick the architecture you need:
dotnet publish BadBuilder/BadBuilder.csproj -c Release -r win-x64 -p:SelfContained=false -p:PublishSingleFile=true
dotnet publish BadBuilder/BadBuilder.csproj -c Release -r win-x86 -p:SelfContained=false -p:PublishSingleFile=true
dotnet publish BadBuilder/BadBuilder.csproj -c Release -r win-arm64 -p:SelfContained=false -p:PublishSingleFile=true
How to Use
- Launch the executable. It will open inside of a Terminal window.
- Formatting (Windows Only): BadBuilder will format your USB drive as FAT32, even if it’s larger than 32GB.
Caution
Formatting a disk means that all data will be lost. Make sure you have selected the right drive before confirming the format. I am not responsible for any data loss.
- Download Files: BadBuilder will fetch the required exploit files or let you specify an existing location. This includes the ABadAvatar payload, XeUnshackle, Aurora Dashboard, Rock Band Blitz, XeXMenu, and Simple 360 NAND Flasher.
- Extract Files: BadBuilder will automatically extract everything needed.
- Configure Payload: BadBuilder automatically configures XeUnshackle as the default payload for BadUpdate.
- Copy Files: BadBuilder will copy all of the extracted files to the correct locations, including deploying the Aurora Dashboard to
Apps\Aurora.
Example Homebrew Folder Structure
If you want to add Aurora, you would select the root folder, like:
D:\Aurora 0.7b.2 - Release Package
Which contains:
Aurora 0.7b.2 - Release Package/
├── Data/
├── Media/
├── Plugins/
├── Skins/
├── User/
├── Aurora.xex
├── live.json
├── nxeart
BadBuilder will detect Aurora.xex as the entry point and patch it accordingly.
Important
Homebrew apps which do not contain the entry point in the root folder will require you to manually enter the path of the entry point.
Reporting Issues
If you encounter any problems, please create a new issue with details about your setup and the problem.
Credits
- Pdawg-bytes: BadBuilder
- Grimdoomer: BadUpdate
- shutterbug2000: ABadAvatar
- Phoenix: Aurora Dashboard
- Byrom90: XeUnshackle
- Swizzy: Simple 360 NAND Flasher
- Team XeDEV: XeXMenu