ITerm
ITerm is a Qt-native terminal emulator app using libvterm for interacting with a virtual TTY.
Installation
Download ITerm.zip and unzip it in [onboard-storage]/.apps/
.
Important: If you plan to interact with programs that are using the HTTPS technology, you must add 0
to the RequiredFeatures
array of ITerm's app.json
(located in [ITerm.zip]/ITerm/app.json
) so that it will mount SSL certificates to the container, otherwise, it won't work.
Use cases
Default
ITerm runs in a containerized environment by default and thus, the provided userspace is quite limited. You can use various busybox
commands, such as editing a file with vi
or watching the process list with top
.
SSH or telnet from the local environment
You can SSH or telnet to external hosts from the local environment, for example:
$ ssh user@some.hosts.ip.address
or:
$ telnet some.hosts.ip.address
SSH or telnet to the local environment
SSH
Should you want, for some reason, to access the current ITerm CLI environment via SSH from an external computer, you may do so by invoking the following commands in ITerm itself:
$ mkdir -p /app-data/.ssh $ dropbearkey -f /app-data/.ssh/id_dropbear $ dropbear -r /app-data/.ssh/id_dropbear -p 8900
This will start an SSH server on port 8900.
To access it:
user@computer $ ssh -p 8900 user@your.kobos.ip.address user@your.kobos.ip.address's password: <type 'user' here> $ export PATH="/app-bin:/system-bin" HOME="/app-data"
telnet
Should you want, for some reason, to access the current ITerm CLI environment via telnet from an external computer, you may do so by invoking the following command in ITerm itself:
$ telnetd -l /system-bin/sh -p 8900
This will start a telnet server on port 8900.
Extensions
ITerm is an unique user application in the way that the GUI user applications system service specially looks for extensions made for it. For example, if you like the Matrix protocol and you'd like to get gomuks working on ITerm, you can.
ITerm is probably the only app in InkBox OS that doesn't require signed extensions because privilege escalation risk from other binaries should be pretty low (since it runs in an unprivileged chroot).
As such, to prepare and install your own extension, you can follow these steps:
- In an empty folder, create two subdirectories, named
bin
andlib
. - Put your extension's binaries and libraries in the appropriate directories.
- Package it with the following command, assuming you are in the root directory of the future extension:
mksquashfs . ../my-extension.isa -b 1048576 -comp xz -Xdict-size 100% -always-use-fragments
. This filename cannot contain spaces or special characters. - In your device's mass storage, head over to
.apps-data
. - Create a directory named
extensions
if it doesn't already exist. - Copy the
*.isa
file you created earlier in this directory. - When you launch ITerm again, the contents of your extension should appear in
/app-data/extensions/my-extension/
.