# fb-adb **Repository Path**: mirrors/fb-adb ## Basic Information - **Project Name**: fb-adb - **Description**: fb-adb 是一个用于 Android 设备上的界面工具,用于与 Android 系统的交互 - **Primary Language**: C/C++ - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/fb-adb - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-08-10 - **Last Updated**: 2025-12-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [fb-adb](https://github.com/facebook/fb-adb) is a tool for interacting with Android systems. It does much of what adb does, but with better remote shell support and, hopefully, fewer bugs. Differences between adb and fb-adb are that fb-adb: * is binary clean (no LF -> CRLF mangling) * transmits and updates window size * distinguishes standard output and standard error * properly muxes streams with independent flow control * allows for ssh-like pty allocation control * propagates program exit status instead of always exiting with status 0 * properly escapes program arguments * kills remote program * provides a generic facility to elevate to root without re-escaping DOWNLOADS --------- You can use [Homebrew](http://brew.sh/) to install fb-adb binaries: ```` brew install fb-adb ```` BUILDING -------- An out-of-tree build is required. You'll need a copy of the [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html): tell configure about it by setting the `ANDROID_NDK` environment variable to your NDK path or by using the `--with-android-ndk` argument to the configure script. For example: ```` ./autogen.sh export ANDROID_NDK=/path/to/android-ndk mkdir build cd build ../configure make ```` If building on Mac, you need `gmake` to build. You can use [Homebrew](http://brew.sh/) to get it: ``` brew install homebrew/core/make ``` on earlier systems this was: ``` brew tap homebrew/dupes brew install homebrew/dupes/make ``` and then use `gmake` instead of `make`. RUNNING ------- The fb-adb executable itself has no dependencies other than the adb executable, which must be on `PATH`. Generally, you can use fb-adb just like adb; fb-adb forwards unknown commands to adb. fb-adb supports the same device-selection options that adb does. `fb-adb shell` is the fancy shell command that supports the features described above. Run `fb-adb shell -h` for additional options. EXAMPLES -------- * Capture a screenshot from device and write it locally to a timestamped file: `fb-adb rcmd screencap -p > screenshot-$(timestamp).png` * Dump `database.db` of the `com.bar.foo` app: `fb-adb rcmd -u com.bar.foo sqlite3 /data/data/com.bar.foo/databases/database.db .d` * Open remote shell as the user `com.bar.foo`: `fb-adb shell -u com.bar.foo`