https://github.com/glodroid/mm-radio
Generic Android radio HAL that wraps modemmanager API
https://github.com/glodroid/mm-radio
aosp aosp-android gsm-modem hal modem modemmanager radio
Last synced: 9 days ago
JSON representation
Generic Android radio HAL that wraps modemmanager API
- Host: GitHub
- URL: https://github.com/glodroid/mm-radio
- Owner: GloDroid
- License: gpl-3.0
- Created: 2022-11-23T11:05:40.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-20T16:01:20.000Z (over 1 year ago)
- Last Synced: 2023-10-20T17:23:10.875Z (over 1 year ago)
- Topics: aosp, aosp-android, gsm-modem, hal, modem, modemmanager, radio
- Language: Rust
- Homepage:
- Size: 5.46 MB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The mm-radio HAL
[](https://github.com/GloDroid/mm-radio/actions)
[](https://opensource.org/licenses/Apache-2.0)
[](https://discord.gg/fmEAJtct)## Warning!
This project is a free and open-source initiative maintained by a group of volunteers. It is provided "as is" without any warranties or guarantees.
Please be aware that it is a reference proof of concept and the user is fully responsible for any issues that may arise from using the project.## Introduction
The **mm-radio** project is a Hardware Abstraction Layer (HAL) for the Android operating system that allows communication between the **Modem Manager**
and the **Android** framework. It implements the Android Interface Definition Language (AIDL) radio interface and "wires-up" requests to the
Modem Manager service from the [Mobile broadband connectivity community](https://gitlab.freedesktop.org/mobile-broadband/ModemManager)It is designed to work on Android 13 and later versions. Older versions do not have AIDL Radio HAL support.
## The implementation details of mm-radio are as follows:
- The `src/radio` directory contains the main binding logic between `IRadio` interface and MM dbus API.
- The `src/mm_zbus` directory contains zbus auto-generated proxies for ModemManager dbus API.
- The `src/utils` directory contains various helpers.## Building mm-radio using AOSPLESS within a Docker container
To build the mm-radio project using the AOSPLESS approach within a Docker container, you can follow these steps:
1. **Install Docker:** Run the following commands to install Docker on your system:
```
$ sudo apt install docker.io
$ sudo usermod -aG docker $USER
```- **Note:** Don't forget to reboot your PC to apply group configuration changes.
2. **Clone the project:** Use the following command to clone the mm-radio project:
```
$ git clone https://github.com/GloDroid/mm-radio.git
$ cd mm-radio
```3. **Build the project:** Run the following command to build the project:
```
$ make ci_fast
```- Or, you can run the following command to build and deploy the project to the target device (assuming that some version of mm-radio is already installed on your device):
```
$ make bd
```**Note:**
- If you encounter permission denied errors when running for the first time, try rebooting your device and running the command again.
- To view mm-radio logs after running `make bd`, export the environment variable `export ADBLOG=1`.## Embedding the mm-radio project into your build
To embed the mm-radio project into your build, you can use the AOSPEXT make scripts to build mm-radio, Modem Manager, and related repositories.
1. **AOSP Manifest:** An example of AOSP Manifest file including mm-radio, Modem Manager and related repositories can be found at: [Link](https://github.com/GloDroid/glodroid_manifest/blob/a12ae690942c9c5bb7ffc2c2d4790300373f26ac/glodroid.xml#L33)
2. **AOSP product configuration changes:** An example of required AOSP product configuration changes can be found at: [Link](https://github.com/GloDroid/glodroid_device/tree/41c92f73619f3e093ff56b458ad99ff0c76b8401/common/modem)
3. **Modem Manager patches:** The Modem Manager project may require additional patches to compile within AOSP. These patches can be found at: [Link](https://github.com/GloDroid/glodroid_device/tree/359da645595b118a1a9c5918638887b5f7d8696a/patches/vendor/modemmanager)## Contributing
When contributing to this repository, please follow these guidelines:
1. **Kernel Code of Conduct:** Use the [Kernel Code of Conduct](https://www.kernel.org/doc/html/latest/process/code-of-conduct.html) when submitting patches.
(In a simple form just make sure to include a Signed-off-by line in your commits)
2. **Local CI:** Before submitting a patch, ensure that it passes a local CI run by using the `make ci` command.
3. **Commit message:** Keep the commit message clean and describe the changes made in the patch.
4. **Avoid mixing changes:** Avoid mixing bug fixes, refactors, and new features in a single patch. This is considered a bad practice.
5. **Use common prefix for commits:** Use the `mm-radio: ` prefix for commits.Please make sure that your contributions follow the above guidelines to ensure that the review process is as smooth as possible.
## Project status
Please find the latest status of the project at: [Link](https://github.com/GloDroid/mm-radio/issues/10)