├── polyfill ├── libgen.h ├── config.h ├── libgen.c └── asprintf.h ├── .gitignore ├── idevice_id.vcxproj ├── idevicebackup.vcxproj ├── idevicedate.vcxproj ├── idevicedebug.vcxproj ├── ideviceinfo.vcxproj ├── idevicename.vcxproj ├── idevicepair.vcxproj ├── idevicesyslog.vcxproj ├── idevicebackup2.vcxproj ├── idevicecrashreport.vcxproj ├── idevicediagnostics.vcxproj ├── ideviceprovision.vcxproj ├── idevicescreenshot.vcxproj ├── ideviceenterrecovery.vcxproj ├── ideviceimagemounter.vcxproj ├── idevicenotificationproxy.vcxproj ├── test-unix.yaml ├── idevicedebugserverproxy.vcxproj ├── get-source.yaml ├── get-source.cmd ├── get-source.sh ├── README.md ├── idevicetool.props ├── plist_test.vcxproj ├── plist_cmp.vcxproj ├── libideviceactivation.vcxproj ├── ideviceactivation.vcxproj ├── libusbmuxd.vcxproj ├── libirecovery.vcxproj ├── irecovery.vcxproj ├── plistutil.vcxproj ├── iproxy.vcxproj ├── ideviceinstaller.vcxproj ├── ios_webkit_debug_proxy.vcxproj ├── libplist.vcxproj ├── idevicerestore.vcxproj ├── usbmuxd.vcxproj ├── imobiledevice.vcxproj ├── azure-pipelines.yml └── LICENSE /polyfill/libgen.h: -------------------------------------------------------------------------------- 1 | char *dirname(char *path); 2 | char *basename(char *path); 3 | char *realpath(const char *path, char *resolved_path); -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Local files 2 | .vs/ 3 | *.user 4 | UpgradeLog.htm 5 | 6 | # Build output 7 | Win32/ 8 | x64/ 9 | 10 | # Source trees 11 | libplist/ 12 | libusbmuxd/ 13 | libimobiledevice/ 14 | idevicerestore/ 15 | libirecovery/ 16 | usbmuxd/ 17 | ideviceinstaller/ 18 | libideviceactivation/ 19 | ios-webkit-debug-proxy/ -------------------------------------------------------------------------------- /idevice_id.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {C54326D2-6D5C-4EF0-B25D-BB77BB274189} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicebackup.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {B247A077-4411-4EE1-AB2C-04C1EED36D76} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicedate.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {14001AA3-707D-4C20-9343-4A50114F9575} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicedebug.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {05E490B5-F525-4B81-B588-AD9807340F0E} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ideviceinfo.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {EF0F59A3-0EE9-44CE-9457-B621B6FC50EB} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicename.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {E34CB3B0-C129-4543-A689-888562563965} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicepair.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {C295C08A-5ACD-4244-A519-B567CE13D345} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicesyslog.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {A68FA899-3363-4E9D-91A5-0C413FED5CC0} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicebackup2.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {52368076-4DE4-41E9-BFF0-90BC12F0D437} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicecrashreport.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {C99EF8F0-4A17-4503-9972-8BB9BD107CA1} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicediagnostics.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {D7FBC644-E3BA-4BEE-B896-6F81D9EEB020} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ideviceprovision.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {2A7EF89F-D254-4D6D-8563-F4C3504AB4A7} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicescreenshot.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {C524F5B4-EDB1-4622-8EA5-8CA9DFACA09D} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ideviceenterrecovery.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {52C80793-81E2-408E-BF45-6140BBED11E7} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ideviceimagemounter.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {CB4C173A-4F2E-4A63-9BA3-5F130B43604B} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /idevicenotificationproxy.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {53C55478-5683-42D2-9A6F-D5998D1D0ECC} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test-unix.yaml: -------------------------------------------------------------------------------- 1 | steps: 2 | - script: | 3 | set -e 4 | mkdir test 5 | cd test 6 | 7 | cp $BUILD_ARTIFACTSTAGINGDIRECTORY/libimobiledevice/$RID/bin/* . 8 | cp $BUILD_ARTIFACTSTAGINGDIRECTORY/libimobiledevice/$RID/sbin/* . 9 | cp $BUILD_ARTIFACTSTAGINGDIRECTORY/libimobiledevice/$RID/lib/lib* . 10 | 11 | ls -l . 12 | 13 | ./iproxy --help 14 | ./idevice_id --help 15 | ./ideviceactivation --help 16 | ./usbmuxd --help 17 | ./ideviceinstaller --help 18 | ./irecovery 19 | displayName: Test executables 20 | -------------------------------------------------------------------------------- /idevicedebugserverproxy.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {9A38E78A-971B-4D7B-89F3-5A05B517EA76} 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /get-source.yaml: -------------------------------------------------------------------------------- 1 | # This does not work (properly) when running a container job; see 2 | # https://github.com/microsoft/azure-pipelines-tasks/issues/12844 3 | # for more information 4 | steps: 5 | - checkout: self 6 | path: s 7 | target: host 8 | - checkout: libplist 9 | path: s/libplist 10 | target: host 11 | - checkout: libusbmuxd 12 | path: s/libusbmuxd 13 | target: host 14 | - checkout: libimobiledevice 15 | path: s/libimobiledevice 16 | target: host 17 | - checkout: libideviceactivation 18 | path: s/libideviceactivation 19 | target: host 20 | - checkout: ideviceinstaller 21 | path: s/ideviceinstaller 22 | target: host 23 | - checkout: libirecovery 24 | path: s/libirecovery 25 | target: host 26 | - checkout: idevicerestore 27 | path: s/idevicerestore 28 | target: host 29 | - checkout: usbmuxd 30 | path: s/usbmuxd 31 | target: host 32 | - checkout: ios-webkit-debug-proxy 33 | path: s/ios-webkit-debug-proxy 34 | target: host -------------------------------------------------------------------------------- /polyfill/config.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define SSIZE_T ssize_t 4 | 5 | #define PACKAGE_BUGREPORT "https://github.com/libimobiledevice-win32/libimobiledevice-vs/" 6 | #define PACKAGE_URL "https://github.com/libimobiledevice-win32/libimobiledevice-vs/" 7 | #define PACKAGE_NAME "libimobiledevice-win32" 8 | #define PACKAGE_VERSION "1.0.0" 9 | 10 | #define S_IFIFO _S_IFIFO 11 | #define S_IFBLK 0x3000 12 | 13 | #ifndef S_ISDIR 14 | #define S_ISDIR(mode) (((mode)& S_IFMT) == S_IFDIR) 15 | #endif 16 | 17 | #ifndef S_ISREG 18 | #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) 19 | #endif 20 | 21 | // See https://unix.superglobalmegacorp.com/Net2/newsrc/sys/unistd.h.html 22 | #ifndef F_OK 23 | #define F_OK 0 24 | #endif 25 | 26 | #ifndef W_OK 27 | #define W_OK 02 28 | #endif 29 | 30 | #ifndef X_OK 31 | #define X_OK 0 32 | #endif 33 | 34 | #ifndef R_OK 35 | #define R_OK 4 36 | #endif 37 | 38 | #ifndef PATH_MAX 39 | #define PATH_MAX 260 40 | #endif 41 | 42 | #ifndef le16toh 43 | #if __BYTE_ORDER == __BIG_ENDIAN 44 | #define le16toh(x) ((((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8)) 45 | #else 46 | #define le16toh(x) (x) 47 | #endif 48 | #endif 49 | 50 | #ifndef strcasecmp 51 | #define strcasecmp _stricmp 52 | #endif -------------------------------------------------------------------------------- /get-source.cmd: -------------------------------------------------------------------------------- 1 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libplist 2 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libusbmuxd 3 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libimobiledevice 4 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libideviceactivation 5 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/ideviceinstaller 6 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libirecovery 7 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/idevicerestore 8 | git clone --single-branch --branch master-msvc https://github.com/libimobiledevice-win32/usbmuxd 9 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/ios-webkit-debug-proxy 10 | 11 | echo "libplist revision:" 12 | git -C libplist rev-parse HEAD 13 | 14 | echo "libusbmxud revision:" 15 | git -C libusbmuxd rev-parse HEAD 16 | 17 | echo "libimobiledevice revision:" 18 | git -C libimobiledevice rev-parse HEAD 19 | 20 | echo "libideviceactivation revision:" 21 | git -C libideviceactivation rev-parse HEAD 22 | 23 | echo "ideviceinstaller revision:" 24 | git -C ideviceinstaller rev-parse HEAD 25 | 26 | echo "libirecovery revision:" 27 | git -C libirecovery rev-parse HEAD 28 | 29 | echo "idevicerestore revision:" 30 | git -C idevicerestore rev-parse HEAD 31 | 32 | echo "usbmuxd revision:" 33 | git -C usbmuxd rev-parse HEAD 34 | 35 | echo "ios-webkit-debug-proxy revision:" 36 | git -C ios-webkit-debug-proxy rev-parse HEAD -------------------------------------------------------------------------------- /get-source.sh: -------------------------------------------------------------------------------- 1 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libplist 2 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libusbmuxd 3 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libimobiledevice 4 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libideviceactivation 5 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/ideviceinstaller 6 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/libirecovery 7 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/idevicerestore 8 | git clone --single-branch --branch master-msvc https://github.com/libimobiledevice-win32/usbmuxd 9 | git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/ios-webkit-debug-proxy 10 | 11 | # git -C is not available on CentOS 7 12 | if [ -f /etc/redhat-release ] && [ $(rpm -q --queryformat '%{VERSION}' centos-release) == "7" ] 13 | then 14 | exit 0 15 | fi 16 | 17 | echo "libplist revision:" 18 | git -C libplist rev-parse HEAD 19 | 20 | echo "libusbmxud revision:" 21 | git -C libusbmuxd rev-parse HEAD 22 | 23 | echo "libimobiledevice revision:" 24 | git -C libimobiledevice rev-parse HEAD 25 | 26 | echo "libideviceactivation revision:" 27 | git -C libideviceactivation rev-parse HEAD 28 | 29 | echo "ideviceinstaller revision:" 30 | git -C ideviceinstaller rev-parse HEAD 31 | 32 | echo "libirecovery revision:" 33 | git -C libirecovery rev-parse HEAD 34 | 35 | echo "idevicerestore revision:" 36 | git -C idevicerestore rev-parse HEAD 37 | 38 | echo "usbmuxd revision:" 39 | git -C usbmuxd rev-parse HEAD 40 | 41 | echo "ios-webkit-debug-proxy revision:" 42 | git -C ios-webkit-debug-proxy rev-parse HEAD -------------------------------------------------------------------------------- /polyfill/libgen.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #ifdef WIN32 10 | #define MAXPATHLEN 1024 11 | #endif 12 | 13 | /*---------------------------------------------------------------------------*/ 14 | char *dirname(char *path) 15 | { 16 | static char buffer[260]; 17 | size_t len; 18 | if (path == NULL) { 19 | strcpy(buffer, "."); 20 | return buffer; 21 | } 22 | len = strlen(path); 23 | assert(len 6 | * 7 | * Permission to use, copy, modify, and distribute this software for any 8 | * purpose with or without fee is hereby granted, provided that the above 9 | * copyright notice and this permission notice appear in all copies. 10 | * 11 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 | */ 19 | 20 | #ifndef __ASPRINTF_H 21 | #define __ASPRINTF_H 22 | 23 | #ifdef HAVE_CONFIG_H 24 | #include 25 | #endif 26 | 27 | #include 28 | #include 29 | 30 | #ifndef HAVE_VASPRINTF 31 | 32 | #ifndef VA_COPY 33 | # ifdef HAVE_VA_COPY 34 | # define VA_COPY(dest, src) va_copy(dest, src) 35 | # else 36 | # ifdef HAVE___VA_COPY 37 | # define VA_COPY(dest, src) __va_copy(dest, src) 38 | # else 39 | # define VA_COPY(dest, src) (dest) = (src) 40 | # endif 41 | # endif 42 | #endif 43 | 44 | #define INIT_SZ 128 45 | 46 | static inline int vasprintf(char **str, const char *fmt, va_list ap) 47 | { 48 | int ret = -1; 49 | va_list ap2; 50 | char *string, *newstr; 51 | size_t len; 52 | 53 | VA_COPY(ap2, ap); 54 | if ((string = malloc(INIT_SZ)) == NULL) 55 | goto fail; 56 | 57 | ret = vsnprintf(string, INIT_SZ, fmt, ap2); 58 | if (ret >= 0 && ret < INIT_SZ) { /* succeeded with initial alloc */ 59 | *str = string; 60 | } else if (ret == INT_MAX || ret < 0) { /* Bad length */ 61 | free(string); 62 | goto fail; 63 | } else { /* bigger than initial, realloc allowing for nul */ 64 | len = (size_t)ret + 1; 65 | if ((newstr = realloc(string, len)) == NULL) { 66 | free(string); 67 | goto fail; 68 | } else { 69 | va_end(ap2); 70 | VA_COPY(ap2, ap); 71 | ret = vsnprintf(newstr, len, fmt, ap2); 72 | if (ret >= 0 && (size_t)ret < len) { 73 | *str = newstr; 74 | } else { /* failed with realloc'ed string, give up */ 75 | free(newstr); 76 | goto fail; 77 | } 78 | } 79 | } 80 | va_end(ap2); 81 | return (ret); 82 | 83 | fail: 84 | *str = NULL; 85 | va_end(ap2); 86 | return (-1); 87 | } 88 | #endif 89 | 90 | #ifndef HAVE_ASPRINTF 91 | static inline int asprintf(char **str, const char *fmt, ...) 92 | { 93 | va_list ap; 94 | int ret; 95 | 96 | *str = NULL; 97 | va_start(ap, fmt); 98 | ret = vasprintf(str, fmt, ap); 99 | va_end(ap); 100 | 101 | return ret; 102 | } 103 | #endif 104 | 105 | #endif -------------------------------------------------------------------------------- /idevicetool.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | idevicebackup2 5 | 6 | 7 | 8 | Debug 9 | Win32 10 | 11 | 12 | Release 13 | Win32 14 | 15 | 16 | Debug 17 | x64 18 | 19 | 20 | Release 21 | x64 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | {D5F1A4D4-C23A-47EF-91E9-E2C08F6E31B2} 41 | Win32Proj 42 | $(ProjectName) 43 | 10.0 44 | 45 | 46 | Application 47 | v142 48 | MultiByte 49 | 50 | 51 | true 52 | true 53 | 54 | 55 | false 56 | false 57 | true 58 | 59 | 60 | 61 | $(SolutionDir)$(Platform)\$(Configuration)\ 62 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 63 | 64 | 65 | 66 | 67 | Level3 68 | $(ProjectDir)\polyfill;$(ProjectDir)\libplist\include;$(ProjectDir)\libusbmuxd\include;$(ProjectDir)\libimobiledevice\;$(ProjectDir)\libimobiledevice\include;$(ProjectDir)\libimobiledevice\tools;$(ProjectDir)\libimobiledevice\common;$(ProjectDir);%(AdditionalIncludeDirectories) 69 | HAVE_OPENSSL;HAVE_CONFIG_H;WIN32;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) 70 | 71 | /utf-8 %(AdditionalOptions) 72 | 73 | 74 | Console 75 | true 76 | ws2_32.lib;%(AdditionalDependencies) 77 | 78 | 79 | 80 | 81 | Disabled 82 | _DEBUG;%(PreprocessorDefinitions) 83 | 84 | 85 | 86 | 87 | MaxSpeed 88 | true 89 | true 90 | NDEBUG;%(PreprocessorDefinitions) 91 | 92 | 93 | true 94 | true 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /plist_test.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | {838A6A6C-5CDC-4A4E-B9EE-409709DC5188} 29 | Win32Proj 30 | libplist 31 | 10 32 | Application 33 | v142 34 | Unicode 35 | 36 | 37 | 38 | true 39 | 40 | 41 | true 42 | 43 | 44 | false 45 | true 46 | 47 | 48 | false 49 | true 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | $(SolutionDir)$(Platform)\$(Configuration)\ 63 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 64 | 65 | 66 | 67 | Level3 68 | libplist\include;libplist\libcnary\include;%(AdditionalIncludeDirectories) 69 | 70 | 71 | 72 | 73 | Disabled 74 | WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) 75 | CompileAsCpp 76 | 77 | 78 | Console 79 | true 80 | 81 | 82 | 83 | 84 | Disabled 85 | WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) 86 | CompileAsCpp 87 | 88 | 89 | Console 90 | true 91 | 92 | 93 | 94 | 95 | MaxSpeed 96 | true 97 | true 98 | WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) 99 | 100 | 101 | Console 102 | true 103 | true 104 | true 105 | 106 | 107 | 108 | 109 | MaxSpeed 110 | true 111 | true 112 | WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) 113 | 114 | 115 | Console 116 | true 117 | true 118 | true 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /plist_cmp.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | {1B0DA277-255F-4E73-AC59-5EE204E15811} 31 | Win32Proj 32 | libplist 33 | 10 34 | Application 35 | v142 36 | Unicode 37 | 38 | 39 | 40 | true 41 | 42 | 43 | true 44 | 45 | 46 | false 47 | true 48 | 49 | 50 | false 51 | true 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | $(SolutionDir)$(Platform)\$(Configuration)\ 65 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 66 | 67 | 68 | 69 | Level3 70 | libplist\include;libplist\libcnary\include 71 | 72 | 73 | 74 | 75 | Disabled 76 | WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) 77 | CompileAsCpp 78 | 79 | 80 | 81 | 82 | Console 83 | true 84 | 85 | 86 | 87 | 88 | Disabled 89 | WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) 90 | CompileAsCpp 91 | 92 | 93 | Console 94 | true 95 | 96 | 97 | 98 | 99 | MaxSpeed 100 | true 101 | true 102 | WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) 103 | 104 | 105 | 106 | 107 | Console 108 | true 109 | true 110 | true 111 | 112 | 113 | 114 | 115 | MaxSpeed 116 | true 117 | true 118 | WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) 119 | 120 | 121 | Console 122 | true 123 | true 124 | true 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /libideviceactivation.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | v142 28 | ideviceactivation 29 | 30 | 31 | 15.0 32 | {6F22FD3C-EAC0-4BF0-A7DE-3B92695666EB} 33 | libideviceactivation 34 | 10 35 | 36 | 37 | 38 | DynamicLibrary 39 | true 40 | MultiByte 41 | 42 | 43 | DynamicLibrary 44 | false 45 | true 46 | MultiByte 47 | 48 | 49 | DynamicLibrary 50 | true 51 | MultiByte 52 | 53 | 54 | DynamicLibrary 55 | false 56 | true 57 | MultiByte 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | $(SolutionDir)$(Platform)\$(Configuration)\ 70 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 71 | ideviceactivation 72 | $(ProjectDir)\libideviceactivation\include;$(ProjectDir)\libplist\include;$(ProjectDir)\libusbmuxd\include;$(ProjectDir)\libimobiledevice\include\;$(IncludePath) 73 | 74 | 75 | 76 | _CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_OBSOLETE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions) 77 | 78 | 79 | libxml2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 80 | 81 | 82 | 83 | 84 | Level3 85 | Disabled 86 | true 87 | true 88 | 89 | 90 | 91 | 92 | Level3 93 | Disabled 94 | true 95 | true 96 | 97 | 98 | 99 | 100 | Level3 101 | MaxSpeed 102 | true 103 | true 104 | true 105 | true 106 | 107 | 108 | true 109 | true 110 | 111 | 112 | 113 | 114 | Level3 115 | MaxSpeed 116 | true 117 | true 118 | true 119 | true 120 | 121 | 122 | true 123 | true 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /ideviceactivation.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 15.0 23 | {691929A2-CBD1-4DC4-AB0B-AEE444EF6A68} 24 | ideviceactivation 25 | 10 26 | v142 27 | 28 | 29 | 30 | Application 31 | true 32 | MultiByte 33 | 34 | 35 | Application 36 | false 37 | true 38 | MultiByte 39 | 40 | 41 | Application 42 | true 43 | MultiByte 44 | 45 | 46 | Application 47 | false 48 | true 49 | MultiByte 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | $(SolutionDir)include;$(IncludePath) 61 | $(SolutionDir)$(Platform)\$(Configuration)\ 62 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)_exe\ 63 | 64 | 65 | 66 | $(ProjectDir)\polyfill;$(ProjectDir)\libideviceactivation\include\;$(ProjectDir)\libplist\include;$(ProjectDir)\libimobiledevice\;$(ProjectDir)\libimobiledevice\include;$(ProjectDir);%(AdditionalIncludeDirectories) 67 | HAVE_CONFIG_H;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions) 68 | 69 | 70 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 71 | 72 | 73 | 74 | 75 | Level3 76 | MaxSpeed 77 | true 78 | true 79 | true 80 | true 81 | 82 | 83 | true 84 | true 85 | LinkVerbose 86 | 87 | 88 | 89 | 90 | Level3 91 | Disabled 92 | true 93 | true 94 | 95 | 96 | LinkVerbose 97 | 98 | 99 | 100 | 101 | Level3 102 | Disabled 103 | true 104 | true 105 | 106 | 107 | LinkVerbose 108 | 109 | 110 | 111 | 112 | Level3 113 | MaxSpeed 114 | true 115 | true 116 | true 117 | true 118 | 119 | 120 | true 121 | true 122 | LinkVerbose 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | {ee16e7f2-ac27-4e30-ab22-b02a9c2380b4} 131 | 132 | 133 | 134 | {75352a45-bcb8-4774-8c66-3af9ea6b6b42} 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /libusbmuxd.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {527AE686-CD0E-4BC2-9B0F-4BC4CF9621E0} 23 | libusbmuxd 24 | 10 25 | usbmuxd 26 | 27 | 28 | 29 | DynamicLibrary 30 | true 31 | v142 32 | MultiByte 33 | 34 | 35 | DynamicLibrary 36 | true 37 | v142 38 | MultiByte 39 | 40 | 41 | DynamicLibrary 42 | false 43 | v142 44 | true 45 | MultiByte 46 | 47 | 48 | DynamicLibrary 49 | false 50 | v142 51 | true 52 | MultiByte 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | $(SolutionDir)$(Platform)\$(Configuration)\ 61 | $(SolutionDir)$(Platform)\$(Configuration)\$(RootNamespace)\ 62 | 63 | 64 | 65 | strcasecmp=_stricmp;PACKAGE_STRING="$(ProjectName)";_MBCS;WIN32;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;USBMUXD_EXPORTS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) 66 | libplist\include;libusbmuxd\include;libusbmuxd\common;%(AdditionalIncludeDirectories) 67 | 68 | 69 | ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;plist.lib;%(AdditionalDependencies) 70 | 71 | 72 | 73 | 74 | Level3 75 | Disabled 76 | true 77 | 78 | 79 | true 80 | $(SolutionDir)$(Platform)\$(Configuration)\ 81 | 82 | 83 | 84 | 85 | Level3 86 | Disabled 87 | true 88 | 89 | 90 | true 91 | $(SolutionDir)$(Platform)\$(Configuration)\ 92 | 93 | 94 | 95 | 96 | Level3 97 | MaxSpeed 98 | true 99 | true 100 | true 101 | 102 | 103 | true 104 | true 105 | true 106 | $(SolutionDir)$(Platform)\$(Configuration)\ 107 | 108 | 109 | 110 | 111 | Level3 112 | MaxSpeed 113 | true 114 | true 115 | true 116 | 117 | 118 | true 119 | true 120 | true 121 | $(SolutionDir)$(Platform)\$(Configuration)\ 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /libirecovery.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {1F5B7A30-B170-4D4C-89F8-33E4A24CF9CE} 23 | libirecovery 24 | 10 25 | v142 26 | 27 | 28 | 29 | DynamicLibrary 30 | true 31 | MultiByte 32 | 33 | 34 | DynamicLibrary 35 | false 36 | true 37 | MultiByte 38 | 39 | 40 | DynamicLibrary 41 | true 42 | MultiByte 43 | 44 | 45 | DynamicLibrary 46 | false 47 | true 48 | MultiByte 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | irecovery 61 | $(ProjectDir)$(Platform)\$(Configuration)\ 62 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 63 | 64 | 65 | 66 | Level3 67 | Disabled 68 | true 69 | _MBCS;%(PreprocessorDefinitions);WIN32;_CRT_SECURE_NO_WARNINGS; _CRT_NONSTDC_NO_DEPRECATE 70 | $(ProjectDir)libirecovery\include;%(AdditionalIncludeDirectories) 71 | 72 | 73 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Setupapi.lib;%(AdditionalDependencies) 74 | 75 | 76 | 77 | 78 | Level3 79 | Disabled 80 | true 81 | _MBCS;%(PreprocessorDefinitions);WIN32;_CRT_SECURE_NO_WARNINGS; _CRT_NONSTDC_NO_DEPRECATE 82 | $(ProjectDir)libirecovery\include;%(AdditionalIncludeDirectories) 83 | 84 | 85 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Setupapi.lib;%(AdditionalDependencies) 86 | 87 | 88 | 89 | 90 | Level3 91 | MaxSpeed 92 | true 93 | true 94 | true 95 | _MBCS;%(PreprocessorDefinitions);WIN32;_CRT_SECURE_NO_WARNINGS; _CRT_NONSTDC_NO_DEPRECATE 96 | $(ProjectDir)libirecovery\include;%(AdditionalIncludeDirectories) 97 | 98 | 99 | true 100 | true 101 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Setupapi.lib;%(AdditionalDependencies) 102 | 103 | 104 | 105 | 106 | Level3 107 | MaxSpeed 108 | true 109 | true 110 | true 111 | _MBCS;%(PreprocessorDefinitions);WIN32;_CRT_SECURE_NO_WARNINGS; _CRT_NONSTDC_NO_DEPRECATE 112 | $(ProjectDir)libirecovery\include;%(AdditionalIncludeDirectories) 113 | 114 | 115 | true 116 | true 117 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Setupapi.lib;%(AdditionalDependencies) 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | -------------------------------------------------------------------------------- /irecovery.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Debug 7 | Win32 8 | 9 | 10 | Release 11 | Win32 12 | 13 | 14 | Debug 15 | x64 16 | 17 | 18 | Release 19 | x64 20 | 21 | 22 | 23 | {E6694D68-7D6C-4540-9833-E90B535B0CD3} 24 | irecovery 25 | 10 26 | v142 27 | 28 | 29 | 30 | Application 31 | true 32 | MultiByte 33 | 34 | 35 | Application 36 | false 37 | true 38 | MultiByte 39 | 40 | 41 | Application 42 | true 43 | MultiByte 44 | 45 | 46 | Application 47 | false 48 | true 49 | MultiByte 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | $(ProjectDir)$(Platform)\$(Configuration)\ 62 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 63 | 64 | 65 | 66 | $(ProjectDir)\polyfill;$(ProjectDir)libirecovery\include;%(AdditionalIncludeDirectories) 67 | HAVE_CONFIG_H;%(PreprocessorDefinitions) 68 | 69 | 70 | 71 | 72 | Level3 73 | Disabled 74 | true 75 | _MBCS;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;USE_READLINE_STATIC 76 | $(OutDir)$(ProjectName).exe.pdb 77 | 78 | 79 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;readline.lib;%(AdditionalDependencies) 80 | 81 | 82 | 83 | 84 | Level3 85 | Disabled 86 | true 87 | _MBCS;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;USE_READLINE_STATIC 88 | $(OutDir)$(ProjectName).exe.pdb 89 | 90 | 91 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;readline.lib;%(AdditionalDependencies) 92 | 93 | 94 | 95 | 96 | Level3 97 | MaxSpeed 98 | true 99 | true 100 | true 101 | _MBCS;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;USE_READLINE_STATIC 102 | $(OutDir)$(ProjectName).exe.pdb 103 | 104 | 105 | true 106 | true 107 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;readline.lib;%(AdditionalDependencies) 108 | 109 | 110 | 111 | 112 | Level3 113 | MaxSpeed 114 | true 115 | true 116 | true 117 | _MBCS;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;USE_READLINE_STATIC 118 | $(OutDir)$(ProjectName).exe.pdb 119 | 120 | 121 | true 122 | true 123 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;readline.lib;%(AdditionalDependencies) 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /plistutil.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | {8A0C3E13-8F0C-44AC-BE42-B6FBACC8A841} 29 | Win32Proj 30 | plistutil 31 | 10 32 | v142 33 | 34 | 35 | 36 | Application 37 | true 38 | v141 39 | Unicode 40 | 41 | 42 | Application 43 | false 44 | true 45 | Unicode 46 | 47 | 48 | Application 49 | true 50 | Unicode 51 | 52 | 53 | Application 54 | false 55 | true 56 | Unicode 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | $(SolutionDir)\include;$(IncludePath) 78 | $(SolutionDir)$(Platform)\$(Configuration)\ 79 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 80 | 81 | 82 | true 83 | 84 | 85 | true 86 | 87 | 88 | false 89 | 90 | 91 | 92 | 93 | 94 | $(ProjectDir)\polyfill;libplist\include;libplist\libcnary\include;%(AdditionalIncludeDirectories) 95 | HAVE_CONFIG_H;%(PreprocessorDefinitions) 96 | 97 | 98 | 99 | 100 | Level3 101 | Disabled 102 | WIN32;_DEBUG;DEBUG;_CONSOLE;%(PreprocessorDefinitions) 103 | 104 | 105 | Console 106 | true 107 | 108 | 109 | 110 | 111 | Level3 112 | Disabled 113 | WIN32;_DEBUG;DEBUG;_CONSOLE;%(PreprocessorDefinitions) 114 | 115 | 116 | Console 117 | true 118 | 119 | 120 | 121 | 122 | Level3 123 | MaxSpeed 124 | true 125 | true 126 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 127 | 128 | 129 | Console 130 | true 131 | true 132 | true 133 | 134 | 135 | 136 | 137 | Level3 138 | MaxSpeed 139 | true 140 | true 141 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 142 | 143 | 144 | Console 145 | true 146 | true 147 | true 148 | 149 | 150 | 151 | -------------------------------------------------------------------------------- /iproxy.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | {64C34ED6-EC5F-4690-B91D-393444071601} 30 | Win32Proj 31 | iproxy 32 | 10 33 | v142 34 | 35 | 36 | 37 | Application 38 | true 39 | MultiByte 40 | 41 | 42 | Application 43 | false 44 | true 45 | MultiByte 46 | 47 | 48 | Application 49 | true 50 | MultiByte 51 | 52 | 53 | Application 54 | false 55 | true 56 | MultiByte 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | true 78 | $(SolutionDir)\libusbmuxd\common;$(SolutionDir)\libusbmuxd\include;$(IncludePath) 79 | $(SolutionDir)$(Platform)\$(Configuration)\ 80 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName) 81 | 82 | 83 | 84 | 85 | 86 | Level3 87 | Disabled 88 | $(ProjectDir)\polyfill;%(AdditionalIncludeDirectories) 89 | WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) 90 | 91 | 92 | Console 93 | true 94 | ws2_32.lib;%(AdditionalDependencies) 95 | 96 | 97 | 98 | 99 | 100 | 101 | Level3 102 | Disabled 103 | $(ProjectDir)\polyfill;%(AdditionalIncludeDirectories) 104 | WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) 105 | 106 | 107 | Console 108 | true 109 | ws2_32.lib;%(AdditionalDependencies) 110 | 111 | 112 | 113 | 114 | Level3 115 | 116 | 117 | MaxSpeed 118 | true 119 | true 120 | $(ProjectDir)\polyfill;%(AdditionalIncludeDirectories) 121 | WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) 122 | 123 | 124 | Console 125 | true 126 | true 127 | true 128 | ws2_32.lib;%(AdditionalDependencies) 129 | 130 | 131 | 132 | 133 | Level3 134 | 135 | 136 | MaxSpeed 137 | true 138 | true 139 | $(ProjectDir)\polyfill;%(AdditionalIncludeDirectories) 140 | WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) 141 | 142 | 143 | Console 144 | true 145 | true 146 | true 147 | ws2_32.lib;%(AdditionalDependencies) 148 | 149 | 150 | 151 | -------------------------------------------------------------------------------- /ideviceinstaller.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Debug 7 | Win32 8 | 9 | 10 | Release 11 | Win32 12 | 13 | 14 | Debug 15 | x64 16 | 17 | 18 | Release 19 | x64 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | Designer 29 | 30 | 31 | 32 | {10E88C2B-E98B-4EAA-AA34-9CA59136BBFD} 33 | Win32Proj 34 | ideviceinstaller 35 | 10 36 | v142 37 | 38 | 39 | 40 | Application 41 | true 42 | v141 43 | NotSet 44 | 45 | 46 | Application 47 | false 48 | true 49 | NotSet 50 | 51 | 52 | Application 53 | true 54 | NotSet 55 | 56 | 57 | Application 58 | false 59 | true 60 | NotSet 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | true 82 | 83 | 84 | true 85 | 86 | 87 | false 88 | 89 | 90 | false 91 | 92 | 93 | $(SolutionDir)$(Platform)\$(Configuration)\ 94 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 95 | 96 | 97 | 98 | $(ProjectDir)\polyfill;$(ProjectDir)\libplist\include;$(ProjectDir)\libimobiledevice\include;%(AdditionalIncludeDirectories) 99 | HAVE_CONFIG_H;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);ZIP_CODEC_ENCODE;HAVE_LIBIMOBILEDEVICE_1_1_5;HAVE_LIBIMOBILEDEVICE_1_1 100 | 101 | 102 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;plist.lib;imobiledevice.lib;%(AdditionalDependencies) 103 | $(SolutionDir)$(Platform)\$(Configuration)\ 104 | 105 | 106 | 107 | 108 | 109 | 110 | Level3 111 | Disabled 112 | 113 | 114 | Console 115 | true 116 | 117 | 118 | 119 | 120 | 121 | 122 | Level3 123 | Disabled 124 | 125 | 126 | Console 127 | true 128 | 129 | 130 | 131 | 132 | Level3 133 | 134 | 135 | MaxSpeed 136 | true 137 | true 138 | 139 | 140 | Console 141 | true 142 | true 143 | true 144 | 145 | 146 | 147 | 148 | Level3 149 | 150 | 151 | MaxSpeed 152 | true 153 | true 154 | 155 | 156 | Console 157 | true 158 | true 159 | true 160 | 161 | 162 | 163 | 164 | 8388608 165 | 8388608 166 | 8388608 167 | 8388608 168 | 169 | 170 | 171 | -------------------------------------------------------------------------------- /ios_webkit_debug_proxy.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | {B3202DE4-A933-46D3-B268-9C2156ECCAF6} 46 | Win32Proj 47 | ios_webkit_debug_proxy 48 | 10 49 | v142 50 | 51 | 52 | 53 | Application 54 | true 55 | v142 56 | NotSet 57 | 58 | 59 | Application 60 | false 61 | true 62 | NotSet 63 | 64 | 65 | Application 66 | true 67 | NotSet 68 | 69 | 70 | Application 71 | false 72 | true 73 | NotSet 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | true 95 | 96 | 97 | true 98 | 99 | 100 | false 101 | 102 | 103 | false 104 | 105 | 106 | $(SolutionDir)$(Platform)\$(Configuration)\ 107 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 108 | 109 | 110 | 111 | $(ProjectDir)\ios-webkit-debug-proxy\msvc;$(ProjectDir)\ios-webkit-debug-proxy\include;$(ProjectDir)\ios-webkit-debug-proxy\include\ios-webkit-debug-proxy;$(ProjectDir)\polyfill;$(ProjectDir)\libplist\include;$(ProjectDir)\libimobiledevice\include;%(AdditionalIncludeDirectories) 112 | HAVE_IDEVICE_CONNECTION_GET_FD;HAVE_CONFIG_H;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);ZIP_CODEC_ENCODE;HAVE_LIBIMOBILEDEVICE_1_1_5;HAVE_LIBIMOBILEDEVICE_1_1 113 | 114 | 115 | Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;plist.lib;imobiledevice.lib;%(AdditionalDependencies) 116 | $(SolutionDir)$(Platform)\$(Configuration)\ 117 | 118 | 119 | 120 | 121 | 122 | 123 | Level3 124 | Disabled 125 | 126 | 127 | Console 128 | true 129 | 130 | 131 | 132 | 133 | 134 | 135 | Level3 136 | Disabled 137 | 138 | 139 | Console 140 | true 141 | 142 | 143 | 144 | 145 | Level3 146 | 147 | 148 | MaxSpeed 149 | true 150 | true 151 | 152 | 153 | Console 154 | true 155 | true 156 | true 157 | 158 | 159 | 160 | 161 | Level3 162 | 163 | 164 | MaxSpeed 165 | true 166 | true 167 | 168 | 169 | Console 170 | true 171 | true 172 | true 173 | 174 | 175 | 176 | -------------------------------------------------------------------------------- /libplist.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | $(IntDir)/%(RelativeDir)/ 24 | 25 | 26 | $(IntDir)/%(RelativeDir)/ 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | {75352A45-BCB8-4774-8C66-3AF9EA6B6B42} 74 | Win32Proj 75 | libplist 76 | 10 77 | plist 78 | v142 79 | 80 | 81 | 82 | DynamicLibrary 83 | true 84 | Unicode 85 | 86 | 87 | DynamicLibrary 88 | true 89 | v142 90 | Unicode 91 | 92 | 93 | DynamicLibrary 94 | false 95 | true 96 | Unicode 97 | 98 | 99 | DynamicLibrary 100 | false 101 | true 102 | Unicode 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | $(SolutionDir)$(Platform)\$(Configuration)\ 122 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 123 | 124 | 125 | 126 | 127 | 128 | Level3 129 | Disabled 130 | WIN32;_DEBUG;_LIB;LIBPLIST_EXPORTS;%(PreprocessorDefinitions) 131 | CompileAsCpp 132 | libplist\libcnary\include;libplist\include;libplist\src 133 | 134 | 135 | Windows 136 | true 137 | 138 | 139 | 140 | 141 | 142 | 143 | Level3 144 | Disabled 145 | WIN32;_DEBUG;_LIB;LIBPLIST_EXPORTS;%(PreprocessorDefinitions) 146 | CompileAsCpp 147 | libplist\libcnary\include;libplist\include;libplist\src 148 | 149 | 150 | Windows 151 | true 152 | 153 | 154 | 155 | 156 | Level3 157 | 158 | 159 | MaxSpeed 160 | true 161 | true 162 | WIN32;NDEBUG;_LIB;LIBPLIST_EXPORTS;%(PreprocessorDefinitions) 163 | libplist\libcnary\include;libplist\include;libplist\src 164 | 165 | 166 | Windows 167 | true 168 | true 169 | true 170 | 171 | 172 | 173 | 174 | Level3 175 | 176 | 177 | MaxSpeed 178 | true 179 | true 180 | WIN32;NDEBUG;_LIB;LIBPLIST_EXPORTS;%(PreprocessorDefinitions) 181 | libplist\libcnary\include;libplist\include;libplist\src 182 | 183 | 184 | Windows 185 | true 186 | true 187 | true 188 | 189 | 190 | 191 | -------------------------------------------------------------------------------- /idevicerestore.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {85BB4A0B-C219-42A5-BDA1-79CF05B5A5A1} 23 | idevicerestore 24 | 10 25 | v142 26 | 27 | 28 | 29 | Application 30 | true 31 | MultiByte 32 | 33 | 34 | Application 35 | false 36 | true 37 | MultiByte 38 | 39 | 40 | Application 41 | true 42 | MultiByte 43 | 44 | 45 | Application 46 | false 47 | true 48 | MultiByte 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | $(ProjectDir)\polyfill\;$(ProjectDir)\libplist\include\;$(ProjectDir)\libusbmuxd\include\;$(ProjectDir)\libimobiledevice\include\;$(ProjectDir)\libirecovery\include\;$(ProjectDir)idevicerestore\src;$(ProjectDir)idevicerestore\compat;$(IncludePath) 70 | $(SolutionDir)$(Platform)\$(Configuration)\ 71 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName) 72 | 73 | 74 | 75 | HAVE_CONFIG_H;_MBCS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_WINSOCK_DEPRECATED_NO_WARNINGS;HAVE_REALPATH;%(PreprocessorDefinitions) 76 | 77 | 78 | kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;libcurl.lib;plist.lib;imobiledevice.lib;irecovery.lib;%(AdditionalDependencies) 79 | $(SolutionDir)$(Platform)\$(Configuration)\ 80 | 81 | 82 | 83 | 84 | Level3 85 | Disabled 86 | true 87 | 88 | 89 | 90 | 91 | Level3 92 | Disabled 93 | true 94 | 95 | 96 | 97 | 98 | Level3 99 | MaxSpeed 100 | true 101 | true 102 | true 103 | 104 | 105 | true 106 | true 107 | 108 | 109 | 110 | 111 | Level3 112 | MaxSpeed 113 | true 114 | true 115 | true 116 | 117 | 118 | true 119 | true 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | Designer 179 | 180 | 181 | 182 | 183 | {ee16e7f2-ac27-4e30-ab22-b02a9c2380b4} 184 | 185 | 186 | {1f5b7a30-b170-4d4c-89f8-33e4a24cf9ce} 187 | 188 | 189 | 190 | -------------------------------------------------------------------------------- /usbmuxd.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | {E775C6D0-C295-4D09-9ADC-60FC95526993} 49 | Win32Proj 50 | usbmuxd 51 | 10 52 | v142 53 | 54 | 55 | 56 | Application 57 | true 58 | NotSet 59 | 60 | 61 | Application 62 | false 63 | true 64 | NotSet 65 | 66 | 67 | Application 68 | true 69 | NotSet 70 | 71 | 72 | Application 73 | false 74 | true 75 | NotSet 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | $(SolutionDir)$(Platform)\$(Configuration)\ 96 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 97 | 98 | 99 | 100 | true 101 | Build 102 | 103 | 104 | true 105 | Build 106 | 107 | 108 | false 109 | Build 110 | 111 | 112 | false 113 | Build 114 | 115 | 116 | 117 | HAVE_CONFIG_H;%(PreprocessorDefinitions) 118 | $(ProjectDir)\polyfill;%(AdditionalIncludeDirectories) 119 | 120 | 121 | 122 | 123 | 124 | 125 | Level3 126 | Disabled 127 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;HAVE_LIBIMOBILEDEVICE;HAVE_ENUM_IDEVICE_CONNECTION_TYPE 128 | $(ProjectDir)\libplist\include;$(ProjectDir)\libimobiledevice\include;%(AdditionalIncludeDirectories) 129 | 4013 130 | 131 | 132 | Console 133 | true 134 | ws2_32.lib;libusb-1.0.lib;libusb0.lib;pthreadVC3d.lib;plist.lib;imobiledevice.lib;%(AdditionalDependencies) 135 | $(SolutionDir)$(Platform)\$(Configuration)\ 136 | 137 | 138 | 139 | 140 | 141 | 142 | Level3 143 | Disabled 144 | _DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;WIN32;HAVE_LIBIMOBILEDEVICE;HAVE_ENUM_IDEVICE_CONNECTION_TYPE 145 | $(ProjectDir)\libplist\include;$(ProjectDir)\libimobiledevice\include;%(AdditionalIncludeDirectories) 146 | 147 | 148 | Console 149 | true 150 | ws2_32.lib;libusb-1.0.lib;libusb0.lib;pthreadVC3d.lib;plist.lib;imobiledevice.lib;%(AdditionalDependencies) 151 | $(SolutionDir)$(Platform)\$(Configuration)\ 152 | 153 | 154 | 155 | 156 | Level3 157 | 158 | 159 | MaxSpeed 160 | true 161 | true 162 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;HAVE_LIBIMOBILEDEVICE;HAVE_ENUM_IDEVICE_CONNECTION_TYPE 163 | $(ProjectDir)\libplist\include;$(ProjectDir)\libimobiledevice\include;%(AdditionalIncludeDirectories) 164 | 4013 165 | 166 | 167 | Console 168 | true 169 | true 170 | true 171 | ws2_32.lib;libusb-1.0.lib;libusb0.lib;pthreadVC3.lib;plist.lib;imobiledevice.lib;%(AdditionalDependencies) 172 | $(SolutionDir)$(Platform)\$(Configuration)\ 173 | 174 | 175 | 176 | 177 | Level3 178 | 179 | 180 | MaxSpeed 181 | true 182 | true 183 | NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;WIN32;HAVE_LIBIMOBILEDEVICE;HAVE_ENUM_IDEVICE_CONNECTION_TYPE 184 | $(ProjectDir)\libplist\include;$(ProjectDir)\libimobiledevice\include;%(AdditionalIncludeDirectories) 185 | 186 | 187 | Console 188 | true 189 | true 190 | true 191 | ws2_32.lib;libusb-1.0.lib;libusb0.lib;pthreadVC3.lib;plist.lib;imobiledevice.lib;%(AdditionalDependencies) 192 | $(SolutionDir)$(Platform)\$(Configuration)\ 193 | 194 | 195 | 196 | -------------------------------------------------------------------------------- /imobiledevice.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {EE16E7F2-AC27-4E30-AB22-B02A9C2380B4} 23 | libimobiledevice 24 | imobiledevice 25 | 10 26 | 27 | 28 | 29 | DynamicLibrary 30 | true 31 | v142 32 | MultiByte 33 | 34 | 35 | DynamicLibrary 36 | true 37 | v142 38 | MultiByte 39 | 40 | 41 | DynamicLibrary 42 | false 43 | v142 44 | true 45 | MultiByte 46 | 47 | 48 | DynamicLibrary 49 | false 50 | v142 51 | true 52 | MultiByte 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | $(SolutionDir)$(Platform)\$(Configuration)\ 64 | $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ 65 | 66 | 67 | 68 | WIN32;HAVE_OPENSSL;_MBCS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) 69 | $(ProjectDir)\libplist\include\;$(ProjectDir)\libusbmuxd\include\;libimobiledevice\;libimobiledevice\include;%(AdditionalIncludeDirectories) 70 | 71 | 72 | ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;plist.lib;usbmuxd.lib;%(AdditionalDependencies) 73 | 74 | 75 | 76 | 77 | Level3 78 | Disabled 79 | true 80 | 81 | 82 | true 83 | $(SolutionDir)$(Platform)\$(Configuration)\ 84 | 85 | 86 | 87 | 88 | Level3 89 | Disabled 90 | true 91 | 92 | 93 | true 94 | $(SolutionDir)$(Platform)\$(Configuration)\ 95 | 96 | 97 | 98 | 99 | Level3 100 | MaxSpeed 101 | true 102 | true 103 | true 104 | 105 | 106 | true 107 | true 108 | true 109 | $(SolutionDir)$(Platform)\$(Configuration)\ 110 | 111 | 112 | 113 | 114 | Level3 115 | MaxSpeed 116 | true 117 | true 118 | true 119 | 120 | 121 | true 122 | true 123 | true 124 | $(SolutionDir)$(Platform)\$(Configuration)\ 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | resources: 2 | repositories: 3 | - repository: libplist 4 | type: github 5 | endpoint: libimobiledevice-win32 6 | name: libimobiledevice-win32/libplist 7 | ref: msvc/master 8 | - repository: libusbmuxd 9 | type: github 10 | endpoint: libimobiledevice-win32 11 | name: libimobiledevice-win32/libusbmuxd 12 | ref: msvc/master 13 | - repository: libimobiledevice 14 | type: github 15 | endpoint: libimobiledevice-win32 16 | name: libimobiledevice-win32/libimobiledevice 17 | ref: msvc/master 18 | - repository: libideviceactivation 19 | type: github 20 | endpoint: libimobiledevice-win32 21 | name: libimobiledevice-win32/libideviceactivation 22 | ref: msvc/master 23 | - repository: ideviceinstaller 24 | type: github 25 | endpoint: libimobiledevice-win32 26 | name: libimobiledevice-win32/ideviceinstaller 27 | ref: msvc/master 28 | - repository: libirecovery 29 | type: github 30 | endpoint: libimobiledevice-win32 31 | name: libimobiledevice-win32/libirecovery 32 | ref: msvc/master 33 | - repository: idevicerestore 34 | type: github 35 | endpoint: libimobiledevice-win32 36 | name: libimobiledevice-win32/idevicerestore 37 | ref: msvc/master 38 | - repository: usbmuxd 39 | type: github 40 | endpoint: libimobiledevice-win32 41 | name: libimobiledevice-win32/usbmuxd 42 | ref: master-msvc 43 | - repository: ios-webkit-debug-proxy 44 | type: github 45 | endpoint: libimobiledevice-win32 46 | name: libimobiledevice-win32/ios-webkit-debug-proxy 47 | ref: msvc/master 48 | 49 | jobs: 50 | - job: windows 51 | strategy: 52 | maxParallel: 4 53 | matrix: 54 | x64: 55 | BUILD_ARCH: x64 56 | PLATFORM: x64 57 | RID: win-x64 58 | x86: 59 | BUILD_ARCH: x86 60 | PLATFORM: Win32 61 | RID: win-x86 62 | pool: 63 | vmImage: 'windows-2019' 64 | steps: 65 | - template: get-source.yaml 66 | - task: Cache@2 67 | inputs: 68 | key: 'vcpkg_downloads | $(RID)' 69 | path: "C:/vcpkg/downloads" 70 | displayName: Cache VCPKG downloads 71 | - task: Cache@2 72 | inputs: 73 | key: 'vcpkg_installed | $(RID)' 74 | path: "C:/vcpkg/installed" 75 | displayName: Cache VCPKG installed packages 76 | - script: | 77 | git pull 78 | vcpkg.exe version 79 | bootstrap-vcpkg.bat 80 | vcpkg.exe upgrade --no-dry-run 81 | displayName: Update vcpkg and packages 82 | workingDirectory: C:/vcpkg 83 | - script: | 84 | %VCPKG_INSTALLATION_ROOT%\vcpkg version 85 | %VCPKG_INSTALLATION_ROOT%\vcpkg integrate install 86 | echo.set(VCPKG_BUILD_TYPE %CONFIGURATION%)>> %VCPKG_INSTALLATION_ROOT%\triplets\%BUILD_ARCH%-windows.cmake 87 | cat %VCPKG_INSTALLATION_ROOT%\triplets\%BUILD_ARCH%-windows.cmake 88 | %VCPKG_INSTALLATION_ROOT%\vcpkg install libiconv:%BUILD_ARCH%-windows zlib:%BUILD_ARCH%-windows openssl:%BUILD_ARCH%-windows dirent:%BUILD_ARCH%-windows getopt:%BUILD_ARCH%-windows curl:%BUILD_ARCH%-windows libzip:%BUILD_ARCH%-windows libxml2:%BUILD_ARCH%-windows libusb:%BUILD_ARCH%-windows libusb-win32:%BUILD_ARCH%-windows pthreads:%BUILD_ARCH%-windows readline:%BUILD_ARCH%-windows pcre:%BUILD_ARCH%-windows 89 | dir %VCPKG_INSTALLATION_ROOT%\installed\%BUILD_ARCH%-windows\bin\ 90 | dir %VCPKG_INSTALLATION_ROOT%\installed\%BUILD_ARCH%-windows\lib\ 91 | displayName: Install dependencies 92 | - task: MSBuild@1 93 | inputs: 94 | solution: 'libimobiledevice-vs.sln' 95 | platform: $(PLATFORM) 96 | configuration: Release 97 | displayName: 'Release build' 98 | - script: | 99 | mkdir %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\bin\ 100 | mkdir %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\ 101 | mkdir %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\ 102 | mkdir %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\sources\ 103 | 104 | REM Copy artifacts 105 | copy %PLATFORM%\Release\*.dll %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\bin\ 106 | copy %PLATFORM%\Release\*.exe %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\bin\ 107 | copy %PLATFORM%\Release\*.pdb %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\bin\ 108 | 109 | REM Copy vcpkg licenses 110 | copy %VCPKG_INSTALLATION_ROOT%\installed\%BUILD_ARCH%-windows\share\libxml2\copyright %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libxml2.copyright 111 | copy %VCPKG_INSTALLATION_ROOT%\installed\%BUILD_ARCH%-windows\share\libiconv\copyright %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libiconv.copyright 112 | copy %VCPKG_INSTALLATION_ROOT%\installed\%BUILD_ARCH%-windows\share\liblzma\copyright %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\liblzma.copyright 113 | copy %VCPKG_INSTALLATION_ROOT%\installed\%BUILD_ARCH%-windows\share\curl\copyright %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libcurl.copyright 114 | 115 | REM Copy git licenses 116 | copy libplist\COPYING.LESSER %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libplist.library.copyright 117 | copy libplist\COPYING %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libplist.utilities.copyright 118 | 119 | copy libusbmuxd\COPYING %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libusbmuxd.copyright 120 | 121 | copy libimobiledevice\COPYING.LESSER %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libimobiledevice.library.copyright 122 | copy libimobiledevice\COPYING %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libimobiledevice.utilities.copyright 123 | 124 | copy usbmuxd\COPYING %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\usbmuxd.copyright 125 | 126 | copy libideviceactivation\COPYING.LESSER %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libideviceactivation.library.copyright 127 | copy libideviceactivation\COPYING %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libideviceactivation.utilities.copyright 128 | 129 | copy ideviceinstaller\COPYING %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\ideviceinstaller.copyright 130 | 131 | copy libirecovery\COPYING %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\libirecovery.copyright 132 | 133 | copy idevicerestore\COPYING %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\licenses\idevicerestore.copyright 134 | 135 | REM Copy git version information 136 | git -C libplist rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libplist 137 | git -C libplist config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libplist 138 | 139 | git -C libusbmuxd rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libusbmuxd 140 | git -C libusbmuxd config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libusbmuxd 141 | 142 | git -C libimobiledevice rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libimobiledevice 143 | git -C libimobiledevice config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libimobiledevice 144 | 145 | git -C usbmuxd rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\usbmuxd 146 | git -C usbmuxd config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\usbmuxd 147 | 148 | git -C libideviceactivation rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libideviceactivation 149 | git -C libideviceactivation config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libideviceactivation 150 | 151 | git -C ideviceinstaller rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\ideviceinstaller 152 | git -C ideviceinstaller config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\ideviceinstaller 153 | 154 | git -C libirecovery rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libirecovery 155 | git -C libirecovery config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\libirecovery 156 | 157 | git -C idevicerestore rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\idevicerestore 158 | git -C idevicerestore config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\idevicerestore 159 | 160 | git -C ios-webkit-debug-proxy rev-parse HEAD >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\ios-webkit-debug-proxy 161 | git -C ios-webkit-debug-proxy config --get remote.origin.url >> %BUILD_ARTIFACTSTAGINGDIRECTORY%\libimobiledevice\%RID%\gitinfo\ios-webkit-debug-proxy 162 | 163 | REM Get tarballs 164 | git -C libplist archive --prefix=libplist/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/libplist.orig.tar.gz HEAD 165 | git -C libusbmuxd archive --prefix=libusbmuxd/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/libusbmuxd.orig.tar.gz HEAD 166 | git -C libimobiledevice archive --prefix=libimobiledevice/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/libimobiledevice.orig.tar.gz HEAD 167 | git -C usbmuxd archive --prefix=usbmuxd/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/usbmuxd.orig.tar.gz HEAD 168 | git -C libideviceactivation archive --prefix=libideviceactivation/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/libideviceactivation.orig.tar.gz HEAD 169 | git -C ideviceinstaller archive --prefix=ideviceinstaller/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/ideviceinstaller.orig.tar.gz HEAD 170 | git -C libirecovery archive --prefix=libirecovery/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/libirecovery.orig.tar.gz HEAD 171 | git -C idevicerestore archive --prefix=idevicerestore/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/idevicerestore.orig.tar.gz HEAD 172 | git -C idevicerestore archive --prefix=ios-webkit-debug-proxy/ --format tar.gz -o %BUILD_ARTIFACTSTAGINGDIRECTORY%/libimobiledevice/%RID%/sources/ios-webkit-debug-proxy.orig.tar.gz HEAD 173 | displayName: 'Prepare artifact' 174 | - task: PublishBuildArtifacts@1 175 | inputs: 176 | pathtoPublish: '$(Build.ArtifactStagingDirectory)/libimobiledevice' 177 | artifactName: 'libimobiledevice' 178 | publishLocation: 'Container' 179 | displayName: Publish 180 | 181 | - job: macos 182 | pool: 183 | vmImage: 'macos-10.14' 184 | variables: 185 | TARGET: x86_64-apple-darwin 186 | RID: osx-x64 187 | steps: 188 | - template: get-source.yaml 189 | - script: | 190 | brew install autoconf automake libtool pkg-config libzip libusb 191 | displayName: Install autotools 192 | - template: build-unix.yaml 193 | - script: | 194 | cp /usr/local/opt/openssl/lib/libssl.1.0.0.dylib $SYSTEM_ARTIFACTSDIRECTORY/libimobiledevice/$RID/lib 195 | cp /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib $SYSTEM_ARTIFACTSDIRECTORY/libimobiledevice/$RID/lib 196 | 197 | export INSTALLDIR=$SYSTEM_ARTIFACTSDIRECTORY/libimobiledevice/$RID 198 | ./build/patchdylib.sh 199 | displayName: Patch dylib files 200 | - template: test-unix.yaml 201 | - task: PublishBuildArtifacts@1 202 | inputs: 203 | pathtoPublish: '$(Build.ArtifactStagingDirectory)/libimobiledevice' 204 | artifactName: 'libimobiledevice' 205 | publishLocation: 'Container' 206 | displayName: Publish 207 | 208 | - job: ubuntu 209 | strategy: 210 | maxParallel: 4 211 | matrix: 212 | ubuntu_1604: 213 | imageName: ubuntu:16.04 214 | rid: ubuntu.16.04-x64 215 | ubuntu_1804: 216 | imageName: ubuntu:18.04 217 | rid: ubuntu.18.04-x64 218 | ubuntu_2004: 219 | imageName: ubuntu:20.04 220 | rid: ubuntu.20.04-x64 221 | variables: 222 | TARGET: x86_64-unknown-linux-gnu 223 | CFLAGS: -fPIC 224 | pool: 225 | vmImage: 'ubuntu-16.04' 226 | container: 227 | image: $(imageName) 228 | options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro" 229 | steps: 230 | - template: get-source.yaml 231 | - script: | 232 | /tmp/docker exec -t -u 0 ci-container \ 233 | sh -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" -y install sudo" 234 | displayName: Set up sudo 235 | - script: | 236 | sudo apt-get update 237 | sudo apt-get upgrade -y 238 | sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends lsb-release automake make libtool clang libssl-dev gnupg pkg-config git ca-certificates libcurl4-openssl-dev libxml2-dev libzip-dev libreadline-dev libusb-1.0-0-dev wget 239 | displayName: Install build dependencies 240 | - template: build-unix.yaml 241 | - script: | 242 | export INSTALLDIR=$SYSTEM_ARTIFACTSDIRECTORY/libimobiledevice/$RID 243 | ./build/install-patchelf.sh 244 | ./build/run-patchelf.sh 245 | displayName: Patch so files 246 | - template: test-unix.yaml 247 | - task: PublishBuildArtifacts@1 248 | inputs: 249 | pathtoPublish: '$(Build.ArtifactStagingDirectory)/libimobiledevice' 250 | artifactName: 'libimobiledevice' 251 | publishLocation: 'Container' 252 | displayName: Publish 253 | 254 | - job: rhel 255 | strategy: 256 | maxParallel: 4 257 | matrix: 258 | fedora_29: 259 | imageName: fedora:29 260 | rid: fedora.29-x64 261 | fedora_30: 262 | imageName: fedora:30 263 | rid: fedora.30-x64 264 | centos_7: 265 | imageName: centos:7 266 | rid: centos.7-x64 267 | centos_8: 268 | imageName: centos:8 269 | rid: centos.8-x64 270 | variables: 271 | TARGET: x86_64-unknown-linux-gnu 272 | CFLAGS: -fPIC 273 | pool: 274 | vmImage: 'ubuntu-16.04' 275 | container: 276 | image: $(imageName) 277 | options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro" 278 | steps: 279 | - template: get-source.yaml 280 | - script: | 281 | /tmp/docker exec -t -u 0 ci-container \ 282 | sh -c "yum install -y sudo" 283 | displayName: Set up sudo 284 | - script: | 285 | sudo yum install -y libtool automake make gcc gcc-c++ git openssl-devel libusbx-devel glib2-devel readline-devel glibc-devel zlib-devel libzip-devel libcurl-devel libxml2-devel 286 | displayName: Install build dependencies 287 | - template: build-unix.yaml 288 | - script: | 289 | export INSTALLDIR=$SYSTEM_ARTIFACTSDIRECTORY/libimobiledevice/$RID 290 | ./build/install-patchelf.sh 291 | ./build/run-patchelf.sh 292 | displayName: Patch so files 293 | - template: test-unix.yaml 294 | - task: PublishBuildArtifacts@1 295 | inputs: 296 | pathtoPublish: '$(Build.ArtifactStagingDirectory)/libimobiledevice' 297 | artifactName: 'libimobiledevice' 298 | publishLocation: 'Container' 299 | displayName: Publish 300 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 2.1, February 1999 3 | 4 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | [This is the first released version of the Lesser GPL. It also counts 10 | as the successor of the GNU Library Public License, version 2, hence 11 | the version number 2.1.] 12 | 13 | Preamble 14 | 15 | The licenses for most software are designed to take away your 16 | freedom to share and change it. By contrast, the GNU General Public 17 | Licenses are intended to guarantee your freedom to share and change 18 | free software--to make sure the software is free for all its users. 19 | 20 | This license, the Lesser General Public License, applies to some 21 | specially designated software packages--typically libraries--of the 22 | Free Software Foundation and other authors who decide to use it. You 23 | can use it too, but we suggest you first think carefully about whether 24 | this license or the ordinary General Public License is the better 25 | strategy to use in any particular case, based on the explanations below. 26 | 27 | When we speak of free software, we are referring to freedom of use, 28 | not price. Our General Public Licenses are designed to make sure that 29 | you have the freedom to distribute copies of free software (and charge 30 | for this service if you wish); that you receive source code or can get 31 | it if you want it; that you can change the software and use pieces of 32 | it in new free programs; and that you are informed that you can do 33 | these things. 34 | 35 | To protect your rights, we need to make restrictions that forbid 36 | distributors to deny you these rights or to ask you to surrender these 37 | rights. These restrictions translate to certain responsibilities for 38 | you if you distribute copies of the library or if you modify it. 39 | 40 | For example, if you distribute copies of the library, whether gratis 41 | or for a fee, you must give the recipients all the rights that we gave 42 | you. You must make sure that they, too, receive or can get the source 43 | code. If you link other code with the library, you must provide 44 | complete object files to the recipients, so that they can relink them 45 | with the library after making changes to the library and recompiling 46 | it. And you must show them these terms so they know their rights. 47 | 48 | We protect your rights with a two-step method: (1) we copyright the 49 | library, and (2) we offer you this license, which gives you legal 50 | permission to copy, distribute and/or modify the library. 51 | 52 | To protect each distributor, we want to make it very clear that 53 | there is no warranty for the free library. Also, if the library is 54 | modified by someone else and passed on, the recipients should know 55 | that what they have is not the original version, so that the original 56 | author's reputation will not be affected by problems that might be 57 | introduced by others. 58 | 59 | Finally, software patents pose a constant threat to the existence of 60 | any free program. We wish to make sure that a company cannot 61 | effectively restrict the users of a free program by obtaining a 62 | restrictive license from a patent holder. Therefore, we insist that 63 | any patent license obtained for a version of the library must be 64 | consistent with the full freedom of use specified in this license. 65 | 66 | Most GNU software, including some libraries, is covered by the 67 | ordinary GNU General Public License. This license, the GNU Lesser 68 | General Public License, applies to certain designated libraries, and 69 | is quite different from the ordinary General Public License. We use 70 | this license for certain libraries in order to permit linking those 71 | libraries into non-free programs. 72 | 73 | When a program is linked with a library, whether statically or using 74 | a shared library, the combination of the two is legally speaking a 75 | combined work, a derivative of the original library. The ordinary 76 | General Public License therefore permits such linking only if the 77 | entire combination fits its criteria of freedom. The Lesser General 78 | Public License permits more lax criteria for linking other code with 79 | the library. 80 | 81 | We call this license the "Lesser" General Public License because it 82 | does Less to protect the user's freedom than the ordinary General 83 | Public License. It also provides other free software developers Less 84 | of an advantage over competing non-free programs. These disadvantages 85 | are the reason we use the ordinary General Public License for many 86 | libraries. However, the Lesser license provides advantages in certain 87 | special circumstances. 88 | 89 | For example, on rare occasions, there may be a special need to 90 | encourage the widest possible use of a certain library, so that it becomes 91 | a de-facto standard. To achieve this, non-free programs must be 92 | allowed to use the library. A more frequent case is that a free 93 | library does the same job as widely used non-free libraries. In this 94 | case, there is little to gain by limiting the free library to free 95 | software only, so we use the Lesser General Public License. 96 | 97 | In other cases, permission to use a particular library in non-free 98 | programs enables a greater number of people to use a large body of 99 | free software. For example, permission to use the GNU C Library in 100 | non-free programs enables many more people to use the whole GNU 101 | operating system, as well as its variant, the GNU/Linux operating 102 | system. 103 | 104 | Although the Lesser General Public License is Less protective of the 105 | users' freedom, it does ensure that the user of a program that is 106 | linked with the Library has the freedom and the wherewithal to run 107 | that program using a modified version of the Library. 108 | 109 | The precise terms and conditions for copying, distribution and 110 | modification follow. Pay close attention to the difference between a 111 | "work based on the library" and a "work that uses the library". The 112 | former contains code derived from the library, whereas the latter must 113 | be combined with the library in order to run. 114 | 115 | GNU LESSER GENERAL PUBLIC LICENSE 116 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 117 | 118 | 0. This License Agreement applies to any software library or other 119 | program which contains a notice placed by the copyright holder or 120 | other authorized party saying it may be distributed under the terms of 121 | this Lesser General Public License (also called "this License"). 122 | Each licensee is addressed as "you". 123 | 124 | A "library" means a collection of software functions and/or data 125 | prepared so as to be conveniently linked with application programs 126 | (which use some of those functions and data) to form executables. 127 | 128 | The "Library", below, refers to any such software library or work 129 | which has been distributed under these terms. A "work based on the 130 | Library" means either the Library or any derivative work under 131 | copyright law: that is to say, a work containing the Library or a 132 | portion of it, either verbatim or with modifications and/or translated 133 | straightforwardly into another language. (Hereinafter, translation is 134 | included without limitation in the term "modification".) 135 | 136 | "Source code" for a work means the preferred form of the work for 137 | making modifications to it. For a library, complete source code means 138 | all the source code for all modules it contains, plus any associated 139 | interface definition files, plus the scripts used to control compilation 140 | and installation of the library. 141 | 142 | Activities other than copying, distribution and modification are not 143 | covered by this License; they are outside its scope. The act of 144 | running a program using the Library is not restricted, and output from 145 | such a program is covered only if its contents constitute a work based 146 | on the Library (independent of the use of the Library in a tool for 147 | writing it). Whether that is true depends on what the Library does 148 | and what the program that uses the Library does. 149 | 150 | 1. You may copy and distribute verbatim copies of the Library's 151 | complete source code as you receive it, in any medium, provided that 152 | you conspicuously and appropriately publish on each copy an 153 | appropriate copyright notice and disclaimer of warranty; keep intact 154 | all the notices that refer to this License and to the absence of any 155 | warranty; and distribute a copy of this License along with the 156 | Library. 157 | 158 | You may charge a fee for the physical act of transferring a copy, 159 | and you may at your option offer warranty protection in exchange for a 160 | fee. 161 | 162 | 2. You may modify your copy or copies of the Library or any portion 163 | of it, thus forming a work based on the Library, and copy and 164 | distribute such modifications or work under the terms of Section 1 165 | above, provided that you also meet all of these conditions: 166 | 167 | a) The modified work must itself be a software library. 168 | 169 | b) You must cause the files modified to carry prominent notices 170 | stating that you changed the files and the date of any change. 171 | 172 | c) You must cause the whole of the work to be licensed at no 173 | charge to all third parties under the terms of this License. 174 | 175 | d) If a facility in the modified Library refers to a function or a 176 | table of data to be supplied by an application program that uses 177 | the facility, other than as an argument passed when the facility 178 | is invoked, then you must make a good faith effort to ensure that, 179 | in the event an application does not supply such function or 180 | table, the facility still operates, and performs whatever part of 181 | its purpose remains meaningful. 182 | 183 | (For example, a function in a library to compute square roots has 184 | a purpose that is entirely well-defined independent of the 185 | application. Therefore, Subsection 2d requires that any 186 | application-supplied function or table used by this function must 187 | be optional: if the application does not supply it, the square 188 | root function must still compute square roots.) 189 | 190 | These requirements apply to the modified work as a whole. If 191 | identifiable sections of that work are not derived from the Library, 192 | and can be reasonably considered independent and separate works in 193 | themselves, then this License, and its terms, do not apply to those 194 | sections when you distribute them as separate works. But when you 195 | distribute the same sections as part of a whole which is a work based 196 | on the Library, the distribution of the whole must be on the terms of 197 | this License, whose permissions for other licensees extend to the 198 | entire whole, and thus to each and every part regardless of who wrote 199 | it. 200 | 201 | Thus, it is not the intent of this section to claim rights or contest 202 | your rights to work written entirely by you; rather, the intent is to 203 | exercise the right to control the distribution of derivative or 204 | collective works based on the Library. 205 | 206 | In addition, mere aggregation of another work not based on the Library 207 | with the Library (or with a work based on the Library) on a volume of 208 | a storage or distribution medium does not bring the other work under 209 | the scope of this License. 210 | 211 | 3. You may opt to apply the terms of the ordinary GNU General Public 212 | License instead of this License to a given copy of the Library. To do 213 | this, you must alter all the notices that refer to this License, so 214 | that they refer to the ordinary GNU General Public License, version 2, 215 | instead of to this License. (If a newer version than version 2 of the 216 | ordinary GNU General Public License has appeared, then you can specify 217 | that version instead if you wish.) Do not make any other change in 218 | these notices. 219 | 220 | Once this change is made in a given copy, it is irreversible for 221 | that copy, so the ordinary GNU General Public License applies to all 222 | subsequent copies and derivative works made from that copy. 223 | 224 | This option is useful when you wish to copy part of the code of 225 | the Library into a program that is not a library. 226 | 227 | 4. You may copy and distribute the Library (or a portion or 228 | derivative of it, under Section 2) in object code or executable form 229 | under the terms of Sections 1 and 2 above provided that you accompany 230 | it with the complete corresponding machine-readable source code, which 231 | must be distributed under the terms of Sections 1 and 2 above on a 232 | medium customarily used for software interchange. 233 | 234 | If distribution of object code is made by offering access to copy 235 | from a designated place, then offering equivalent access to copy the 236 | source code from the same place satisfies the requirement to 237 | distribute the source code, even though third parties are not 238 | compelled to copy the source along with the object code. 239 | 240 | 5. A program that contains no derivative of any portion of the 241 | Library, but is designed to work with the Library by being compiled or 242 | linked with it, is called a "work that uses the Library". Such a 243 | work, in isolation, is not a derivative work of the Library, and 244 | therefore falls outside the scope of this License. 245 | 246 | However, linking a "work that uses the Library" with the Library 247 | creates an executable that is a derivative of the Library (because it 248 | contains portions of the Library), rather than a "work that uses the 249 | library". The executable is therefore covered by this License. 250 | Section 6 states terms for distribution of such executables. 251 | 252 | When a "work that uses the Library" uses material from a header file 253 | that is part of the Library, the object code for the work may be a 254 | derivative work of the Library even though the source code is not. 255 | Whether this is true is especially significant if the work can be 256 | linked without the Library, or if the work is itself a library. The 257 | threshold for this to be true is not precisely defined by law. 258 | 259 | If such an object file uses only numerical parameters, data 260 | structure layouts and accessors, and small macros and small inline 261 | functions (ten lines or less in length), then the use of the object 262 | file is unrestricted, regardless of whether it is legally a derivative 263 | work. (Executables containing this object code plus portions of the 264 | Library will still fall under Section 6.) 265 | 266 | Otherwise, if the work is a derivative of the Library, you may 267 | distribute the object code for the work under the terms of Section 6. 268 | Any executables containing that work also fall under Section 6, 269 | whether or not they are linked directly with the Library itself. 270 | 271 | 6. As an exception to the Sections above, you may also combine or 272 | link a "work that uses the Library" with the Library to produce a 273 | work containing portions of the Library, and distribute that work 274 | under terms of your choice, provided that the terms permit 275 | modification of the work for the customer's own use and reverse 276 | engineering for debugging such modifications. 277 | 278 | You must give prominent notice with each copy of the work that the 279 | Library is used in it and that the Library and its use are covered by 280 | this License. You must supply a copy of this License. If the work 281 | during execution displays copyright notices, you must include the 282 | copyright notice for the Library among them, as well as a reference 283 | directing the user to the copy of this License. Also, you must do one 284 | of these things: 285 | 286 | a) Accompany the work with the complete corresponding 287 | machine-readable source code for the Library including whatever 288 | changes were used in the work (which must be distributed under 289 | Sections 1 and 2 above); and, if the work is an executable linked 290 | with the Library, with the complete machine-readable "work that 291 | uses the Library", as object code and/or source code, so that the 292 | user can modify the Library and then relink to produce a modified 293 | executable containing the modified Library. (It is understood 294 | that the user who changes the contents of definitions files in the 295 | Library will not necessarily be able to recompile the application 296 | to use the modified definitions.) 297 | 298 | b) Use a suitable shared library mechanism for linking with the 299 | Library. A suitable mechanism is one that (1) uses at run time a 300 | copy of the library already present on the user's computer system, 301 | rather than copying library functions into the executable, and (2) 302 | will operate properly with a modified version of the library, if 303 | the user installs one, as long as the modified version is 304 | interface-compatible with the version that the work was made with. 305 | 306 | c) Accompany the work with a written offer, valid for at 307 | least three years, to give the same user the materials 308 | specified in Subsection 6a, above, for a charge no more 309 | than the cost of performing this distribution. 310 | 311 | d) If distribution of the work is made by offering access to copy 312 | from a designated place, offer equivalent access to copy the above 313 | specified materials from the same place. 314 | 315 | e) Verify that the user has already received a copy of these 316 | materials or that you have already sent this user a copy. 317 | 318 | For an executable, the required form of the "work that uses the 319 | Library" must include any data and utility programs needed for 320 | reproducing the executable from it. However, as a special exception, 321 | the materials to be distributed need not include anything that is 322 | normally distributed (in either source or binary form) with the major 323 | components (compiler, kernel, and so on) of the operating system on 324 | which the executable runs, unless that component itself accompanies 325 | the executable. 326 | 327 | It may happen that this requirement contradicts the license 328 | restrictions of other proprietary libraries that do not normally 329 | accompany the operating system. Such a contradiction means you cannot 330 | use both them and the Library together in an executable that you 331 | distribute. 332 | 333 | 7. You may place library facilities that are a work based on the 334 | Library side-by-side in a single library together with other library 335 | facilities not covered by this License, and distribute such a combined 336 | library, provided that the separate distribution of the work based on 337 | the Library and of the other library facilities is otherwise 338 | permitted, and provided that you do these two things: 339 | 340 | a) Accompany the combined library with a copy of the same work 341 | based on the Library, uncombined with any other library 342 | facilities. This must be distributed under the terms of the 343 | Sections above. 344 | 345 | b) Give prominent notice with the combined library of the fact 346 | that part of it is a work based on the Library, and explaining 347 | where to find the accompanying uncombined form of the same work. 348 | 349 | 8. You may not copy, modify, sublicense, link with, or distribute 350 | the Library except as expressly provided under this License. Any 351 | attempt otherwise to copy, modify, sublicense, link with, or 352 | distribute the Library is void, and will automatically terminate your 353 | rights under this License. However, parties who have received copies, 354 | or rights, from you under this License will not have their licenses 355 | terminated so long as such parties remain in full compliance. 356 | 357 | 9. You are not required to accept this License, since you have not 358 | signed it. However, nothing else grants you permission to modify or 359 | distribute the Library or its derivative works. These actions are 360 | prohibited by law if you do not accept this License. Therefore, by 361 | modifying or distributing the Library (or any work based on the 362 | Library), you indicate your acceptance of this License to do so, and 363 | all its terms and conditions for copying, distributing or modifying 364 | the Library or works based on it. 365 | 366 | 10. Each time you redistribute the Library (or any work based on the 367 | Library), the recipient automatically receives a license from the 368 | original licensor to copy, distribute, link with or modify the Library 369 | subject to these terms and conditions. You may not impose any further 370 | restrictions on the recipients' exercise of the rights granted herein. 371 | You are not responsible for enforcing compliance by third parties with 372 | this License. 373 | 374 | 11. If, as a consequence of a court judgment or allegation of patent 375 | infringement or for any other reason (not limited to patent issues), 376 | conditions are imposed on you (whether by court order, agreement or 377 | otherwise) that contradict the conditions of this License, they do not 378 | excuse you from the conditions of this License. If you cannot 379 | distribute so as to satisfy simultaneously your obligations under this 380 | License and any other pertinent obligations, then as a consequence you 381 | may not distribute the Library at all. For example, if a patent 382 | license would not permit royalty-free redistribution of the Library by 383 | all those who receive copies directly or indirectly through you, then 384 | the only way you could satisfy both it and this License would be to 385 | refrain entirely from distribution of the Library. 386 | 387 | If any portion of this section is held invalid or unenforceable under any 388 | particular circumstance, the balance of the section is intended to apply, 389 | and the section as a whole is intended to apply in other circumstances. 390 | 391 | It is not the purpose of this section to induce you to infringe any 392 | patents or other property right claims or to contest validity of any 393 | such claims; this section has the sole purpose of protecting the 394 | integrity of the free software distribution system which is 395 | implemented by public license practices. Many people have made 396 | generous contributions to the wide range of software distributed 397 | through that system in reliance on consistent application of that 398 | system; it is up to the author/donor to decide if he or she is willing 399 | to distribute software through any other system and a licensee cannot 400 | impose that choice. 401 | 402 | This section is intended to make thoroughly clear what is believed to 403 | be a consequence of the rest of this License. 404 | 405 | 12. If the distribution and/or use of the Library is restricted in 406 | certain countries either by patents or by copyrighted interfaces, the 407 | original copyright holder who places the Library under this License may add 408 | an explicit geographical distribution limitation excluding those countries, 409 | so that distribution is permitted only in or among countries not thus 410 | excluded. In such case, this License incorporates the limitation as if 411 | written in the body of this License. 412 | 413 | 13. The Free Software Foundation may publish revised and/or new 414 | versions of the Lesser General Public License from time to time. 415 | Such new versions will be similar in spirit to the present version, 416 | but may differ in detail to address new problems or concerns. 417 | 418 | Each version is given a distinguishing version number. If the Library 419 | specifies a version number of this License which applies to it and 420 | "any later version", you have the option of following the terms and 421 | conditions either of that version or of any later version published by 422 | the Free Software Foundation. If the Library does not specify a 423 | license version number, you may choose any version ever published by 424 | the Free Software Foundation. 425 | 426 | 14. If you wish to incorporate parts of the Library into other free 427 | programs whose distribution conditions are incompatible with these, 428 | write to the author to ask for permission. For software which is 429 | copyrighted by the Free Software Foundation, write to the Free 430 | Software Foundation; we sometimes make exceptions for this. Our 431 | decision will be guided by the two goals of preserving the free status 432 | of all derivatives of our free software and of promoting the sharing 433 | and reuse of software generally. 434 | 435 | NO WARRANTY 436 | 437 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 438 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 439 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 440 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 441 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 442 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 443 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 444 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 445 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 446 | 447 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 448 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 449 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 450 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 451 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 452 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 453 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 454 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 455 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 456 | DAMAGES. 457 | 458 | END OF TERMS AND CONDITIONS 459 | 460 | How to Apply These Terms to Your New Libraries 461 | 462 | If you develop a new library, and you want it to be of the greatest 463 | possible use to the public, we recommend making it free software that 464 | everyone can redistribute and change. You can do so by permitting 465 | redistribution under these terms (or, alternatively, under the terms of the 466 | ordinary General Public License). 467 | 468 | To apply these terms, attach the following notices to the library. It is 469 | safest to attach them to the start of each source file to most effectively 470 | convey the exclusion of warranty; and each file should have at least the 471 | "copyright" line and a pointer to where the full notice is found. 472 | 473 | 474 | Copyright (C) 475 | 476 | This library is free software; you can redistribute it and/or 477 | modify it under the terms of the GNU Lesser General Public 478 | License as published by the Free Software Foundation; either 479 | version 2.1 of the License, or (at your option) any later version. 480 | 481 | This library is distributed in the hope that it will be useful, 482 | but WITHOUT ANY WARRANTY; without even the implied warranty of 483 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 484 | Lesser General Public License for more details. 485 | 486 | You should have received a copy of the GNU Lesser General Public 487 | License along with this library; if not, write to the Free Software 488 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 489 | 490 | Also add information on how to contact you by electronic and paper mail. 491 | 492 | You should also get your employer (if you work as a programmer) or your 493 | school, if any, to sign a "copyright disclaimer" for the library, if 494 | necessary. Here is a sample; alter the names: 495 | 496 | Yoyodyne, Inc., hereby disclaims all copyright interest in the 497 | library `Frob' (a library for tweaking knobs) written by James Random Hacker. 498 | 499 | , 1 April 1990 500 | Ty Coon, President of Vice 501 | 502 | That's all there is to it! --------------------------------------------------------------------------------