Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
yume-chan committed Oct 26, 2023
0 parents commit d05a288
Show file tree
Hide file tree
Showing 25 changed files with 9,294 additions and 0 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Deploy

on:
push:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x

- name: Cache PNPM store
uses: actions/cache@v3
with:
path: |
~/.pnpm-store/v3
key: ${{ runner.os }}-pnpm

- name: Setup PNPM
uses: pnpm/action-setup@v2
with:
version: latest
run_install: true

- run: pnpm run build

- name: Setup Pages
uses: actions/configure-pages@v2

- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
path: "build"

deploy:
needs: build

permissions:
pages: write
id-token: write

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Dependencies
/node_modules

# Production
/build

# Generated files
.docusaurus
.cache-loader

# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Website

This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.

### Installation

```
$ yarn
```

### Local Development

```
$ yarn start
```

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.

### Build

```
$ yarn build
```

This command generates static content into the `build` directory and can be served using any static contents hosting service.

### Deployment

Using SSH:

```
$ USE_SSH=true yarn deploy
```

Not using SSH:

```
$ GIT_USER=<Your GitHub username> yarn deploy
```

If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
3 changes: 3 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
};
12 changes: 12 additions & 0 deletions blog/2019-05-28-first-blog-post.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
slug: first-blog-post
title: First Blog Post
authors:
name: Gao Wei
title: Docusaurus Core Team
url: https://github.com/wgao19
image_url: https://github.com/wgao19.png
tags: [hola, docusaurus]
---

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
44 changes: 44 additions & 0 deletions blog/2019-05-29-long-blog-post.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
slug: long-blog-post
title: Long Blog Post
authors: endi
tags: [hello, docusaurus]
---

This is the summary of a very long blog post,

Use a `<!--` `truncate` `-->` comment to limit blog post size in the list view.

<!--truncate-->

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
20 changes: 20 additions & 0 deletions blog/2021-08-01-mdx-blog-post.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
slug: mdx-blog-post
title: MDX Blog Post
authors: [slorber]
tags: [docusaurus]
---

Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/).

:::tip

Use the power of React to create interactive blog posts.

```js
<button onClick={() => alert('button clicked!')}>Click me!</button>
```

<button onClick={() => alert('button clicked!')}>Click me!</button>

:::
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 25 additions & 0 deletions blog/2021-08-26-welcome/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
slug: welcome
title: Welcome
authors: [slorber, yangshun]
tags: [facebook, hello, docusaurus]
---

[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog).

Simply add Markdown files (or folders) to the `blog` directory.

Regular blog authors can be added to `authors.yml`.

The blog post date can be extracted from filenames, such as:

- `2019-05-30-welcome.md`
- `2019-05-30-welcome/index.md`

A blog post folder can be convenient to co-locate blog post images:

![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg)

The blog supports tags as well!

**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config.
17 changes: 17 additions & 0 deletions blog/authors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
endi:
name: Endilie Yacop Sucipto
title: Maintainer of Docusaurus
url: https://github.com/endiliey
image_url: https://github.com/endiliey.png

yangshun:
name: Yangshun Tay
title: Front End Engineer @ Facebook
url: https://github.com/yangshun
image_url: https://github.com/yangshun.png

slorber:
name: Sébastien Lorber
title: Docusaurus maintainer
url: https://sebastienlorber.com
image_url: https://github.com/slorber.png
29 changes: 29 additions & 0 deletions docs/app-manager.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
sidebar_position: 5
---

# App Manager

App manager lists installed apps on device.

## App Types

The app type filter has 3 options:

* **System apps**: apps that are pre-installed on the device and can't be uninstalled.
* **Third-party apps**: apps that are installed by the user.
* **All apps**: both system apps and third-party apps.

## Install APK

If you have an APK file on your computer, you can install it on the device by clicking the **Install APK** button.

Multi-part bundles are not supported. This includes `.apks`, `.xapk` and `.apkm` files.

## Command bar

The command bar has the following buttons:

* **Uninstall**: uninstall the selected apps. It's disabled for system apps.
* **Backup**: create a backup of the selected apps. App Backup is a deprecated feature, and most apps can't be backed up. For apps that allow backup, the backup file will contain the app's data, settings, and optionally the APK file.
* **Details**: show details of the selected app. This contains a breakdown of the app's storage usage.
54 changes: 54 additions & 0 deletions docs/file-browser.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
sidebar_position: 4
---

# File Browser

File browser page allows you to browse files and folders on your device. You can also create, rename, delete, upload, download files and folders.

## Volumes

When you open the file browser, it displays a list of volumes. Volumes are user-visible storage devices on the device. They include:

* Internal storage (shows their localized names)
* SD cards (shows their volume names)
* USB drives (shows their model names)

Tap on a volume to open it.

