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.
- 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
- Install ADB:
sudo apt-get update sudo apt-get install android-tools-adb
- Follow the instructions to install MongoDB here.
- Use pip to install the Muse server package:
pip3 install muse4ever[server]
- Install the Muse client package with pip:
pip3 install muse4ever
- 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>
- Start the MongoDB service:
sudo systemctl start mongod
- Initiate the Muse server (modify
MUSE_SERVER_HOST
andMUSE_SERVER_PORT
as needed):export MUSE_SERVER_HOST=<host> export MUSE_SERVER_PORT=<port> muse-server
- Start the Muse scheduler to manage job queues:
muse-scheduler
- Ensure that your Android devices are connected and recognized by ADB:
adb devices
muse devices
Sample output:
1 device(s) active
---------------------
10ADBG0DS2001R3
Model: V2309A
Battery Level: 100%
Screen Status: off
muse run --dev <device_id> --cmd <command> [--in <input_files>] [--out <output_files>]
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
...
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
- 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
. - Muse executes ADB commands under the hood; it doesn't provide environment isolation or resource constraints.
- The Muse client communicates with the server using the HTTP protocol.
- Developed by exzhawk, the name "muse4ever" is inspired by the "Love Live!" idol group μ's and was chosen as 'muse' was already taken in pypi 🎶🎶🎶
Muse is made available under the MIT License.