Ticker

10/random/ticker-posts

Ad Code

Responsive Advertisement

How to install Termux app in Apple IOS | iSH | Code Epic

     
    Termux is a popular app in android to emulate the Linux shell. Termux allows the user to run the Linux environment on an android device without any setup or root not required, but termux is not available for apple's ISO devices. The best alternative for android Termux is the iSH app for apple's ios devices.

iSH app

    The iSH app is a powerful app to emulate the Linux environment in iOS like termux. The iSH app is open source like termux. It allows the ios users to run the Linux environment in the ios device without any setup or jailbreak. It also offers many feathers like termux apps on android. iSh app work on both apple's iPhone and iPad.


Small note for the iSH GitHub page

A project to get a Linux shell running on iOS, using user-mode x86 emulation and syscall translation.

For the current status of the project, check the issues tab, and the commit logs.
  • App Store page
  • TestFlight beta
  • Discord server
  • Wiki with help and tutorials
  • README

Hacking

This project has a git submodule, make sure to clone with --recurse-submodules or run git submodule update --init after cloning.

You'll need these things to build the project:

  • Python 3
    • Meson (pip3 install meson)
  • Ninja
  • Clang and LLD (on mac, brew install llvm, on linux, sudo apt install clang lld or sudo pacman -S clang lld or whatever)
  • sqlite3 (this is so common it may already be installed on linux and is definitely already installed on mac. if not, do something like sudo apt install libsqlite3-dev)
  • libarchive (brew install libarchive, sudo port install libarchive, sudo apt install libarchive-dev) TODO: bundle this dependency

Build for iOS

Open the project in Xcode, open iSH.xcconfig, and change ROOT_BUNDLE_IDENTIFIER to something unique. You'll also need to update the development team ID in the project (not target!) build settings. Then click Run. There are scripts that should do everything else automatically. If you run into any problems, open an issue and I'll try to help.

Build command line tool for testing

To set up your environment, cd to the project and run meson build to create a build directory in build. Then cd to the build directory and run ninja.

To set up a self-contained Alpine linux filesystem, download the Alpine minirootfs tarball for i386 from the Alpine website and run ./tools/fakefsify, with the minirootfs tarball as the first argument and the name of the output directory as the second argument. Then you can run things inside the Alpine filesystem with ./ish -f alpine /bin/login -f root, assuming the output directory is called alpine. If tools/fakefsify doesn't exist for you in your build directory, that might be because it couldn't find libarchive on your system (see above for ways to install it.)

You can replace ish with tools/ptraceomatic to run the program in a real process and single step and compare the registers at each step. I use it for debugging. Requires 64-bit Linux 4.11 or later.

Logging

SH has several logging channels which can be enabled at build time. By default, all of them are disabled. To enable them:

  • In Xcode: Set the ISH_LOG setting in iSH.xcconfig to a space-separated list of log channels.
  • With Meson (command line tool for testing): Run meson configure -Dlog="<space-separated list of log channels>".

Available channels:

  • strace: The most useful channel, logs the parameters and return value of almost every system call.
  • instr: Logs every instruction executed by the emulator. This slows things down a lot.
  • verbose: Debug logs that don't fit into another category.
  • Grep for DEFAULT_CHANNEL to see if more log channels have been added since this list was updated.

 

So, I think you gain some information about the iSH app, Don't forget to command your thoughts.

Have a great day ;)

Post a Comment

0 Comments

Ad Code

Responsive Advertisement