stf - Control and manage Android devices from your browser.

  •        34

STF (or Smartphone Test Farm) is a web application for debugging smartphones, smartwatches and other gadgets remotely, from the comfort of your browser. STF was originally developed at CyberAgent to control a growing collection of more than 160 devices. As of July 2016 development is mainly sponsored by HeadSpin and other individual contributors.


@slack/client : ^3.5.4
adbkit : ^2.9.2
adbkit-apkreader : ^3.1.1
adbkit-monkey : ^1.0.1
aws-sdk : ^2.4.13
basic-auth : ^1.0.3
bluebird : ^2.10.1
body-parser : ^1.13.3
bufferutil : ^1.2.1
chalk : ~1.1.1
compression : ^1.5.2
cookie-session : ^2.0.0-alpha.1
csurf : ^1.7.0
debug : ^2.2.0
eventemitter3 : ^1.2.0
express : ^4.14.0
express-validator : ^2.20.8
formidable : ^1.2.0
gm : ^1.23.0
hipchatter : ^0.3.1
http-proxy : ^1.11.2
in-publish : ^2.0.0
jpeg-turbo : ^0.4.0
jws : ^3.1.0
ldapjs : ^1.0.0
lodash : ^4.14.2
markdown-serve : ^0.3.2
mime : ^1.3.4
minicap-prebuilt : ^2.3.0
minimatch : ^3.0.3
minitouch-prebuilt : ^1.2.0
my-local-ip : ^1.0.0
openid : ^2.0.1
passport : ^0.3.2
passport-oauth2 : ^1.1.2
passport-saml : ^0.15.0
please-update-dependencies : ^2.0.0
protobufjs : ^3.8.2
proxy-addr : ^1.0.10
pug : ^2.0.0-beta4
request : ^2.67.0
request-progress : ^2.0.1
rethinkdb : ^2.0.2
semver : ^5.0.1
serve-favicon : ^2.2.0
serve-static : ^1.9.2 : ^2.0.3
split : ^1.0.0
stf-appstore-db : ^1.0.0
stf-browser-db : ^1.0.2
stf-device-db : ^1.2.0
stf-syrup : ^1.0.0
stf-wiki : ^1.0.0
swagger-express-mw : ^0.7.0
temp : ^0.8.1
transliteration : ^1.1.6
url-join : 1.1.0
utf-8-validate : ^1.2.1
uuid : ^3.0.0
ws : ^3.0.0
yargs : ^6.6.0
zmq : ^2.14.0



Related Projects

minicap - Stream real-time screen capture data out of Android devices.

  •    C++

Minicap provides a socket interface for streaming realtime screen capture data out of Android devices. It is meant to be used as a component in a larger program and is therefore not immensely useful just by itself. For example, it is being used in STF for remote control. Minicap works without root if started via ADB on SDK 28 (Android 9.0) and lower. The lowest SDK level we build for is 9 (i.e. Android 2.3). Minicap also works on Android Wear. Developer previews are, in general, supported once Google releases the source code for that release. Only the latest Developer Preview is supported, and only until there's a stable release. Emulators are not supported. Note that Android 3.x is not supported since those versions were never open sourced.

composer - Reactive Android Instrumentation Test Runner.

  •    Kotlin

