Pagina 1 di 2

Makefile spirit-linux | libimobiledevice

Inviato: gio 14 gen 2021, 10:32
da darkstaring
Ciao ragazzi !
Vorrei compilare spirit-linux su manjaro, ho gia' installato tutte le dipendenze,
ma il makefile di spirit contine

Codice: Seleziona tutto

all: spirit
%.o: %.c afc.h
        gcc -std=gnu99 -c -o $@ $<

spirit: spirit.o afc.o
        gcc -o spirit spirit.o afc.o -limobiledevice -lplist -lcrypto

clean:
        rm -rf spirit *.o *.dSYM
fallisce la riga gcc -o spirit spirit.o afc.o -limobiledevice -lplist -lcrypto
con il seguenti errori:

/usr/bin/ld: impossibile trovare -limobiledevice
/usr/bin/ld: impossibile trovare -lplist


vorrei modificare il makefile date che ho la libreria

sudo ldconfig -v
libimobiledevice-1.0.so.6 -> libimobiledevice-1.0.so.6.0.0


Riuscite a darmi una mano ?

Re: Makefile spirit-linux | libimobiledevice

Inviato: gio 14 gen 2021, 14:47
da rik70
Nel mio caso modificando il Makefile in

Codice: Seleziona tutto

gcc -o spirit spirit.o afc.o -limobiledevice-1.0 -lplist-2.0 -lcrypto
va avanti, ma si ferma comunque con

Codice: Seleziona tutto

/usr/bin/ld: spirit.o: in function `start_restore':
spirit.c:(.text+0xa53): undefined reference to `idevice_get_uuid'
collect2: error: ld returned 1 exit status
Mi sa che ci vuole una patch.

Re: Makefile spirit-linux | libimobiledevice

Inviato: gio 14 gen 2021, 15:55
da rik70
P.s.
L'errore è generato dalla riga 225 del file spirit.c:

Codice: Seleziona tutto

idevice_get_uuid(device, &uuid);
Nella nuova versione delle libimobiledevice dovrebbe essere:

Codice: Seleziona tutto

idevice_get_udid(device, &udid);
Ho provato a scrivere una patch e compila:

Codice: Seleziona tutto

--- spirit.c	2021-01-14 15:41:22.663719269 +0100
+++ spirit.c.new	2021-01-14 15:41:09.795809223 +0100
@@ -221,12 +221,12 @@
 }
 
 static void start_restore(mobilebackup_client_t backup, plist_t files) {
-	char* uuid = NULL;
-	idevice_get_uuid(device, &uuid);
+	char* udid = NULL;
+	idevice_get_udid(device, &udid);
 	printf("DEBUG: start_restore\n");
 	plist_t m1dict = plist_new_dict();
 	plist_dict_insert_item(m1dict, "Version", plist_new_string("6.2"));
-	plist_dict_insert_item(m1dict, "DeviceId", plist_new_string(uuid));
+	plist_dict_insert_item(m1dict, "DeviceId", plist_new_string(udid));
 	plist_dict_insert_item(m1dict, "Applications", plist_new_dict());
 	plist_dict_insert_item(m1dict, "Files", files);
 
@@ -371,7 +371,7 @@
 }
 
 int main(int argc, char** argv) {
-	char uuid[41];
+	char udid[41];
 	int count = 0;
 	char **list = NULL;
 	idevice_error_t device_error = 0;
@@ -383,12 +383,12 @@
 		return -1;
 	}
 
-	memset(uuid, '\0', 41);
-	memcpy(uuid, list[0], 40);
+	memset(udid, '\0', 41);
+	memcpy(udid, list[0], 40);
 	idevice_device_list_free(list);
 
 	printf("INFO: Opening device\n");
