# Rocknix + ABL on handhelds: flashing and unbricking guide

> AI Release · @ai_release1 · https://ai-release.org/guides/rocknix-abl-proshivka-konsoli_en.html

## TL;DR
- **Time:** 45–90 minutes, depending on whether ROCKNIX is already installed.
- **Difficulty:** Intermediate.
- **You need:** a handheld with the **ROCKNIX bootloader**, the exact ROCKNIX image for your model, a microSD card and reader, `balenaEtcher` or `dd`, a USB cable, `adb`/`fastboot`, and the `kingsleydon/abl-dualboot` project files.
- **Result:** one-tap switching between Android and Linux through an Android Quick Settings tile, a Decky plugin, or a Linux script.
- **Hard stop:** ABL Dual Boot requires a device with the ROCKNIX bootloader. The project states it will not work on other bootloaders.

## Requirements and setup
![Illustration: Requirements and setup](https://ai-release.org/guides/img/rocknix-abl-proshivka-konsoli-en-1.jpg?v=1793695508)

- A portable console whose exact model is supported by ROCKNIX. Confirm this in the official ROCKNIX documentation before downloading anything.
- The ROCKNIX image built for that exact model. Do not use an image for another revision or model.
- A microSD card and card reader, or the device’s documented boot medium. The supported medium is device-specific — check the ROCKNIX documentation.
- A host machine with `adb`, `fastboot`, and either `balenaEtcher` or GNU `dd`.
- Administrative rights on the host for writing a raw disk image.
- The `kingsleydon/abl-dualboot` project files. The project contains three parts:
  - an Android app with a Quick Settings tile;
  - a Decky plugin;
  - a Linux script.
- A backup of Android data and a known-good ROCKNIX image you can reflash if boot fails.
- An existing Android installation on the device. This guide covers the ABL Dual Boot switch, not creating an Android system from scratch.

Checklist before touching disks:

- [ ] Exact device model recorded.
- [ ] ROCKNIX support confirmed for that model.
- [ ] ROCKNIX image downloaded from the official source.
- [ ] Published checksum saved.
- [ ] ABL Dual Boot project files downloaded.
- [ ] `adb` and `fastboot` available on the host.
- [ ] Backup made and recovery image kept.
- [ ] Console charged; do not flash on a low battery.

**Example:** confirm the host tools are present before connecting the console.

```bash
adb version
fastboot --version
```

Expected: both commands print a version line. If either command is missing, install the Android platform tools first.

If you have never installed an APK outside an app store, use the verification routine in [WordCraft APK for Android: download, verify and install safely](https://ai-release.org/guides/wordcraft-apk-android-skachat.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide). The same rule applies here: verify the file before installing it.

## Step 1. Confirm the ROCKNIX bootloader and stage the correct files

**What to do:** boot the console and confirm that it reaches ROCKNIX. Then download the exact ROCKNIX image and the ABL Dual Boot project files, and record their checksums.

**Why:** ABL Dual Boot is not a generic Android dual-boot patch. It explicitly requires a device with the ROCKNIX bootloader. If the console is still on a different bootloader, the project’s switch components are not a supported path. Checking this first prevents you from writing an incompatible image.

**How to check:** the console should show the ROCKNIX boot screen or boot menu. If it boots straight to Android and you have no evidence of a ROCKNIX bootloader, stop and check the project requirements — do not experiment with an image for another model.

On the host, verify the downloaded image:

```bash
sha256sum rocknix-<device>-<version>.img
```

Expected: one 64-character SHA-256 digest. Compare it with the checksum published with the image. If the file is compressed, checksum the archive as published; do not compare a decompressed image against an archive checksum.

**Example:** a valid result looks like this, where `<64-hex-digest>` is the published value:

```text
<64-hex-digest>  rocknix-<device>-<version>.img
```

The exact image filename, supported boot medium, and flashing method are device-specific. Confirm them in the ROCKNIX documentation — **do not guess**. The download-and-verify pattern is the same as in [Sideraven: install from GitHub and migrate your bookmarks](https://ai-release.org/guides/sideraven-ustanovka-s-github.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide): download, verify, then install.

## Step 2. Write the ROCKNIX image to the correct boot medium
![Illustration: Step 2. Write the ROCKNIX image to the correct boot medium](https://ai-release.org/guides/img/rocknix-abl-proshivka-konsoli-en-2.jpg?v=1793695515)


**What to do:** write the verified ROCKNIX image to the microSD card or the documented boot medium. If ROCKNIX is already installed and booting, skip this step and go to Step 3.

**Why:** most “brick” reports at this stage come from writing the image to the wrong disk, using an image for another model, or interrupting the write. The console itself is usually recoverable; the host disk you overwrite may not be.

**How to check:** identify the card by size, model, and transport before writing. Then boot the console and confirm that ROCKNIX starts.

```bash
lsblk -o NAME,SIZE,MODEL,TRAN
```

Example output:

```text
NAME        SIZE MODEL              TRAN
mmcblk0    29.7G SD Card Reader     usb
nvme0n1   476.9G System Disk        nvme
```

In this example, `/dev/mmcblk0` is the card and `/dev/nvme0n1` is the host system disk. Write only to the whole card device, not to a partition such as `/dev/mmcblk0p1`.

```bash
sudo dd if=rocknix-<device>-<version>.img of=/dev/sdX bs=4M status=progress conv=fsync
sync
```

Replace `/dev/sdX` with the whole-disk path from `lsblk`. Check the path twice before pressing Enter. `conv=fsync` forces the data out before `dd` exits; `sync` gives the card one more flush. This is why the final write is less likely to be truncated.

If you use `balenaEtcher`, select the verified image and the correct card, then flash. Do not select a host disk.

After writing, insert the card, boot the console, and confirm that ROCKNIX starts. If the console drops into a bootloader menu or shows no bootable medium, recheck the image for the exact model and repeat the write with the verified file. If the model requires a different installation method, follow the official ROCKNIX instructions — **do not invent a partition layout**.

## Step 3. Install ABL Dual Boot and test both switch directions
![Illustration: Step 3. Install ABL Dual Boot and test both switch directions](https://ai-release.org/guides/img/rocknix-abl-proshivka-konsoli-en-3.jpg?v=1793695524)


**What to do:** install the three ABL Dual Boot components from the `kingsleydon/abl-dualboot` project: the Android app, the Decky plugin, and the Linux script. Then test one switch at a time.

**Why:** each component covers a different place where you might want to switch: Android’s Quick Settings panel, the Decky UI on the Linux side, and a script inside ROCKNIX. Installing only one leaves the other direction untested.

| Component | Runs on | Purpose | Check |
|---|---|---|---|
| Android app | Android | Adds a Quick Settings tile for switching | Tile is visible in the Quick Settings edit screen |
| Decky plugin | Linux/Decky UI | Adds a switch control in Decky | Plugin appears in Decky after installation |
| Linux script | ROCKNIX | Triggers a switch from the Linux side | Script runs and the console reboots to Android |

Install the Android APK with `adb`:

```bash
adb install -r <abl-dualboot-android-app>.apk
```

Expected output:

```text
Success
```

Open the app once, then add its tile: pull down Quick Settings, choose the edit/tile layout control, and drag the ABL Dual Boot tile into the active tiles. The exact Android menu label varies by build; the check is that the tile appears and can be placed.

For the Decky plugin, use the installation method documented by the project and confirm the plugin is listed in Decky. For the Linux script, make it executable before running it:

```bash
chmod +x <abl-dualboot-linux-script>
```

Then run it exactly as documented by the project. Expected result: the console reboots into Android. If the project README does not give an exact command, stop and use the project’s instructions — do not rename or relocate the script.

Test in this order:

1. From ROCKNIX, run the Linux script. Expected: Android starts.
2. From Android, tap the Quick Settings tile. Expected: ROCKNIX starts.
3. From the Decky UI, trigger the plugin. Expected: the same switch behavior.

Success means each action lands in the other operating system without stopping at a bootloader or recovery screen. If the first switch fails, do not continue testing the other components; keep the ROCKNIX recovery medium available.

## Troubleshooting

**Problem. The APK will not install and `adb` sees no device**
- Error: `adb: no devices/emulators found`
- Cause: USB debugging is off, the cable is charge-only, the driver is missing, or the host has not been authorized by Android.
- Solution: enable Developer options and USB debugging on the console, reconnect the cable, then run:
```bash
adb kill-server
adb start-server
adb devices
```
Expected: the device serial appears with state `device`, not `unauthorized`. If it shows `unauthorized`, unlock the console and accept the RSA fingerprint prompt.

**Problem. The ROCKNIX image fails checksum verification**
- Error: `sha256sum: WARNING: 1 computed checksum did NOT match`
- Cause: incomplete download, a mirror serving a different file, or comparing the checksum of a decompressed image against the checksum of the compressed archive.
- Solution: delete the file, download it again from the official source, and compare the published checksum against the file you actually downloaded. If a `.sha256` file is provided, use:
```bash
sha256sum -c rocknix-<device>-<version>.sha256
```
Do not write an image that fails verification.

**Problem. `dd` cannot open the target device**
- Error: `dd: failed to open '/dev/sdX': No such file or directory`
- Cause: the card reader is not connected, the device path changed, or `/dev/sdX` is a placeholder that was not replaced.
- Solution: reconnect the reader and list disks again:
```bash
lsblk -o NAME,SIZE,MODEL,TRAN
```
Use the whole-disk path shown for the card. If the error is `Permission denied`, confirm the path first and then rerun with `sudo`. Never use a partition path such as `/dev/sdX1` for a full image write.

## Summary and next steps
Confirm the ROCKNIX bootloader, verify the exact image, and write it only to the correct disk. Then install the Android tile, Decky plugin, and Linux script, and test both switch directions before you rely on the console.

## FAQ

**Does ABL Dual Boot work on any Android handheld?**
No. It requires a device with the ROCKNIX bootloader. The project states that other bootloaders are not supported.

**Do I need a PC to switch operating systems after setup?**
No for daily switching. The project provides an Android Quick Settings tile, a Decky plugin, and a Linux script. A PC is needed for the initial file transfer and APK installation.

**Which parts are included in the ABL Dual Boot project?**
Three parts: an Android app with a Quick Settings tile, a Decky plugin, and a Linux script.

**What if my device model is not listed in the ROCKNIX documentation?**
Stop. Do not flash an image built for another model. Check the official ROCKNIX support information and the `kingsleydon/abl-dualboot` project notes; without ROCKNIX bootloader support, ABL Dual Boot is not a supported path.
