| Crates.io | flashthing |
| lib.rs | flashthing |
| version | 0.1.5 |
| created_at | 2025-03-05 16:54:38.649609+00 |
| updated_at | 2025-03-05 17:26:39.110836+00 |
| description | tool for flashing your Spotify Car Thing |
| homepage | https://github.com/JoeyEamigh/flashthing |
| repository | https://github.com/JoeyEamigh/flashthing.git |
| max_upload_size | |
| id | 1579238 |
| size | 3,201,325 |
FlashThing is a tool for quickly and easily flashing the Spotify Car Thing (Superbird). FlashThing is composed of three parts:
FlashThing currently supports flashing the Stock partition tables as well as custom partition tables using a subset of the Terbium meta.json standard. Read more about that standard in the docs.
cargo add flashthing
cargo install flashthing-cli
npm install flashthing
yarn add flashthing
pnpm add flashthing
bun add flashthing
FlashThing requires libusb to be installed, and a udev rule must be set up to access the Car Thing. To install the udev rule, run the following command:
sudo flashthing-cli --udev
FlashThing requires libusb to be installed. You can install it using Homebrew:
brew install libusb
See docs.rs and the cli for more information.
Note: The documentation is very basic, sorry!
❯ flashthing-cli --help
cli for flashing the Spotify Car Thing
Usage: flashthing-cli [OPTIONS] [PATH]
Arguments:
[PATH] Path to a zip file or a directory. Defaults to the current working directory if omitted
Options:
-s, --stock Whether the directory or archive contains a stock dump with no `meta.json` file
--unbrick Whether to unbrick the device
--setup setup host - this currently only sets up udev rules on Linux
-h, --help Print help
-V, --version Print version
import { FlashThing, type FlashEvent } from 'flashthing';
const callback = (event: FlashEvent) => {
console.log('Flash event:', event);
};
const flasher = new FlashThing(callback);
await flasher.openArchive('path/to/archive.zip');
console.log(`Total flashing steps: ${flasher.getNumSteps()}`);
await flasher.flash();
.
├── bindings # N-API bindings
├── cli # command line interface
└── lib # main library - has all the logic