{"id":20976608,"url":"https://github.com/glodroid/mm-radio","last_synced_at":"2025-06-27T23:40:17.301Z","repository":{"id":65284921,"uuid":"569671976","full_name":"GloDroid/mm-radio","owner":"GloDroid","description":"Generic Android radio HAL that wraps modemmanager API","archived":false,"fork":false,"pushed_at":"2023-10-20T16:01:20.000Z","size":5725,"stargazers_count":4,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2023-10-20T17:23:10.875Z","etag":null,"topics":["aosp","aosp-android","gsm-modem","hal","modem","modemmanager","radio"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GloDroid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-23T11:05:40.000Z","updated_at":"2023-05-18T13:38:59.000Z","dependencies_parsed_at":"2023-01-16T06:30:53.425Z","dependency_job_id":"49f6a552-a731-46ee-8332-191897aab0fc","html_url":"https://github.com/GloDroid/mm-radio","commit_stats":null,"previous_names":[],"tags_count":3,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GloDroid%2Fmm-radio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GloDroid%2Fmm-radio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GloDroid%2Fmm-radio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GloDroid%2Fmm-radio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GloDroid","download_url":"https://codeload.github.com/GloDroid/mm-radio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225297830,"owners_count":17452010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aosp","aosp-android","gsm-modem","hal","modem","modemmanager","radio"],"created_at":"2024-11-19T04:54:47.505Z","updated_at":"2024-11-19T04:54:48.191Z","avatar_url":"https://github.com/GloDroid.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The mm-radio HAL\n\n[![Build Status](https://github.com/GloDroid/mm-radio/actions/workflows/main.yml/badge.svg)](https://github.com/GloDroid/mm-radio/actions)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Discord](https://img.shields.io/discord/753603904406683670.svg?label=Discord\u0026logo=discord\u0026colorB=7289DA\u0026style=flat-square)](https://discord.gg/fmEAJtct)\n\n## Warning!\n\nThis project is a free and open-source initiative maintained by a group of volunteers. It is provided \"as is\" without any warranties or guarantees.\nPlease 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.\n\n## Introduction\n\nThe **mm-radio** project is a Hardware Abstraction Layer (HAL) for the Android operating system that allows communication between the **Modem Manager**\nand the **Android** framework. It implements the Android Interface Definition Language (AIDL) radio interface and \"wires-up\" requests to the\nModem Manager service from the [Mobile broadband connectivity community](https://gitlab.freedesktop.org/mobile-broadband/ModemManager)\n\nIt is designed to work on Android 13 and later versions. Older versions do not have AIDL Radio HAL support.\n\n## The implementation details of mm-radio are as follows:\n\n- The `src/radio` directory contains the main binding logic between `IRadio` interface and MM dbus API.\n- The `src/mm_zbus` directory contains zbus auto-generated proxies for ModemManager dbus API.\n- The `src/utils` directory contains various helpers.\n\n## Building mm-radio using AOSPLESS within a Docker container\n\nTo build the mm-radio project using the AOSPLESS approach within a Docker container, you can follow these steps:\n\n1. **Install Docker:** Run the following commands to install Docker on your system:\n\n    ```\n    $ sudo apt install docker.io\n    $ sudo usermod -aG docker $USER\n    ```\n\n- **Note:** Don't forget to reboot your PC to apply group configuration changes.\n\n2. **Clone the project:** Use the following command to clone the mm-radio project:\n\n    ```\n    $ git clone https://github.com/GloDroid/mm-radio.git\n    $ cd mm-radio\n    ```\n\n3. **Build the project:** Run the following command to build the project:\n\n    ```\n    $ make ci_fast\n    ```\n\n- 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):\n\n    ```\n    $ make bd\n    ```\n\n**Note:**\n\n- If you encounter permission denied errors when running for the first time, try rebooting your device and running the command again.\n- To view mm-radio logs after running `make bd`, export the environment variable `export ADBLOG=1`.\n\n## Embedding the mm-radio project into your build\n\nTo embed the mm-radio project into your build, you can use the AOSPEXT make scripts to build mm-radio, Modem Manager, and related repositories.\n\n1. **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)\n2. **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)\n3. **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)\n\n## Contributing\n\nWhen contributing to this repository, please follow these guidelines:\n\n1. **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.  \n   (In a simple form just make sure to include a Signed-off-by line in your commits)\n2. **Local CI:** Before submitting a patch, ensure that it passes a local CI run by using the `make ci` command.\n3. **Commit message:** Keep the commit message clean and describe the changes made in the patch.\n4. **Avoid mixing changes:** Avoid mixing bug fixes, refactors, and new features in a single patch. This is considered a bad practice.\n5. **Use common prefix for commits:** Use the `mm-radio: ` prefix for commits.\n\nPlease make sure that your contributions follow the above guidelines to ensure that the review process is as smooth as possible.\n\n## Project status\n\nPlease find the latest status of the project at: [Link](https://github.com/GloDroid/mm-radio/issues/10)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglodroid%2Fmm-radio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglodroid%2Fmm-radio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglodroid%2Fmm-radio/lists"}