upddated readme

This commit is contained in:
Lasan Mahaliyana
2026-04-06 22:57:10 +05:30
parent f8b461b60a
commit fbf6f9d0c9
+24 -132
View File
@@ -9,142 +9,34 @@
https://github.com/user-attachments/assets/048afa1e-40a4-4351-a859-c81b642fc6e3
## What
This repo consists of the entirety of google's open source nearby library. Currently, it is seperated into 3 sections.
- Sharing
- Connections
- Presence
Linux specific implementation and compatibility shims are provided for building **Sharing** and **Connections**.
Nearby presence may or may not build. I haven't tested it.
## Why
This repo could've been a PR on the official repo. All I've done is implement the platform abstraction layer google has provided for a linux specific environment.
It's not like I haven't made a PR towards the official repo. I got tired of begging the official nearby maintainers for a PR review. So here we are.
Moreover, all I've wanted was seamless file sharing between my android devices and my linux workstation + laptop. With this repo and the example application provided here,
it accomplishes that goal perfectly. This repo wasn't created out of any altruistic goals or out of the goodness of my heart. I had a problem. I solved it. Simple as that.
This is an unofficial Linux-focused fork of Nearby.
## Purpose
## How
The primary goal of this repository is to provide reusable Linux libraries/APIs for Nearby.
### How to install
*coming soon*
### How to build
*coming soon*
### How to contribute
*coming soon*
Nearby Share sample applications are included and will continue to be supported, but they are examples first and library integration is the main long-term target.
## Special thanks
## Documentation
Technical deep dives are being moved to the project wiki so this README can stay focused on setup and status.
- Wiki: https://github.com/kidfromjupiter/nearby/wiki
## Requirements
To run this project on Linux, you need:
- BlueZ `5.86` or higher
- `NetworkManager`
- `Avahi`
- Qt (required for the tray UI app)
## Installation (End Users)
1. Download the latest release archive from the Releases page.
- https://github.com/kidfromjupiter/nearby/releases
2. Extract it:
```bash
tar -xzf nearby-file-share-linux-*.tar.gz
```
3. Install the application, shared library, and launcher:
(run this from the extracted bundle directory)
```bash
./install_nearby_file_share.sh
```
4. Apply a temporary BlueZ service override (required for now).
Create/edit the `bluetooth.service` override:
```bash
sudo systemctl edit bluetooth
```
Add:
```ini
[Service]
ExecStart=
ExecStart=/usr/local/libexec/bluetooth/bluetoothd -E --debug=src/plugin.c --noplugin=bap,bass,mcp,vcp,micp,ccp,csip,tmap,asha,midi
```
Then reload and restart:
```bash
sudo systemctl daemon-reload
sudo systemctl restart bluetooth
```
These plugins are currently disabled due to an ongoing likely upstream BlueZ bug:
`bap,bass,mcp,vcp,micp,ccp,csip,tmap,asha,midi`.
This workaround will be removed once the issue is fixed.
This installs to `~/.local` by default.
For system-wide installation:
```bash
./install_nearby_file_share.sh --system
```
The installer also installs:
- `nearby_qml_file_tray_app`
- `libnearby_sharing_api_shared.so`
- `.desktop` launcher entry
- launcher icon
## Build From Source
Build and install the Linux Nearby Sharing library:
```bash
./sharing/linux/install_nearby_sharing_service.sh
```
Build tray sample app:
```bash
cd sharing/linux/qml_tray_app
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DNEARBY_PREFIX=/usr/local
cmake --build build -j
./build/nearby_qml_file_tray_app
```
## Current Status and Compatibility
The Linux implementation currently works with the reverse-engineered certificate manager used in this project.
Compatibility can still break if Google changes certificate manager behavior or protocol details. That component is closed source, so upstream regressions may be hard to diagnose immediately.
## Test Scope and Known Limits
- Single-file sharing has been tested.
- Multi-transfer behavior in one app lifetime has not been fully validated.
- Current practical testing often restarts the app before a new transfer.
In this project, a "session" means one application lifetime (start to exit).
After one transfer, some endpoints/internal state can reset or change, and this is still being investigated.
## Known Issues
- Linux hotspot startup can be slow.
- Connecting to another device's hotspot can be slow on Linux.
- Android-initiated connection formation can be very slow.
- 5 GHz hotspot discovery and connection support is currently removed due to Intel Wi-Fi driver instability related to LAR behavior on Linux. There is no known fix yet; this may be re-enabled in a later release.
A likely area to investigate is connection negotiation paths that Linux may not handle optimally yet.
## Wi-Fi Direct
Wi-Fi Direct is theoretically possible, but not implemented yet.
Reason: NetworkManager does not natively support the Wi-Fi Direct Group Owner flow required here.
## Contributing
- General: `CONTRIBUTING.md`
- Linux-specific: `LINUX_CONTRIBUTING.md`
## License
Released under `LICENSE`.
https://github.com/proatgram and https://github.com/vibhavp
*they were the original authors of the linux platform support [PR](https://github.com/google/nearby/pull/2098) that I have based much of this codebase upon. I am standing on the shoulders
of giants*