• Stars
    star
    172
  • Rank 221,201 (Top 5 %)
  • Language
    Objective-C
  • License
    Other
  • Created about 11 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tethering for non-jailbroken iOS Devices over USB

Tether

Tether your unjailbroken iPhone to your desktop computer via USB for free*! This was inspired by iProxy, but I always had trouble getting the damn ad-hoc wifi network to work reliably.

Right now this is mainly proof-of-concept... but it works! It will let you create a SOCKS proxy running on your iPhone and mirror the socket to your local machine over USB via usbmuxd.

Instructions

Getting the Code

$ git clone [email protected]:chrisballinger/Tether-iOS.git
$ cd Tether-iOS
$ git submodule update --init --recursive

Installing Tether (iOS)

Open Tether.xcodeproj and select the Tether target and install it on your iPhone. This will start a SOCKS proxy on port 8123 on the phone, but be warned that you must keep the app in the foreground to accept new sockets. Currently the app is just a blank white screen. You can theoretically use any other SOCKS proxy app instead but I haven't tested this.

Installing TetherMac

Now build the TetherMac target and run it on your local machine. This will create a local listening socket on port 8000 that forwards everything to port 8123 on the phone over USB.

Configuring Firefox

Open up Firefox and go to Preferences -> Advanced -> Network -> Manual Proxy Configuration. Important: make sure to delete the entries and ports for HTTP proxy, SSL proxy and FTP proxy or Firefox will use those instead of the SOCKS proxy settings. Enter 127.0.0.1 for SOCKS Host and 8000 for the port and make sure SOCKS v5 is selected.

Now go to about:config in the address bar and change network.proxy.socks_remote_dns to true. This will make sure you resolve domain names over the SOCKS proxy instead of on your local machine.

Problems Connecting? Try this.

  1. Close Tether, TetherMac and Firefox.
  2. Open up the Tether iOS app and keep it in the foreground.
  3. Connect your iPhone to your computer with a USB cable.
  4. Open up TetherMac.
  5. Open up Firefox and double-check your proxy settings.

Caveats / TODO

  • The interface isn't very user friendly, so it would be nice to pretty it up a bit.
  • In order to install the iOS app you need a $99/yr iOS Apple Developer account, or a friend with one willing to install it for you.
  • It would be nice to also tether your iPhone to your iPad via MultipeerConnectivity framework but I heard it's pretty slow in practice.
  • You must keep the iOS app in the foreground to accept new connections. Once a connection has been established you can background the app for short times without interrupting your active connections by pretending to be a VoIP app.
  • Not all of your internet traffic can go over a SOCKS proxy. Possible solution to investigate is tun2socks. I made some progress porting it to Mac OS X.
  • This shit leaks memory all over the place.

Dependencies

  • ProxyKit - Objective-C SOCKS 5 / RFC 1928 proxy server and socket client libraries built upon GCDAsyncSocket.
  • libusbmuxd - A client library to multiplex USB connections from and to iOS devices.

Author

Chris Ballinger

bitcoin paypal

License

GPLv3+

More Repositories

1

BLEMeshChat

Bluetooth LE Mesh Chat for iOS and Android
Objective-C
488
star
2

FFmpeg-iOS

FFmpeg static libraries compiled for iOS
Ruby
270
star
3

ProxyKit

SOCKS proxy server and socket client built upon GCDAsyncSocket.
Objective-C
215
star
4

Opus-iOS

iOS build scripts for libopus
C
212
star
5

FFmpeg-iOS-Encoder

Development on this project has been moved to kickflip-ios-sdk.
Objective-C
191
star
6

OpenCallBlock

iOS CallKit blocking of NPA-NXX number prefix spam
Swift
63
star
7

AirShare

Bluetooth LE / Multipeer data exchange library
Objective-C
58
star
8

OpusKit

Objective-C wrapper for libopus on iOS
Objective-C
51
star
9

ffmpeg-ios-static-libs

Precompiled static libs for FFmpeg, OpenSSL, and librtmp because Cocoapods can't properly handle C library dependencies.
C
38
star
10

openvpn-server-ios

Tethering the hard way
Shell
34
star
11

Cop-Recorder-iOS

Cop Recorder for iOS Devices - www.openwatch.net
Objective-C
33
star
12

python-localizable

Localizable.strings parser for Python
Python
25
star
13

powerplant

Open Sourced PowerPlant Framework for Mac OS and Mac OS X developed by Metrowerks. Includes PowerPlant, PowerPlantX and Constructor. This framework has been released to open source by Freescale
C++
20
star
14

ChatSecure-Mac

ChatSecure for OS X
Lua
12
star
15

RSSAtomKit

Customizable Obj-C RSS/Atom feed fetcher and parser
Objective-C
11
star
16

rust-framework-template

Template for creating cross-platform Rust libraries as iOS/macOS/tvOS/watchOS Swift frameworks.
Rust
9
star
17

LectureLeaks-iOS

LectureLeaks for iOS
Objective-C
8
star
18

rezilla

Rezilla is a resource editor for the Macintosh (OSX). It is designed to facilitate the edition and manipulation of resources stored in the data fork or in the resource fork of a file.
C++
7
star
19

poptop

Mirror of poptop pptpd
C
6
star
20

libidn-framework

libidn.framework and libidn.podspec for GNU Libidn
C
6
star
21

MobileMileageTracker-iOS

Objective-C
6
star
22

Remux

SwiftUI + FFmpeg
Swift
5
star
23

Connect-Four-Reinforcement-Learning

Bot that learns how to play Connect-4 using Machine Learning techniques
Java
5
star
24

SOCKS-iOS

iPhone tethering via SOCKS proxy server using polipo.
Objective-C
5
star
25

rtmp-hls-live-transcoding

RTMP to HLS Live Transcoding
4
star
26

sds011-rs

Rust module for SDS011 particle sensor
Rust
3
star
27

prosody-modules

Git mirror of https://hg.prosody.im/prosody-modules/
Lua
3
star
28

TorXPCService

Sandboxed Tor XPC service for macOS
Objective-C
2
star
29

git-the-basics

Git and Github: What You Should Know
2
star
30

gen-posix-lock-obj-iOS

Generate your lock-obj-pub for libgpg-error
C
2
star
31

EncryptedFilesTest

Testing on-the-fly decryption w/ embedded iOS HTTP server
Objective-C
2
star
32

MPQKit

MPQKit is an Objective-C framework for interacting with MoPaQ archives, the data storage brainchild of Blizzard Entertainment.
Objective-C
2
star
33

YapDatabaseTest

Testing YapDatabase
Objective-C
1
star
34

python-chronokey

Pronounceable public keys
1
star
35

arm-gcc-linux-macos

arm-gcc-linux cross compilers for macOS
1
star
36

PurpleAPI

Unofficial Swift API client for PurpleAir
Swift
1
star
37

OLMKit

Checking out Olm
C
1
star
38

PianoBooster

A MIDI file player that teaches you how to play the piano. PianoBooster is a fun way of playing along with a musical accompaniment and at the same time learning the basics of reading musical notation
C++
1
star
39

AdiumQQ

QQ support for Adium
C
1
star