All Projects → mfinkle → web-adb

mfinkle / web-adb

Licence: MIT license
A simple webapp and API for managing and manipulating connected Android devices via the Android Device Bridge (ABD)

Programming Languages

HTML
75241 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to web-adb

Xiaomiadbfastboottools
A simple tool for managing Xiaomi devices on desktop using ADB and Fastboot
Stars: ✭ 2,810 (+2827.08%)
Mutual labels:  adb
Cxtouch
View and manage Android devices from PC client based java swing, supporting Windows, Linux and MacOS
Stars: ✭ 229 (+138.54%)
Mutual labels:  adb
homebridge-adb
Homebridge script to control remote ADB enabled Android device
Stars: ✭ 56 (-41.67%)
Mutual labels:  adb
Adebar
Android DEvice Backup And Report, using Bash and ADB. Moved to https://codeberg.org/izzy/Adebar -- this is only a mirror now.
Stars: ✭ 192 (+100%)
Mutual labels:  adb
Wechat jump game
微信《跳一跳》Python 辅助
Stars: ✭ 13,880 (+14358.33%)
Mutual labels:  adb
WiFiADB
An IntelliJ platform plugin use for connecting Android device over WiFi
Stars: ✭ 131 (+36.46%)
Mutual labels:  adb
Fgo Py
全自动FGO脚本.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下?绝赞持续更新中
Stars: ✭ 167 (+73.96%)
Mutual labels:  adb
android touch
Low latency high speed android multitouch event server
Stars: ✭ 73 (-23.96%)
Mutual labels:  adb
Ya Webadb
ADB in your browser
Stars: ✭ 228 (+137.5%)
Mutual labels:  adb
toster
DSL framework for testing Android apps
Stars: ✭ 31 (-67.71%)
Mutual labels:  adb
Replaykit
[DEPRECATED] Command line tools for recording, replaying and mirroring touchscreen events for Android
Stars: ✭ 211 (+119.79%)
Mutual labels:  adb
Adb Toolkit
ADB-Toolkit V2 for easy ADB tricks with many perks in all one. ENJOY!
Stars: ✭ 217 (+126.04%)
Mutual labels:  adb
adb-toggle
A homescreen widget to toggle USB debugging on/off
Stars: ✭ 20 (-79.17%)
Mutual labels:  adb
Adb Join Wifi
Helper app to allow joining a wifi AP directly from ADB
Stars: ✭ 183 (+90.63%)
Mutual labels:  adb
PlexMeetsHomeAssistant
Custom card which integrates plex into Home Assistant and makes it possible to launch movies or tv shows on TV with a simple click
Stars: ✭ 73 (-23.96%)
Mutual labels:  adb
Adb For Test
通过adb命令实现简单的点击、滑动、长按等效果,可通过比例定位元素、通过元素定位(需要Android版本高于4.0),用于Android Test,拥有monkeyrunner的绝大部分功能
Stars: ✭ 176 (+83.33%)
Mutual labels:  adb
Bash-Android-Debloater
Bash script using ADB to debloat non-rooted smartphones. Improve your privacy, the security and battery life of your device. THIS REPO IS ONLY A MIRROR.
Stars: ✭ 33 (-65.62%)
Mutual labels:  adb
einstein
Python Tutorial with popular machine learning algorithms implementation. This tutorial helps you processing data like Einstein
Stars: ✭ 34 (-64.58%)
Mutual labels:  adb
adbd
Android Debug Bridge daemon implementation in RT-Thread
Stars: ✭ 37 (-61.46%)
Mutual labels:  adb
next-osx
一款基于`Electron`框架开发的Mac应用,用于App启动速度`傻瓜式`评测,同时提供了针对Android设备的一些常用操作
Stars: ✭ 14 (-85.42%)
Mutual labels:  adb

Web ADB

A simple webapp and API for managing and manipulating connected Android devices via the Android Device Bridge (ABD).

Requirements

The following are required on the host machine running Web ADB:

  • Python 2.7
  • Android SDK

Quick Start

  • Clone this project to the host machine
  • Run python <path-to-web-adb>/server.py --port=8888 --adb-path=<path-to-android-sdk>/platform-tools/adb
  • Open http://localhost:8888 in a browser

screenshot

Basic Usage

  • Connected devices are listed in the table
  • Selecting a device will display a panel below the table with more capabilities.
  • The action buttons/images have hover text to help you guess what they do.
  • Clicking on a screenshot will send a tap to the device and refresh the screeshot.

Details

I tried to keep this as minimal as possible. A single Python file acts as a very simple API server. In addition to several API routes, hiting the root will return a simple single-page webapp.

Commandline Arguments

  • --port the local port to bind the server (defaults to 8080)
  • --adb-path the path to the ADB binary
  • --cert-file the path to a PEM file you want to use to enable HTTPS support

Routes

/ (GET, text/html)

returns the single-page webapp

/devices (GET, application/json)

returns a JSON array containing a JSON device object each connected device

[
  {
    "id": "<device-id>",
    "network": {
      "connected": (true|false),
      "ssid": "<wifi-name>"
    },
    "battery": {
      "status": "<range: 1 to 5>",
      "level": "<charge level>",
      "health": "<range: 1 to 7>",
      "plugged": "(USB|AC)"
    },
    "screen": {
      "width": "<XXXpx>",
      "height": "<YYYpx>",
      "density": "<integer density>",
      "orientation": "0|1"
    },
    "model": "<model-name>",
    "manufacturer": "<manufacturer-name>",
    "sdk": "<integer SDK level>"
  },
  {...}
]

/screenshot/:device_id (GET, image/png)

returns a PNG of the device screen

/logcat/:device_id (GET, text/plain)

returns a simple text dump of the logcat

/info/:device_id (GET, application/json)

returns a JSON device object for the given device

/key (POST, text/plain):

executes a keypress on the given device. takes a JSON object and returns a plain text status

{
  "device": "<device-id>",
  "key": "<key-code>"
}

/tap (POST, text/plain):

executes a tap on the given device at the given coords. takes a JSON object and returns a plain text status

{
  "device": "<device-id>",
  "x": "<x-location>",
  "y": "<y-location>"
}

/shell (POST, text/plain):

executes a shell command on the given device. takes a JSON object and returns a plain text status

{
  "device": "<device-id>",
  "command": "<shell-command>"
}

/reboot (POST, text/plain):

reboots the given device. takes a JSON object and returns a plain text status

{
  "device": "<device-id>"
}

Future Ideas

I threw this project together quickly to scratch a specific itch. Here are some ideas I'd like to think about for the future:

  • Heartbeat monitoring to check the device status and connection. Maybe a health ping every 10 seconds.
  • Start/Stop monitor for CPU, Network, and Memory usage. Use a simple chart for visualizing it.
  • Wrap a few more ADB commands, like pull/push files and APK management.
  • Capture video.
  • Add swipe support.

Acknowledgements

Even though I try to minimize dependencies in the server code, I do use some 3rd party libraries in the single-page webapp, pulled in via CDN links:

  • JQuery
  • Bootstrap
  • Handlebars
  • Font Awesome
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].