Installation Iode-Fastboot too old

I tried to install Iode 4.1 on a OnePlus 9 Pro (new installation, no update). When it comes to the execution of file, I got the following message:

./iode-4.1-20230401-lemonadep-fastboot/ 18: --version: not found
./iode-4.1-20230401-lemonadep-fastboot/ 18: [: -ge: unexpected operator
fastboot too old; please download the latest version at SDK 플랫폼 도구 출시 노트  |  Android 개발자  |  Android Developers

The computer runs on a Linux system (Debian Bullseye). Adb and Fastboot are updated with the Backports to version 29. Use of the platform-tools from resulted in the same message as above.

Honestly, afterwards I tried to delete the Fastboot version check in the script (lines 18 to 21) and install Iode. The brought a very mess as the old OS is corrupt and the Iode not properly installed. The bootloader of the mobile device is actually unlocked and the device is in Fastboot mode.

Any idea how to overcome the Fastboot version check? Many thanks for your help.

Hi Tom,

I have ran in to the exact same issue this evening trying to install Iode OS on a OnePlus 9 Pro. Like you I am on Debian 11.

Have you managed to solve this issue since posting?

Any help much appreciated.



I will write you two guys the solution for bullseye tomorrow morning.
Now its to late and I’m not at my laptop

Folks, here an instruction how to get an actual platform-tools to debian stable
I’m using MX Linux, but anyhow, it’s based on debian stable (Bullseye). So it shouild be the same instructions:

Download latest platform-tools from here:

De-Install all platform-tools, adb, fastboot from your system. Stable, Testing, Dabian Backporting…

Extract downloaded platform-tools.
You should get an extracted folder “platform-tools” with all the binaries in it.

You can now copy this folder wherever you want and modify the $PATH variable.
But, this is not necessary and too complicated.
Debian has already a functionality to use own binaries in a pre-configured $PATH

These both paths are pre-configured:

$ cat .profile
~/.profile: executed by the command interpreter for login shells.
This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
see /usr/share/doc/bash/examples/startup-files for examples.
the files are located in the bash-doc package.

the default umask is set in /etc/profile; for setting the umask
for ssh logins, install and configure the libpam-umask package.
umask 022

if running bash
if [ -n “$BASH_VERSION” ]; then
include .bashrc if it exists
if [ -f “$HOME/.bashrc” ]; then
. “$HOME/.bashrc”

set PATH so it includes user’s private bin if it exists
if [ -d “$HOME/bin” ] ; then

set PATH so it includes user’s private bin if it exists
if [ -d “$HOME/.local/bin” ] ; then

now, it depends on you if you want to use $HOME/bin or $HOME/.local/bin

I’m using $HOME/bin

Create the folder bin in your home → you have to create this folder, it is not there by default
Copy the complete content of the extracted folder Platform-tools to $HOME/bin
Logout and Login again, to take effect of the new $PATH
That’s it

Now you can use the latest adb and fastboot
You should can use it from everywhere, because it’s in $PATH varible

To test if you have the right one:
which adb
should print: $HOME/bin/adb
adb --version
should print: 34.0.1 (day I wrote this 20230502)

Let’s see what’s next Debian stable (bookworm, should release beginning of june) brings, but with that solution, you can always have latest platform tools


@AlphaElwedritsch: Thank you for your kind feedback and advice. This helped a lot and brought me to the right direction. I could finally install Iodé on my mobile phone. Iodé now works excellet and all right.

@magljo: Please drop me a note here, if you can not proceed with the advice of AlphaElwedritsch. I will check within the next days and try to further help with my experiences.


@AlphaElwedritsch Thank you so much for your help and for posting the detailed instructions, I was able to install Iode using your guide.

Very much appreciated.

1 Like

@Tom55 Thank you for the offer of further support.

I do have one issue left which I haven’t been able to fix. After Iode initially loaded I then tried to lock the bootloader however I could then only access the bootloader menu.

I found this post below which enabled me to boot into Iode again after changing the active slot from a to b but I still haven’t worked out how to lock the bootloader.

I probably missed something obvious in the installation process, so I’ll search for a solution this week.

Thanks again for your help.

Great to hear that you had a success too.

I tried to close the bootloader too (fastboot flashing lock). However, please do not try this as it completely wiped away the system and I had to reinstall Iodé. Based on the installing instructions of Iodé, it seems that it is not possible to close the bootloader of a OnePlus 9 again (other than for a Fairphone or a Pixel). Maybe somebody else more competent can answer this question in more detail.

1 Like

Bootloader locking for oneplus 9series on custom roms became an issue, not possible, around May last year. Oppo taking over oneplus, and android 12 changed things. CalyxOS had builds up until they could not find a way to relock the devices.

I had a oneplus 9 on Calyx at the time. When it became no longer supported I found that it was not possible to lock bootloder on stock android 12. On 11 it would lock, but it would refuse to boot upgrades to 12. I sent it back.

1 Like

@chrisrg Well that saves me spending time trying to find a way to lock the bootloader.

Thanks for the link, very informative.

I’m sure the open source community will find a solution in time - although I guess installing some apps, e.g banking etc. isn’t going to work for now.