@@ -19,7 +19,7 @@ les en-têtes HTTP à utiliser pour identifier l'appareil.
19
19
20
20
Plus précisément, libprovision enregistre l'appareil auprès d'apple et récupère les données ADI pour celui-ci.
21
21
Une fois connecté avec cette machine, les serveurs d'Apple se rappeleront de votre appareil comme sûre,
22
- donc assurez vous de ne pas vous connecter n'importe où, et à conserver précieusement les données ADI à ` ~/.adi/adi.pb ` .
22
+ donc assurez- vous de ne pas vous connecter n'importe où, et à conserver précieusement les données ADI à ` ~/.adi/adi.pb ` .
23
23
24
24
Il y avait * sideload-ipa* aussi précédemment. Le code a été retiré, car il ne fonctionnait de toute façon pas
25
25
et que j'aide au développement de [ SideServer] ( ) (pas de lien officiel pour le moment), qui fonctionnera AltServer là
@@ -42,7 +42,7 @@ libplist.
42
42
43
43
## Compilation
44
44
45
- Clonez le projet et compilez le avec DUB:
45
+ Clonez le projet et compilez le avec DUB :
46
46
47
47
``` bash
48
48
git clone https://github.com/Dadoum/Provision --recursive
@@ -61,6 +61,55 @@ cmake -G Ninja .. -DCMAKE_BUILD_TYPE=Release
61
61
ninja
62
62
```
63
63
64
+ ## Utilisation de libprovision
65
+
66
+ L'interface essaie tant bien que mal de rester proche de celle d'AuthKit, même si Provision est écrit en D.
67
+
68
+ ``` d
69
+ import std.digest: toHexString;
70
+ import file = std.file;
71
+ import std.path: expandTilde, buildPath;
72
+ import std.random: rndGen;
73
+ import std.range: take, array;
74
+ import std.stdio: stderr, write, writeln;
75
+ import std.uni: toUpper;
76
+ import std.uuid: randomUUID;
77
+
78
+ import provision.adi;
79
+
80
+ void main() {
81
+ string configuration_folder = expandTilde("~/.config/Provision/");
82
+ if (!file.exists(configuration_folder)) {
83
+ file.mkdir(configuration_folder);
84
+ }
85
+
86
+ ADI adi = new ADI("lib/" ~ architectureIdentifier);
87
+ adi.provisioningPath = configuration_folder;
88
+ Device device = new Device(configuration_folder.buildPath("device.json"));
89
+
90
+ if (!device.initialized) {
91
+ stderr.write("Creating machine... ");
92
+ device.serverFriendlyDescription = "<MacBookPro13,2> <macOS;13.1;22C65> <com.apple.AuthKit/1 (com.apple.dt.Xcode/3594.4.19)>";
93
+ device.uniqueDeviceIdentifier = randomUUID().toString().toUpper();
94
+ device.adiIdentifier = (cast(ubyte[]) rndGen.take(2).array()).toHexString().toLower();
95
+ device.localUserUUID = (cast(ubyte[]) rndGen.take(8).array()).toHexString().toUpper();
96
+
97
+ stderr.writeln("done !");
98
+ }
99
+
100
+ adi.identifier = device.adiIdentifier;
101
+ if (!adi.isMachineProvisioned(-2)) {
102
+ stderr.write("Machine requires provisioning... ");
103
+
104
+ ProvisioningSession provisioningSession = new ProvisioningSession(adi, device);
105
+ provisioningSession.provision(-2);
106
+ stderr.writeln("done !");
107
+ }
108
+
109
+ // Faites ce que vous voulez avec adi !
110
+ }
111
+ ```
112
+
64
113
## Soutien
65
114
66
115
Vous pouvez me soutenir en faisant un don avec GitHub Sponsor.
0 commit comments