balenaEtcher or dd, a USB cable, adb/fastboot, and the kingsleydon/abl-dualboot project files.
adb, fastboot, and either balenaEtcher or GNU dd.kingsleydon/abl-dualboot project files. The project contains three parts:- an Android app with a Quick Settings tile;
- a Decky plugin;
- a Linux script.
Checklist before touching disks:
adb and fastboot available on the host.Example: confirm the host tools are present before connecting the console.
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. The same rule applies here: verify the file before installing it.
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:
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:
<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: download, verify, then install.

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.
lsblk -o NAME,SIZE,MODEL,TRAN
Example output:
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.
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.

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:
adb install -r <abl-dualboot-android-app>.apk
Expected output:
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:
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.
Problem. The APK will not install and adb sees no device
adb: no devices/emulators foundadb 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
sha256sum: WARNING: 1 computed checksum did NOT match.sha256 file is provided, use:sha256sum -c rocknix-<device>-<version>.sha256
Do not write an image that fails verification.
Problem. dd cannot open the target device
dd: failed to open '/dev/sdX': No such file or directory/dev/sdX is a placeholder that was not replaced.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.
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.
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.