### Embed Video for Module Installation HTML
Source: https://docs.flipper.net/zero/video-game-module/quick-start
This HTML snippet embeds a video demonstrating the installation of the Video Game Module. It uses the video element with autoplay, muted, loop, and playsinline attributes for seamless playback. No external dependencies; inputs are the video source URL; outputs an embedded video player; limited to compatible browsers supporting HTML5 video.
```html
```
--------------------------------
### Install udev Rules for qFlipper (Linux)
Source: https://docs.flipper.net/zero/basics/firmware-update
This command installs udev rules for qFlipper on Linux systems, allowing it to be used as a normal user. It requires executing the AppImage with the 'rules install' argument, optionally specifying a path for the rules directory.
```bash
./qFlipper-x86_64.AppImage rules install [/optional/path/to/rules/dir]
```
--------------------------------
### Info Callout for Module Detection HTML
Source: https://docs.flipper.net/zero/video-game-module/quick-start
This HTML snippet renders an informational callout box for troubleshooting Video Game Module detection on Flipper Zero. It uses div elements with classes for styling. No dependencies; inputs are the text content; outputs a styled info message; limited to basic structure without additional CSS.
```html
If your Video Game Module isn’t detected, make sure that on your Flipper Zero in Main Menu -> Settings -> Expansion Modules, the Listen UART option is set to USART. The module won’t be detected if any other option is selected.
```
--------------------------------
### Update Commands
Source: https://docs.flipper.net/zero/development/cli
Commands for installing updates, creating backups, and restoring from backups on Flipper Zero.
```APIDOC
## update install
### Description
Verifies and installs an update package from the specified path.
### Command
update install
### Parameters
#### Arguments
- **path** (string) - Required - Path to the .fuf update file
### Request Example
update install /ext/update.fuf
### Response
#### Success Response
Update installed.
#### Response Example
Update verification and installation complete.
## update backup
### Description
Creates a backup of internal storage to the specified tar file.
### Command
update backup
### Parameters
#### Arguments
- **path** (string) - Required - Path for the backup tar file
### Request Example
update backup /ext/backup.tar
### Response
#### Success Response
Backup created.
#### Response Example
Internal storage backed up.
## update restore
### Description
Restores internal storage from the specified backup tar file.
### Command
update restore
### Parameters
#### Arguments
- **path** (string) - Required - Path to the backup tar file
### Request Example
update restore /ext/backup.tar
### Response
#### Success Response
Restore complete.
#### Response Example
Restored from backup.
```
--------------------------------
### qFlipper Download Script (JavaScript)
Source: https://docs.flipper.net/zero/qflipper
This JavaScript code dynamically retrieves the latest qFlipper download links for macOS, Windows, and Linux based on the user's operating system. It updates the download button with appropriate links and versions.
```JavaScript
(() => {
const qFlipper = { version: '', links: { macOS: '', Windows: '', Linux: '' } }
let os = 'Windows'
if (navigator.userAgent.includes('Macintosh')) { os = 'macOS' } else if (navigator.userAgent.includes('Linux') && !navigator.userAgent.includes('Android')) { os = 'Linux' } else { os = 'Windows' }
function findLatest (versions) { let max = 0; versions.forEach(e => { if (e.timestamp > max) { max = e.timestamp } }); return versions.find(e => e.timestamp === max) }
fetch('https://update.flipperzero.one/qFlipper/directory.json').then((response) => { return response.json() }).then(data => {
const release = data.channels.find(e => e.id === 'release')
let max = 0
release.versions.forEach(e => { if (e.timestamp > max) { max = e.timestamp } })
const latest = findLatest(release.versions)
qFlipper.version = latest.version
qFlipper.links.macOS = latest.files.find(e => e.target === 'macos/amd64').url
qFlipper.links.Windows = latest.files.find(e => e.target === 'windows/amd64' && e.type === 'installer').url
qFlipper.links.Linux = latest.files.find(e => e.target === 'linux/amd64').url
document.querySelector('[href=current]').innerHTML = 'Download qFlipperfor
' + os + ''
document.querySelector('[href=current]').setAttribute('href', qFlipper.links[os])
document.querySelector('[href=macOS]').setAttribute('href', qFlipper.links.macOS)
document.querySelector('[href=Windows]').setAttribute('href', qFlipper.links.Windows)
document.querySelector('[href=Linux]').setAttribute('href', qFlipper.links.Linux)
})
fetch('https://update.flipperzero.one/firmware/directory.json').then((response) => { return response.json() }).then(data => {
const dev = data.channels.find(e => e.id === 'development')
const rc = data.channels.find(e => e.id === 'release-candidate')
const release = data.channels.find(e => e.id === 'release')
let latest = findLatest(dev.versions)
document.querySelector('[href=dev]').innerHTML = 'Dev Unstable ' + latest.version + ''
document.querySelector('[href=dev]').setAttribute('href', latest.files.find(e => e.target === 'f7' && e.type === 'full_dfu').url)
latest = findLatest(rc.versions)
document.querySelector('[href=rc]').innerHTML = 'Release Candidate ' + latest.version + ''
document.querySelector('[href=rc]').setAttribute('href', latest.files.find(e => e.target === 'f7' && e.type === 'full_dfu').url)
latest = findLatest(release.versions)
document.querySelector('[href=release]').innerHTML = 'Latest Release ' + latest.version + ''
document.querySelector('[href=release]').setAttribute('href', latest.files.find(e => e.target === 'f7' && e.type === 'full_dfu').url)
})
})();
```
--------------------------------
### System Control Commands
Source: https://docs.flipper.net/zero/development/cli
Commands for managing system debug and heap tracking in Flipper Zero.
```APIDOC
## sysctl debug
### Description
Enables or disables system debug mode.
### Command
sysctl debug <0/1>
### Parameters
#### Arguments
- **enable** (0/1) - Required - 1 to enable, 0 to disable
### Request Example
sysctl debug 1
### Response
#### Success Response
Debug mode toggled.
#### Response Example
System debug enabled.
## sysctl heap_track
### Description
Enables or disables heap allocation tracking mode.
### Command
sysctl heap_track
### Parameters
#### Arguments
- **mode** (none/main) - Required - 'main' to enable, 'none' to disable
### Request Example
sysctl heap_track main
### Response
#### Success Response
Heap tracking toggled.
#### Response Example
Heap tracking enabled.
```
--------------------------------
### Detect OS and fetch qFlipper download links
Source: https://docs.flipper.net/zero/basics/firmware-update
JavaScript snippet that detects the user's operating system and dynamically updates download links for qFlipper based on the latest version available from the Flipper Zero update server.
```JavaScript
(() => {
const qFlipper = { version: '', links: { macOS: '', Windows: '', Linux: '' } }
let os = 'Windows'
if (navigator.userAgent.includes('Macintosh')) { os = 'macOS' } else if (navigator.userAgent.includes('Linux') && !navigator.userAgent.includes('Android')) { os = 'Linux' } else { os = 'Windows' }
function findLatest (versions) {
let max = 0
versions.forEach(e => { if (e.timestamp > max) { max = e.timestamp } })
return versions.find(e => e.timestamp === max)
}
fetch('https://update.flipperzero.one/qFlipper/directory.json').then((response) => { return response.json() }).then(data => {
const release = data.channels.find(e => e.id === 'release')
let max = 0
release.versions.forEach(e => { if (e.timestamp > max) { max = e.timestamp } })
const latest = findLatest(release.versions)
qFlipper.version = latest.version
qFlipper.links.macOS = latest.files.find(e => e.target === 'macos/amd64').url
qFlipper.links.Windows = latest.files.find(e => e.target === 'windows/amd64' && e.type === 'installer').url
qFlipper.links.Linux = latest.files.find(e => e.target === 'linux/amd64').url
document.querySelector('[href="current"]').innerHTML = 'Download qFlipperfor
' + os + ''
document.querySelector('[href="current"]').setAttribute('href', qFlipper.links[os])
document.querySelector('[href="macOS"]').setAttribute('href', qFlipper.links.macOS)
document.querySelector('[href="Windows"]').setAttribute('href', qFlipper.links.Windows)
document.querySelector('[href="Linux"]').setAttribute('href', qFlipper.links.Linux)
})
})()
```
--------------------------------
### Create dynamic qFlipper download button with OS detection
Source: https://docs.flipper.net/zero/basics/first-start
HTML, CSS, and JavaScript code that renders a styled download button and uses client-side OS detection to fetch the latest qFlipper release from the Flipper update server. The script updates the button label and link according to the detected platform. Requires internet access and a modern browser.
```HTML/JavaScript
\n\n
```