{"id":29190023,"url":"https://github.com/samsung/bluezoo","last_synced_at":"2025-07-01T23:33:01.225Z","repository":{"id":285944993,"uuid":"958459702","full_name":"Samsung/BlueZoo","owner":"Samsung","description":"BlueZ D-Bus API mock running entirely in user space","archived":false,"fork":false,"pushed_at":"2025-06-06T14:53:10.000Z","size":125,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-30T14:53:53.968Z","etag":null,"topics":["bluez","dbus","mock","testing"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/bluezoo","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Samsung.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-01T08:30:22.000Z","updated_at":"2025-06-06T21:38:52.000Z","dependencies_parsed_at":"2025-04-03T14:24:05.701Z","dependency_job_id":"ced23d48-5aff-4f84-9ee4-e69ef6eecea2","html_url":"https://github.com/Samsung/BlueZoo","commit_stats":null,"previous_names":["samsung/bluezoo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Samsung/BlueZoo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FBlueZoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FBlueZoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FBlueZoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FBlueZoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Samsung","download_url":"https://codeload.github.com/Samsung/BlueZoo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samsung%2FBlueZoo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263049859,"owners_count":23405720,"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":["bluez","dbus","mock","testing"],"created_at":"2025-07-01T23:31:14.609Z","updated_at":"2025-07-01T23:33:01.172Z","avatar_url":"https://github.com/Samsung.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BlueZoo\n\nBlueZoo is a BlueZ D-Bus API mock, designed to test applications for BlueZ\nintegration.\n\n## Introduction\n\nBlueZoo provides \"org.bluez\" D-Bus service, allowing developers to test BlueZ\nintegration in their applications without needing actual Bluetooth hardware.\nIt runs entirely in user space, so it can be easily integrated into automated\ntest suites on various CI/CD pipelines.\n\n## Installation\n\nBlueZoo is available as a Python package on PyPI and can be installed using\n`pip`:\n\n```sh\npip install bluezoo\n```\n\n## Usage\n\nBy default, BlueZoo creates \"org.bluez\" service on the D-Bus system bus. In\norder to use an isolated testing environment, it is recommended to run a local\nD-Bus bus and set `DBUS_SYSTEM_BUS_ADDRESS` environment variable to point to\nthe local bus.\n\n1. Start local D-Bus bus:\n\n   ```sh\n   dbus-daemon --session --print-address\n   ```\n\n2. Set `DBUS_SYSTEM_BUS_ADDRESS` environment variable:\n\n   ```sh\n   export DBUS_SYSTEM_BUS_ADDRESS=\u003cBUS-ADDRESS-FROM-STEP-1\u003e\n   ```\n\n3. Run BlueZoo with pre-defined adapters:\n\n   ```sh\n   bluezoo --auto-enable --adapter 00:11:22:33:44:55\n   ```\n\n4. Run your application and test BlueZ integration. For example, you can use\n   `bluetoothctl`, which is a command-line utility provided by BlueZ, to\n   interact with BlueZoo service:\n\n   ```console\n   $ bluetoothctl show 00:11:22:33:44:55\n   Controller 00:11:22:33:44:55 (public)\n           Name: Alligator's Android\n           Powered: yes\n           Discoverable: no\n           Discovering: no\n   ```\n\n## BlueZoo Manager Interface\n\nBlueZoo provides a D-Bus interface for managing the mock service. The manager\ninterface is available at `/org/bluezoo`. It allows to dynamically create and\ndestroy adapters.\n\nRemove adapter `hci0`:\n\n```sh\ngdbus call --system \\\n    --dest org.bluez \\\n    --object-path /org/bluezoo \\\n    --method org.bluezoo.Manager1.RemoveAdapter\n    0\n```\n\nAdd adapter `hci0` with address `00:00:00:11:11:11`:\n\n```sh\ngdbus call --system \\\n    --dest org.bluez \\\n    --object-path /org/bluezoo \\\n    --method org.bluezoo.Manager1.AddAdapter\n    0 '00:00:00:11:11:11'\n```\n\n## BlueZ Interfaces\n\n| Name                                   | Supported | Notes |\n| :---                                   | :-------: | :---  |\n| org.bluez.Adapter1                     |    ✅     |       |\n| org.bluez.AdminPolicySet1              |    -      |       |\n| org.bluez.AdminPolicyStatus1           |    -      |       |\n| org.bluez.AdvertisementMonitorManager1 |    -      |       |\n| org.bluez.AdvertisementMonitor1        |    -      |       |\n| org.bluez.AgentManager1                |    ✅     |       |\n| org.bluez.Agent1                       |    ✅     |       |\n| org.bluez.BatteryProviderManager1      |    -      |       |\n| org.bluez.BatteryProvider1             |    -      |       |\n| org.bluez.Battery1                     |    -      |       |\n| org.bluez.Device1                      |    ✅     |       |\n| org.bluez.DeviceSet1                   |    -      |       |\n| org.bluez.GattCharacteristic1          |    ✅     |       |\n| org.bluez.GattDescriptor1              |    ✅     |       |\n| org.bluez.GattManager1                 |    ✅     |       |\n| org.bluez.GattProfile1                 |    -      |       |\n| org.bluez.GattService1                 |    ✅     |       |\n| org.bluez.Input1                       |    -      |       |\n| org.bluez.LEAdvertisement1             |    ✅     |       |\n| org.bluez.LEAdvertisingManager1        |    ✅     |       |\n| org.bluez.MediaAssistant1              |    -      |       |\n| org.bluez.MediaControl1                |    -      |       |\n| org.bluez.MediaEndpoint1               |    -      |       |\n| org.bluez.MediaFolder1                 |    -      |       |\n| org.bluez.MediaItem1                   |    -      |       |\n| org.bluez.MediaPlayer1                 |    -      |       |\n| org.bluez.Media1                       |    -      |       |\n| org.bluez.MediaTransport1              |    -      |       |\n| org.bluez.Network1                     |    -      |       |\n| org.bluez.NetworkServer1               |    -      |       |\n| org.bluez.obex.AgentManager1           |    -      |       |\n| org.bluez.obex.Agent1                  |    -      |       |\n| org.bluez.obex.Client1                 |    -      |       |\n| org.bluez.obex.FileTransfer1           |    -      |       |\n| org.bluez.obex.Image1                  |    -      |       |\n| org.bluez.obex.MessageAccess1          |    -      |       |\n| org.bluez.obex.Message1                |    -      |       |\n| org.bluez.obex.ObjectPush1             |    -      |       |\n| org.bluez.obex.PhonebookAccess1        |    -      |       |\n| org.bluez.obex.Session1                |    -      |       |\n| org.bluez.obex.Synchronization1        |    -      |       |\n| org.bluez.obex.Transfer1               |    -      |       |\n| org.bluez.ProfileManager1              |    -      |       |\n| org.bluez.Profile1                     |    -      |       |\n\n## Contributing\n\nContributions are welcome! Please read the [CONTRIBUTING](CONTRIBUTING.md)\nguidelines for more information.\n\n## License\n\nThis project is licensed under the GNU General Public License v2.0 - see the\n[LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamsung%2Fbluezoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamsung%2Fbluezoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamsung%2Fbluezoo/lists"}