At any time, tap <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" style={{verticalAlign:"middle"}} viewBox="0 0 16 16"><path fill="currentColor" d="m13.854 7.854l-1.969-4.127V3.72A1.233 1.233 0 0 0 10.75 3h-5.5a1.234 1.234 0 0 0-1.134.72v.007l-1.97 4.127A1.5 1.5 0 0 0 2 8.5v2A1.5 1.5 0 0 0 3.5 12h9a1.5 1.5 0 0 0 1.5-1.5v-2a1.5 1.5 0 0 0-.146-.646ZM5.25 4h5.5a.24.24 0 0 1 .226.14L12.339 7H3.661l1.362-2.857A.24.24 0 0 1 5.25 4ZM13 10.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-2a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 .5.5v2Zm-1-1a.5.5 0 1 1-1 0a.5.5 0 0 1 1 0Z"/></svg> **Volumes** button to return to the list of volumes.

## Command bar

The command bar has the following buttons:

* **New folder**: create a new folder here. To create nested folders, you can include `/` in the folder name.
* **Upload**: upload files to this folder. Multiple files can be selected at once.
* **Download**: download selected files and folders. If multiple files or a folder is selected, they will be downloaded as a zip file.
* **Rename**: rename the selected item.
* **Delete**: permanently delete the selected items. There will be a confirmation dialog before deleting. Deleted files can't be recovered.
* **Details**: show details of the selected item.

## Filesystem root

Filesystem root (`/` folder) is the root folder of all files and folders on the device. It contains system files that are critical to the device, and the above volumes.

Generally, system files are protected from being modified or deleted. And you shouldn't modify or delete them unless you know what you are doing.

Tap <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" style={{verticalAlign:"middle"}} viewBox="0 0 16 16"><path d="M4 7a1 1 0 1 1 0 2a1 1 0 0 1 0-2zm4 0a1 1 0 1 1 0 2a1 1 0 0 1 0-2zm4 0a1 1 0 1 1 0 2a1 1 0 0 1 0-2z" fill="currentColor" fill-rule="nonzero"/></svg> button, then tap **Go to root folder** to open the filesystem root.

## Files and folders

After entering a volume or filesystem root, you will see a list of files and folders.

Tap on a folder will open it. Tap on a file will not do anything, you need to download and open it on your computer.

Tap the checkbox to select it to enable options in the command bar.

Tap <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" style={{verticalAlign:"middle"}} viewBox="0 0 16 16"><path d="M4 7a1 1 0 1 1 0 2a1 1 0 0 1 0-2zm4 0a1 1 0 1 1 0 2a1 1 0 0 1 0-2zm4 0a1 1 0 1 1 0 2a1 1 0 0 1 0-2z" fill="currentColor" fill-rule="nonzero"/></svg> button on the right to open the menu for this item. The menu has the same options as the command bar.

## Tricks

### Create a bookmark for a folder

The page url contains the serial number of the device and the path of the current folder. You can bookmark it to quickly open the folder next time.
36 changes: 36 additions & 0 deletions docs/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
sidebar_position: 1
slug: /
---

# Introduction

Tango is a Web app for controlling Android devices. It's built on the open-sourced [Tango library](https://github.com/yume-chan/ya-webadb).

Tango works on latest versions of Chromium-based browsers, including Google Chrome, Microsoft Edge and Opera. It also works on Android versions of those browsers, but not on iOS devices.

## Data security

Tango works entirely in your browser. All data is transferred directly between your device and your browser. Besides of some anonymous analytics data, Tango doesn't send any data to the server.

After first loading the page, Tango can work offline. You can disconnect from the Internet and continue using Tango.

## Quick Start

1. [Enable Developer options and USB debugging](./prepare.md) on the device you want to control.
2. Connect the device to your computer using a USB cable. For running Tango on Android, use a C-to-C or OTG cable, Tango can't control the device from itself.
3. Open [Tango](https://tangoapp.dev) in a supported browser on your computer.
4. Tap "Pair Device" button, from the popup, select the device you want to control.
5. A new device card will appear in the device list. Tap "Connect" button on the card to connect to the device.
6. The first time you connect to a device, you will be asked to authorize the connection on the device. Follow the instructions on the device to authorize the connection.

Having issues while connecting? See [Troubleshooting](./troubleshooting.md).

## Features

* [**Device Overview**](./overview.md): Display basic information of the device like IP address, battery level, storage and memory usages.
* [**File Browser**](./file-browser.md): Browse, download and upload files on device.
* [**App Manager**](./app-manager.md): List, install and uninstall apps on device.
* [**Screen Mirror**](./screen-mirror.md): Mirror device screen and control the device using mouse and keyboard.
* Logcat and bugreport tools for debugging the device or apps on it.
* More features are coming soon.
Loading

0 comments on commit d05a288

Please sign in to comment.