posixninja / spirit-linux

Linux port of the "Spirit" jailbreak using libimobiledevice
139 stars 59 forks source link

compilation error #16

Open markusg17 opened 6 years ago

markusg17 commented 6 years ago

gcc -o spirit spirit.o afc.o -limobiledevice -lplist -lcrypto spirit.o: In function start_restore': spirit.c:(.text+0x9c7): undefined reference toidevice_get_uuid' collect2: error: ld returned 1 exit status Makefile:6: recipe for target 'spirit' failed make: *** [spirit] Error 1

ataraxia-bit commented 4 years ago

Hello. I have this issue too when trying to compile spirit. Im a bit lost, thought should work fine, since have l libimobiledevice-dev libplist-dev libusbmuxd-dev libssl-dev installed.. Running ubuntustudio 18.04.5 LTS, The whole compilation output:

"gcc -std=gnu99 -c -o spirit.o spirit.c 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] kdownd_error_t lockdown_err = lockdownd_start_service(lockdownd, "com.apple.afc", &port); ^ In file included from /usr/include/libimobiledevice/afc.h:32:0, from spirit.c:30: /usr/include/libimobiledevice/lockdown.h:212:19: note: expected ‘struct lockdownd_service_descriptor *’ but argument is of type ‘uint16_t {aka short unsigned int }’ 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] afc_error_t afc_err = afc_client_new(device, port, &afc); ^~~~ In file included from spirit.c:30:0: /usr/include/libimobiledevice/afc.h:109:13: note: expected ‘lockdownd_service_descriptor_t {aka struct lockdownd_service_descriptor }’ but argument is of type ‘uint16_t {aka short unsigned int}’ afc_error_t afc_client_new(idevice_t device, lockdownd_service_descriptor_t service, afc_client_t client); ^~~~~~ spirit.c: In function ‘start_restore’: spirit.c:225:2: warning: implicit declaration of function ‘idevice_get_uuid’; did you mean ‘idevice_get_udid’? [-Wimplicit-function-declaration] idevice_get_uuid(device, &uuid); ^~~~ idevice_get_udid spirit.c:228:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(m1dict, "Version", plist_new_string("6.2")); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:229:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(m1dict, "DeviceId", plist_new_string(uuid)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:230:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(m1dict, "Applications", plist_new_dict()); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:231:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(m1dict, "Files", files); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:238:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(manifest, "Version", plist_new_string("2.0")); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:239:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(manifest, "AuthSignature", plist_new_data(sha1_of_data(m1data, m1size), 20)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:240:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(manifest, "IsEncrypted", plist_new_uint(0)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:241:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(manifest, "Data", plist_new_data(m1data, m1size)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:244:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(mdict, "BackupMessageTypeKey", plist_new_string("kBackupMessageRestoreRequest")); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:245:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(mdict, "BackupNotifySpringBoard", plist_new_bool(1)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:246:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(mdict, "BackupProtocolVersion", plist_new_string("3.0")); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:247:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(mdict, "BackupPreserveCameraRoll", plist_new_bool(1)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:248:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(mdict, "BackupPreserveSettings", plist_new_bool(1)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:249:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(mdict, "BackupManifestKey", manifest); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c: In function ‘add_file’: spirit.c:263:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(dict, "Domain", plist_new_string(domain)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:264:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(dict, "Path", plist_new_string(path)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:265:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(dict, "Greylist", plist_new_bool(0)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:266:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(dict, "Version", plist_new_string("3.0")); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:267:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations] plist_dict_insert_item(dict, "Data", plist_new_data(crap, crap_size)); ^~~~~~ In file included from spirit.c:29:0: /usr/include/plist/plist.h:358:10: note: declared here void plist_dict_insert_item(plist_t node, const char key, plist_t item); ^~~~~~ spirit.c:268:30: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=] printf("DEBUG: Data size %llu:\n%s\n", crap_size, data_to_hex(crap, crap_size));


                           %lu
spirit.c:280:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(manifest, "DataHash", plist_new_data(datahash, 20));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:281:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(manifest, "Domain", plist_new_string(domain));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:282:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(manifest, "FileLength", plist_new_uint(crap_size));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:283:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(manifest, "Group ID", plist_new_uint(gid));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:284:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(manifest, "User ID", plist_new_uint(uid));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:285:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(manifest, "Mode", plist_new_uint(mode));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:286:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(manifest, "ModificationTime", plist_new_date(2020964986UL, 0));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:287:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(files, manifestkey, manifest);
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:292:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "DLFileDest", plist_new_string(templateo));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:293:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "Path", plist_new_string(path));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:294:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "Version", plist_new_string("3.0"));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:295:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "Crap", plist_new_data(crap, crap_size));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c: In function ‘send_file’:
spirit.c:310:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "DLFileAttributesKey", plist_new_dict());
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:311:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "DLFileSource", plist_new_string(dest));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:312:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "DLFileIsEncrypted", plist_new_uint(0));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:313:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "DLFileOffsetKey", plist_new_uint(0));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
spirit.c:314:2: warning: ‘plist_dict_insert_item’ is deprecated: use plist_dict_set_item instead [-Wdeprecated-declarations]
  plist_dict_insert_item(info, "DLFileStatusKey", plist_new_uint(2));
  ^~~~~~~~~~~~~~~~~~~~~~
In file included from spirit.c:29:0:
/usr/include/plist/plist.h:358:10: note: declared here
     void plist_dict_insert_item(plist_t node, const char* key, plist_t item);
          ^~~~~~~~~~~~~~~~~~~~~~
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]
 ror_t lockdown_err = lockdownd_start_service(lockdownd, "com.apple.mobilebackup", &port);
                                                                                   ^
In file included from /usr/include/libimobiledevice/afc.h:32:0,
                 from spirit.c:30:
/usr/include/libimobiledevice/lockdown.h:212:19: note: expected ‘struct lockdownd_service_descriptor **’ but argument is of type ‘uint16_t * {aka short unsigned int *}’
 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]
  mobilebackup_error_t backup_err = mobilebackup_client_new(device, port, &backup);
                                                                    ^~~~
In file included from spirit.c:32:0:
/usr/include/libimobiledevice/mobilebackup.h:68:22: note: expected ‘lockdownd_service_descriptor_t {aka struct lockdownd_service_descriptor *}’ but argument is of type ‘uint16_t {aka short unsigned int}’
 mobilebackup_error_t mobilebackup_client_new(idevice_t device, lockdownd_service_descriptor_t service, mobilebackup_client_t * client);
                      ^~~~~~~~~~~~~~~~~~~~~~~
gcc -std=gnu99 -c -o afc.o afc.c
gcc -o spirit spirit.o afc.o -limobiledevice -lplist -lcrypto
spirit.o: En la función `start_restore':
spirit.c:(.text+0x9c7): referencia a `idevice_get_uuid' sin definir
collect2: error: ld returned 1 exit status
Makefile:6: fallo en las instrucciones para el objetivo 'spirit'
make: *** [spirit] Error 1
"
Thanks in advance
A.