{"id":13451298,"url":"https://github.com/tejado/android-usb-gadget","last_synced_at":"2025-05-16T15:08:24.382Z","repository":{"id":44324397,"uuid":"282946640","full_name":"tejado/android-usb-gadget","owner":"tejado","description":"Convert your Android phone to any USB device you like! USB Gadget Tool allows you to create and activate USB device roles, like a mouse or a keyboard.  🛠🛡📱","archived":false,"fork":false,"pushed_at":"2024-04-19T14:52:46.000Z","size":538,"stargazers_count":992,"open_issues_count":26,"forks_count":73,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-05-14T10:35:43.462Z","etag":null,"topics":["android","authorizer","ccid","configfs","ctap","ctap2","functionfs","gadget","hid","kernel","root","smartcard","usb","usb-devices","usb-gadget","usb-hid"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tejado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2020-07-27T15:58:41.000Z","updated_at":"2025-05-09T11:31:29.000Z","dependencies_parsed_at":"2024-07-31T07:23:03.803Z","dependency_job_id":null,"html_url":"https://github.com/tejado/android-usb-gadget","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tejado%2Fandroid-usb-gadget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tejado%2Fandroid-usb-gadget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tejado%2Fandroid-usb-gadget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tejado%2Fandroid-usb-gadget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tejado","download_url":"https://codeload.github.com/tejado/android-usb-gadget/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254553958,"owners_count":22090417,"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","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":["android","authorizer","ccid","configfs","ctap","ctap2","functionfs","gadget","hid","kernel","root","smartcard","usb","usb-devices","usb-gadget","usb-hid"],"created_at":"2024-07-31T07:00:51.350Z","updated_at":"2025-05-16T15:08:19.365Z","avatar_url":"https://github.com/tejado.png","language":"Kotlin","funding_links":[],"categories":["Kotlin","Java"],"sub_categories":[],"readme":"# USB Gadget Tool\n\n\u003cimg src=\"fastlane/metadata/android/en-US/images/phoneScreenshots/usb-gadget-tool-3.png\" align=\"right\" height=\"500\" alt=\"USB Gadget Tool Screenshot\"\u003e  \n\nConvert your Android phone to any USB device you like!  \nUSB Gadget Tool allows you to create and activate USB device roles, like a mouse or a keyboard. Connected USB hosts (e.g. a normal computer) will then identify your Android device only under that role.\nIt can also be used to deactivate the standard USB Gadget (including mtp, adb, etc.), e.g. for security reasons.  \n\nFollowing USB gadgets are integrated:\n* Keyboard \u0026 Mouse (/dev/hidg0, /dev/hidg1)\n* FIDO CTAP (/dev/hidg0; for WebAuthn)\n* CCID (/dev/ccid_ctrl, /dev/ccid_bulk)\n* UVC camera (/dev/video?)\n\nUSB Gadget Tool requires root permissions and a Kernel with ConfigFS support.\nCurrently the app only enables the USB Gadget. For the usage of these device endpoints (e.g. /dev/hidg0) further apps are required (see Use-Cases).\n\n[\u003cimg src=\"https://fdroid.gitlab.io/artwork/badge/get-it-on.png\"\n     alt=\"Get it on F-Droid\"\n     height=\"80\"\u003e](https://f-droid.org/packages/net.tjado.usbgadget/)\n\n## Use-Cases\n* [Authorizer](https://github.com/tejado/Authorizer)\n* [hid-gadget-test](https://github.com/pelya/android-keyboard-gadget)\n\n## Features\n* Comfortable USB gadget management (listing, adding and activating)\n* Adding \u0026 activating USB Gadgets during boot\n* Adding functions to USB Gadgets\n* Device info (Kernel version and available gadgets in Kernel)\n* Available in F-Droid store\n\n## Roadmap\n* Mount of /config if not available\n* Alert if ConfigFS is not supported\n* Import custom USB Gadget profiles\n* Example USB Gadget usage (USB Gadget Tool currently only manages USB Gadgets, not implementations of these)\n* Optional telemetry to understand better how all the Android vendors compile their kernel (e.g. what USB Gadgets are available)\n* Google Play Store distribution\n\n## How does it work?\nUSB Gadget Tool uses ConfigFS - an userspace API inside the Linux Kernel - for creation of arbitrary USB composite devices.\nhttps://www.kernel.org/doc/Documentation/filesystems/configfs/configfs.txt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftejado%2Fandroid-usb-gadget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftejado%2Fandroid-usb-gadget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftejado%2Fandroid-usb-gadget/lists"}