A cross-platform protocol library to communicate with iOS devices

Overview

libimobiledevice

A library to communicate with services on iOS devices using native protocols.

Features

libimobiledevice is a cross-platform software library that talks the protocols to interact with iOS devices.

Unlike other projects, it does not depend on using any existing proprietary libraries and does not require jailbreaking.

Some key features are:

  • Interface: Implements many high-level interfaces for device services
  • Implementation: Object oriented architecture and service abstraction layer
  • Cross-Platform: Tested on Linux, macOS, Windows and Android platforms
  • Utilities: Provides various command-line utilities for device services
  • SSL: Allows choosing between OpenSSL or GnuTLS to handle SSL communication
  • Network: Supports network connections with "WiFi sync" enabled devices
  • Python: Provides Cython based bindings for Python

The implemented interfaces of many device service protocols allow applications to:

  • Access filesystem of a device
  • Access documents of file sharing apps
  • Retrieve information about a device and modify various settings
  • Backup and restore the device in a native way compatible with iTunes
  • Manage app icons arrangement on the device
  • Install, remove, list and basically manage apps
  • Activate a device using official servers
  • Manage contacts, calendars, notes and bookmarks
  • Retrieve and remove crashreports
  • Retrieve various diagnostics information
  • Establish a debug connection for app debugging
  • Mount filesystem images
  • Forward device notifications
  • Manage device provisioning
  • Take screenshots from the device screen (requires mounted developer image)
  • Simulate changed geolocation of the device (requires mounted developer image)
  • Relay the syslog of the device
  • Expose a connection for WebKit remote debugging

... and much more.

The library is in development since August 2007 with the goal to bring support for these devices to the Linux Desktop.

Installation / Getting started

Debian / Ubuntu Linux

First install all required dependencies and build tools:

sudo apt-get install \
	build-essential \
	checkinstall \
	git \
	autoconf \
	automake \
	libtool-bin \
	libplist-dev \
	libusbmuxd-dev \
	libssl-dev \
	usbmuxd

If you want to optionally build the documentation or Python bindings use:

sudo apt-get install \
	doxygen \
	cython

Then clone the actual project repository:

git clone https://github.com/libimobiledevice/libimobiledevice.git
cd libimobiledevice

Now you can build and install it:

./autogen.sh
make
sudo make install

If you require a custom prefix or other option being passed to ./configure you can pass them directly to ./autogen.sh like this:

./autogen.sh --prefix=/opt/local --enable-debug
make
sudo make install

By default, OpenSSL will be used. If you prefer GnuTLS, configure with --disable-openssl like this:

./autogen.sh --disable-openssl

Usage

Documentation about using the library in your application is not available yet. The "hacker way" for now is to look at the implementation of the included utilities.

Utilities

The library bundles the following command-line utilities in the tools directory:

Utility Description
idevice_id List attached devices or print device name of given device
idevicebackup Create or restore backup for devices (legacy)
idevicebackup2 Create or restore backups for devices running iOS 4 or later
idevicecrashreport Retrieve crash reports from a device
idevicedate Display the current date or set it on a device
idevicedebug Interact with the debugserver service of a device
idevicedebugserverproxy Proxy a debugserver connection from a device for remote debugging
idevicediagnostics Interact with the diagnostics interface of a device
ideviceenterrecovery Make a device enter recovery mode
ideviceimagemounter Mount disk images on the device
ideviceinfo Show information about a connected device
idevicename Display or set the device name
idevicenotificationproxy Post or observe notifications on a device
idevicepair Manage host pairings with devices and usbmuxd
ideviceprovision Manage provisioning profiles on a device
idevicescreenshot Gets a screenshot from the connected device
idevicesetlocation Simulate location on device
idevicesyslog Relay syslog of a connected device

Please consult the usage information or manual pages of each utility for a documentation of available command line options and usage examples like this:

ideviceinfo --help
man ideviceinfo

Contributing

We welcome contributions from anyone and are grateful for every pull request!

