1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 19:42:01 +02:00
Android remote access
Find a file
2015-06-22 19:15:55 +09:00
bin Apparently Linux doesn't allow multiple arguments in shebang. Removing --harmony flag as it's currently unused anyway, and switching to Promise.longStackTraces(). 2014-01-30 13:52:10 +09:00
buildpack Attempt to work around npm/npm#5400. 2014-08-05 17:38:58 +09:00
doc Separate websocket to its own role. Necessary because the app was getting pretty big already, but mostly because our Windows PCs don't like to connect to websockets on port 80, which is what we use for the app. 2014-06-06 15:02:29 +09:00
lib Remove unused dep from resources/minitouch. 2015-06-22 11:24:20 +09:00
res Adding full path resolution for nine-bootstrap. 2015-06-22 19:15:55 +09:00
test Reaper decides if a device is present or not. Allows devices to "come back to life" if they start beating again. 2015-06-03 18:49:42 +09:00
vendor Remove vendor/remote as practically unused due to the stats plugin not being active. 2015-06-12 17:09:20 +09:00
.editorconfig Minimal start with a custom logger and device tracker. 2014-01-07 10:55:41 +09:00
.gitignore - Refactored device button states so they can be tested. 2014-08-27 21:44:19 +09:00
.jscsrc Added JSCS style checking. 2014-09-09 16:28:00 +09:00
.jshintrc Add a separate .jshintrc for client-side code. 2014-05-13 16:10:56 +09:00
.npmignore Add prepublish script. 2014-09-10 20:38:50 +09:00
.npmrc Add mostly working custom node and bower buildpacks. 2014-07-30 16:54:52 +09:00
bower.json Moved nine-bootstrap dependency over stf repository. 2015-06-22 18:46:03 +09:00
CONTRIBUTING.md Cleaning README. 2015-06-18 19:18:42 +09:00
Dockerfile Update node. 2015-04-28 13:57:31 +09:00
gulpfile.js Dependencies updated. 2014-10-16 15:09:40 +09:00
LICENSE Cleaning README. 2015-06-18 19:18:42 +09:00
README.md Update instructions. 2015-06-22 16:20:50 +09:00
TESTING.md Cleaning README. 2015-06-18 19:18:42 +09:00
webpack.config.js Add nine-bootstrap template. 2015-06-15 19:29:41 +09:00

STF

STF (or Smartphone Test Farm) is a web application for debugging smartphones, smartwatches and other gadgets remotely, from the comfort of your browser.

It is currently being used at CyberAgent to control a growing collection of more than 160 devices.

Features

  • OS support
    • Android
      • Supports versions 2.3.3 (SDK level 10) to 5.1 (SDK level 22), plus Android M Developer Preview
      • Supports Wear 5.1 (but not 5.0 due to missing permissions)
      • Supports Fire OS, CyanogenMod, and other heavily Android based distributions
  • Remote control any device from your browser
    • Real-time screen view
      • Refresh speed can reach 30-40 FPS depending on specs and Android version. See minicap for more information.
      • Rotation support
    • Supports typing text from your own keyboard
      • Supports meta keys
      • Copy and paste support (although it can be a bit finicky on older devices, you may need to long-press and select paste manually)
      • May sometimes not work well with non-Latin languages unfortunately.
    • Multitouch support on touch screens via minitouch, two finger pinch/rotate/zoom gesture support on regular screens by pressing Alt while dragging
    • Drag & drop installation and launching of .apk files
      • Launches main launcher activity if specified in the manifest
    • Reverse port forwarding via minirev
      • Access your local server directly from the device, even if it's not on the same network
    • Open websites easily in any browser
      • Installed browsers are detected in real time and shown as selectable options
      • Default browser is detected automatically if selected by the user
    • Execute shell commands and see real-time output
    • Display and filter device logs
    • Use adb connect to connect to a remote device as if it was plugged in to your computer, regardless of ADB mode and whether you're connected to the same network
  • Manage your device inventory
    • See which devices are connected, offline/unavailable (indicating a weak USB connection), unauthorized or unplugged
    • See who's using a device
    • Search devices by phone number, IMEI, ICCID, Android version, operator, product name and/or many other attributes with easy but powerful queries
    • Show a bright red screen with identifying information on a device you need to locate physically
    • Track battery level and health
    • Rudimentary Play Store account management
      • List, remove and add new accounts (adding may not work on all devices)
    • Display hardware specs

Requirements

Note that you need these dependencies even if you've installed STF directly from NPM, because they can't be included.

On OS X, you can use homebrew to install most of the dependencies:

brew install rethinkdb graphicsmagick zeromq protobuf

You should now be ready to build or run STF.

Installation

As mentioned earlier, you must have all of the requirements installed first. Then you can simply install via NPM:

npm install -g stf

For development, though, you should build instead.

Building

After you've got all the requirements installed, it's time to fetch the rest of the dependencies.

First, fetch all NPM modules:

npm install

Then, fetch all Bower modules:

bower install

You may also wish to link the module so that you'll be able to access the stf command directly from the command line:

npm link

You should now have a working installation for local development.

Running

STF comprises of several independent processes that must normally be launched separately. In our own setup each one these processes is its own systemd unit.

For development purposes, however, there's a helper command to quickly launch all required processes along with a mock login implementation. Note however that you must have RethinkDB running first.

If you don't have RethinkDB set up yet, to start it up, go to the folder where you'd like RethinkDB to create a rethinkdb_data folder (perhaps the folder where this repo is) and run the following command:

rethinkdb

You should now have RethinkDB running locally. Running the command again in the same folder will reuse the data from the previous session.

You're now ready to start up STF itself:

stf local

After the webpack build process has finished (which can take a small while) you should have your private STF running on http://localhost:7100. If you had devices connected before running the command, those devices should now be available for use. If not, you should see what went wrong from your console. Feel free to plug in or unplug any devices at any time.

Note that if you see your device ready to use but without a name or a proper image, we're probably missing the data for that model in our device database. Everything should work fine either way.

Updating

To update your development version, simply pull the repo and run npm install and bower install again. You may occasionally have to remove the whole node_modules folder to prevent NPM from complaining about version mismatches.

Testing

See TESTING.md.

Contributing

See CONTRIBUTING.md.

License

See LICENSE.

Copyright © CyberAgent, Inc. All Rights Reserved.