-	device_error = idevice_new(&device, uuid);
+	device_error = idevice_new(&device, udid);
 	if(device_error != IDEVICE_E_SUCCESS) {
 		if(device_error == IDEVICE_E_NO_DEVICE) {
 			fprintf(stderr, "ERROR: No device found\n");
Ma non ho la minima idea se tutto questo sia corretto.
Sembra avere un senso, ma non sono un programmatore e le modifiche andrebbero verificate passo passo.

Re: Makefile spirit-linux | libimobiledevice

Inviato: gio 14 gen 2021, 17:02
da darkstaring
Grazie 1000 per l'aiuto...

Mi potresti dire come posso applicare la patch senza editare il file a manina?

Re: Makefile spirit-linux | libimobiledevice

Inviato: gio 14 gen 2021, 17:11
da rik70
Nella directory dei sorgenti crei un file che so... spirit.diff, ci incolli il codice della patch e dai:

Codice: Seleziona tutto

patch -p0 -i spirit.diff
P.s.

Per puro caso ho trovato questo: https://forums.fedoraforum.org/showthre ... ux-install

Il risultato è analogo, credo, ma va ad applicare la "sostituzione" in modo "brutale" su tutti i file sorgenti(e non).

Re: Makefile spirit-linux | libimobiledevice

Inviato: gio 14 gen 2021, 17:15
da darkstaring
Collegando un'ipad4
che dovrebbe poter modificare l'anciando l'eseguibile ottengo:

Codice: Seleziona tutto

~/.../ipad4/spirit-linux >>> sudo ./spirit                                                                                                                                             [139]
[sudo] password di francesco: 
INFO: Retriving device list
INFO: Opening device
INFO: Creating lockdownd client
INFO: Starting AFC service
zsh: segmentation fault  sudo ./spirit
Credo sia un'impresa!!!

Re: Makefile spirit-linux | libimobiledevice

Inviato: gio 14 gen 2021, 18:41
da rik70
Va in segfault subito dopo
darkstaring ha scritto:
gio 14 gen 2021, 17:15

Codice: Seleziona tutto

INFO: Starting AFC service
Durante la compilazione saltano fuori questi avvisi

Codice: Seleziona tutto

spirit.c: In function ‘send_files_thread’:
spirit.c:148:87: warning: passing argument 3 of ‘lockdownd_start_service’ from incompatible pointer type [-Wincompatible-pointer-types]
  148 |  lockdownd_error_t lockdown_err = lockdownd_start_service(lockdownd, "com.apple.afc", &port);
      |                                                                                       ^~~~~
      |                                                                                       |
      |                                                                                       uint16_t * {aka short unsigned int *}
In file included from /usr/include/libimobiledevice/afc.h:32,
                 from spirit.c:30:
/usr/include/libimobiledevice/lockdown.h:212:126: note: expected ‘struct lockdownd_service_descriptor **’ but argument is of type ‘uint16_t *’ {aka ‘short unsigned int *’}
  212 | lockdownd_error_t lockdownd_start_service(lockdownd_client_t client, const char *identifier, lockdownd_service_descriptor_t *service);
      |                                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
spirit.c:154:47: warning: passing argument 2 of ‘afc_client_new’ makes pointer from integer without a cast [-Wint-conversion]
  154 |  afc_error_t afc_err = afc_client_new(device, port, &afc);
      |                                               ^~~~
      |                                               |
      |                                               uint16_t {aka short unsigned int}
In file included from spirit.c:30:
/usr/include/libimobiledevice/afc.h:109:77: note: expected ‘lockdownd_service_descriptor_t’ {aka ‘struct lockdownd_service_descriptor *’} but argument is of type ‘uint16_t’ {aka ‘short unsigned int’}
  109 | afc_error_t afc_client_new(idevice_t device, lockdownd_service_descriptor_t service, afc_client_t *client);
      |                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
spirit.c: In function ‘restore_thread’:
spirit.c:339:96: warning: passing argument 3 of ‘lockdownd_start_service’ from incompatible pointer type [-Wincompatible-pointer-types]
  339 |  lockdownd_error_t lockdown_err = lockdownd_start_service(lockdownd, "com.apple.mobilebackup", &port);
      |                                                                                                ^~~~~
      |                                                                                                |
      |                                                                                                uint16_t * {aka short unsigned int *}
In file included from /usr/include/libimobiledevice/afc.h:32,
                 from spirit.c:30:
/usr/include/libimobiledevice/lockdown.h:212:126: note: expected ‘struct lockdownd_service_descriptor **’ but argument is of type ‘uint16_t *’ {aka ‘short unsigned int *’}
  212 | lockdownd_error_t lockdownd_start_service(lockdownd_client_t client, const char *identifier, lockdownd_service_descriptor_t *service);
      |                                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
spirit.c:350:68: warning: passing argument 2 of ‘mobilebackup_client_new’ makes pointer from integer without a cast [-Wint-conversion]
  350 |  mobilebackup_error_t backup_err = mobilebackup_client_new(device, port, &backup);
      |                                                                    ^~~~
      |                                                                    |
      |                                                                    uint16_t {aka short unsigned int}
In file included from spirit.c:32:
/usr/include/libimobiledevice/mobilebackup.h:70:95: note: expected ‘lockdownd_service_descriptor_t’ {aka ‘struct lockdownd_service_descriptor *’} but argument is of type ‘uint16_t’ {aka ‘short unsigned int’}
   70 | mobilebackup_error_t mobilebackup_client_new(idevice_t device, lockdownd_service_descriptor_t service, mobilebackup_client_t * client);
che sembrano aver a che fare con questo AFC Service.

Ma non sono in grado di decifrare la questione, se non concludere che le modifiche fatte forse non sono sufficienti(?).

Ci vuole qualcuno che mastichi programmazione e dia una sbirciata ai sorgenti.

Ma il programma che fa di preciso: si collega al device e poi gli invia uno o più file?

Re: Makefile spirit-linux | libimobiledevice

Inviato: ven 15 gen 2021, 12:02
da rik70
Ok, ho provato a riscrivere la patch.

Prima di applicarla devi ripristinare i sorgenti. Se li hai presi da github, dall'albero dei sorgenti dai:

Codice: Seleziona tutto

git restore Makefile
git restore spirit.c
Poi applichi la patch al solito modo:

Codice: Seleziona tutto

patch -p0 -i spirit.diff
e ricompili.

Allego la patch:
spirit.diff
(7.84 KiB) Scaricato 240 volte

Il contenuto è questo:

Codice: Seleziona tutto

--- Makefile	2021-01-15 11:47:35.900234278 +0100
+++ Makefile.new	2021-01-14 17:25:45.907953606 +0100
@@ -3,7 +3,7 @@
 	gcc -std=gnu99 -c -o $@ $<
 
 spirit: spirit.o afc.o
-	gcc -o spirit spirit.o afc.o -limobiledevice -lplist -lcrypto
+	gcc -o spirit spirit.o afc.o -limobiledevice-1.0 -lplist-2.0 -lcrypto
 
 clean:
 	rm -rf spirit *.o *.dSYM
--- spirit.c	2021-01-15 11:47:43.003245704 +0100
+++ spirit.c.new1	2021-01-15 11:47:15.377201283 +0100
@@ -141,7 +141,7 @@
 		fprintf(stderr, "ERROR: Cannot create lockdownd client\n");
 	}
 	
-	uint16_t port = 0;
+	lockdownd_service_descriptor_t port = 0;
 	afc_client_t afc = NULL;
 	printf("INFO: Starting AFC service\n");
 
@@ -221,32 +221,32 @@
 }
 
 static void start_restore(mobilebackup_client_t backup, plist_t files) {
-	char* uuid = NULL;
-	idevice_get_uuid(device, &uuid);
+	char* udid = NULL;
+	idevice_get_udid(device, &udid);
 	printf("DEBUG: start_restore\n");
 	plist_t m1dict = plist_new_dict();
-	plist_dict_insert_item(m1dict, "Version", plist_new_string("6.2"));
-	plist_dict_insert_item(m1dict, "DeviceId", plist_new_string(uuid));
-	plist_dict_insert_item(m1dict, "Applications", plist_new_dict());
-	plist_dict_insert_item(m1dict, "Files", files);
+	plist_dict_set_item(m1dict, "Version", plist_new_string("6.2"));
+	plist_dict_set_item(m1dict, "DeviceId", plist_new_string(udid));
+	plist_dict_set_item(m1dict, "Applications", plist_new_dict());
+	plist_dict_set_item(m1dict, "Files", files);
 
 	uint32_t m1size = 0;
 	char* m1data = NULL;
 	plist_to_bin(m1dict, &m1data, &m1size);
 
 	plist_t manifest = plist_new_dict();
-	plist_dict_insert_item(manifest, "Version", plist_new_string("2.0"));
-	plist_dict_insert_item(manifest, "AuthSignature", plist_new_data(sha1_of_data(m1data, m1size), 20));
-	plist_dict_insert_item(manifest, "IsEncrypted", plist_new_uint(0));
-	plist_dict_insert_item(manifest, "Data", plist_new_data(m1data, m1size));
+	plist_dict_set_item(manifest, "Version", plist_new_string("2.0"));
+	plist_dict_set_item(manifest, "AuthSignature", plist_new_data(sha1_of_data(m1data, m1size), 20));
+	plist_dict_set_item(manifest, "IsEncrypted", plist_new_uint(0));
+	plist_dict_set_item(manifest, "Data", plist_new_data(m1data, m1size));
 
 	plist_t mdict = plist_new_dict();
-	plist_dict_insert_item(mdict, "BackupMessageTypeKey", plist_new_string("kBackupMessageRestoreRequest"));
-	plist_dict_insert_item(mdict, "BackupNotifySpringBoard", plist_new_bool(1));
-	plist_dict_insert_item(mdict, "BackupProtocolVersion", plist_new_string("3.0"));
-	plist_dict_insert_item(mdict, "BackupPreserveCameraRoll", plist_new_bool(1));
-	plist_dict_insert_item(mdict, "BackupPreserveSettings", plist_new_bool(1));
-	plist_dict_insert_item(mdict, "BackupManifestKey", manifest);
+	plist_dict_set_item(mdict, "BackupMessageTypeKey", plist_new_string("kBackupMessageRestoreRequest"));
+	plist_dict_set_item(mdict, "BackupNotifySpringBoard", plist_new_bool(1));
+	plist_dict_set_item(mdict, "BackupProtocolVersion", plist_new_string("3.0"));
+	plist_dict_set_item(mdict, "BackupPreserveCameraRoll", plist_new_bool(1));
+	plist_dict_set_item(mdict, "BackupPreserveSettings", plist_new_bool(1));
+	plist_dict_set_item(mdict, "BackupManifestKey", manifest);
 
 	plist_t message = plist_new_array();
 	plist_array_append_item(message, plist_new_string("DLMessageProcessMessage"));
@@ -260,11 +260,11 @@
 	char* manifestkey = data_to_hex(sha1_of_data(pathdata, strlen(path)), 20);
 	printf("DEBUG: add_file\n");
 	plist_t dict = plist_new_dict();
-	plist_dict_insert_item(dict, "Domain", plist_new_string(domain));
-	plist_dict_insert_item(dict, "Path", plist_new_string(path));
-	plist_dict_insert_item(dict, "Greylist", plist_new_bool(0));
-	plist_dict_insert_item(dict, "Version", plist_new_string("3.0"));
-	plist_dict_insert_item(dict, "Data", plist_new_data(crap, crap_size));
+	plist_dict_set_item(dict, "Domain", plist_new_string(domain));
+	plist_dict_set_item(dict, "Path", plist_new_string(path));
+	plist_dict_set_item(dict, "Greylist", plist_new_bool(0));
+	plist_dict_set_item(dict, "Version", plist_new_string("3.0"));
+	plist_dict_set_item(dict, "Data", plist_new_data(crap, crap_size));
 	printf("DEBUG: Data size %llu:\n%s\n", crap_size, data_to_hex(crap, crap_size));
 
 	char* datahash = malloc(20);
@@ -277,22 +277,22 @@
 	SHA1_Final(datahash, &ctx);
 
 	plist_t manifest = plist_new_dict();
-	plist_dict_insert_item(manifest, "DataHash", plist_new_data(datahash, 20));
-	plist_dict_insert_item(manifest, "Domain", plist_new_string(domain));
-	plist_dict_insert_item(manifest, "FileLength", plist_new_uint(crap_size));
-	plist_dict_insert_item(manifest, "Group ID", plist_new_uint(gid));
-	plist_dict_insert_item(manifest, "User ID", plist_new_uint(uid));
-	plist_dict_insert_item(manifest, "Mode", plist_new_uint(mode));
-	plist_dict_insert_item(manifest, "ModificationTime", plist_new_date(2020964986UL, 0));
-	plist_dict_insert_item(files, manifestkey, manifest);
+	plist_dict_set_item(manifest, "DataHash", plist_new_data(datahash, 20));
+	plist_dict_set_item(manifest, "Domain", plist_new_string(domain));
+	plist_dict_set_item(manifest, "FileLength", plist_new_uint(crap_size));
+	plist_dict_set_item(manifest, "Group ID", plist_new_uint(gid));
+	plist_dict_set_item(manifest, "User ID", plist_new_uint(uid));
+	plist_dict_set_item(manifest, "Mode", plist_new_uint(mode));
+	plist_dict_set_item(manifest, "ModificationTime", plist_new_date(2020964986UL, 0));
+	plist_dict_set_item(files, manifestkey, manifest);
 
 	plist_t info = plist_new_dict();
 	char* templateo = (char*) malloc(0x20);
 	snprintf(templateo, 0x20, "/tmp/stuff.%06d", ++some_unique);
-	plist_dict_insert_item(info, "DLFileDest", plist_new_string(templateo));
-	plist_dict_insert_item(info, "Path", plist_new_string(path));
-	plist_dict_insert_item(info, "Version", plist_new_string("3.0"));
-	plist_dict_insert_item(info, "Crap", plist_new_data(crap, crap_size));
+	plist_dict_set_item(info, "DLFileDest", plist_new_string(templateo));
+	plist_dict_set_item(info, "Path", plist_new_string(path));
+	plist_dict_set_item(info, "Version", plist_new_string("3.0"));
+	plist_dict_set_item(info, "Crap", plist_new_data(crap, crap_size));
 
 	return info;
 }
