Makefile spirit-linux | libimobiledevice

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 648
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Makefile spirit-linux | libimobiledevice

Messaggio 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 ?

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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.

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 648
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Makefile spirit-linux | libimobiledevice

Messaggio da darkstaring »

Grazie 1000 per l'aiuto...

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

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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).

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 648
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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!!!

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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?

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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 24 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)

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 648
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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 :( !

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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.

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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 19 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.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 648
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 648
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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

rik70
Iper Master
Iper Master
Messaggi: 2232
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: Makefile spirit-linux | libimobiledevice

Messaggio 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+?

Rispondi