Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/termux/termux-api
Termux add-on app which exposes device functionality as API to command line programs.
https://github.com/termux/termux-api
android termux
Last synced: about 1 month ago
JSON representation
Termux add-on app which exposes device functionality as API to command line programs.
- Host: GitHub
- URL: https://github.com/termux/termux-api
- Owner: termux
- Created: 2015-07-03T00:57:59.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-07T12:50:56.000Z (7 months ago)
- Last Synced: 2024-04-13T21:41:30.165Z (7 months ago)
- Topics: android, termux
- Language: Java
- Homepage: https://f-droid.org/en/packages/com.termux.api/
- Size: 1.2 MB
- Stars: 1,951
- Watchers: 139
- Forks: 417
- Open Issues: 216
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Termux API
[![Build status](https://github.com/termux/termux-api/workflows/Build/badge.svg)](https://github.com/termux/termux-api/actions)
[![Join the chat at https://gitter.im/termux/termux](https://badges.gitter.im/termux/termux.svg)](https://gitter.im/termux/termux)This is an app exposing Android API to command line usage and scripts or programs.
When developing or packaging, note that this app needs to be signed with the same
key as the main Termux app for permissions to work (only the main Termux app are
allowed to call the API methods in this app).## Installation
Latest version is `v0.50.1`.
Termux:API application can be obtained from [F-Droid](https://f-droid.org/en/packages/com.termux.api/).
Additionally we provide per-commit debug builds for those who want to try
out the latest features or test their pull request. This build can be obtained
from one of the workflow runs listed on [Github Actions](https://github.com/termux/termux-api/actions)
page.Signature keys of all offered builds are different. Before you switch the
installation source, you will have to uninstall the Termux application and
all currently installed plugins. Check https://github.com/termux/termux-app#Installation for more info.## License
Released under the [GPLv3 license](http://www.gnu.org/licenses/gpl-3.0.en.html).
## How API calls are made through the termux-api helper binary
The [termux-api](https://github.com/termux/termux-api-package/blob/master/termux-api.c)
client binary in the `termux-api` package generates two linux anonymous namespace
sockets, and passes their address to the [TermuxApiReceiver broadcast receiver](https://github.com/termux/termux-api/blob/master/app/src/main/java/com/termux/api/TermuxApiReceiver.java)
as in:```
/system/bin/am broadcast ${BROADCAST_RECEIVER} --es socket_input ${INPUT_SOCKET} --es socket_output ${OUTPUT_SOCKET}
```The two sockets are used to forward stdin from `termux-api` to the relevant API
class and output from the API class to the stdout of `termux-api`.## Client scripts
Client scripts which processes command line arguments before calling the
`termux-api` helper binary are available in the [termux-api package](https://github.com/termux/termux-api-package).## Ideas
- Wifi network search and connect.
- Add extra permissions to the app to (un)install apps, stop processes etc.