[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79354":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":27,"discoverSource":28},79354,"Bada","kyujin-cho\u002FBada","kyujin-cho","Pure Android Quick Share implementation without GMS dependency",null,"Kotlin",219,4,2,11,0,16,52,110,48,2.1,false,"main",[],"2026-06-12 02:03:50","# Bada\n\nBada is an Android app for sending and receiving files with **Quick\nShare \u002F Nearby Share** peers without using Google Play Services for the\nprotocol implementation.\n\nIt targets interop with stock Android Quick Share, NearDrop on macOS, and\nQuick Share on Windows. AirDrop, AWDL, iPhone discovery, and Apple-side\ninterop are out of scope.\n\n\u003Cimg src=\"docs\u002Fassets\u002Fsend-ui.jpg\" alt=\"Bada send UI screenshot\" width=\"360\">\n\u003Cimg src=\"docs\u002Fassets\u002Fsettings.jpg\" alt=\"Bada settings UI screenshot\" width=\"360\">\n\n## What It Does\n\n- Receives files from nearby stock Quick Share senders over same-LAN shared\n  Wi-Fi and Wi-Fi Direct paths, then saves them to Downloads or to a folder you\n  choose in the app.\n- Sends files from Android's system share sheet to stock Quick Share peers over\n  same-LAN shared Wi-Fi and Wi-Fi Direct paths.\n- Sends folders from the app's **Send folder** button while preserving the\n  folder layout on the receiver.\n- Shows the same 4-digit confirmation PIN flow users expect from Quick Share.\n- Lets you choose the advertised Quick Share device name shown to senders.\n\nBada is still an early project. Current builds support both same-LAN shared Wi-Fi mode and\nWi-Fi Direct mode when sending files to or receiving files from stock Android\nQuick Share devices.\n\n## Install\n\nBada supports Android 7.0 or newer (`minSdk = 24`).\n\n### Download a pre-built APK\n\nEnd users can install the signed release APK from the\n[GitHub Releases page](https:\u002F\u002Fgithub.com\u002Fkyujin-cho\u002FLibreDrop\u002Freleases).\n\n1. Open the latest release and download the `.apk` asset.\n2. If Android prompts for it, allow your browser or file manager to install\n   apps from unknown sources. Google's Android help page for\n   [downloading apps from other sources](https:\u002F\u002Fsupport.google.com\u002Fandroid\u002Fanswer\u002F9457058?hl=en)\n   covers the stock flow.\n3. Open the downloaded APK and confirm the install prompt.\n\n### Build from source\n\nContributors and developers can build and sideload the debug APK:\n\n```bash\n.\u002Fgradlew :app:assembleDebug\nadb install -r app\u002Fbuild\u002Foutputs\u002Fapk\u002Fdebug\u002Fapp-debug.apk\n```\n\nRequirements:\n\n- JDK 17 and an Android SDK.\n- Wi-Fi and Bluetooth enabled for the best interop coverage.\n\nThe debug package id is `dev.bluehouse.bada.debug`; release builds use\n`dev.bluehouse.bada`.\n\n## Use It\n\n### Receive\n\n1. Open Bada and grant the requested permissions.\n2. Leave the receiver service running. The persistent notification shows the\n   Wi-Fi network Bada is receiving on.\n3. Use **Always visible** when you want other devices to see this phone even\n   when no sender pulse is active.\n4. Keep the default save location, or choose another folder from **Save\n   received files to**.\n5. When a sender starts a transfer, compare the PIN and tap **Accept**.\n\nReceived files are written to the selected folder. The default is the system\nDownloads folder.\n\n### Send\n\n1. Share a file from any Android app and choose **Send via Quick Share**.\n2. Wait for a nearby peer row to appear.\n3. Tap the peer, compare the PIN, and complete the transfer.\n\nTo send a whole folder, open Bada and tap **Send folder**.\n\n## Compatibility\n\n| Peer | Current expectation |\n| --- | --- |\n| Stock Android Quick Share on Pixel \u002F GMS devices | Supported for both sending and receiving in same-LAN shared Wi-Fi mode and Wi-Fi Direct mode, where the devices do not need to be on the same Wi-Fi network. BLE-assisted discovery\u002Fbootstrap is covered by the stock Android runbook. |\n| Stock Samsung Quick Share \u002F One UI | Supported for both sending and receiving in same-LAN shared Wi-Fi mode and Wi-Fi Direct mode, where the devices do not need to be on the same Wi-Fi network. Recent testing also validated BLE GATT bootstrap into a Galaxy S26 Ultra and Z Fold 7; read the Samsung note below before interpreting noisy GATT logs. |\n| NearDrop on macOS | Not tested |\n| Quick Share on Windows | Not tested |\n\nNetworking notes:\n\n- Same-LAN shared Wi-Fi mode means the same SSID\u002FVLAN with mDNS multicast\n  allowed.\n- Wi-Fi Direct mode covers the off-LAN Quick Share path: both devices do not\n  have to be connected to the same Wi-Fi network, because they use nearby\n  discovery\u002Fbootstrap and then transfer over a direct Wi-Fi link.\n- Guest Wi-Fi, client isolation, routed VLANs, or enterprise multicast\n  filtering can make peers disappear.\n- Bluetooth Classic\u002FRFCOMM is intentionally not exposed in user-facing flows.\n\n## Permissions\n\nBada asks only for permissions tied to receiving, discovery, and transfer\nvisibility:\n\n- **Nearby Wi-Fi devices**: discovers and advertises Quick Share peers on the\n  local network.\n- **Bluetooth advertise \u002F scan**: sends and listens for BLE pulses used by\n  nearby Quick Share discovery.\n- **Bluetooth connect**: opens BLE direct links and reads Bluetooth adapter\n  state needed by nearby discovery.\n- **Notifications**: shows the foreground receiver, incoming consent prompts,\n  and transfer progress.\n- **Location on older Android versions**: Android 11 and lower route BLE scan\n  results and some Wi-Fi APIs through location permissions. Bada does not\n  use physical location.\n- **Battery optimization exemption**: optional, but useful on OEM builds that\n  aggressively stop background foreground services.\n\n## Troubleshooting\n\n- If no peers appear, first put both devices on the same Wi-Fi network and\n  disable guest\u002Fclient isolation.\n- If a stock Android sender cannot see Bada, open Bada and enable\n  **Always visible**.\n- If Samsung logs show `No handler registered`, check whether the sender or\n  receiver UI is still progressing before treating it as a failure.\n- If installs stall on vivo \u002F OriginOS \u002F Funtouch OS, the vendor security\n  prompt may be waiting for manual approval.\n- If received files are missing, check the selected save folder and whether the\n  transfer reached **Completed**.\n\n## Project Docs\n\n- [Architecture](docs\u002Farchitecture.md): the contributor\u002Fprotocol README that\n  used to live here, preserved verbatim.\n- [Stock Android interop runbook](docs\u002Ftesting\u002Finterop-stock-quick-share-android.md)\n- [NearDrop macOS interop runbook](docs\u002Ftesting\u002Finterop-neardrop-macos.md)\n- [Release builds](docs\u002Frelease.md)\n- [Research notes](docs\u002Fresearch\u002F)\n- [Agent\u002Fcontributor guidance](AGENTS.md)\n\n## Build And Test\n\n```bash\n.\u002Fgradlew :app:assembleDebug\n.\u002Fgradlew :core-protocol:test\n.\u002Fgradlew staticAnalysis\n.\u002Fgradlew check\n```\n\nThe core protocol module is pure Kotlin\u002FJVM and intentionally has no\n`android.*` imports; Android-specific discovery, services, and UI live in\nseparate modules. See [Architecture](docs\u002Farchitecture.md) for the module map\nand protocol reading guide.\n\n## Reference Material\n\n- Protocol spec: \u003Chttps:\u002F\u002Fgithub.com\u002Fgrishka\u002FNearDrop\u002Fblob\u002Fmaster\u002FPROTOCOL.md>\n- NearDrop source: \u003Chttps:\u002F\u002Fgithub.com\u002Fgrishka\u002FNearDrop>\n- Google's UKEY2 handshake spec: \u003Chttps:\u002F\u002Fgithub.com\u002Fgoogle\u002Fukey2>\n","Bada 是一款用于在不依赖 Google Play 服务的情况下，通过 Quick Share\u002FNearby Share 协议发送和接收文件的 Android 应用。其核心功能包括支持局域网内 Wi-Fi 和 Wi-Fi Direct 传输路径上的文件交换，并保持文件夹结构；提供与原生 Android Quick Share、macOS 上的 NearDrop 以及 Windows 上的 Quick Share 的互操作性；显示用户熟悉的四位数确认 PIN 码流程以确保安全传输。此外，用户还可以自定义设备名称。Bada 适用于需要跨平台共享文件但希望避免使用 Google Play 服务的场景，特别是在教育机构或企业环境中，对隐私和控制有较高要求时。当前版本已支持 Android 7.0 及以上系统。","2026-06-11 03:57:44","CREATED_QUERY"]