AgeCommit message (Collapse)AuthorFilesLines
2022-09-14restore: Remove incorrect invocation of free() in restored_get_valueHEADmasterGravatar Nikias Bassen1-1/+1
The free would cause a use-after-free when the plist is later freed, which eventually ends up in a crash. Thanks @TrungNguyen1909 for catching this.
2022-09-04Fix iOS SDK buildGravatar Kabir Oberai1-1/+2
2022-09-04Support OpenSSL built without OPENSSL_ENGINEGravatar Kabir Oberai2-3/+4
2022-09-04Allow using limd as a submoduleGravatar Kabir Oberai1-1/+1
2022-08-24[github-actions] Add a scheduled build every 1st of the month so we always ↵Gravatar Nikias Bassen1-1/+4
have an artifact
2022-07-03idevicedebugserverproxy: Add support for 'qLaunchGDBServer' command of lldbGravatar Ruipu Ma2-2/+34
2022-07-03idevice: Fix OpenSSL 3.0 internal error on read timeoutGravatar Ruipu Ma1-0/+12
2022-06-09tools: Fix idevicebackup2 option parsing for --password optionGravatar Nikias Bassen1-1/+1
Thanks @EmilienCourt for pointing this out!
2022-05-31Remove lockdown.h include from lockdown.hGravatar Nikias Bassen1-1/+0
Header guards should prevent recursive inclusion but there is no point in including the file itself.
2022-05-23idevicesyslog: Update to reflect color macro name change in ↵Gravatar Nikias Bassen1-12/+12
2022-05-10idevicebackup2: Fix option parsingGravatar Nikias Bassen1-0/+1
2022-05-10idevice: Restore original behavior for idevice_event_unsubscribe()Gravatar Nikias Bassen1-0/+1
Due to an implementation detail from the past, a call to idevice_event_unsubscribe would not cause the callback function to be called with IDEVICE_DEVICE_REMOVE events, even though originally it was planned to be that way. Due to the internal changes for the newer idevice_events_subscribe/unsubscribe API, that behavior changed and it would call the callback. Now to not break current software implementations depending on the original behavior we modify the old API to behave the same as before the change.
2022-05-09instproxy: Use synchronous mode when callbacks are NULL, as documentedGravatar Marc Prud'hommeaux1-6/+6
Synchronous modes for `instproxy_install`, `instproxy_upgrade`, `instproxy_uninstall`, `instproxy_archive`, `instproxy_restore`, and `instproxy_remove_archive` appear to be ignoring the documented behavior that “If NULL is passed, this function will run synchronously”. This commit fixes the advertised behavior.
2022-05-09Add new idevice_events_subscribe/unsubscribe API with contextGravatar Nikias Bassen4-16/+89
The older API idevice_event_subscribe/unsubscribe can only be used by a single instance. With the addition of a context, is is now possible to register multiple callback functions in different threads. For backwards compatibility the old API will still be available for a while before being removed in a future release.
2022-05-05idevicebtlogger: Fix typo in man page and code commentGravatar Nikias Bassen2-2/+3
2022-05-05idevicebtlogger: Some whitespace/coding style fixesGravatar Nikias Bassen1-27/+29
2022-05-05idevicebtlogger: remove dependency on libpcapGravatar Matthias Ringwald2-79/+106
2022-05-05idevicebtlogger: add --format option for 'pcap' and 'packetlogger'Gravatar Matthias Ringwald2-14/+106
2022-05-05idevicebtlogger: update for libimobiledevice-glueGravatar Matthias Ringwald1-1/+1
2022-05-05Updated with idevicebtloggerGravatar Geoffrey Kruse1-0/+1
2022-05-05idevicebtlogger: Add basic man pageGravatar Geoffrey Kruse2-0/+48
2022-05-05idevicebtlogger: Minor cleanupGravatar Geoffrey Kruse4-9/+28
2022-05-05idevicebtlogger: Simplify by using bt_packet_logger_client_start_service()Gravatar Geoffrey Kruse1-33/+2
2022-05-05idevicebtlogger: Switch to using DLT_BLUETOOTH_HCI_H4_WITH_PHDR (201) and ↵Gravatar Geoffrey Kruse1-3/+20
capture direction for better decoding in wireshark.
2022-05-05idevicebtlogger: Remove debug printing codeGravatar Geoffrey Kruse1-8/+0
2022-05-05idevicebtlogger: Cleanup warnings, todos and magic numbersGravatar Geoffrey Kruse4-46/+27
2022-05-05Initial commit of working packet logger (idevicebtlogger)Gravatar Geoffrey Kruse6-1/+801
2022-05-02idevice: Fix sign issue in idevice_get_device_list_extendedGravatar Семён Марьясин1-1/+1
In sync with idevice_from_mux_device, line 384. Without this fix, data size 128 (the common value) is treated as -128, resulting in incorrect allocation. Related to #1248 but doesn't fully fix it.
2022-05-02ideviceinfo: Make sure all error messages go to stderrGravatar Nikias Bassen1-2/+2
Thanks to @Takuro-Ito for pointing this out.
2022-05-02lockdownd: Fix memory leaks in error conditionsGravatar Sami Kortelainen1-0/+3
2022-05-01idevicebackup2: Fix command line option parsing not processing the backup ↵Gravatar Nikias Bassen1-2/+0
2022-04-30[clang-tidy] Do not use else after returnGravatar Rosen Penev14-127/+133
Signed-off-by: Rosen Penev <>
2022-04-30tools: Use getopt for option parsing in all toolsGravatar Nikias Bassen20-1081/+1182
2022-04-24idevicedebug: Fix bad comparison between pointer and integerGravatar Nikias Bassen1-8/+8
This was introduced with commit c461e6d76b27b11284dda66316263696d5266764 where I manually merged some changes and for some reason used NULL instead of 0 as a comparison of str*cmp.
2022-04-22[clang-tidy] Fix bugprone string compareGravatar Rosen Penev9-20/+20
Found with bugprone-suspicious-string-compare Signed-off-by: Rosen Penev <>
2022-04-22[clang-tidy] add parentheses to macrosGravatar Rosen Penev5-8/+8
Found with bugprone-macro-parentheses Signed-off-by: Rosen Penev <>
2022-04-22[clang-tidy] idevicebackup: Fix bad floating point castGravatar Rosen Penev1-3/+2
Found with bugprone-integer-division Signed-off-by: Rosen Penev <>
2022-04-22[clang-tidy] use const pointer parameterGravatar Rosen Penev3-3/+3
Found with readability-non-const-parameter Signed-off-by: Rosen Penev <>
2022-04-22[clang-tidy] idevicebackup2: use uppercase numeric literalsGravatar Rosen Penev1-1/+1
Found with readability-uppercase-literal-suffix Signed-off-by: Rosen Penev <>
2022-04-22Fix a few inconsistent declarationsGravatar Nikias Bassen2-9/+6
2022-04-22idevice: Fix mistreatment of 0-byte sent casesGravatar Li Beinan1-1/+4
Currently if 0 byte gets sent, it is treated as not-enough-data. This is wrong, because with TCP, 0-byte-sent usually means the receiver end is closed. We must set a new case for this and must not normalize the sent-bytes to 0 in general.
2022-04-22idevicebackup2: Allow passing backup password via environment variableGravatar Nikias Bassen2-7/+53
2022-04-12Suppress some doxygen warnings by removing obsolete entries from config fileGravatar Nikias Bassen1-52/+2
2022-04-12Add property_list_client_get_service_client() and service_get_connection() ↵Gravatar Nikias Bassen4-4/+40
functions This allows for custom service implementations to easier switch to non-plist communication after the service has been started.
2022-04-12Documentation fixesGravatar Nikias Bassen26-86/+177
2022-04-04Updated README with pkg-config requirementGravatar Nikias Bassen1-1/+2
2022-04-02idevicedebug: Add 'kill' command to kill a (debuggable) app by bundle IDGravatar Nikias Bassen1-2/+25
2022-04-02idevicedebug: Improve code readability and fix kill on stopGravatar Nikias Bassen1-190/+200
2022-04-01include: Update endianness.h with changes from limd-glueGravatar Nikias Bassen1-2/+2
The changes don't affect libimobiledevice itself but I don't want to have different versions of the same file across multiple repositories :)
2022-03-29idevice: Fix debug message showing function name twiceGravatar Nikias Bassen1-1/+1