@@ -307,11 +307,11 @@
 	plist_get_data_val(plist_dict_get_item(info, "Crap"), &crap, &crap_size);
 	plist_dict_remove_item(info, "Crap");
 
-	plist_dict_insert_item(info, "DLFileAttributesKey", plist_new_dict());
-	plist_dict_insert_item(info, "DLFileSource", plist_new_string(dest));
-	plist_dict_insert_item(info, "DLFileIsEncrypted", plist_new_uint(0));
-	plist_dict_insert_item(info, "DLFileOffsetKey", plist_new_uint(0));
-	plist_dict_insert_item(info, "DLFileStatusKey", plist_new_uint(2));
+	plist_dict_set_item(info, "DLFileAttributesKey", plist_new_dict());
+	plist_dict_set_item(info, "DLFileSource", plist_new_string(dest));
+	plist_dict_set_item(info, "DLFileIsEncrypted", plist_new_uint(0));
+	plist_dict_set_item(info, "DLFileOffsetKey", plist_new_uint(0));
+	plist_dict_set_item(info, "DLFileStatusKey", plist_new_uint(2));
 
 	plist_t message = plist_new_array();
 	plist_array_append_item(message, plist_new_string("DLSendFile"));
@@ -332,7 +332,7 @@
 		fprintf(stderr, "ERROR: Cannot create lockdownd client\n");
 	}
 	
