Skip to main content

An ADB-powered framework for efficient Android command execution, device management, and job scheduling for developers and testers

Project description

Muse

Muse is an intuitive framework designed to streamline the execution of commands on Android devices. By harnessing the capabilities of ADB (Android Debug Bridge), Muse offers a more efficient way to handle command execution, file management, and device interaction, making it an essential tool for developers and testers working with Android devices.

🚀 Key Features

  • Simplified command execution on Android devices via ADB
  • User-friendly job submission using straightforward commands
  • Automated management of inputs/outputs, device states, and error handling
  • Support for multi-user environments and device scheduling

🧩 Installation Guide

On the Server

  1. Install ADB:
    sudo apt-get update
    sudo apt-get install android-tools-adb
    
  2. Follow the instructions to install MongoDB here.
  3. Use pip to install the Muse server package:
    pip3 install muse4ever[server]
    

On the Client

  1. Install the Muse client package with pip:
    pip3 install muse4ever
    
  2. Configure the server address by setting the MUSE_SERVER_ADDRESS environment variable (default: http://127.0.0.1:10813/):
    export MUSE_SERVER_ADDRESS=<your_server_address>
    

⚙️ Configuring the Server

  1. Start the MongoDB service:
    sudo systemctl start mongod
    
  2. Initiate the Muse server (modify MUSE_SERVER_HOST and MUSE_SERVER_PORT as needed):
    export MUSE_SERVER_HOST=<host>
    export MUSE_SERVER_PORT=<port>
    muse-server
    
  3. Start the Muse scheduler to manage job queues:
    muse-scheduler
    
  4. Ensure that your Android devices are connected and recognized by ADB:
    adb devices
    

🧑‍💻 How to Use Muse

Listing Connected Devices

muse devices

Sample output:

1 device(s) active
---------------------
10ADBG0DS2001R3
  Model: V2309A
  Battery Level: 100%
  Screen Status: off

Executing Commands

muse run --dev <device_id> --cmd <command> [--in <input_files>] [--out <output_files>]

Example Usage 1

muse run --dev 10ADBG0DS2001R3 --cmd 'cat /proc/cpuinfo'

Output:

processor       : 0
BogoMIPS        : 26.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 ...
CPU implementer : 0x41
CPU architecture: 8
...

Example Usage 2

echo "seq 1 10" > 1.txt
muse run --dev 10ADBG0DS2001R3 --cmd 'tac 1.txt > 2.txt' --in 1.txt --out 2.txt
cat 2.txt

Output:

10
9
8
7
6
5
4
3
2
1

📋 Notes

  1. When specifying input and output files, use relative paths. For instance, if you run muse run with the input file ./123/456.txt, it will be transferred to the device as /data/local/tmp/muse/123/456.txt.
  2. Muse executes ADB commands under the hood; it doesn't provide environment isolation or resource constraints.
  3. The Muse client communicates with the server using the HTTP protocol.
  4. Developed by exzhawk, the name "muse4ever" is inspired by the "Love Live!" idol group μ's and was chosen as 'muse' was already taken in pip 🎶🎶🎶

Licensing

Muse is made available under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

muse4ever-0.17.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

muse4ever-0.17.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file muse4ever-0.17.0.tar.gz.

File metadata

  • Download URL: muse4ever-0.17.0.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for muse4ever-0.17.0.tar.gz
Algorithm Hash digest
SHA256 5e82c3554425b5b98e0ce3071fceece11d449dacb0a0d43ae55fc6c114e790b1
MD5 b41e583c3589169aa9aa0ee3459d7a41
BLAKE2b-256 a4d9e5668886337bf323e2e1f61d1e680c026d2b2637f6d42bd4c3a16b992523

See more details on using hashes here.

File details

Details for the file muse4ever-0.17.0-py3-none-any.whl.

File metadata

  • Download URL: muse4ever-0.17.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for muse4ever-0.17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 db47bc12829efa0891a7b15dadb5cdc15720a732cc8c480812c77566389fc50f
MD5 c467cec33b6681c6c3b423649481eaf7
BLAKE2b-256 7e3aa0fd8834b6a44dddb3d181ec8e3c55b6b55bc3e05f0039690d44f2448fcf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page