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 emulator