Skip to main content

Posts

Showing posts from May, 2020

A rootless, (nearly) full-featured shell for iOS

iOS is a BSD-like system (according to Wikipedia, the kernel is actually based on BSD). In this way, we sometimes expect it to have similar functionalities or behavior to BSD or Unix-like systems,  However, iOS doesn’t expose a shell to us. Unlike macOS computers, which provide a Terminal.app that users can launch directly into a shell of their choice, like Bash or Zsh, there isn’t a Terminal.app for iOS. And even if there was, user-land permissions would prevent the installation and use of many packages and services.
This carries into other Unix-like systems, like Android, where even though most distributions of Android don’t include a terminal (unless you are using its’ open-source variant like Lineage OS), you can still download one from the Google Play Store. In fact, you have many options.
However, on the iOS side, the situation looks far bleaker. If you have root access and the ability to install self-signed or unsigned code, you can install one of few popular terminal emulators, …