99 lines
4.6 KiB
Markdown
99 lines
4.6 KiB
Markdown
# 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**.
|
||
|
||
## 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
|
||
1. **Launch the executable**. It will open inside of a Terminal window.
|
||
2. **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.
|
||
3. **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.
|
||
4. **Extract Files:** BadBuilder will automatically extract everything needed.
|
||
5. **Configure Payload:** BadBuilder automatically configures [XeUnshackle](https://github.com/Byrom90/XeUnshackle) as the default payload for BadUpdate.
|
||
6. **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](https://github.com/Pdawg-bytes)
|
||
- **Grimdoomer:** [BadUpdate](https://github.com/grimdoomer/Xbox360BadUpdate)
|
||
- **shutterbug2000:** [ABadAvatar](https://github.com/shutterbug2000/ABadAvatar)
|
||
- **Phoenix:** [Aurora Dashboard](https://phoenix.xboxunity.net/#/news)
|
||
- **Byrom90:** [XeUnshackle](https://github.com/Byrom90/XeUnshackle)
|
||
- **Swizzy:** [Simple 360 NAND Flasher](https://github.com/Swizzy/XDK_Projects)
|
||
- **Team XeDEV:** XeXMenu
|