Theos/Setup/iOS: Difference between revisions

From iPhone Development Wiki
mNo edit summary
(Undo revision 3917 by CodeOriginal (talk) — Giving the mobile user permissions to escalate to root automatically is worse than just running as root for only make install)
Line 36: Line 36:


# Create symlinks to support ARM64: <pre>ln -s $THEOS/makefiles/platform/Darwin-arm.mk $THEOS/makefiles/platform/Darwin-arm64.mk&#10;ln -s $THEOS/makefiles/targets/Darwin-arm $THEOS/makefiles/targets/Darwin-arm64</pre>
# Create symlinks to support ARM64: <pre>ln -s $THEOS/makefiles/platform/Darwin-arm.mk $THEOS/makefiles/platform/Darwin-arm64.mk&#10;ln -s $THEOS/makefiles/targets/Darwin-arm $THEOS/makefiles/targets/Darwin-arm64</pre>
== Additional Steps for Ease of Use ==
=== Automatically exporting environmental variables ===
Although exporting $THEOS to /var/theos is not necessary on iOS, it is useful, and tedious to do every time a terminal is opened. To automatically do this, bash's login scripts can be utilized to export these variables. First, the default shell must be changed to bash:
# Open the file /etc/master.passwd in a text editor (ifile or vim) and find the lines starting with "mobile" and "root". Change the text at the end of these lines from <pre>/bin/sh</pre>&#10;to&#10;<pre>/bin/bash</pre>
# Create a file named .bash_pofile in /var/mobile and add the variables to the file you created. EX: <pre>export THEOS="/var/theos"</pre>
=== Avoiding using the root user  ===
Using the root user while in a theos project for 'make' commands can cause many issues very quickly.
As your the environment you set up above stands, root is still needed for 'make install'.
To avoid the root user completely, we can bypass this by using ssh keys and remote install.
# Follow the guide at http://www.linuxproblem.org/art_9.html to add your ssh keys to the root user for passwordless ss, substituting '[email protected]' for 'a@A' and '[email protected]' for 'b@B'
# Open $THEOS/makefiles/Darwin-arm/iphone.mk and near the bottom of the file, find the line <pre>TARGET_INSTALL_REMOTE := $(_THEOS_FALSE)</pre>&#10;and change it to&#10;<pre>TARGET_INSTALL_REMOTE := $(_THEOS_TRUE)</pre>
# add this line to the end of ~/.bash_profile <pre>export THEOS_DEVICE_IP=127.0.0.1</pre>
Now 'make package install' may be utilized.

Revision as of 19:18, 18 July 2015

This page is for setting up Theos on an iOS Device. For other platforms see Theos/Setup.

Requirements

Mandatory Requirements

  • A jailbroken iOS device with Cydia (or another package manager) installed.

Optional Requirements

  • Knowledge on how to use a command line terminal.
  • Objective C knowledge.
  • OpenSSH installed on your device and a computer that you can SSH into your device with (using MobileTerminal gets tedious pretty quickly).

Installing Theos and it's dependencies

  1. Add the following repositories to your Cydia sources.
  2. Install the following packages in Cydia:
    • Perl
    • Theos
    • iOS Toolchain
  3. Check that Theos is installed on your device by running:
    echo $THEOS

    The output should be: /var/theos

Setting up the iOS SDK

Navigate to http://iphone.howett.net/sdks and check which iOS SDK you wish to download.

  1. Create a directory for the SDK to be placed in:
    mkdir -p $THEOS/sdks
  2. Download the SDK temporarily and extract to the SDK directory:
    curl -ksL "http://iphone.howett.net/sdks/dl/iPhoneOSX.Y.sdk.tbz2" | tar -xj -C $THEOS/sdks

    X.Y being the version numbers of the SDK, as seen in http://iphone.howett.net/sdks.

Additional Step for 64 bit (ARM64) Devices

With the current version of Theos (0.9.639-1), building on ARM64 will throw an error. The following will solve this issue.

  1. Create symlinks to support ARM64:
    ln -s $THEOS/makefiles/platform/Darwin-arm.mk $THEOS/makefiles/platform/Darwin-arm64.mk
    ln -s $THEOS/makefiles/targets/Darwin-arm $THEOS/makefiles/targets/Darwin-arm64