├── .gitignore ├── IPAs ├── com.zerotier.ZeroTier-One.com.zerotier.ZeroTier-One.(1.12.2).ipa └── com.zerotier.ZeroTier-One.com.zerotier.ZeroTier-One.(1.8.10).ipa ├── Makefile ├── README.md ├── Tweak.x ├── ZeroTieriOSFix.plist └── control /.gitignore: -------------------------------------------------------------------------------- 1 | packages 2 | .theos 3 | .DS_Store -------------------------------------------------------------------------------- /IPAs/com.zerotier.ZeroTier-One.com.zerotier.ZeroTier-One.(1.12.2).ipa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemon4ex/ZeroTieriOSFix/5a376bb3ad7c347791febf7b162c469a4b8f197b/IPAs/com.zerotier.ZeroTier-One.com.zerotier.ZeroTier-One.(1.12.2).ipa -------------------------------------------------------------------------------- /IPAs/com.zerotier.ZeroTier-One.com.zerotier.ZeroTier-One.(1.8.10).ipa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lemon4ex/ZeroTieriOSFix/5a376bb3ad7c347791febf7b162c469a4b8f197b/IPAs/com.zerotier.ZeroTier-One.com.zerotier.ZeroTier-One.(1.8.10).ipa -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | THEOS_DEVICE_IP = localhost -o StrictHostKeyChecking=no 2 | THEOS_DEVICE_PORT = 2222 3 | 4 | ARCHS = arm64 5 | 6 | TARGET := iphone:clang:latest:7.0 7 | INSTALL_TARGET_PROCESSES = ZeroTierPTP 8 | 9 | 10 | include $(THEOS)/makefiles/common.mk 11 | 12 | TWEAK_NAME = ZeroTieriOSFix 13 | 14 | ZeroTieriOSFix_FILES = Tweak.x 15 | ZeroTieriOSFix_CFLAGS = -fobjc-arc 16 | 17 | include $(THEOS_MAKE_PATH)/tweak.mk 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ZeroTieriOSFix 2 | 3 | A Tweak that allows `ZeroTier One` app to use custom planetary servers. 4 | 5 | Developed based on the `v1.12.2` version, other versions can be implemented by referring to the code. 6 | 7 | This Tweak is currently for personal use and will not be updated in time. 8 | 9 | If you need to support the latest version of the `ZeroTier One` client, you can create an `issue`. 10 | 11 | If you want to customize the planet server, please refer to the article [内网穿透工具 ZeroTier 的私有化部署和组网](https://byteage.com/157.html?from=github) 12 | 13 | ## How to modify 14 | First, modify the source code according to the [内网穿透工具 ZeroTier 的私有化部署和组网](https://byteage.com/157.html?from=github). When compiling and generating the planet file, it will be in the same directory. (`ZeroTierOne/attic/world`) to generate a new `world.c` file, open this file, copy the code inside, replace the corresponding code in the `Tweak.x` file, and then compile Tweak. 15 | 16 | # ZeroTieriOSFix 17 | 18 | 一个允许 `ZeroTier One` 应用使用自定义的行星服务器的 `Tweak`。 19 | 20 | 基于`v1.12.2`版本开发并测试通过,其他版本可以参考代码自行实现。 21 | 22 | 此插件目前是自用的,不会及时更新。 23 | 24 | 如果需要支持最新版本的`ZeroTier One`客户端,可以创建`issue`。 25 | 26 | 如果想自定义行星服务器,请参考文章[内网穿透工具 ZeroTier 的私有化部署和组网](https://byteage.com/157.html?from=github) 27 | 28 | ## 如何修改 29 | 先根据[内网穿透工具 ZeroTier 的私有化部署和组网](https://byteage.com/157.html?from=github)修改源码,在编译生成planet文件的同时会在同一个目录(`ZeroTierOne/attic/world`)下生成一个新的`world.c`文件,打开这个文件,把里面的代码拷贝出来,替换掉`Tweak.x`文件里面对应的代码,然后编译Tweak即可。 30 | -------------------------------------------------------------------------------- /Tweak.x: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #define LOG(fmt, ...) NSLog(@"[ZeroTieriOSFix] " fmt "\n", ##__VA_ARGS__) 4 | 5 | // The code below should be replaced with your own planet server data 6 | #define ZT_DEFAULT_WORLD_LENGTH 551 7 | static const unsigned char ZT_DEFAULT_WORLD[ZT_DEFAULT_WORLD_LENGTH] = {0x01,0x00,0x00,0x00,0x00,0x08,0xea,0xc9,0x0a,0x00,0x00,0x01,0x6c,0xe3,0xe2,0x39,0x55,0xe0,0x4a,0x55,0x8b,0x9b,0x9e,0x10,0x24,0xd1,0xcf,0xe1,0x93,0x67,0xbf,0x57,0x46,0x97,0x17,0xf5,0x03,0xf6,0x56,0xd1,0x7d,0xb2,0x56,0xe3,0xa5,0x1e,0x07,0x83,0x09,0x7c,0xa1,0x42,0x23,0x13,0xf4,0x81,0xbf,0xdb,0x3a,0xba,0xed,0xad,0xeb,0xa0,0xbd,0x44,0xfb,0x53,0xd9,0xce,0xee,0x08,0x84,0xc9,0x1b,0xf0,0xad,0x1e,0x5a,0xf7,0xf3,0xb6,0x87,0x62,0xd6,0x95,0x4e,0x68,0x34,0xa7,0x8f,0xbf,0x61,0xd4,0xae,0x17,0x51,0x05,0xdc,0x78,0xa8,0x89,0x30,0xe3,0x28,0xf6,0x08,0x40,0x76,0xd4,0x83,0xc9,0x63,0xfa,0x2a,0x13,0x5a,0xdc,0x87,0x96,0xe1,0x0d,0xef,0x35,0xf2,0xa6,0x19,0x08,0x15,0xfd,0xd7,0x1a,0xf0,0xcd,0xb0,0x64,0x5f,0x32,0x17,0x82,0xa3,0xf9,0xf2,0x3a,0x07,0xc8,0x89,0xb8,0x39,0x54,0xba,0x64,0x12,0xa4,0x53,0xae,0x8d,0x3a,0x46,0xb9,0xc8,0x84,0x79,0x5d,0x46,0x7a,0xfe,0xfb,0x08,0x0a,0x41,0x4c,0xe6,0xb9,0xbc,0xe8,0xa3,0x04,0x65,0x37,0x9f,0xf8,0x8e,0x00,0x16,0x1c,0xd8,0x39,0x65,0xf0,0x56,0xb2,0xa1,0xb8,0x24,0x9b,0xd9,0x2a,0x7b,0x6c,0xb9,0x7b,0x8d,0xcc,0x97,0x80,0x8b,0x0d,0xf1,0x11,0x5f,0x4a,0xf8,0x5f,0x45,0x47,0x4c,0xbd,0xc4,0x35,0x3f,0x77,0xc4,0xf0,0x33,0x95,0x55,0x96,0xb3,0x0a,0x59,0x6f,0xc4,0x93,0xef,0xdb,0x81,0x66,0x76,0x22,0xb4,0x58,0xdd,0xf8,0xc3,0x61,0xc0,0x28,0x00,0x01,0x04,0x77,0x1d,0x64,0x25,0x27,0x09,0x3a,0x46,0xf1,0xbf,0x30,0x00,0x76,0xe6,0x6f,0xab,0x33,0xe2,0x85,0x49,0xa6,0x2e,0xe2,0x06,0x4d,0x18,0x43,0x27,0x3c,0x2c,0x30,0x0b,0xa4,0x5c,0x3f,0x20,0xbe,0xf0,0x2d,0xba,0xd2,0x25,0x72,0x3b,0xb5,0x9a,0x9b,0xb4,0xb1,0x35,0x35,0x73,0x09,0x61,0xae,0xec,0xf5,0xa1,0x63,0xac,0xe4,0x77,0xcc,0xeb,0x07,0x27,0x02,0x5b,0x99,0xac,0x14,0xa5,0x16,0x6a,0x09,0xa3,0x00,0x02,0x04,0xb9,0xb4,0x0d,0x52,0x27,0x09,0x06,0x2a,0x02,0x6e,0xa0,0xc8,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x09,0xde,0x89,0x50,0xa8,0xb2,0x00,0x1b,0x3a,0xda,0x82,0x51,0xb9,0x1b,0x6b,0x6f,0xa6,0x53,0x5b,0x8c,0x7e,0x24,0x60,0x91,0x8f,0x4f,0x72,0x9a,0xbd,0xec,0x97,0xd3,0xc7,0xf3,0x79,0x68,0x68,0xfb,0x02,0xf0,0xde,0x0b,0x0e,0xe5,0x54,0xb2,0xd5,0x9f,0xc3,0x52,0x47,0x43,0xee,0xbf,0xcf,0x53,0x15,0xe7,0x90,0xed,0x6d,0x92,0xdb,0x5b,0xd1,0x0c,0x28,0xc0,0x9b,0x40,0xef,0x00,0x02,0x04,0xcf,0xf6,0x49,0xf5,0x01,0xbb,0x06,0x20,0x01,0x19,0xf0,0x90,0x02,0x05,0xcb,0x0e,0xc4,0x7a,0xff,0xfe,0x8f,0x69,0xd9,0x01,0xbb,0x34,0xe0,0xa5,0xe1,0x74,0x00,0x93,0xef,0xb5,0x09,0x34,0x78,0x8f,0x85,0x6d,0x5c,0xfb,0x9c,0xa5,0xbe,0x88,0xe8,0x5b,0x40,0x96,0x55,0x86,0xb7,0x5b,0xef,0xac,0x90,0x0d,0xf7,0x73,0x52,0xc1,0x45,0xa1,0xba,0x70,0x07,0x56,0x9d,0x37,0xc7,0x7b,0xfe,0x52,0xc0,0x99,0x9f,0x3b,0xdc,0x67,0xa4,0x7a,0x4a,0x60,0x00,0xb7,0x20,0xa8,0x83,0xce,0x47,0xaa,0x2f,0xb7,0xf8,0x00,0x02,0x04,0x93,0x4b,0x5c,0x02,0x01,0xbb,0x06,0x26,0x04,0x13,0x80,0x30,0x00,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xbb}; 8 | 9 | %hook ZeroTierDataStore 10 | - (NSData *)getObjectWithName:(NSString *)name { 11 | if ([name isEqualToString:@"planet"]) { 12 | return [NSData dataWithBytes:ZT_DEFAULT_WORLD length:ZT_DEFAULT_WORLD_LENGTH]; 13 | } 14 | 15 | return %orig; 16 | } 17 | - (BOOL)putObjectWithName:(NSString *)name buffer:(NSData *)buffer secure:(BOOL)secure { 18 | if ([name isEqualToString:@"planet"]) { 19 | NSData *data = [NSData dataWithBytes:ZT_DEFAULT_WORLD length:ZT_DEFAULT_WORLD_LENGTH]; 20 | return %orig(name, data, secure); 21 | } 22 | 23 | return %orig; 24 | } 25 | %end 26 | 27 | %ctor { 28 | LOG(@"loaded in %s (%d)", getprogname(), getpid()); 29 | 30 | %init(); 31 | } -------------------------------------------------------------------------------- /ZeroTieriOSFix.plist: -------------------------------------------------------------------------------- 1 | { 2 | Filter = { 3 | Executables = ( 4 | ZeroTierPTP, 5 | ); 6 | }; 7 | } -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | Package: com.byteage.zerotieriosfix 2 | Name: ZeroTieriOSFix 3 | Version: 0.0.1 4 | Architecture: iphoneos-arm 5 | Description: Allows ZeroTier One app to use custom planetary servers 6 | Maintainer: h4ck1n 7 | Author: h4ck1n 8 | Section: Tweaks 9 | Depends: mobilesubstrate (>= 0.9.5000) 10 | --------------------------------------------------------------------------------