@mcesystems/apple-kit 1.0.24 → 1.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +284 -250
- package/dist/index.js +156 -22
- package/dist/index.js.map +3 -3
- package/dist/index.mjs +156 -24
- package/dist/index.mjs.map +3 -3
- package/dist/resources/bin/darwin/idevice_id +0 -0
- package/dist/resources/bin/darwin/idevicedebug +0 -0
- package/dist/resources/bin/darwin/idevicediagnostics +0 -0
- package/dist/resources/bin/darwin/ideviceinfo +0 -0
- package/dist/resources/bin/darwin/ideviceinstaller +0 -0
- package/dist/resources/bin/darwin/idevicename +0 -0
- package/dist/resources/bin/darwin/idevicepair +0 -0
- package/dist/resources/bin/darwin/idevicescreenshot +0 -0
- package/dist/resources/bin/darwin/idevicesyslog +0 -0
- package/dist/resources/bin/darwin/iproxy +0 -0
- package/dist/resources/bin/darwin/libcrypto.3.dylib +0 -0
- package/dist/resources/bin/darwin/libimobiledevice-1.0.6.dylib +0 -0
- package/dist/resources/bin/darwin/libimobiledevice-glue-1.0.0.dylib +0 -0
- package/dist/resources/bin/darwin/liblzma.5.dylib +0 -0
- package/dist/resources/bin/darwin/libplist-2.0.4.dylib +0 -0
- package/dist/resources/bin/darwin/libssl.3.dylib +0 -0
- package/dist/resources/bin/darwin/libusbmuxd-2.0.7.dylib +0 -0
- package/dist/resources/bin/darwin/libzip.5.dylib +0 -0
- package/dist/resources/bin/darwin/libzstd.1.dylib +0 -0
- package/{resources → dist/resources}/licenses/LGPL-2.1.txt +33 -33
- package/dist/types/logic/actions/device.d.ts.map +1 -1
- package/dist/types/logic/actions/proxy.d.ts.map +1 -1
- package/dist/types/logic/appleDeviceKit.d.ts +1 -1
- package/dist/types/logic/appleDeviceKit.d.ts.map +1 -1
- package/package.json +7 -4
- package/scripts/README.md +209 -0
- package/scripts/build-windows.sh.template +134 -0
- package/scripts/export-resources.ts +444 -0
- package/dist/types/utils/portManager.d.ts +0 -68
- package/dist/types/utils/portManager.d.ts.map +0 -1
- package/resources/bin/windows/bz2.dll +0 -0
- package/resources/bin/windows/getopt.dll +0 -0
- package/resources/bin/windows/iconv-2.dll +0 -0
- package/resources/bin/windows/idevice_id.exe +0 -0
- package/resources/bin/windows/ideviceactivation.exe +0 -0
- package/resources/bin/windows/idevicedebug.exe +0 -0
- package/resources/bin/windows/ideviceinfo.exe +0 -0
- package/resources/bin/windows/ideviceinstaller.exe +0 -0
- package/resources/bin/windows/idevicepair.exe +0 -0
- package/resources/bin/windows/imobiledevice.dll +0 -0
- package/resources/bin/windows/iproxy.exe +0 -0
- package/resources/bin/windows/libcrypto-1_1-x64.dll +0 -0
- package/resources/bin/windows/libcurl.dll +0 -0
- package/resources/bin/windows/libideviceactivation-1.0.dll +0 -0
- package/resources/bin/windows/libimobiledevice-1.0.dll +0 -0
- package/resources/bin/windows/libimobiledevice-glue-1.0.dll +0 -0
- package/resources/bin/windows/libplist-2.0.dll +0 -0
- package/resources/bin/windows/libssl-1_1-x64.dll +0 -0
- package/resources/bin/windows/libusb-1.0.dll +0 -0
- package/resources/bin/windows/libusb0.dll +0 -0
- package/resources/bin/windows/libusbmuxd-2.0.dll +0 -0
- package/resources/bin/windows/libxml2.dll +0 -0
- package/resources/bin/windows/lzma.dll +0 -0
- package/resources/bin/windows/pcre.dll +0 -0
- package/resources/bin/windows/pcreposix.dll +0 -0
- package/resources/bin/windows/plist.dll +0 -0
- package/resources/bin/windows/pthreadVC3.dll +0 -0
- package/resources/bin/windows/readline.dll +0 -0
- package/resources/bin/windows/usbmuxd.dll +0 -0
- package/resources/bin/windows/usbmuxd.exe +0 -0
- package/resources/bin/windows/vcruntime140.dll +0 -0
- package/resources/bin/windows/zip.dll +0 -0
- package/resources/bin/windows/zlib1.dll +0 -0
- package/resources/lib/include/libimobiledevice/afc.h +0 -413
- package/resources/lib/include/libimobiledevice/bt_packet_logger.h +0 -156
- package/resources/lib/include/libimobiledevice/companion_proxy.h +0 -212
- package/resources/lib/include/libimobiledevice/debugserver.h +0 -272
- package/resources/lib/include/libimobiledevice/diagnostics_relay.h +0 -228
- package/resources/lib/include/libimobiledevice/file_relay.h +0 -166
- package/resources/lib/include/libimobiledevice/heartbeat.h +0 -137
- package/resources/lib/include/libimobiledevice/house_arrest.h +0 -180
- package/resources/lib/include/libimobiledevice/installation_proxy.h +0 -505
- package/resources/lib/include/libimobiledevice/libimobiledevice.h +0 -444
- package/resources/lib/include/libimobiledevice/lockdown.h +0 -577
- package/resources/lib/include/libimobiledevice/misagent.h +0 -168
- package/resources/lib/include/libimobiledevice/mobile_image_mounter.h +0 -275
- package/resources/lib/include/libimobiledevice/mobileactivation.h +0 -192
- package/resources/lib/include/libimobiledevice/mobilebackup.h +0 -246
- package/resources/lib/include/libimobiledevice/mobilebackup2.h +0 -214
- package/resources/lib/include/libimobiledevice/mobilesync.h +0 -359
- package/resources/lib/include/libimobiledevice/notification_proxy.h +0 -202
- package/resources/lib/include/libimobiledevice/ostrace.h +0 -198
- package/resources/lib/include/libimobiledevice/preboard.h +0 -187
- package/resources/lib/include/libimobiledevice/property_list_service.h +0 -184
- package/resources/lib/include/libimobiledevice/restore.h +0 -179
- package/resources/lib/include/libimobiledevice/reverse_proxy.h +0 -213
- package/resources/lib/include/libimobiledevice/sbservices.h +0 -175
- package/resources/lib/include/libimobiledevice/screenshotr.h +0 -118
- package/resources/lib/include/libimobiledevice/service.h +0 -202
- package/resources/lib/include/libimobiledevice/syslog_relay.h +0 -184
- package/resources/lib/include/libimobiledevice/webinspector.h +0 -137
- package/resources/lib/include/plist/Array.h +0 -80
- package/resources/lib/include/plist/Boolean.h +0 -48
- package/resources/lib/include/plist/Data.h +0 -50
- package/resources/lib/include/plist/Date.h +0 -54
- package/resources/lib/include/plist/Dictionary.h +0 -73
- package/resources/lib/include/plist/Integer.h +0 -54
- package/resources/lib/include/plist/Key.h +0 -49
- package/resources/lib/include/plist/Node.h +0 -57
- package/resources/lib/include/plist/Real.h +0 -48
- package/resources/lib/include/plist/String.h +0 -52
- package/resources/lib/include/plist/Structure.h +0 -62
- package/resources/lib/include/plist/Uid.h +0 -48
- package/resources/lib/include/plist/plist++.h +0 -39
- package/resources/lib/include/plist/plist.h +0 -1448
- package/resources/lib/libimobiledevice-1.0.dll +0 -0
- package/resources/lib/libimobiledevice-1.0.dll.a +0 -0
- package/resources/lib/libplist-2.0.dll +0 -0
- package/resources/lib/libplist-2.0.dll.a +0 -0
|
@@ -1,33 +1,33 @@
|
|
|
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
|
-
|
|
7
|
-
Everyone is permitted to copy and distribute verbatim copies
|
|
8
|
-
of this license document, but changing it is not allowed.
|
|
9
|
-
|
|
10
|
-
[This is the first released version of the Lesser GPL. It also counts
|
|
11
|
-
as the successor of the GNU Library Public License, version 2, hence
|
|
12
|
-
the version number 2.1.]
|
|
13
|
-
|
|
14
|
-
Preamble
|
|
15
|
-
|
|
16
|
-
The licenses for most software are designed to take away your
|
|
17
|
-
freedom to share and change it. By contrast, the GNU General Public
|
|
18
|
-
Licenses are intended to guarantee your freedom to share and change
|
|
19
|
-
free software--to make sure the software is free for all its users.
|
|
20
|
-
|
|
21
|
-
This license, the Lesser General Public License, applies to some
|
|
22
|
-
specially designated software packages--typically libraries--of the
|
|
23
|
-
Free Software Foundation and other authors who decide to use it. You
|
|
24
|
-
can use it too, but we suggest you first think carefully about whether
|
|
25
|
-
this license or the ordinary General Public License is the better
|
|
26
|
-
strategy to use in any particular case, based on the explanations below.
|
|
27
|
-
|
|
28
|
-
libimobiledevice is licensed under the GNU Lesser General Public License
|
|
29
|
-
version 2.1 or later (LGPL-2.1+).
|
|
30
|
-
|
|
31
|
-
For the full text of the LGPL-2.1 license, see:
|
|
32
|
-
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
|
33
|
-
|
|
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
|
+
|
|
7
|
+
Everyone is permitted to copy and distribute verbatim copies
|
|
8
|
+
of this license document, but changing it is not allowed.
|
|
9
|
+
|
|
10
|
+
[This is the first released version of the Lesser GPL. It also counts
|
|
11
|
+
as the successor of the GNU Library Public License, version 2, hence
|
|
12
|
+
the version number 2.1.]
|
|
13
|
+
|
|
14
|
+
Preamble
|
|
15
|
+
|
|
16
|
+
The licenses for most software are designed to take away your
|
|
17
|
+
freedom to share and change it. By contrast, the GNU General Public
|
|
18
|
+
Licenses are intended to guarantee your freedom to share and change
|
|
19
|
+
free software--to make sure the software is free for all its users.
|
|
20
|
+
|
|
21
|
+
This license, the Lesser General Public License, applies to some
|
|
22
|
+
specially designated software packages--typically libraries--of the
|
|
23
|
+
Free Software Foundation and other authors who decide to use it. You
|
|
24
|
+
can use it too, but we suggest you first think carefully about whether
|
|
25
|
+
this license or the ordinary General Public License is the better
|
|
26
|
+
strategy to use in any particular case, based on the explanations below.
|
|
27
|
+
|
|
28
|
+
libimobiledevice is licensed under the GNU Lesser General Public License
|
|
29
|
+
version 2.1 or later (LGPL-2.1+).
|
|
30
|
+
|
|
31
|
+
For the full text of the LGPL-2.1 license, see:
|
|
32
|
+
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
|
33
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../../src/logic/actions/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,oBAAoB,CAAC;AAI5E,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../../src/logic/actions/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,oBAAoB,CAAC;AAI5E,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAkB7C,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA4BxE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAW9D;AAED;;GAEG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,aAAa,EACvB,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,UAAU,CAAC,CASrB;AAoJD;;GAEG;AACH,wBAAgB,eAAe;;;;;;;;;EAW9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../../src/logic/actions/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../../src/logic/actions/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAiHjD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,cAAc,SAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAsE/D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAKlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appleDeviceKit.d.ts","sourceRoot":"","sources":["../../../src/logic/appleDeviceKit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQ3F;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IAQzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"appleDeviceKit.d.ts","sourceRoot":"","sources":["../../../src/logic/appleDeviceKit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQ3F;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IAQzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,UAAU,CAAS;gBAG1B,IAAI,EAAE,MAAM,EACK,WAAW,EAAE,MAAM;IAQrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAKpD;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAKzC;;;;;;OAMG;IACU,cAAc,CAAC,OAAO,SAAS,EAAE,YAAY,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpF;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;;;;;;;;;;;OAYG;IACU,WAAW,CAAC,OAAO,SAAQ,EAAE,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3F;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAKvC;;;;OAIG;IACU,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD;;;;OAIG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D;;;;OAIG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/D;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAK3C;;;;;OAKG;IACU,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5E;;;;;;;;;;;;;OAaG;IACU,qBAAqB,CACjC,UAAU,EAAE,MAAM,EAClB,cAAc,SAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC;IAsB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAS/B;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAK3D;;;;;;;;;OASG;IACU,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAKzC;;OAEG;IACI,WAAW,IAAI,MAAM;IAI5B;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;;OAGG;IACI,aAAa,IAAI,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED;;OAEG;IACH,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IAED;;;;;OAKG;IACI,OAAO,IAAI,IAAI;IAatB;;OAEG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcesystems/apple-kit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.26",
|
|
4
4
|
"description": "iOS device management toolkit using libimobiledevice command-line tools",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"debug": "^4.4.3",
|
|
36
|
-
"get-port": "^7.1.0"
|
|
36
|
+
"get-port": "^7.1.0",
|
|
37
|
+
"tsx": "^4.21.0"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
39
40
|
"@types/debug": "^4.1.12",
|
|
@@ -42,15 +43,17 @@
|
|
|
42
43
|
"esbuild": "^0.27.0",
|
|
43
44
|
"esbuild-plugin-copy": "^2.1.1",
|
|
44
45
|
"rimraf": "^6.0.1",
|
|
45
|
-
"tsx": "^4.21.0",
|
|
46
46
|
"typescript": "^5.7.2",
|
|
47
47
|
"vitest": "^2.1.8"
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
50
50
|
"dist",
|
|
51
|
-
"
|
|
51
|
+
"scripts",
|
|
52
52
|
"README.md"
|
|
53
53
|
],
|
|
54
|
+
"bin": {
|
|
55
|
+
"export-apple-resources": "./scripts/export-resources.ts"
|
|
56
|
+
},
|
|
54
57
|
"scripts": {
|
|
55
58
|
"build": "tsx esbuild.config.mts && tsc --emitDeclarationOnly",
|
|
56
59
|
"clean": "rimraf dist",
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Export Apple Resources Script
|
|
2
|
+
|
|
3
|
+
This script exports libimobiledevice binaries and their dependencies to a specified target directory. The exported resources can be used by applications that depend on `@mcesystems/apple-kit`.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
After installing `@mcesystems/apple-kit`:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Using the binary (recommended)
|
|
11
|
+
npx export-apple-resources <target-path>
|
|
12
|
+
|
|
13
|
+
# Or run the script directly with tsx
|
|
14
|
+
npx tsx node_modules/@mcesystems/apple-kit/scripts/export-resources.ts <target-path>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Examples
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Export to a relative path
|
|
21
|
+
npx tsx export-resources.ts ./my-app/resources/apple-kit
|
|
22
|
+
|
|
23
|
+
# Export to an absolute path
|
|
24
|
+
npx tsx export-resources.ts /Users/me/projects/my-app/resources
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Output Structure
|
|
28
|
+
|
|
29
|
+
The script creates the following directory structure:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
<target-path>/
|
|
33
|
+
├── bin/
|
|
34
|
+
│ ├── darwin/ # macOS binaries and dylibs
|
|
35
|
+
│ │ ├── idevice_id
|
|
36
|
+
│ │ ├── ideviceinfo
|
|
37
|
+
│ │ ├── iproxy
|
|
38
|
+
│ │ ├── libimobiledevice-1.0.6.dylib
|
|
39
|
+
│ │ └── ... (other tools and dylibs)
|
|
40
|
+
│ └── windows/ # Windows binaries and DLLs
|
|
41
|
+
│ ├── idevice_id.exe
|
|
42
|
+
│ ├── ideviceinfo.exe
|
|
43
|
+
│ ├── iproxy.exe
|
|
44
|
+
│ ├── libimobiledevice-1.0-6.dll
|
|
45
|
+
│ └── ... (other tools and DLLs)
|
|
46
|
+
├── licenses/
|
|
47
|
+
│ └── LGPL-2.1.txt
|
|
48
|
+
└── build-windows.sh # Windows build script (generated on non-Windows)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Platform-Specific Prerequisites
|
|
54
|
+
|
|
55
|
+
### macOS
|
|
56
|
+
|
|
57
|
+
#### Prerequisites
|
|
58
|
+
|
|
59
|
+
1. **Homebrew** installed ([https://brew.sh](https://brew.sh))
|
|
60
|
+
|
|
61
|
+
2. **libimobiledevice tools** installed via Homebrew:
|
|
62
|
+
```bash
|
|
63
|
+
brew install libimobiledevice ideviceinstaller
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
3. **Node.js 18+** with `tsx` available:
|
|
67
|
+
```bash
|
|
68
|
+
npm install -g tsx
|
|
69
|
+
# or use npx
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### How It Works
|
|
73
|
+
|
|
74
|
+
On macOS, the script:
|
|
75
|
+
1. Locates Homebrew installation (`/opt/homebrew` for Apple Silicon, `/usr/local` for Intel)
|
|
76
|
+
2. Copies required binaries (`idevice_id`, `ideviceinfo`, `iproxy`, etc.)
|
|
77
|
+
3. Recursively collects all dylib dependencies
|
|
78
|
+
4. Fixes dylib paths using `install_name_tool` to use `@loader_path` (makes binaries portable)
|
|
79
|
+
|
|
80
|
+
#### Running
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
cd scripts/export-apple-resources
|
|
84
|
+
npx tsx export-resources.ts /path/to/output
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### Windows
|
|
90
|
+
|
|
91
|
+
#### Prerequisites
|
|
92
|
+
|
|
93
|
+
1. **MSYS2** installed from [https://www.msys2.org](https://www.msys2.org)
|
|
94
|
+
- Download and run the installer
|
|
95
|
+
- Default installation path: `C:\msys64`
|
|
96
|
+
|
|
97
|
+
2. **Required MSYS2 packages** - Open **MSYS2 MinGW 64-bit** shell and run:
|
|
98
|
+
```bash
|
|
99
|
+
pacman -S base-devel \
|
|
100
|
+
git \
|
|
101
|
+
mingw-w64-x86_64-gcc \
|
|
102
|
+
make \
|
|
103
|
+
libtool \
|
|
104
|
+
autoconf \
|
|
105
|
+
automake-wrapper
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
3. **Apple Mobile Device Support** (for USB communication)
|
|
109
|
+
- Either install iTunes from [https://www.apple.com/itunes/](https://www.apple.com/itunes/)
|
|
110
|
+
- Or install just "Apple Mobile Device Support" from the iTunes installer
|
|
111
|
+
|
|
112
|
+
#### How It Works
|
|
113
|
+
|
|
114
|
+
On Windows, building libimobiledevice from source is required. The script:
|
|
115
|
+
1. Generates a `build-windows.sh` script in the target directory
|
|
116
|
+
2. The build script downloads the official libimobiledevice build script
|
|
117
|
+
3. Compiles all required libraries and tools from source
|
|
118
|
+
4. Copies the resulting binaries and DLLs to the target directory
|
|
119
|
+
|
|
120
|
+
#### Running
|
|
121
|
+
|
|
122
|
+
**Step 1:** Generate the build script (can be done on any platform):
|
|
123
|
+
```bash
|
|
124
|
+
cd scripts/export-apple-resources
|
|
125
|
+
npx tsx export-resources.ts /path/to/output
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Step 2:** Open **MSYS2 MinGW 64-bit** shell (NOT regular MSYS2 shell!)
|
|
129
|
+
- Find it in Start Menu: "MSYS2 MinGW 64-bit"
|
|
130
|
+
|
|
131
|
+
**Step 3:** Run the build script:
|
|
132
|
+
```bash
|
|
133
|
+
cd /path/to/output
|
|
134
|
+
bash build-windows.sh
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
> **Note:** The build process may take 10-30 minutes depending on your system.
|
|
138
|
+
|
|
139
|
+
#### Troubleshooting Windows Build
|
|
140
|
+
|
|
141
|
+
| Issue | Solution |
|
|
142
|
+
|-------|----------|
|
|
143
|
+
| "gcc not found" | Install packages: `pacman -S mingw-w64-x86_64-gcc` |
|
|
144
|
+
| "This script must be run from MSYS2 MinGW 64-bit shell" | Open the correct shell from Start Menu |
|
|
145
|
+
| Build fails with SSL errors | `pacman -S mingw-w64-x86_64-openssl` |
|
|
146
|
+
| Device not detected | Ensure iTunes or Apple Mobile Device Support is installed |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Tools Included
|
|
151
|
+
|
|
152
|
+
### Required Tools (must be present)
|
|
153
|
+
| Tool | Description |
|
|
154
|
+
|------|-------------|
|
|
155
|
+
| `idevice_id` | List connected iOS devices |
|
|
156
|
+
| `ideviceinfo` | Get device information |
|
|
157
|
+
| `idevicepair` | Manage device pairing/trust |
|
|
158
|
+
| `idevicename` | Get/set device name |
|
|
159
|
+
| `idevicedebug` | Debug applications |
|
|
160
|
+
| `ideviceinstaller` | Install/uninstall apps |
|
|
161
|
+
| `iproxy` | Port forwarding |
|
|
162
|
+
|
|
163
|
+
### Optional Tools (copied if available)
|
|
164
|
+
| Tool | Description |
|
|
165
|
+
|------|-------------|
|
|
166
|
+
| `ideviceactivation` | Device activation |
|
|
167
|
+
| `idevicesyslog` | View device system log |
|
|
168
|
+
| `idevicescreenshot` | Take screenshots |
|
|
169
|
+
| `idevicediagnostics` | Device diagnostics |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Integrating with Your Application
|
|
174
|
+
|
|
175
|
+
After exporting resources, configure `apple-kit` to use them:
|
|
176
|
+
|
|
177
|
+
### Option 1: Environment Variable
|
|
178
|
+
|
|
179
|
+
Set `IDeviceBinPath` to point to the bin directory:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# macOS
|
|
183
|
+
export IDeviceBinPath=/path/to/resources/bin/darwin
|
|
184
|
+
|
|
185
|
+
# Windows (PowerShell)
|
|
186
|
+
$env:IDeviceBinPath = "C:\path\to\resources\bin\windows"
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Option 2: Bundle with Your App
|
|
190
|
+
|
|
191
|
+
Copy the exported resources into your application's resources folder. The `apple-kit` package will automatically detect binaries in:
|
|
192
|
+
- `<your-app>/resources/bin/darwin/` (macOS)
|
|
193
|
+
- `<your-app>/resources/bin/windows/` (Windows)
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## License
|
|
198
|
+
|
|
199
|
+
The libimobiledevice tools are licensed under **LGPL-2.1**. When distributing these binaries, you must:
|
|
200
|
+
1. Include the LGPL-2.1 license (automatically included in `licenses/` folder)
|
|
201
|
+
2. Provide access to the source code (links included in the license file)
|
|
202
|
+
|
|
203
|
+
Source code repositories:
|
|
204
|
+
- https://github.com/libimobiledevice/libimobiledevice
|
|
205
|
+
- https://github.com/libimobiledevice/libusbmuxd
|
|
206
|
+
- https://github.com/libimobiledevice/libplist
|
|
207
|
+
- https://github.com/libimobiledevice/libimobiledevice-glue
|
|
208
|
+
- https://github.com/libimobiledevice/ideviceinstaller
|
|
209
|
+
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# libimobiledevice Windows Build Script
|
|
4
|
+
# =============================================================================
|
|
5
|
+
#
|
|
6
|
+
# This script builds libimobiledevice and related tools from source using
|
|
7
|
+
# MSYS2/MinGW environment.
|
|
8
|
+
#
|
|
9
|
+
# Prerequisites:
|
|
10
|
+
# 1. MSYS2 installed (https://www.msys2.org/)
|
|
11
|
+
# 2. Run this script from MSYS2 MinGW 64-bit shell
|
|
12
|
+
# 3. Required packages installed (see below)
|
|
13
|
+
#
|
|
14
|
+
# To install required packages, run in MSYS2 MinGW 64-bit shell:
|
|
15
|
+
# pacman -S base-devel git mingw-w64-x86_64-gcc make libtool autoconf automake-wrapper
|
|
16
|
+
#
|
|
17
|
+
# Usage:
|
|
18
|
+
# bash build-windows.sh
|
|
19
|
+
#
|
|
20
|
+
# =============================================================================
|
|
21
|
+
|
|
22
|
+
set -e
|
|
23
|
+
|
|
24
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
25
|
+
TARGET_DIR="{{TARGET_DIR}}"
|
|
26
|
+
BUILD_DIR="$SCRIPT_DIR/limd-build"
|
|
27
|
+
|
|
28
|
+
echo "=== libimobiledevice Windows Build ==="
|
|
29
|
+
echo ""
|
|
30
|
+
echo "Target directory: $TARGET_DIR"
|
|
31
|
+
echo "Build directory: $BUILD_DIR"
|
|
32
|
+
echo ""
|
|
33
|
+
|
|
34
|
+
# Check if running in MinGW environment
|
|
35
|
+
if [[ -z "$MSYSTEM" ]] || [[ "$MSYSTEM" != "MINGW64" ]]; then
|
|
36
|
+
echo "Error: This script must be run from MSYS2 MinGW 64-bit shell"
|
|
37
|
+
echo "Open 'MSYS2 MinGW 64-bit' from Start menu and run this script again."
|
|
38
|
+
exit 1
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# Check for required tools
|
|
42
|
+
echo "Checking prerequisites..."
|
|
43
|
+
for cmd in gcc make git autoconf automake libtool; do
|
|
44
|
+
if ! command -v $cmd &> /dev/null; then
|
|
45
|
+
echo "Error: $cmd not found. Please install required packages:"
|
|
46
|
+
echo " pacman -S base-devel git mingw-w64-x86_64-gcc make libtool autoconf automake-wrapper"
|
|
47
|
+
exit 1
|
|
48
|
+
fi
|
|
49
|
+
done
|
|
50
|
+
echo "✓ All prerequisites found"
|
|
51
|
+
echo ""
|
|
52
|
+
|
|
53
|
+
# Create build directory
|
|
54
|
+
mkdir -p "$BUILD_DIR"
|
|
55
|
+
cd "$BUILD_DIR"
|
|
56
|
+
|
|
57
|
+
# Download and run the official build script
|
|
58
|
+
echo "Downloading libimobiledevice build script..."
|
|
59
|
+
curl -Ls -o limd-build-msys2.sh https://is.gd/limdmsys2
|
|
60
|
+
|
|
61
|
+
echo ""
|
|
62
|
+
echo "Running libimobiledevice build script..."
|
|
63
|
+
echo "(This may take 10-30 minutes depending on your system)"
|
|
64
|
+
echo ""
|
|
65
|
+
|
|
66
|
+
bash ./limd-build-msys2.sh
|
|
67
|
+
|
|
68
|
+
# After build, copy the binaries to target directory
|
|
69
|
+
echo ""
|
|
70
|
+
echo "Copying binaries to target directory..."
|
|
71
|
+
|
|
72
|
+
mkdir -p "$TARGET_DIR"
|
|
73
|
+
|
|
74
|
+
# The build script installs to /mingw64 by default
|
|
75
|
+
MINGW_BIN="/mingw64/bin"
|
|
76
|
+
|
|
77
|
+
TOOLS=(
|
|
78
|
+
"idevice_id.exe"
|
|
79
|
+
"ideviceinfo.exe"
|
|
80
|
+
"idevicepair.exe"
|
|
81
|
+
"idevicename.exe"
|
|
82
|
+
"idevicedebug.exe"
|
|
83
|
+
"ideviceinstaller.exe"
|
|
84
|
+
"iproxy.exe"
|
|
85
|
+
"ideviceactivation.exe"
|
|
86
|
+
"idevicesyslog.exe"
|
|
87
|
+
"idevicescreenshot.exe"
|
|
88
|
+
"idevicediagnostics.exe"
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
for tool in "${TOOLS[@]}"; do
|
|
92
|
+
if [[ -f "$MINGW_BIN/$tool" ]]; then
|
|
93
|
+
cp "$MINGW_BIN/$tool" "$TARGET_DIR/"
|
|
94
|
+
echo "✓ Copied $tool"
|
|
95
|
+
else
|
|
96
|
+
echo "- Skipping $tool (not found)"
|
|
97
|
+
fi
|
|
98
|
+
done
|
|
99
|
+
|
|
100
|
+
# Copy required DLLs
|
|
101
|
+
echo ""
|
|
102
|
+
echo "Copying required DLLs..."
|
|
103
|
+
|
|
104
|
+
DLLS=(
|
|
105
|
+
"libimobiledevice-1.0-6.dll"
|
|
106
|
+
"libusbmuxd-2.0-6.dll"
|
|
107
|
+
"libplist-2.0-4.dll"
|
|
108
|
+
"libimobiledevice-glue-1.0-0.dll"
|
|
109
|
+
"libssl-3-x64.dll"
|
|
110
|
+
"libcrypto-3-x64.dll"
|
|
111
|
+
"libzip-5.dll"
|
|
112
|
+
"liblzma-5.dll"
|
|
113
|
+
"libzstd.dll"
|
|
114
|
+
"libgcc_s_seh-1.dll"
|
|
115
|
+
"libwinpthread-1.dll"
|
|
116
|
+
"libstdc++-6.dll"
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
for dll in "${DLLS[@]}"; do
|
|
120
|
+
if [[ -f "$MINGW_BIN/$dll" ]]; then
|
|
121
|
+
cp "$MINGW_BIN/$dll" "$TARGET_DIR/"
|
|
122
|
+
echo "✓ Copied $dll"
|
|
123
|
+
else
|
|
124
|
+
echo "- Skipping $dll (not found)"
|
|
125
|
+
fi
|
|
126
|
+
done
|
|
127
|
+
|
|
128
|
+
echo ""
|
|
129
|
+
echo "=== Build Complete ==="
|
|
130
|
+
echo "Windows binaries exported to: $TARGET_DIR"
|
|
131
|
+
echo ""
|
|
132
|
+
echo "Note: On Windows, iTunes or Apple Mobile Device Support must be installed"
|
|
133
|
+
echo "for USB communication to work."
|
|
134
|
+
|