{"id":13484383,"url":"https://github.com/tiann/eadb","last_synced_at":"2025-04-05T02:10:21.407Z","repository":{"id":37095370,"uuid":"503648464","full_name":"tiann/eadb","owner":"tiann","description":"eBPF Android Debug Bridge","archived":false,"fork":false,"pushed_at":"2024-03-30T17:18:31.000Z","size":93,"stargazers_count":499,"open_issues_count":11,"forks_count":66,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-29T01:11:08.885Z","etag":null,"topics":["android","ebfp","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tiann.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":"2022-06-15T06:47:59.000Z","updated_at":"2025-03-26T06:40:50.000Z","dependencies_parsed_at":"2024-01-13T19:18:07.498Z","dependency_job_id":"510ec4cc-4986-41f1-b826-f8229fe367ad","html_url":"https://github.com/tiann/eadb","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiann%2Feadb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiann%2Feadb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiann%2Feadb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiann%2Feadb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiann","download_url":"https://codeload.github.com/tiann/eadb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276189,"owners_count":20912288,"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","ebfp","rust"],"created_at":"2024-07-31T17:01:23.383Z","updated_at":"2025-04-05T02:10:21.387Z","avatar_url":"https://github.com/tiann.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# eadb - eBPF Android Debug Bridge \n\neadb provides a powerful Linux shell environment where one can run [BCC](https://github.com/iovisor/bcc) / [bpftrace](https://github.com/iovisor/bpftrace) / [bpftool](https://github.com/libbpf/bpftool) on Android device.\n\n## Usage\n\nInstall the eadb first, please refer [Install](https://github.com/tiann/eadb#install)\n\n### Prepare eadb environment on Android device\n\neadb support two mode to connect the device:\n\n- adb\n- ssh\n\nBoth of them need the root privilege.\n\nIf you want to use `adb` mode, `adb root` is required but `adb root` is disabled in production build, if you doesn't have any userdebug / eng devices, you can try [adb_root](https://github.com/tiann/adb_root). But it you don't any experience on Magisk(it may brick your device), it is recommended to use `ssh` mode.\n\nIf you use `ssh` mode, it is recommended to install [Magisk](https://github.com/topjohnwu/Magisk) to Root your device and install [MagiskSSH](https://gitlab.com/d4rcm4rc/MagiskSSH_releases) to enable ssh.\n\n#### Download it from github\n\nWhen you can use adb or ssh to connect to your device, you can prepare the eadb environment:\n\n```sh\neadb --ssh root@ip prepare\n```\n\nThe command would download a rootfs from [Release page](https://github.com/tiann/eadb/releases) and push it to your device, then do some mounts and chroot in to the environment.\n\n#### Use an existing archive\n\nYou can also download or build the rootfs and then prepare it by your rootfs file:\n\n```sh\neadb --ssh root@ip prepare -a path/to/archive\n```\n\n### Enter the environment\n\n```sh\neadb --ssh root@ip shell\n```\n\nYou will enter the eadb environment and get a shell by this command, you can use `apt update` to update the sources and install softwares(such as clang,llvm,bpftrace) by yourself, you can even install `Rust` / `Golang` or `gcc` to do development on this device!\n\n### Build the environment by yourself\n\nOnly Ubuntu / Debian is supported to build the system image running on Android, you can use docker or podman on macOS and WSL on Windows.\n\nInstall `qemu-user-static` and `debootstrap` first:\n\n```sh\nsudo apt update \u0026\u0026 sudo apt install qemu-user-static debootstrap\n```\n\nAnd then build the eadb (root is required):\n\n```sh\nsudo eadb build\n```\n\nAfter the build, you will get a `debianfs-full(mini).tar.gz` in your working directory. you can use this image as your environment:\n\n```sh\neadb --ssh root@ip prepare -a deb.tar.gz\n```\n\n## Install\n\n### Binary\n\nDownload binaries in [Release page](https://github.com/tiann/eadb/releases)\n\n### Build from source\n\n1. Install [Rust toolchain](https://www.rust-lang.org/tools/install)\n2. git clone https://github.com/tiann/eadb\n3. cargo build\n\n### Cargo\n\nIf you have Rust toolchain installed, you can install it with cargo:\n\n```sh\ncargo install eadb\n```\n\n## Credits\n\nAll my credits to [adeb](https://github.com/joelagnel/adeb)! eadb is just a rewritten for adeb.\n\n## Contact\n\ntwsxtd#gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiann%2Feadb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiann%2Feadb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiann%2Feadb/lists"}