BlackBerry Key2

1: Prerequsites

NOTE: The tutorial is meant for the blackberry key2(le) but will work for other android devices.

You have ADB and fastboot installed

Your device is running LineageOS, if it's not see the article below

The APatch app is installed from either github or F-Droid.

2.1: Patching boot.img

Get the boot.img from inside of the zip file of the ROM you currently have flashed and move it to your devices's internal storage

Open the APatch app and select the left most icon in the top bar

Select 'Select a boot image to patch' and point it to your boot.img

Enter a password the SuperKey box

NOTE: Make sure to write it down somewhere as you will need it later

Move the outputted .img file to you computer.

2.2: Flashing APatch

Power off your phone.

Once you phone is fully powered off hold the power and volume down buttons until the bootloader is shown.

Connect your phone to your computer

Run the following commands:

  • fastboot flash boot /path/to/apatch_patched_{random_text}.img
  • fastboot reboot

Once the device finishes booting open the APatch app

Enter your SuperKey into the superkey box then select 'Install Android Patch'

3: Flashing Modules

Download Integrity-Box from here, you need '{version}-Integrity-Box-{DD}-{MM}-{YYYY}.zip'.

Download NeoZygisk from here, you need 'NeoZygisk-{version}-release.zip'.

Download TEESimulator from here, you need 'TEESimulator-{version}-Release.zip'.

Download Zygisk-Assistant from here, you need 'Zygisk-Assistant-{version}-{commitID}-release.zip'.

Open APatch and enter the APModule tab. (second from the right)

Press the floating button, it will open a file browser, open one of the downloaded zip files.

Once the restart button appears press the back key. DO NOT PRESS RESTART.

If you get a /data/adb/apd: inaccessible or not found error reboot you phone then try again

Repeat the previous to instructions until you have installed all 4 downloaded zip files.

Reboot device and once it finishes open the APModule tab again

On the card for .Integrity Box tap the 'Action' button

(Optional): Configure Integrity Box, you can open it's configuration utility by pressing the 'Open' button on it's card in APModule

If you need to hide all system modifications from an app go into APatch's superuser(center) tab and tap on the app's name then enable the 'Exclude modifications' toggle.

You may need to disable the Zygisk Assistant module for google wallet tap to pay to work properly.

1: Prerequisites

NOTE: If you have any questions or issues you can ask in the BlackBerry Android hideout discord server, the invite is https://discord.gg/BuJURQD6Qb

A BlackBerry key2, the key2le is not currently supported.

A Windows or linux computer

You have the android platform tools installed, if you don't you can get them for windows here and on linux it's packaged as android-tools on most distros and as android-sdk-platform-tools on debian linux and it derivatives.

(Windows): You have the BlackBerry USB drivers installed

NOTE: If you don't know the path of a file you can drag it from your filemanager into a terminal window

2: Stock Firmware Preparation

Remove your lockscreen password and google account from your device

If you are the option to set your screen lock to swipe is grayed out factory reset your phone from settings AFTER removing you google account.

If you do not remember your password follow theses instructions from the device setup.

Download the ACQ160 Autoloader.

Power off your device then hold volume down and power until the bootloader menu is shown

You will need to flash the firmware twice, to do so extract the downloaded 7z file and run the included 'flashall.bat' file, once the phone boots up to the setup reboot to the bootloader and repeat

A linux version of the flashall.bat script is available here.

If you get this error message: error: cannot load '.\img\oem_getvar:subvariantFAILED.img(remote:GetVarVariableNotFound)': Invalid argument you can ignore it.

Power off your device then boot into the bootloader again.

3.1: Unlocking the bootloader (Windows)

Download the windows unlock tool from here and extract the zip file, if you don't already have it installed you may need to install the microslop VC++ redists.

Open the unlock tool.

Press the scan in the upper right corner, once your devices is found press the 'Unlock BootLoader' button

NOTE: The progress bar will stay at 75% even once the bootloader unlock finishes

If the unlock was successful, on the phone MODE: will change from PRODUCT to FACTORY

3.2: Unlocking the bootloader (Linux)

Download kibo from Bochenek's github page and extract the zip file you downloaded.

Mark the kibo binary included with the zip file as executable.

From a terminal run ./kibo unlock

If the unlock was successful, on the phone MODE: will change from PRODUCT to FACTORY

4: Flashing LineageOS

Download the latest rom version posted on discord, currently that's 1.8a.

Once your download finishes extract the downloaded .zip file, and enter the directory you extracted it to.

The package for gapps(Google Services) is not included with the rom download, if you want them you will need to download it seperately. The recommended package is MindTheGapps.

Power off you device then hold volume down and power until the bootloader menu is shown

Run the following commands:

  • fastboot -w
  • fastboot flash recovery /path/to/recovery.img
  • fastboot flash boot /path/to/recovery.img
  • fastboot reboot

NOTE: You navigate the recovery by using the volume keys to move the cursor and the power button the select.