Problem 1: Our UI tests are stable, but we saw a lot of UI tests build failures. About ~50% of our CI builds were failing. All such failures of UI tests came from Spoon not being able to run tests on one or more emulators (device is red in the report and error message is …work/emulator-5554/result.json (No such file or directory), basically it timed out on installing the apk on a device, increasing adb timeout did not help, all emulators responded to adb commands and mouse/keyboard interactions, we suppose problem is in in ddmlib used by Spoon.Solution: Composer does not use ddmlib and talks to emulators/devices by invoking adb binary.

uiautomator - Python wrapper of Android uiautomator test tool.

  •    Python

This module is a Python wrapper of Android uiautomator testing framework. It works on Android 4.1+ simply with Android device attached via adb, no need to install anything on Android device. Notes: In below examples, we use d represent the android device object.

qark - Tool to look for several security related Android application vulnerabilities

  •    Python

Quick Android Review Kit - This tool is designed to look for several security related Android application vulnerabilities, either in source code or packaged APKs.

adbkit - A pure Node.js client for the Android Debug Bridge.

  •    CoffeeScript

adbkit is a pure Node.js client for the Android Debug Bridge server. It can be used either as a library in your own application, or simply as a convenient utility for playing with your device. Most of the adb command line tool's functionality is supported (including pushing/pulling files, installing APKs and processing logs), with some added functionality such as being able to generate touch/key events and take screenshots. Some shims are provided for older devices, but we have not and will not test anything below Android 2.3.

python-adb - Python ADB + Fastboot implementation

  •    Python

This repository contains a pure-python implementation of the ADB and Fastboot protocols, using libusb1 for USB communications.This code is mainly targeted to users that need to communicate with Android devices in an automated fashion, such as in automated testing. It does not have a daemon between the client and the device, and therefore does not support multiple simultaneous commands to the same device. It does support any number of devices and never communicates with a device that it wasn't intended to, unlike the Android project's ADB.

AndroidWiFiADB - IntelliJ/AndroidStudio plugin which provides a button to connect your Android device over WiFi to install, run and debug your applications without a USB connected

  •    Java

IntelliJ and Android Studio plugin created to quickly connect your Android device over WiFi to install, run and debug your applications without a USB connected. Press one button and forget about your USB cable. Android WiFI ADB plugin adds a button to your IntelliJ/Android Studio Toolbar to connect your device to your computer over WiFi.

ADBPlugin - Google Chrome Extension with ADB Daemon

  •    C++

For folks that want to use ADB, please follow the remote debugging legacy workflow. ADB Plugin is a Chrome Extension that runs ADB daemon and enables remote debugging for mobile. With it, you do not need to download the Android SDK or run ADB yourself from the command line. This extension is experimental. It runs on Win, Mac and Linux (ia32/x86_64). For full installation directions, click through to

android-tips-tricks - :ballot_box_with_check: [Cheatsheet] Tips and tricks for Android Development

  •    Java

This is a simple set of tips and tricks regarding Android Development which I have gathered from various sources. It helps me direct other android devs in my community regarding stuff each android dev should know about. It is also there for me to keep track of anything I either learn on my own or from other sources now and then when browsing the internet. Contributions are always welcome, hoping people will help me in growing this. To contribute, simply open up a PR with the changes.

mandala - A Go framework for writing native Android applications

  •    Go

Mandala is a framework for writing Android native applications in Go using the Goandroid toolchain. You can develop, test and run your application on your desktop and then deploy it to an Android device. It encourages the use of idiomatic Go for writing Android applications: communication happens through channels and not callbacks. The framework should not be considered a high-level game engine but as a basic layer onto which game engines can be built or existing ones can be used. In my opinion, this opens interesting scenarios in the developing of native Android applications/games in Go. Goandroid's native_activity example was the initial source of inspiration for this project. Please consider that Mandala is in a very early stage of development: API will change, test coverage is not so good for now. Last but not least, Go doesn't officially support native Android development. Regarding this point, I hope that the present work could act as a sort of incentive in the direction of an official Android support by the Go Team.


  •    Python

adb-sync is a tool to synchronize files between a PC and an Android device using the ADB (Android Debug Bridge).

DroidAtScreen1 - Show the screen of a real Android device on a PC

  •    Java

Droid@Screen is a stand-alone Java program that show the device screen of an Android phone at a computer. It's typically used for demo and training. The application will search for the ADB (Android Debug Bridge) executable using the environment variables mentioned above. If it cannot find the executable, it will prompt you for the full path.

adb-idea - A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development

  •    Java

A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development. The number on the left is a shortcut that will stay the same for your muscle memory pleasure.

android-keyboard-gadget - Convert your Android device into USB keyboard/mouse, control your PC from your Android device remotely, including BIOS/bootloader

  •    C

Convert your Android device into USB keyboard/mouse, control your PC from your Android device remotely, including BIOS/bootloader. There is a possibility to send keypresses in an automated way, using terminal emulator for Android or similar app. This is done using hid-gadget-test utility.

gradle-android-command-plugin - Handy commands for testing Android on CI

  •    Groovy

Use gradle tasks to run specific adb commands. This is particularly useful for CI servers but could be used to speed up development as well.

Poco - A cross-engine test automation framework based on UI inspection

  •    Python

A cross-engine UI automation framework. Unity3D/cocos2dx-*/Android native APP/iOS native APP/(Other engines SDK)/... First you should connect your Android phone, for example, via usb cable and enable the ADB DEBUG MODE.

Gnirehtet - Reverse tethering for Android

  •    Java

This project provides reverse tethering over adb for Android: it allows devices to use the internet connection of the computer they are plugged on. It does not require any root access (neither on the device nor on the computer). It works on GNU/Linux, Windows and Mac OS.

OfflineSampleApp - Sample Offline-First MVVM app that uses Android Priority Job Queue, Room, Retrofit2, LiveData, LifecycleObserver, RxJava2, Dagger Android

  •    Java

Offline App (or Offline-First App) enables user to seamlessly interact with it by using local device storage and then synchronizing the data with some remote storage (cloud database, etc) later via a background process. This app is a working sample that showcases one way of implementing offline commenting capability on Android platform. Users' comments are stored in local Room database first. Then a background job is spawned to synchronize local data with remote database if and when Internet connection is available.

android-customtabs - Chrome CustomTabs for Android demystified

  •    Java

Chrome CustomTabs for Android demystified. Simplifies development and provides higher level classes including fallback in case Chrome isn't available on device. Snapshots of the development version are available in Sonatype's snapshots repository.