mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-25 03:29:58 -07:00
4.4 KiB
4.4 KiB
js_badusb
BadUSB module
let badusb = require("badusb");
Methods
setup
Start USB HID with optional parameters. Should be called before all other methods. Automatically unlocks USB profile, so qFlipper connection will be interrupted.
Parameters
Configuration object (optional):
- vid, pid (number): VID and PID values, both are mandatory
- mfrName (string): Manufacturer name (32 ASCII characters max), optional
- prodName (string): Product name (32 ASCII characters max), optional
- layoutPath (string): Path to keyboard layout file, optional
Examples:
// Start USB HID with default parameters
badusb.setup();
// Start USB HID with custom vid:pid = AAAA:BBBB, manufacturer and product strings not defined
badusb.setup({ vid: 0xAAAA, pid: 0xBBBB });
// Start USB HID with custom vid:pid = AAAA:BBBB, manufacturer string = "Flipper Devices", product string = "Flipper Zero"
badusb.setup({ vid: 0xAAAA, pid: 0xBBBB, mfr_name: "Flipper Devices", prod_name: "Flipper Zero" });
isConnected
Returns USB connection state.
Example:
if (badusb.isConnected()) {
// Do something
} else {
// Show an error
}
press
Press and release a key.
Parameters
Key or modifier name, key code.
See a list of key names below.
Examples:
badusb.press("a"); // Press "a" key
badusb.press("A"); // SHIFT + "a"
badusb.press("CTRL", "a"); // CTRL + "a"
badusb.press("CTRL", "SHIFT", "ESC"); // CTRL + SHIFT + ESC combo
badusb.press(98); // Press key with HID code (dec) 98 (Numpad 0 / Insert)
badusb.press(0x47); // Press key with HID code (hex) 0x47 (Scroll lock)
hold
Hold a key. Up to 5 keys (excluding modifiers) can be held simultaneously.
Parameters
Same as press
Examples:
badusb.hold("a"); // Press and hold "a" key
badusb.hold("CTRL", "v"); // Press and hold CTRL + "v" combo
release
Release a previously held key.
Parameters
Same as press
Release all keys if called without parameters
Examples:
badusb.release(); // Release all keys
badusb.release("a"); // Release "a" key
Print a string.
Parameters
- A string to print
- (optional) delay between key presses
Examples:
badusb.print("Hello, world!"); // print "Hello, world!"
badusb.print("Hello, world!", 100); // Add 100ms delay between key presses
println
Same as print but ended with "ENTER" press.
Parameters
- A string to print
- (optional) delay between key presses
Examples:
badusb.println("Hello, world!"); // print "Hello, world!" and press "ENTER"
altPrint
Prints a string by Alt+Numpad method - works only on Windows!
Parameters
- A string to print
- (optional) delay between key presses
Examples:
badusb.altPrint("Hello, world!"); // print "Hello, world!"
badusb.altPrint("Hello, world!", 100); // Add 100ms delay between key presses
altPrintln
Same as altPrint but ended with "ENTER" press.
Parameters
- A string to print
- (optional) delay between key presses
Examples:
badusb.altPrintln("Hello, world!"); // print "Hello, world!" and press "ENTER"
quit
Releases usb, optional, but allows to interchange with usbdisk.
Examples:
badusb.quit();
usbdisk.start(...)
Key names list
Modifier keys
| Name |
|---|
| CTRL |
| SHIFT |
| ALT |
| GUI |
Special keys
| Name | Notes |
|---|---|
| DOWN | Down arrow |
| LEFT | Left arrow |
| RIGHT | Right arrow |
| UP | Up arrow |
| ENTER | |
| DELETE | |
| BACKSPACE | |
| END | |
| HOME | |
| ESC | |
| INSERT | |
| PAGEUP | |
| PAGEDOWN | |
| CAPSLOCK | |
| NUMLOCK | |
| SCROLLLOCK | |
| PRINTSCREEN | |
| PAUSE | Pause/Break key |
| SPACE | |
| TAB | |
| MENU | Context menu key |
| Fx | F1-F24 keys |
| NUMx | NUM0-NUM9 keys |