-	uint16_t port = 0;
+	lockdownd_service_descriptor_t port = 0;
 	mobilebackup_client_t backup = NULL;
 	printf("INFO: Starting MobileBackup service\n");
 
@@ -371,7 +371,7 @@
 }
 
 int main(int argc, char** argv) {
-	char uuid[41];
+	char udid[41];
 	int count = 0;
 	char **list = NULL;
 	idevice_error_t device_error = 0;
@@ -383,12 +383,12 @@
 		return -1;
 	}
 
-	memset(uuid, '\0', 41);
-	memcpy(uuid, list[0], 40);
+	memset(udid, '\0', 41);
+	memcpy(udid, list[0], 40);
 	idevice_device_list_free(list);
 
 	printf("INFO: Opening device\n");
-	device_error = idevice_new(&device, uuid);
+	device_error = idevice_new(&device, udid);
 	if(device_error != IDEVICE_E_SUCCESS) {
 		if(device_error == IDEVICE_E_NO_DEVICE) {
 			fprintf(stderr, "ERROR: No device found\n");
A tuo totale rischio e pericolo. Se ti esplode il device non cercarmi :oops: 8)

Re: Makefile spirit-linux | libimobiledevice

Inviato: ven 15 gen 2021, 23:43
da darkstaring
Questa e' la risposta:

Codice: Seleziona tutto

INFO: Retriving device list
INFO: Opening device
INFO: Creating lockdownd client
INFO: Starting AFC service
INFO: Sending files via AFC.INFO: Found version iPad3,6_10.3.3
INFO: Read igor/map.plist
ERROR: Unable to find device in maps.plist
INFO: Creating lockdownd client
INFO: Starting MobileBackup service
ERROR: Cannot start MobileBackup service
INFO: Completed successfully
Ora verifico se e' andato a buon fine nonostante gli ERROR...

Grazie mille

Edit:
il jailbreack non ha avuto effetto :( !

Re: Makefile spirit-linux | libimobiledevice

Inviato: sab 16 gen 2021, 8:59
da rik70
darkstaring ha scritto:
ven 15 gen 2021, 23:43
Questa e' la risposta:

Codice: Seleziona tutto

INFO: Retriving device list
INFO: Opening device
INFO: Creating lockdownd client
INFO: Starting AFC service
INFO: Sending files via AFC.INFO: Found version iPad3,6_10.3.3
INFO: Read igor/map.plist
ERROR: Unable to find device in maps.plist
INFO: Creating lockdownd client
INFO: Starting MobileBackup service
ERROR: Cannot start MobileBackup service
INFO: Completed successfully
E' già qualcosa, anche se non c'avrei scommesso mezzo centesimo :)

Codice: Seleziona tutto

ERROR: Unable to find device in maps.plist
Dai un'occhiata a quel file nella directory "igor/". Sembra che il tuo dispositivo(iPad3,6_10.3.3) non sia elencato, mentre è presente un iPad1.
Ad ogni dispositivo è associata una stringa che punta a un file - sempre nella stessa directory - con estensione '.dylib' e dovrebbe trattarsi di librerie dinamiche ciascuna corrispondente a una specifica architettura 'arm':

Codice: Seleziona tutto

2dcde0a77381d24b7c02ac0cf7f714434c4ccdcf.dylib: Mach-O armv7 dynamically linked shared library, flags:<|DYLDLINK|FORCE_FLAT>
3e404d11fcbd5486d3be2dd86ce21316e1854842.dylib: Mach-O armv6 dynamically linked shared library, flags:<|DYLDLINK|FORCE_FLAT>
74227c0021c5e12effb5bd3175eb469a8df0622e.dylib: Mach-O armv6 dynamically linked shared library, flags:<|DYLDLINK|FORCE_FLAT>
b735701843456754988021d128c2671ee36d1b04.dylib: Mach-O armv7 dynamically linked shared library, flags:<|DYLDLINK|FORCE_FLAT>
f6c17e934ba0ad477812de0b7cb019396d259d93.dylib: Mach-O armv7 dynamically linked shared library, flags:<|DYLDLINK|FORCE_FLAT>
Che queste librerie servano a effettuare il jailbreak?
Non te lo so dire, ma parrebbe di sì.
E sopratutto: ne esiste una adatta al tuo dispositivo che puoi aggiungere alla lista o ne serve una specifica che ti devi procurare da qualche parte?

E qui mi fermo.

Idee?
Io di Mac non ne capisco nulla.

Re: Makefile spirit-linux | libimobiledevice

Inviato: sab 16 gen 2021, 9:43
da rik70
[ continua... ]
Ora, se le informazioni qui sono corrette, il tuo iPad monta un processore armv7.

Potresti tentare di aggiungerlo alla lista, con tutti i rischi del caso, "forzandolo" ad utilizzare la libreria per la medesima architettura:

Codice: Seleziona tutto

2dcde0a77381d24b7c02ac0cf7f714434c4ccdcf.dylib: Mach-O armv7 dynamically linked shared library, flags:<|DYLDLINK|FORCE_FLAT>
Altra patch, da applicare allo stesso modo(non credo sia necessario ricompilare):
map.list.diff
(476 Byte) Scaricato 240 volte

Codice: Seleziona tutto

--- igor/map.plist	2021-01-14 17:25:45.959953673 +0100
+++ igor/map.plist.new	2021-01-16 09:32:06.119436632 +0100
@@ -4,6 +4,8 @@
 <dict>
 	<key>iPad1,1_3.2</key>
 	<string>igor/2dcde0a77381d24b7c02ac0cf7f714434c4ccdcf.dylib</string>
+        <key>iPad3,6_10.3.3</key>
+        <string>igor/2dcde0a77381d24b7c02ac0cf7f714434c4ccdcf.dylib</string>
 	<key>iPhone1,1_3.1.2</key>
 	<string>igor/3e404d11fcbd5486d3be2dd86ce21316e1854842.dylib</string>
 	<key>iPhone1,1_3.1.3</key>
Ma occhio sembra una forzatura troppo grande.
Vale quindi lo stesso discorso di prima su rischi e responsabilità.

Edit
P.S.

Nota come nella stella directory ci sia un eseguibile `install`

Codice: Seleziona tutto

igor/install: Mach-O universal binary with 2 architectures: [armv7:Mach-O armv7 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [armv6:Mach-O armv6 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
che viene inviato al dispositivo - immagino per il jailbreaking:

Codice: Seleziona tutto

send_over(afc, "igor/install", "spirit/install");
Che quelle librerie, associate al dispositivo, servano a lui?

Non rimane che provare.

Re: Makefile spirit-linux | libimobiledevice

Inviato: dom 17 gen 2021, 15:41
da darkstaring
Non funziona , ma potrebbe essere perche' il fw del tablet e' troppo aggiornato.. e non per via delle patch..

Questo e' l'output:

Codice: Seleziona tutto

INFO: Retriving device list
INFO: Opening device
INFO: Creating lockdownd client
INFO: Starting AFC service
INFO: Sending files via AFC.INFO: Found version iPad3,6_10.3.4
INFO: Read igor/map.plist
ERROR: Unable to find device in maps.plist
INFO: Creating lockdownd client
INFO: Starting MobileBackup service
ERROR: Cannot start MobileBackup service
INFO: Completed successfully

Re: Makefile spirit-linux | libimobiledevice

Inviato: dom 17 gen 2021, 18:00
da rik70
Sì, si ferma nello stesso punto.

Il dispositivo è inserito correttamente in igor/map.list dopo l'applicazione della patch?

Se sì, allora serve probabilmente la 'dylib' corretta per il tuo dispositivo. Ma da dove le prendono quelle librerie, dall'OS?

In pratica, dopo

Codice: Seleziona tutto

INFO: Read igor/map.plist
dovrebbe proseguire con

Codice: Seleziona tutto

INFO: Sending “install”
INFO: Sending “one.dylib”
INFO: Sending “freeze.tar.xz”
INFO: Sending “bg.jpg”
INFO: Sending files complete
come si desume dal codice sorgente

Codice: Seleziona tutto

        printf("INFO: Sending \"install\"\n");
        send_over(afc, "igor/install", "spirit/install");
        printf("INFO: Sending \"one.dylib\"\n");
        send_over(afc, one_dylib, "spirit/one.dylib");
        printf("INFO: Sending \"freeze.tar.xz\"\n");
        send_over(afc, "resources/freeze.tar.xz", "spirit/freeze.tar.xz");
        printf("INFO: Sending \"bg.jpg\"\n");
        send_over(afc, strstr(product, "iPad") != NULL ? "resources/1024x768.jpg" : "resources/320x480.jpg", "spirit/bg.jpg");


        printf("INFO: Sending files complete\n");
Mentre nel tuo caso, per via di quell'errore, salta l'invio al dispositivo dei file necessari al jailbreak.

Re: Makefile spirit-linux | libimobiledevice

Inviato: dom 17 gen 2021, 22:10
da darkstaring
Ciao, stupidamente non avevo applicato bene la patch ! del map.plist.

Questo e' l' output
INFO: Retriving device list
INFO: Opening device
INFO: Creating lockdownd client
INFO: Starting AFC service
INFO: Sending files via AFC.INFO: Found version iPad3,6_10.3.3
INFO: Read igor/map.plist
INFO: Sending "install"
.....INFO: Sending "one.dylib"
.INFO: Sending "freeze.tar.xz"
.........................................................INFO: Sending "bg.jpg"
.INFO: Sending files complete
INFO: Creating lockdownd client
INFO: Starting MobileBackup service
ERROR: Cannot start MobileBackup service
INFO: Completed successfully

Re: Makefile spirit-linux | libimobiledevice

Inviato: lun 18 gen 2021, 10:30
da rik70
darkstaring ha scritto:
dom 17 gen 2021, 22:10
Questo e' l' output

Codice: Seleziona tutto

[...]
    ERROR: Cannot start MobileBackup service
[...]
Ok.

Qui le cose si fanno serie.

Che versione di iOS monta il tuo dispositivo?
Per caso iOS4+?