Once the LineageOS recovery appears select 'Apply update' -> 'Apply update from adb'

Run adb sideload /path/to/lineage-22.2-{date}-UNOFFICIAL-krab-{versionNumber}-athena.zip

If you have any additional zips you want to flash(ie: gapps, magisk) go into 'Apply update' -> 'Apply update from adb' and run adb sideload /path/to/package.zip, once the signature verification failed messages appears select yes.

If you get a not enough space on system partion error when flashing gapps go into 'Factory reset/Format data' and format the system partition, then re-flash lineageOS and gapps.

Select the 'Reboot system'

NOTE: The first boot can take up to 10-15 minutes

(Optional) Once you have finished the setup set the IME switcher shortcut to Alt + Enter in Settings -> System -> BlackBerry keyboard. Doing this makes the SYM key work properly instead of opening the keyboard switcher.

1: Prerequsites

You have ADB and fastboot installed

You are running a build released *AFTER* March 04 2026. If your on a build older then this date or one posted on XDA you will need to follow the flashing LineageOS section of the install guide above, doing so will wipe your device.

NOTE: If you need to downgrade you can do so with the recovery update method.

2.1: Updating without a computer (recommended)

NOTE: Updating this way does not keep root.

Download the latest rom version posted on discord, currently that's 1.8a.

NOTE: If the file is larger then the MEGA mobile site allows enable the show desktop site option in your browser's settings

Extract the zip file you downloaded.

Go to Settings -> System -> System Update.

Tap the 3 dots in the top corner and select Local update.

Select the zip file following lineage-22.2-{date}-UNOFFICIAL-krab-{versionNumber}-athena.zip naming format.

2.2: Updating via recovery

Download the latest rom version posted on discord, currently that's 1.8a.

Once your download finishes extract the downloaded .zip file, and enter the directory you extracted it to.

If your phone is rooted patch the boot.img file included with the new build.

Power off you device then hold volume down and power until the bootloader menu is shown

Run the following commands:

  • fastboot flash recovery /path/to/recovery.img
  • fastboot flash boot /path/to/recovery.img
  • fastboot reboot

Once the LineageOS recovery appears select 'Apply update' -> 'Apply update from adb'

Run adb sideload /path/to/lineage-22.2-{date}-UNOFFICIAL-krab-{versionNumber}-athena.zip

If you have google services installed go into 'Apply update' -> 'Apply update from adb' and run adb sideload /path/to/gapps.zip once the signature verification failed messages appears select yes.

If your rooted select 'Advanced' then 'Reboot to bootloader', once the bootloader appears flash your moddified boot.img file and boot the system.

If it's not rooted select 'Reboot system'

3: Fixing app installs failing

NOTE: This is a rare bug that only happens when downgrading, if this happens to you when upgrading please contact 'Krab-Ubica' in the discord server

Boot into recovery

NOTE: The easiest way to get into recovery is by using the 'Advanced restart' option in settings

Once the recovery menu appears select Advanced -> Enable ADB

From a computer run adb shell wipe-frp

Power off your device or reboot it using the option in the recovery menu

This ONLY covers releases made after BotchedRPR left the project

1.8a Apr 25 2026

Keyboard-blacklight Sadako's algo implemented,

Car-bt: music - voice-call glitches try-fix

1.7a Apr 17 2026

5Ghz hotspot,

Camera black preview sometimes

1.6a Apr 14 2026

April 01 security patches,

qwertz/azerty fix re-applied,

Lokker app v1.2a updated performance,

K12KB app v3.1c updated performance,

GPS/xtra fixes,

Wi-Fi micro enhancements (NOT WPA3)

1.5c Apr 03 2026

March 01 security patches,

Camera stability - less crashes,

qwertz/azerty fixed - retail kl/kcm behavior,

Keyboard settings -> show virtual keyboard toggle,

Lokker app v1.1 updated,

Widevine L3 OK, L1 Widevide disabled (will not work)

1.4a Mar 29 2026

NFC fixes,

Battery drains on heavy renderings,

QWERTZ, AZERTY fixes

1.3a Mar 25 2026

Voip fix (tested on Telegram),

Svindleds speakers in-call changes fix,

Touchpad-pagings sensivity -10%, inertion +10%,

App-links domains verification auto-approve (for microg)

1.2a Mar 19 2026

Bugfix capacitive nav-buttons toggling,

Keyboard and nav-btns backlight adaptive levels,

Custom-keyboard preferences rearranged,

Keyboard touch paging mode sensivity decreased

1.1b Mar 17 2026

Selinux enforcing,

Encryption,

Dt2w, button fixes on syna and focal,

Volume curve fixes,

RCS HAL crash fix,

Bluetooth mac address loader,

Touch keypad now usable,

Keyboard working on all apps,

Wifi hotspot fixes,

Init fixes,

Lineage KeyDisabler support,

USB init fix,

USB tethering fix

Keyboards

Pastiera: A foss keyboard app built for android phones with hardware keyboards. It's the default on Bochenek's rom builds. Make sure to the latest nightly build since the stable has issues with the ALT and SYM keys.

