Your place for getting third-party apps on KaiOS 2.5
KaiOS 2.5 only. To sideload apps on debug-enabled KaiOS 3 devices, follow the instructions on using KaiOS’s in-house
appscmd
on the official Developer Portal.
According to How-To Geek, sideloading is 'the practice of installing software on a device without using the approved app store or software distribution channel'. This can be useful if you want to use an app that is either not eligible for distributing over KaiStore, not available in your region, or if you want to test an app that you are developing.
This is where Android Debug Bridge (ADB) and WebIDE come in. Inherited from the now-defunct Firefox OS, WebIDE allows you to manage installed applications and configurations on KaiOS phones. It works by communicating with a specific port on your phone over ADB, an internal protocol for engineers usually found on Android devices.
Before you ask: no, despite using Android compatibility layer for hardware support, KaiOS isn't Android and cannot run APKs. It uses Gecko the browser engine for rendering apps, and they typically come in the form of ZIP archive files, which consists of HTML, styling and JavaScript code for functionality.
unzip
;Need a video tutorial? If you're on Linux, KaiOS Technologies officially made one for their own WebIDE client KaiOSRT which can be found here. Alternatively, there's also one on BananaHackers' YouTube channel here.
*#*#33284#*#*
for Nokia devices and both *#*#33284#*#*
and *#*#0574#*#*
for Energizers and others. Details can be found on each device page.udev
to properly register your phone as an USB peripheral. An icon in the status bar will appear indicating storage access via USB.
Now, if your operating system has a package manager, you can utilize that to quickly install and set up ADB:
- Windows:
choco install adb
(winget
unfortunately prohibits installing executables with symlinks)- macOS:
brew install android-platform-tools
- Linux (Debian/Ubuntu):
sudo apt install adb
- Linux (Fedora):
sudo dnf install android-tools
- Linux (Arch):
sudo pacman -S android-tools
Skip to next part when you're done.
platform-tools
root and open a command-line window by that directory.adb devices
to start the ADB binary server. ADB will automatically detect all devices with active debugging mode connected to the computer over USB. If a device
with serial number appear, you're good to go! Otherwise, go back, check if you've missed any steps or whether your phone supports ADB.
chmod +x ./adb
$ adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
1a2b3c4d device
adbd
fails to detect your phone, forward ADB access to TCP socket 6000 for debugging:$ adb forward tcp:6000 localfilesystem:/data/local/debugger-socket
6000
localhost:6000
and press OK. If you still cannot connect your phone to WebIDE, check if you've missed any steps or whether your phone allows DevTools.If you're using other means to access WebIDE such as Firefox 59 or Pale Moon <28.6.1, you may now see a warning header about mismatched build date. You can safely ignore it as WebIDE was mainly designed to support Firefox OS device builds released alongside that Firefox/Pale Moon versions.
application.zip
you'll have to extract that too).If you encounter an issue in a sideloaded app and want to debug, click the wrench to open the Developer Tools.
wget https://s3.amazonaws.com/kaicloudsimulatordl/developer-portal/simulator/Kaiosrt_ubuntu.tar.bz2
tar -axvf Kaiosrt_ubuntu.tar.bz2
cd kaiosrt-v2.5-ubuntu-20190925163557-n378
tar -axvf kaiosrt-v2.5.en-US.linux-x86_64.tar.bz2
cd kaiosrt
./kaiosrt
It's also possible to get KaiOSRT to work on Windows 10 and later using Windows Subsystem for Linux (WSLg). See this video on YouTube for action.
Dedicated to those adrenaline-fueled who want to complicate their lives.
51-android.rules
by typing this long streak of command:$ wget -S -O - https://raw.githubusercontent.com/cm-b2g/B2G/1230463/tools/51-android.rules |
sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; \
sudo udevadm control --reload-rules
$ lsusb
Bus 001 Device 007: ID 05c6:f003 Qualcomm, Inc. Nokia 8110 4G
^^^^
In our case, the Qualcomm-based 8110 4G has the Vendor ID of 05c6
.
/etc/udev/rules.d/51-android.rules
in your preferred text editor as root. Append this line, replace 05c6
with the Vendor ID you got above:SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0664", GROUP="plugdev"
51-android.rules
read-only for all users on the system:$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
~/.android/adb_usb.ini
in your HOME directory. Open it using your preferred text editor and put the obtained Vendor ID value in HEX: 0xABCD
, whereas ABCD
is Vendor IDadb devices
.