
A beginner-friendly application for switching between reMarkable OS versions with an interactive interface.
Supports reMarkable 1 and 2 at this time.
Features
- TUI interface - Clean, boxed layout with color-coded partitions
- Interactive version switching - Select which version to boot next with arrow keys
- Real-time status display - Shows current active partition and next boot selection
- Smart partition mapping - Consistent A/B labeling (A=p2, B=p3)
- Integrated reboot option - Choose to reboot immediately or defer to next restart
Installation
Download Latest Release
For reMarkable 1 & 2 (ARMv7):
wget https://github.com/rmitchellscott/rm-version-switcher/releases/latest/download/rm-version-switcher.tar.gz
tar -xzf rm-version-switcher.tar.gz
Verify installation:
rm-version-switcher --help
Manual Copy to Device
Alternatively, copy the binary directly to your reMarkable device:
# Copy to reMarkable 1/2 (replace with your device IP)
scp rm-version-switcher root@10.11.99.1:~/
Usage
Interactive Mode
./rm-version-switcher
Shows the overview, allows you to change the next boot partition, and optionally reboot immediately.
View Only Mode
./rm-version-switcher --show-only
Display current partition status without any interactive options.
Building
Prerequisites
Install Dependencies
go mod tidy
GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0 go build -o rm-version-switcher .
Build for Development/Testing
# Current platform (for testing with --dry-run)
go build -o rm-version-switcher .
Interface
Overview Display
┌──────────────────────────────────────────────────┐
│ reMarkable OS Version Switcher │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ Partition A: 3.20.0.92 [NEXT BOOT] │
│ Partition B: 3.18.2.3 [ACTIVE] │
└──────────────────────────────────────────────────┘
Color Coding
- Green: Active partition version numbers and [NEXT BOOT] when on active partition
- Blue: Fallback partition version numbers
- Yellow: [NEXT BOOT] when on fallback partition
Labels
- [ACTIVE]: Currently running partition
- [NEXT BOOT]: Partition that will boot after next reboot
How It Works
The application follows the same proven logic as the reference switch.sh:
- Detects current state using
rootdev and fw_printenv
- Reads version information from
/usr/share/remarkable/update.conf
- Updates boot environment using
fw_setenv commands:
upgrade_available=1
bootcount=0
fallback_partition={old_partition}
active_partition={new_partition}
Dependencies