K12KB: The keyboard app made by Krab-ubica, comes pre-installed with their rom builds. Currently requires enableing 'Allow on-screen keyboard' in Settings -> System -> BlackBerry keyboard to work properly

BlackBerry Keyboard: An unmodified version of the BlackBerry keyboard from android 8.1

Krab-ubica's bb-keyboard: A modified version of the blackberry keyboard with working gestures. Chloejp has made a version with all language packs available here & one with only vietnamese available here.

Hazem's BlackBerry Keyboard: A modified version of the blackberry keyboard with material you colors and various fixes, it's language packs are available here.

Launchers

BlackBerry Launcher: The default launcher from android 8.1. It's default wallpaper set is also available on this archive.org page.

Torchlight Launcher (PAID): A clone of blackberry OS 7 as an android launcher

KISS: A blazingly fast launcher focused on search

Kvaesitso: A seach-focused launcher, currently needs the enable-blurs magisk module for blur effects to work on the key2.

Lawnchair: An open-source clone of google's pixel launcher

Other

BigKaka 8.8 MOD: A build of Bigkaka's google camera mod with fixes for the key2.

Hail: An app to stop certain apps from running in the background or being cached to ram, useful if your trying use as your main phone or have alot of apps installed

KeyMapper: Remap any button and set custom key binds easily

Resizing Swap

NOTE: This does not work without root

Enable 'USB debugging' and 'Rooted debugging' in developer options

Run adb root

If you want 2gb of swap run this command

adb shell "mkdir -p /data/adb/service.d && echo '#!/system/bin/sh
echo 3 > /proc/sys/vm/drop_caches
swapoff /dev/block/zram0
echo 1 > /sys/block/zram0/reset
echo 2147483648 > /sys/block/zram0/disksize
mkswap /dev/block/zram0
swapon /dev/block/zram0' > /data/adb/service.d/99_delayed_zram.sh && chmod 755 /data/adb/service.d/99_delayed_zram.sh"

If you want 4gb of swap run this command

adb shell "mkdir -p /data/adb/service.d&& echo '#!/system/bin/sh
echo 3 > /proc/sys/vm/drop_caches
swapoff /dev/block/zram0
echo 1 > /sys/block/zram0/reset
echo 4294967296 > /sys/block/zram0/disksize
mkswap /dev/block/zram0
swapon /dev/block/zram0' > /data/adb/service.d/99_delayed_zram.sh && chmod 755 /data/adb/service.d/99_delayed_zram.sh"

1: Flashing Android 8.1

NOTE: If you have an indian region device you will need to flash the ABN088 Auto Loader after you have relocked the bootloader

Download the ACQ160 Autoloader and extract the 7z file it downloads as.

Enable 'Advanced restart' in Settings -> System -> Buttons -> Power menu

Hold the power button until the power menu show then select Restart -> Recovery

Once the recovery menu appears select Advanced -> Enable ADB

From a computer run adb shell wipe-frp

Power off your device then hold volume down and power until the bootloader menu is show.

Run the flashall.bat script from the ACQ160 autoloader.

A linux version of the flashall.bat script is available here.

If you want to relock the bootloader or have an india model follow the locking the bootloader section for your operating system.

2.1: Locking the bootloader (Windows)

Download the windows unlock tool from here and extract the zip file, if you don't already have it installed you may need to install the microslop VC++ redists.

Open the unlock tool.

Press the scan in the upper right corner, once your devices is found press the 'Relock BootLoader' button.

NOTE: The progress bar may stay at 75% even once the bootloader relock finishes.

If the relock was successful, on the phone MODE: will change from FACTORY to PRODUCT.

2.2: Locking the bootloader (Linux)

Download kibo from Bochenek's github page and extract the zip file you downloaded.

Mark the kibo binary included with the zip file as executable.

From a terminal run ./kibo lock

If the relock was successful, on the phone MODE: will change from FACTORY to PRODUCT.

2.3: Booting with an unlocked bootloader

Download the modded boot file from here.

Open a terminal where you downloaded the file and run fastboot flash boot acq160-mfi-boot.img.

NOTE: If your are want to root patch the acq-160-mfi-boot.img boot file not the one from ACQ160 itself.

3: Fixing wifi, bluetooth & cellular not working

NOTE: This section is on how to fix a rare bug, you will most likely not experience it when reverting.

If you relocked the bootloader unlock it again as shown in install guide.

Download the LineageOS recovery from here.

Run the following commands:

  • fastboot flash boot /path/to/recovery-athena.img
  • fastboot reboot

Once the recovery menu appears select 'Advanced' -> 'Enable ADB'

Download the persist partition patch from here then extract the downloaded 7z file.

Open a terminal where you extracted the persist to, then run the following commands:

  • adb push persist /tmp/
  • adb shell dd if=/tmp/persist of=/dev/block/by-name/persist
  • adb reboot bootloader

Then redo guide from the start.