Katten is a reverse engineering and reimplementation of the server software for the Plus+ social gaming network and the Touch Pets series of games.
If you want to discuss or help with reverse engineering Plus+, please consider joining the Plus+ Discord server.
Katten is currently in its early stages. See the project news and the Plus+ server readme for status updates and what works.
These games are tested. Other games may work, but YMMV.
| Game | Notes |
|---|---|
|
Touch Pets Cats (2010) Touch Pets Dogs 2 (2010) Touch Pets Dogs1 (2009) |
Relies on touchpet server
|
|
Rolando 2 (2009) Topple 2 Plus (2009) Rolando (2008) |
Only needs Plus+ server, mostly working |
1 Not actually tested, but very similar to supported games and should work with minor tweaking.
- Up to date Linux distro
- Jailbroken iPhone running iOS 6 or older with AppSync Unified installed
- Newer iOS versions are not generally compatible with Plus+ games
- Plus+ games don't run on touchHLE (yet)
- You can probably jailbreak your device with Legacy iOS Kit
- An IPA for the game you want to play, if it's not already installed
- If you have the app on an old device, please consider dumping the IPA of the app before starting if you already have it on your device.
- If it's not already installed, you will also need the Terminal and the command line version of
installipainstalled. You may also want to use iFile to upload the IPA to your device.
Firstly, in a terminal, clone the Katten repo and enter the directory:
git clone https://github.com/knot126/Katten
cd KattenInstall:
- flask
- sqlalchemy
- argon2-cffi (optional)
- mitmproxy (optional, for development)
On Arch Linux, you can run:
sudo pacman -Syu python-flask python-sqlalchemy python-argon2_cffi mitmproxyUse run.py which will start all needed servers:
./run.pyTo start the server using mitmproxy, use the --mitm argument with the mitmproxy command you prefer:
./run.py --mitm mitmwebYou can also start only the Plus+ server:
./run.py --no-touch-petsBy default, Katten will use SQLite for its database, and everything will be stored in the .katten folder of your home directory.
Currently Katten cannot be easily confiured without editing each server's config.py.
Games need to have a slight patch applied so they don't use HTTPS. There is a generic patch script provided in the tools directory that can do this. To patch a game:
- Extract your game's main binary from the IPA; this is usually a file with the same name as the
.appfolder with no extension - Open a terminal in the
toolsfolder - Run the patch script on your game's binary:
./nohttpspatch.py <path to game binary> - This puts out one file for each architecture the game binary supports. Choose the one that matches what your phone has.
- Either:
- Replace the binary in the IPA with the patched one and install it
- Upload the binary directly to the installed app dir using iFile (just make sure it's correctly named and has the execute bit set after uploading)