{"id":30895443,"url":"https://github.com/mveril/mobiledevicesharp","last_synced_at":"2025-09-08T22:06:12.992Z","repository":{"id":60118534,"uuid":"530267022","full_name":"mveril/MobileDeviceSharp","owner":"mveril","description":"A C# object oriented wrapper around Libimobiledevice","archived":false,"fork":false,"pushed_at":"2024-05-08T15:28:02.000Z","size":8500,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-08T17:06:37.513Z","etag":null,"topics":["api-wrapper","idevice","imobiledevice","iphone","libimobiledevice","object-oriented-programming","wapper"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mveril.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-29T14:55:09.000Z","updated_at":"2024-05-08T15:28:06.000Z","dependencies_parsed_at":"2024-05-08T17:18:40.469Z","dependency_job_id":null,"html_url":"https://github.com/mveril/MobileDeviceSharp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mveril/MobileDeviceSharp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mveril%2FMobileDeviceSharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mveril%2FMobileDeviceSharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mveril%2FMobileDeviceSharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mveril%2FMobileDeviceSharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mveril","download_url":"https://codeload.github.com/mveril/MobileDeviceSharp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mveril%2FMobileDeviceSharp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231550,"owners_count":25245659,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-wrapper","idevice","imobiledevice","iphone","libimobiledevice","object-oriented-programming","wapper"],"created_at":"2025-09-08T22:06:10.260Z","updated_at":"2025-09-08T22:06:12.974Z","avatar_url":"https://github.com/mveril.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MobileDeviceSharp\n## A C# object-oriented wrapper around Libimobiledevice\n[Libimobiledevice](https://libimobiledevice.org/) is a cool project. It is useful to interact programmatically with Apple devices exactly like [iTunes](https://www.apple.com/itunes) do. It's a C Open source library. An Open source .NET bindings library exits on NuGet, and it's called [imobiledevice-net](https://www.nuget.org/packages/imobiledevice-net), but this library is just a binding and remains a 100 % functional programming API. So it does not respect C# language standards.\nThe objective of this project is to provide a fully object-oriented API for C# and .NET developers to interact with Apple device. It uses [Libimobiledevice](https://libimobiledevice.org) under the hood but try to use all the C# languages features to provide an easy-to-use API.\nSomme examples:\n\n- The `LockdownSession.ParAsync` API can be used to pair a device asynchronously.\n- The `PlistDictionary` implement [IDictionary\u003cString,PlistNode\u003e](https://docs.microsoft.com/dotnet/api/system.collections.generic.idictionary-2) interface.\n- The `AFCStream` class allow interacting with Apple device files using the `Apple file conduit` protocol with the standard .NET [Stream](https://docs.microsoft.com/dotnet/api/system.io.stream) API.\n- With all supported framework the overloads of `InstallationProxySession.GetApplications()` return an [IEnumerable\u0026lt;Application\u0026gt;](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1) and on .NET Core 3 or greater `InstallationProxySession.GetApplicationsAsync()` return an [IAsyncEnumerable\u0026lt;Application\u0026gt;](https://learn.microsoft.com/dotnet/api/system.collections.generic.iasyncenumerable-1)\n- …\n\n## Main API and associated libraries\nWe have created some libraries, indeed we wanted to separate the project into different libraries as much as possible (in the future we could try to make other separations if possible). In this part we will describe the content of the already implemented APIs (when it's possible a link with it's main associated native [Libimobiledevice](https://libimobiledevice.org/) library is provided)\n### MobileDeviceSharp library\n#### MobileDeviceSharp\nThis namespace contains the core APIs.\n- `IDevice` (provide .NET API for [libimobiledevice.h](https://docs.libimobiledevice.org/libimobiledevice/latest/libimobiledevice_8h.html))\n- `DeviceWatcher`\n- `LockdownSession` (Provide .NET API for [lockdown.h](https://docs.libimobiledevice.org/libimobiledevice/latest/lockdown_8h.html))\n- …\n\n#### MobileDeviceSharp.Usbmuxd\n- `UsbmuxdService`\n\n#### MobileDeviceSharp.ProperyList\n- `PlistDocument`\n- `PlistDictionary`\n- `PlistArray`\n- …\n#### MobileDeviceSharp.DiagnosticsRelay\n\u003e Provide .NET API for [diagnostics_relay.h](https://docs.libimobiledevice.org/libimobiledevice/latest/diagnostics__relay_8h.html)\n- `DiagnosticRelaySession`\n#### MobileDeviceSharp.NotificationProxy\n\u003e Provide .NET API for [notification_proxy.h](https://docs.libimobiledevice.org/libimobiledevice/latest/notification__proxy_8h.html)\n- `NotificationProxySession`\n### MobileDeviceSharp.AFC library\n#### MobileDeviceSharp.AFC\n\u003e Provide .NET API for [afc.h](https://docs.libimobiledevice.org/libimobiledevice/latest/afc_8h.html)\n- `AFCSession`\n- `AFC2Session`\n- `AFCFile`\n- `AFCDirectory`\n- `AFCStream`\n- …\n### MobileDeviceSharp.InstallationProxy library\n#### MobileDeviceSharp.InstallationProxy\n\u003e Provide .NET API for [installation_proxy.h](https://docs.libimobiledevice.org/libimobiledevice/latest/installation__proxy_8h.html)\n- `InstallationProxySession`\n- `Application`\n- `CapabilityMatcher`\n- `InstallationProxyArchiveOptions`\n- `InstallationProxyInstallOptions`\n- …\n\n### MobileDeviceSharp.HouseArrest library\n#### MobileDeviceSharp.HouseArrest\n\u003e Provide .NET API for [house_arrest.h](https://docs.libimobiledevice.org/libimobiledevice/latest/house_arrest_8h.html)\n- `HouseArrestSession`\n- `AFCHouseArrestSession`\n\n\n### MobileDeviceSharp.SpringBoardServices library\n#### MobileDeviceSharp.SpringBoardServices\n\u003e Provide .NET API for [sbservices.h](https://docs.libimobiledevice.org/libimobiledevice/latest/sbservices_8h.html)\n- `SpringBoardServiceSession`\n\n\nWe also have `MobileDeviceSharp.SourceGenerator` and `MobileDeviceSharp.CompilerServices` to make programming these libraries easier using [Source Generators](https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/source-generators-overview).\n## Code of Conduct\nPlease note that this project is released with a [Contributor Code of Conduct.](CODE_OF_CONDUCT.md) By participating in this project you agree to abide by its terms.\n\n## Contributing\nWe welcome contributions to the MobileDeviceSharp project. Please check out the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information on how to get started.\n\nPlease note that currently, this project does not have any unit tests. So, we ask that contributors take extra care to ensure the stability and reliability of the code when making changes. Thank you!\n\n## Conclusion\nWe are aware that there is still a lot of work to implement all the APIs proposed in the [Libimobiledevice](https://libimobiledevice.org/) library in a modern C# compliant way, but it is a good starting point, and we hope that this project can grow over time to make it easy to develop software that connects with Apple Devices in .NET.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmveril%2Fmobiledevicesharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmveril%2Fmobiledevicesharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmveril%2Fmobiledevicesharp/lists"}