Geeksn0w

Geeksn0w is a jailbreak program that currently performs a semi-tethered jailbreak for the iPhone 4 on iOS 7.1.x.

Supported Devices and Requirements
The only supported devices are those of the iPhone 4. This is because Geeksn0w uses opensn0w and geohot's limera1n exploit which is only available for A4-based devices and the iPhone 4 is the only A4 device that runs iOS 7. Geeksn0w currently only supports Windows (unless you use BootCamp or another VM on your Mac to install Windows). Geeksn0w requires Java Development Kit for 32-bit PCs and .NET Framework installed on your computer to be able to run. Unlike other jailbreak tools (such as evasi0n7), Geeksn0w does not need iTunes to be installed.

Versions and Updates
Geeksn0w originally performed an tethered jailbreak on iOS 7.0 on the iPhone 4 until evasi0n7 was released. BlackGeek then updated Geeksn0w to use the same exploits as evasi0n7 for all devices. Versions 2.5 and above perform a tethered jailbreak on iOS 7.1 for the iPhone 4. Version 2.9 performs a semi-tethered jailbreak on iOS 7.1 and 7.1.1. On May 1, 2014, BlackGeek released the Mac beta cli for OS X.

How it works
Geeksn0w uses msftguy and DevBug's SSH RamDisk tool which uses and geohot's limera1n exploit to obtain root access. It then installs Cydia and mounts the root filesystem. It then uses opensn0w to boot the iPhone 4 tethered. Geeksn0w is technically a GUI of opensn0w and ssh_rd.

The Semi-Tether
When the device is booted, it uses a LaunchDaemon to start a script in /gfix that reinstalls MobileSubstrate and PreferenceLoader from a local package and then kills the springboard and remounts the system partition as r/w. At installation time it sets the 'nvram' variable boot-args to true, which prevents Recovery Mode. However, it reinstalls MobileSubstrate and PreferenceLoader from a local package, which prevents saurik from updating it. It also kills the SpringBoard which adds additional boot time, and it remounts the fs after the first SpringBoard launch, which may cause other LaunchDaemons that needs r/w at boot time to fail. This is why many people have made their own SemiTether packages that use the 'dirhelper' which is being executed during the boot, to remount the fs and looping through /etc/rc.d and execute every binary there, just like evasi0n7 does, which directly injects MobileSubstrate. They then use 'auto-boot' to prevent Recovery Mode. This resulting package boots faster and is far more efficient than the way it is currently used by. The reason that Geeksn0w is not an untethered jailbreak, is that there is no kernal exploit. (Also call Semi-Untethered).

The Semi-Tether

 * On April 21, 2014, BlackGeek announced on Twitter that he had achieved a Semi-Tethered Jailbreak on the iPhone 4 on 7.1 . On April 25, BlackGeek updated Geeksn0w to version 2.9 which achieved a semi-tethered jailbreak for 7.1 or 7.1.1. He also added the semi-tether package to his repo (http://geekrepo.beiphone.it) for people who had already jailbroken tethered on 7.1 and wanted to upgrade to Semi-Tethered.

Exploits

 * geohot's Limera1n exploit - Tethered