If you'd like to contribute, please fork the master branch, change, commit and send a pull request for review. Once approved it can be merged into the main code base.

If you plan to contribute larger changes or a major refactoring, please create a ticket first to discuss the idea upfront to ensure less effort for everyone.

Please make sure your contribution adheres to:

  • Try to follow the code style of the project
  • Commit messages should describe the change well without being to short
  • Try to split larger changes into individual commits of a common domain
  • Use your real name and a valid email address for your commits

We are still working on the guidelines so bear with us!

Links

License

This library and utilities are licensed under the GNU Lesser General Public License v2.1, also included in the repository in the COPYING file.

Credits

Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPadOS, tvOS, watchOS, and macOS are trademarks of Apple Inc.

This project is an independent software and has not been authorized, sponsored, or otherwise approved by Apple Inc.

README Updated on: 2020-06-12

Comments
  • IOS14 USB tethering not working

    IOS14 USB tethering not working

    I used Tethering on Openwrt and it worked fine with IOS13. Recently, my device has been upgraded to IOS14, and it doesn't work properly. I can successfully obtain the IP address 172.20.10.2 and ping 172.20.10.1, but I can't access the Internet, nor can I ping other IP addresses. I checked openwrt's firewall and routing settings, and I can make sure they work. At the same time, I was testing on Ubuntu 16.04.12 and had the same problem. I also tried to compile the latest libimobiledevice and usbbmuxd source code, did not solve the problem. I wrote a post on the openwrt forum, and others had the same problem https://forum.openwrt.org/t/has-the-ios14-tethering-issue-been-resolved/74949

    opened by luochongjun 159
  • Backup on iOS 13 hangs at Sending 'XXXUDIDHEREXXX/Manifest.plist'

    Backup on iOS 13 hangs at Sending 'XXXUDIDHEREXXX/Manifest.plist'

    Is it only me or is there a problem with idevicebackup2 on iOS 13?

    I could always backup my iPhone 8 up to iOS 12.4.1 without any problems. After upgrading to iOS 13.1 idevicebackup2 stays at " Sending 'XXXUDIDHEREXXX/Manifest.plist' " forever. I think it can't be my libimobildevice installation because I CAN backup my iPad on iOS 12.4.1 unproblematically.

    Hardware: Thinkpad running Debian 10 with libimobiledevice-utils Package (1.2.1~git20181030.92c5462-1) iPhone 8 (MQ6G2ZD/A)

    opened by libreminded 33
  • Release a new version

    Release a new version

    The latest release of libimobiledevice is 1.2.0, released almost 2 years ago now. This release no longer works with recent iTunes releases. Package managers tend to only release updates for a package when upstream does a release, especially Homebrew which heavily distinguishes between "released" (what you get by default) and "unreleased" (what you get by using --HEAD).

    Is it possible that we could see a new release in the near future, and possibly, regular-ish releases following that?

    opened by kirb 30
  • ERROR: Could not start service com.apple.mobilebackup2

    ERROR: Could not start service com.apple.mobilebackup2

    Running the libimobiledevice stack on Santoku-Linux in VMware. Connected to an iPad2 running iOS 8.1.3.

    Everything works well up until I want to run the idevicebackup2 process.

    I'm paired and I can even pull system info with the "ideviceinfo -s" command.

    I have given all my directories full access, yet still no go.

    Here's the return I get from every attempt:

    $ idevicebackup backup -d ~/Documents/iPadBackups Backup directory is "/home/Santoku/Documents/iPhoneBackups" ERROR: Could not start service com.apple.mobilebackup2

    Been working (and googling) this issue for days and can't find a solution. Any help is more than welcome and appreciated. Thanks.

    question Linux 
    opened by briancdillard 30
  •  Library not loaded: /usr/local/lib/libimobiledevice-1.0.6.dylib

    Library not loaded: /usr/local/lib/libimobiledevice-1.0.6.dylib

    I've been following the macOS instructions and I don't know if I'm doing it wrong or something. https://jkcoxson.github.io/DiOS-Instructions/ Screen Shot 2022-01-14 at 11 52 40 AM

    I also tried this method and nothing happens either, another error, can someone help me out? Running macOS 12.1 Screen Shot 2022-01-14 at 11 56 19 AM

    I'm basically stuck on on step 4-5

    opened by kuuu1234 29
  • ideviceinfo com.apple.mobile.battery over WiFi - sometimes works?

    ideviceinfo com.apple.mobile.battery over WiFi - sometimes works?

    It seems like ideviceinfo -u DID -q com.apple.mobile.battery over WiFi (with iTunes WiFi Sync turned on without usb connection - sometimes works).

    Is this considered normal?

    opened by JCsplash 28
  • ipad air stuck in trust/don't trust loop?

    ipad air stuck in trust/don't trust loop?

    Using an iPad Air with iOS 7.0.3: Gnome keeps telling me that it is failing to mount the iPad, while the iPad keeps asking me if I can trust/don't trust the computer. When trying with ifuse, the iPad asks if I can trust/don't trust the computer, and the computer says "Please disable the password protection ...." even when password protection is OFF. The pad is jailbreaked. libimobiledevice 1.1.5 ifuse 1.1.2 usbmuxd 1.0.8

    bug 
    opened by themaddoctor 28
  • libimobiledevice for Windows

    libimobiledevice for Windows

    Hi, It will be a great help if someone can give me a step by step details about building libimobiledevice for windows 7. This issue is very much similar to Issue#11.But no one is replying on that thread.

    Please help me out.:(

    question 
    opened by sack112007 28
  • iOS 7 Compatibility / Trust Dialog handling

    iOS 7 Compatibility / Trust Dialog handling

    Hi, i just wanted to drop you note, since for other project i'm working on, i finally managed to finish correct handling of device trusthip.

    first, there is little difference in pairing plist you need to add 2 fields at end of pair record dictionary SystemBUID - plString - it's 26 numbers (at least, that is sent by itunes), or might be 10-16 (eg 27. characters, still 26 numbers split by dash) - this value must be persistent (like HostID) Pair request (as well as validate request), need to have ProtocolVersion - plString - value is 2

    difference is also in pairing itself first you call VerifyPairing - if it's first time, you will receive invalid HostID error and then call Pair method if you receive password protected error, check for ProductVersion, if it's 7 (eg. ios 7), you send Pair request - if it fails, with password protected error - retry (in my app, i'm doing 5 retries with 5 sec pause between - device disconnects lockdown service after 30 sec automaticaly)

    after users confirms trust on device, device automatically resets USB after user confirms trust.

    next time verifypairing should go without issues.

    Please note, that if you disconnect lockdown link after verify, prior succesfull pairing, you need to start whole process again. If you start with Pair request, after initializiing lockdown, device will show "trust this connection" dialog. that's why you need to start with Verify operation.

    following values are for sure available regardless trustship status DeviceUniqueID ProductType ProductClass ProductVersion DeviceName - James' iphone

    changing order of operation (verify then pair) works with ios 4 devices also (iphone 3g was available for my test), SystemBUID and ProtocolVersion is either ignore, or understood by ios 4 devices, so there is no need to make extra chane in pair record for devices running ios4, i had no ios 3 device at hand, so can't say, if they work.

    enhancement 
    opened by mexmer 27
  • Disable SSLv3 - lockdown error: -5

    Disable SSLv3 - lockdown error: -5

    I have an iPad Mini (1st gen) on iOS 6.1.3, after upgrading Arch Linux, which upgraded packages:

    libimobiledevice (from 1.2.0-1 to 1.2.0-3) and openssl (from 1.0.2.f-1 to 1.0.2.g-3) 
    (the Disable SSLv3 patch)
    

    My iPad Mini stopped connecting to linux, leaving messages:

    usbmuxd: preflight_worker_handle_device_add: The stored pair record for device a6de54 is invalid. Removing. usbmuxd: preflight_worker_handle_device_add: ERROR StartSession failed on device a6de54, lockdown error -5

    I deleted /var/lib/lockdown and I reinstalled libimobiledevice and usbmuxd, same issue.

    I downgraded libimobiledevice and openssl and everything worked normally.

    opened by Qwertylex 26
  • iDevice not detected on Ubuntu13.04

    iDevice not detected on Ubuntu13.04

    I installed the latest git upload from cgit of all packages libimobiledevice1.1.6 libusbmuxd1.0.9 usbmuxd1.0.8 libplist1.11 But still when i connect the device the device is showing trust dialog once, and after accepting the trust dialog goes away and the device is charging. But when i fire up the commands on the terminal its showing No device found, is it plugged in?

    I tried the same on 12.04 and its working perfectly well with all commands properly. I am sure i have not missed any package. Some dependency needed for 13.04 ?

    I have tried upgrading and updating and rebooting but could not find a way to make it work. What may have gone wrong ?

    question 
    opened by uncommonthinker 24
  • idevicebackup2 interprets directory as command

    idevicebackup2 interprets directory as command

    The following command is misinterpreted:

    $idevicebackup2 backup backup

    It generates the following error message:

    No target backup directory specified.

    Following the help screen:

    Usage: idevicebackup2 [OPTIONS] CMD [CMDOPTIONS] DIRECTORY

    the command backup is supposed to be followed by the directory if there are no command options. If the directory is called "backup" that seems to be misinterpreted as a second instance of the command.

    Instead the second backup should be interpreted as the directory which the data is supposed to be stored in.

    Suppose there is the following directory structure:

    /home/user/IPhone/
    /home/user/IPhone/backup/
    

    Suppose the working directory is /home/user/IPhone/ and the backup is supposed to be stored in the subdirectory.

    opened by RichardZimmerEschborn 0
  • idevicebackup2 - IPhone not sending files??

    idevicebackup2 - IPhone not sending files??

    Environment

    • Debian Linux 11.5 stable up to date -- providing idevicebackup2 Version 1.3.0
    • Iphone 12 with IOS 16.1.1
    • Both conntected via USB cable.

    Command executed

    $ idevicebackup2 backup iphone Backup directory is "iphone" Started "com.apple.mobilebackup2" service on port 50402. Negotiated Protocol Version 2.1 Reading Info.plist from backup. Starting backup... Backup will be unencrypted. Requesting backup from device... Incremental backup mode. ERROR: Could not receive from mobilebackup2 (-4) Received 0 files from device. Backup Aborted.

    Observed

    After long time waiting and nothing happened I and my computer fell asleep.

    First try created directory named like the UDID and in there a 1.4 MB file named Info.plist.

    The file contains detailed information about the IPhone. Intersting this file states that it is an "iPhone13,2".

    After a few trys at the end of this file it says:

            <key>iTunes Settings</key>
            <dict/>
            <key>iTunes Version</key>
            <string>12.10.10</string>
    
    

    To me it looks like the communication with the phone is working but the phone is not sending data.

    Expected result

    Backup of everything on IPhone

    Results

    Only the mentioned directory and file Info.plist. No other data.

    opened by RichardZimmerEschborn 3
  • add passcode input notification for iOS 16.1 in idevicebackup2

    add passcode input notification for iOS 16.1 in idevicebackup2

    in iOS version 16.1 phone requires you to enter passcode to start backup, it would be fine, if idevicebackup2 notifies user, that he should enter passcode on device (matter of convenience)

    communication is same, only differenct is, that after sending backup request, device shows passcode input screen (like when changing device password)

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"	"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <array>
    <string>DLMessageProcessMessage</string>
    <dict>
    <key>MessageName</key>
    <string>Backup</string>
    <key>Options</key>
    <dict>
    <key>ForceFullBackup</key>
    <true/>
    </dict>
    <key>TargetIdentifier</key>
    <string>XXXXXXXXXXX</string>
    </dict>
    </array>
    </plist>
    

    if you don't input passcode, after roughly 3 minutes, phone responds with

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"	"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <array>
    <string>DLMessageProcessMessage</string>
    <dict>
    <key>ErrorCode</key>
    <integer>208</integer>
    <key>ErrorDescription</key>
    <string>Device locked (MBErrorDomain/208)</string>
    <key>MessageName</key>
    <string>Response</string>
    </dict>
    </array>
    </plist>
    

    otherwise it resumes regular backup communication

    opened by mexmer 0
  • Add libimobiledevice-glue CFLAGS to idevicerepair

    Add libimobiledevice-glue CFLAGS to idevicerepair

    Running ./autogen.sh --prefix /opt/local --enable-debug failes with:

    idevicepair.c:44:10: fatal error: 'libimobiledevice-glue/utils.h' file not found
    #include <libimobiledevice-glue/utils.h>
    

    This PR adds $(limd_glue_CFLAGS) to idevicepair_CFLAGS

    opened by Miksu82 0
Releases(1.3.0)
  • 1.3.0(Jun 15, 2020)

    Homepage

    1.3.0 (2020-06-15)

    Development release.

    Breaking

    • Rename --enable-debug-code configure option to --enable-debug
    • Rename library and all related files by adding an API version resulting in libimobiledevice-1.0

    Features

    • Add more lockdown error codes
    • Add new lockdownd_pair_with_options() function
    • Make sure sockets only listen locally due to security reasons
    • Plug various memory leaks
    • Optimize lockdown pair record handling
    • Store application information in Info.plist using idevicebackup2
    • Make idevicebackup2 reboot after restore the default to allow the device to migrate data correctly and thus improve the restored device data state
    • Improve console frontend information output in idevicebackup2
    • Extend ideviceprovision tool to allow retrieving and removing all provisioning profiles
    • Propagate lower level errors to callers instead of returning IDEVICE_E_UNKNOWN_ERROR
    • API: Add IDEVICE_DEVICE_PAIRED event type
    • Detect screenshot format to support png, tiff and dat formats using idevicescreenshot tool
    • API: Add mobileactivation service implementation
    • Wait for passcode entry if required using idevicesyslog
    • Add HDMI option to diagnostics command for idevicediagnostics
    • Remove 40-digit character limit for UDID in tools to support newer devices
    • Migrate latest improved common code from libusbmuxd
    • Convert README file to markdown format
    • API: Add preboard service implementation
    • Output hint to user to enter passcode when changing password using idevicebackup2
    • API: Add WiFi device support via new idevice_new_with_options() function
    • API: Add idevice_get_device_list_extended() to also list network devices
    • API: Add lockdown_strerror() helper to get error representation as string
    • Add network device support to idevicesyslog and ideviceinfo tools
    • Make debug output consistently output to stderr
    • Add new idevicesetlocation tool (requires mounted developer image)
    • Add option to exit if device disconnects in idevicesyslog
    • API: Add syslog_relay_start_capture_raw() for raw syslog capture
    • Add color output and process filter support to idevicesyslog
    • API: Add companion_proxy service implementation
    • Bump dependency to libusbmuxd 2.0.2
    • Bump dependency to libplist 2.2.0
    • Improve error handling and reporting in library and tools
    • Add --network and --version options to all tools
    • Cython: Rewrite version detection logic in configure.ac
    • Improve README.md with project description, installation, contributing and usage sections
    • Bump soname version
    • Update man pages

    Bug Fixes

    • Fix Python 3 support
    • Cython: Fix and improve debugserver and diagnostics service bindings
    • Fix GnuTLS support with iOS 10
    • Fix SSL version negotiation for newer versions of OpenSSL
    • Return proper error code when a lockdown pair record is missing
    • Fix building with MingGW
    • Fix application backup handling to allow the device to restore applications that were installed using idevicebackup2
    • Fix parsing large provisioning profile using ideviceprovision
    • Fix receiving large property lists in property list service
    • Fix IORegistry command for iOS 11+ devices in idevicediagnostics
    • Fix broken validate command in idevicepair with iOS 11+
    • Fix OpenSSL version checks for configure target when using LibreSSL
    • Fix idevicecrashreport tool to work with iOS 13+
    • Fix various errors in SSL communication logic
    • Fix various memory leaks in library and tools
    • Fix socket_connect_addr() not connecting to network devices using IPv6 in some cases.
    • Allow OpenSSL >= 1.1.0 to use older/disallowed TLS versions fixing issues where pairing records were getting removed repeatingly
    • Improve IPv6 "scope id" detection to fix connecting to network devices with link-local adresses
    • Fix various inconsistent declarations in public headers
    • Fixed memory leaks
    Source code(tar.gz)
    Source code(zip)
    libimobiledevice-1.3.0.tar.bz2(716.74 KB)
  • 1.2.0(Feb 2, 2015)

    • Require autoconf 2.64 or later
    • Remove dev tools, will return either as proper tools or website examples
    • Refactor installation proxy service implementation and normalize code
    • API: Added instproxy_lookup() to efficiently lookup app information
    • API: Added instproxy_check_capabilities_match() to check device capabilities
    • API: Added various instproxy command and status plist getters
    • API: Make debugserver_client_set_ack_mode() public
    • Fix handling of clients reconnecting in idevicedebugserverproxy which
    • previously didn't work properly
    • Flush stdout for every line in idevicesyslog
    • Fix shutdown of idevicedebugserverproxy tool which could hang
    • Notify user when erroneously using idevicebackup with iOS 4 or later
    • Enable build of idevicecrashreport on WIN32
    • Fix thread handle leaks on WIN32 adding thread_new and thread_free
    • cython: Add receive/receive_timeout methods for iDeviceConnection to
    • receive raw data from a connection
    • cython: Add new FILE_RELAY_E_PERMISSION_DENIED(-6) error
    • API: Refactor lockdown service internal error checking and add a bunch of
    • new native errors
    • Convert int16_t macro error types into enum within common module, too
    • Add new "idevicenotificationproxy" tool to post or observe notifications
    • Fix overlong blocking in np_client_free()
    • Improve maintainability and Requires of pkg-config file
    • API: Add new LOCKDOWN_E_SERVICE_LIMIT error to detect service limit states
    • API: Remove const argv requirement for debugserver_command_new
    • cython: Add get_path_for_bundle_identifier() method to
    • InstallationProxyClient
    • cython: Add DebugServerClient class to communicate with debugserver
    • Comply to strict function prototypes by using (void) instead of just ()
    • Fix notification proxy shutdown process which was incorrectly implemented
    • Fix linking problems on OS X
    • Fix missing debug output which broke with the last release
    • Unify and improve various debug messages
    • Fix re-pairing if pairing with existing pair record failed initially
    • Skip printing long plist (16kb+) files to prevent excessive debug output
    • Move a few common helpers from backup tools to common utility helper code
    • Remove incorrect flags from afc_file_open() documentation
    • Fix various memory leaks
    Source code(tar.gz)
    Source code(zip)
Owner
libimobiledevice
A cross-platform protocol library to access iOS devices
libimobiledevice
LibOS is a modern C++17 library that makes OS-specific features cross-platform.

LibOS is a modern C++17 library that makes OS-specific features cross-platform. Ever tried to get Windows version after Windows 8? Or to send ke

Gavrilikhin Daniil 27 Sep 13, 2022
The lightweight and modern Map SDK for Android and iOS

Open Mobile Maps The lightweight and modern Map SDK for Android (6.0+) and iOS (10+) openmobilemaps.io Getting started Readme Android Readme iOS Featu

Open Mobile Maps 94 Nov 17, 2022
A WIP "Vulnerable by Design" kext for iOS/macOS to play & learn *OS kernel exploitation

Vulnerable Kext A WIP (work-in progress) "Vulnerable by Design" kext for iOS/macOS to play/learn with *OS kernel exploitation Usage Documentation can

Chaithu 220 Oct 26, 2022
iOS 10.x 32 and 64 bit jailbreak with spicy autoexecution

ap0110 ap0110 is an autoexecuting jailbreak for iOS 10.x, on 32 and 64-bit. Developed by the Athenus Dev Team and w212. <3 Credits tihmstar - h

Athenus Dev Team 22 Aug 24, 2022
Random stuff about lower level iOS

Lower Level iOS Random stuff about lower level iOS Topics Macho Parser - study note of Mach-O format Dynamic Linking Exported Symbol - details of how

Qing Yang 109 Dec 1, 2022
Open Source iOS 15 Jailbreak Project

Fugu Fugu is the first open source jailbreak tool based on the checkm8 exploit. UPDATE: Fugu will now install Sileo, SSH and Substitute automatically!

epeth0mus 261 Nov 26, 2022
A protocol buffers library for C

PBC PBC is a google protocol buffers library for C without code generation. Quick Example package tutorial; message Person { required string name =

云风 1.6k Nov 20, 2022
A cross-platform OpenXR capabilities explorer and runtime switcher with a CLI and GUI.

OpenXR Explorer OpenXR Explorer is a handy debug tool for OpenXR developers. It allows for easy switching between OpenXR runtimes, shows lists of the

Nick Klingensmith 150 Nov 24, 2022
UClamp backports and custom tunings for different kernel versions/devices

Linux kernel ============ This file was moved to Documentation/admin-guide/README.rst Please notice that there are several guides for kernel develop

null 25 Jan 14, 2022
sud - a su daemon for corellium devices

sud(aemon) What is this? sud is a simplistic su daemon for Corellium, and maybe other, Android devices. It is older Superuser code, slightly refactore

Corellium 15 Nov 17, 2022
A ring buffer designed to work with embedded devices, does not use heap allocations.

Embedded Ring Buffer This is a header only ring buffer that is designed to work on embedded devices, it is able to handle non-blocking ISR spooling

Richard Bamford 48 Aug 9, 2022
A protocol framework for ZeroMQ

zproto - a protocol framework for ZeroMQ Contents Man Page The Codec Generator The Server Generator Quick Background The State Machine Model The zprot

The ZeroMQ project 224 Sep 18, 2022
Platform independent Near Field Communication (NFC) library

*- * Free/Libre Near Field Communication (NFC) library * * Libnfc historical contributors: * Copyright (C) 2009 Roel Verdult * Copyright (C) 2009

null 1.3k Nov 29, 2022
WAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers.

WAFer WAFer is a C language-based ultra-light scalable server-side web applications framework. Think node.js for C programmers. Because it's written i

Riolet Corporation 692 Nov 19, 2022
PRK is a keyboard firmware platform in PicoRuby

PRK is a keyboard firmware written and configured in PicoRuby which is an alternative mruby implementation targeting on one-chip microcontroller.

PicoRuby 380 Nov 22, 2022
Isocline is a pure C library that can be used as an alternative to the GNU readline library

Isocline: a portable readline alternative. Isocline is a pure C library that can be used as an alternative to the GNU readline library (latest release

Daan 135 Nov 25, 2022
A linux library to get the file path of the currently running shared library. Emulates use of Win32 GetModuleHandleEx/GetModuleFilename.

whereami A linux library to get the file path of the currently running shared library. Emulates use of Win32 GetModuleHandleEx/GetModuleFilename. usag

Blackle Morisanchetto 3 Sep 24, 2022
Command-line arguments parsing library.

argparse argparse - A command line arguments parsing library in C (compatible with C++). Description This module is inspired by parse-options.c (git)

Yecheng Fu 527 Nov 27, 2022
Library that solves the exact cover problem using Dancing Links, also known as DLX.

The DLX Library The DLX library The DLX library solves instances of the exact cover problem, using Dancing Links (Knuth’s Algorithm X). Also included

Ben Lynn 43 Nov 7, 2022