- BeaconDB là một dịch vụ định vị trực tuyến nhằm thay thế Mozilla Location Services, xây dựng vùng phủ dựa trên dữ liệu Wi-Fi và trạm gốc do người dùng tự gửi lên
- Việc thu thập dữ liệu theo cơ chế opt-in; dữ liệu được gửi sẽ được tổng hợp rồi cung cấp cho các client của beaconDB API, và dự kiến sẽ công khai các bản dump dữ liệu đã làm rối trong tương lai
- Hiện vẫn là dịch vụ thử nghiệm, nên vùng phủ Wi-Fi theo khu vực có thể còn thiếu; khi thất bại, dịch vụ sẽ fallback sang vị trí trạm gốc dựa trên bản dump dữ liệu cuối cùng của MLS hoặc ước lượng dựa trên IP
- Trên Android, có thể gửi dữ liệu bằng NeoStumbler, Tower Collector, Network Survey, và có thể dùng BeaconDB làm dịch vụ định vị thông qua cấu hình microG, geoclue, Firefox
- Nhà phát triển có thể dùng endpoint tương thích với MLS/Ichnaea API, đồng thời cần thiết lập User-Agent để nhận diện client
Nguyên tắc thu thập dữ liệu vị trí
- BeaconDB vận hành cơ sở dữ liệu vị trí dựa trên việc thu thập opt-in
- Dữ liệu công khai được làm rối để bảo vệ người gửi và người đóng góp
- Để cập nhật dữ liệu hiện có, cần có thông tin chỉ có thể thu được trong phạm vi vật lý của beacon, nhờ đó cấu trúc có khả năng chống lạm dụng cao hơn
- Dữ liệu được gửi sẽ được tổng hợp rồi trở nên khả dụng cho các client của beaconDB API
- Trong tương lai, các bản dump dữ liệu đã làm rối sẽ được công khai theo giấy phép public domain
- Có thể xem cách xử lý dữ liệu được gửi trong privacy notice
Ứng dụng đóng góp vùng phủ
-
NeoStumbler
- NeoStumbler là ứng dụng Android giúp dễ dàng gửi vùng phủ mới
- Có thể tải từ Accrescent, F-Droid, Google Play, GitHub
- Từ v1.5.1, nếu bấm “yes” trong lời nhắc thì endpoint sẽ được đặt thành beaconDB
- Với các phiên bản cũ hơn, chọn beaconDB trong Settings → Endpoint → Suggested services thì cấu hình đúng sẽ tự động được áp dụng
-
Tower Collector
- Tower Collector là ứng dụng đã được dùng lâu năm để thu thập dữ liệu trạm gốc
- Có thể tải từ F-Droid hoặc Google Play
- Phiên bản mới nhất mặc định tải dữ liệu lên beaconDB
-
Network Survey
- Network Survey là công cụ dành cho việc thu thập dữ liệu cục bộ toàn diện
- Có thể tải từ F-Droid hoặc Google Play
- Bật gửi dữ liệu lên beaconDB trong Upload Settings, bên dưới Upload to Database trên màn hình chính
Giới hạn hiện tại và hành vi fallback
- BeaconDB hiện vẫn mang tính thử nghiệm, nên ước lượng vị trí có thể không chính xác hoặc dịch vụ có thể không ổn định
- Vì đây là cơ sở dữ liệu được xây dựng lại từ đầu, nhiều khả năng khu vực bạn sử dụng chưa có vùng phủ Wi-Fi
- Nếu không thể ước lượng vị trí bằng Wi-Fi, dịch vụ sẽ fallback sang vị trí trạm gốc xấp xỉ dựa trên bản dump dữ liệu cuối cùng của MLS
- Biện pháp cuối cùng là dùng ước lượng dựa trên IP
- Dữ liệu được gửi mất tối thiểu 5 phút để trở nên khả dụng trong beaconDB API
- Hiện chưa cung cấp bản dump dữ liệu; công việc làm rối dữ liệu nhằm bảo vệ quyền riêng tư của người đóng góp và chủ sở hữu AP đang được tiến hành
Cách cấu hình client
-
microG
- Nếu Android ROM hỗ trợ microG, có thể đặt beaconDB làm dịch vụ định vị trực tuyến bằng engine định vị mới của microG
- Engine định vị này ổn định từ v0.3.6
- Chọn beaconDB trong microG Settings → Location → More options → Select online location service
- Cần bật ‘Request from online service’ cho cả ‘Wi-Fi location’ và ‘Mobile network location’
-
geoclue
[wifi]
enable=true
url=https://api.beacondb.net/v1/geolocate
submit-data=true
submission-url=https://api.beacondb.net/v2/geosubmit
submission-nick=geoclue
-
Firefox
- Có thể cấu hình Firefox để gửi yêu cầu trực tiếp đến beaconDB hoặc lấy vị trí thông qua geoclue trên Linux
- Để dùng trực tiếp, trong
about:config, đặt geo.provider.network.url thành https://api.beacondb.net/v1/geolocate
- Để dùng geoclue, bật
geo.provider.use_geoclue
API và tài nguyên dành cho nhà phát triển
1 bình luận
Ý kiến trên Hacker News
Dù nói rằng dữ liệu được thu thập một cách có đạo đức là theo cơ chế opt-in, tôi vẫn tò mò thực tế nó hoạt động ra sao
Nếu hàng xóm quét mạng WiFi của tôi rồi tải lên BeaconDB thì chẳng phải tôi đâu có đồng ý. Chính sách quyền riêng tư nói rằng chỉ cần thêm
_optoutvào tên WiFi, nên trông nó giống opt-out hơn là opt-inMạng WiFi phát sóng sự hiện diện của nó ra mọi hướng 10 lần mỗi giây. Ai ở gần cũng có thể bắt được, nên việc không đưa thông tin nhạy cảm vào SSID mạng là điều đã được biết rộng rãi. Vì vậy trong trường hợp này, có thể nói là gần với việc có thể opt-out hơn
Bất kỳ bản dump dữ liệu nào cũng sẽ chỉ chứa dữ liệu băm mật mã không thể đảo ngược hoặc dữ liệu tổng hợp
Trước đây khi tôi tìm thứ tương tự cho GrapheneOS thì việc cung cấp dịch vụ định vị tùy chỉnh là không thể
Nếu có thể dùng cái này trên GrapheneOS thì thật tuyệt. Sẽ rất vui nếu có ai biết cách làm mà không cần microG. Tôi đang dùng GMS được sandbox
Có vẻ như tác giả không có thứ gì như ứng dụng di động mã nguồn mở cho phép thu thập dữ liệu trực tiếp từ thiết bị. Đặc biệt nếu opt-in là theo thiết bị thu thập, tôi tò mò dữ liệu đã được gom từ đâu
Chẳng phải vấn đề cốt lõi của MLS là bị Skyhook quấy rối/kiện tụng bằng bằng sáng chế sao? Tôi tò mò liệu có ai biết bằng sáng chế nào liên quan và beaconDB tránh vấn đề đó như thế nào không
Nếu đọc issue về việc MLS ngừng hoạt động[1], có vẻ như nhiều tổ chức hiện có như /e/ foundation, Graphene cũng quan tâm đến việc cung cấp dịch vụ thay thế. Tôi tò mò hiện có phải đang có nhiều nhà cung cấp dịch vụ định vị mã nguồn mở cạnh tranh nhau, hay đây là dự án duy nhất có thể truy cập công khai hiện nay
Bản thân dự án rất hay, nhưng trên GitHub[2] trông giống một dự án một người làm với mức độ tham gia không nhiều. Tôi tò mò liệu họ có đang thảo luận với những người khác có mục tiêu tương tự về việc mở rộng dự án và hợp tác hay không. Nếu nhận được sự hỗ trợ từ cộng đồng lập trình viên hiện có, có vẻ dự án có thể tiến thêm một bậc
https://github.com/mozilla/ichnaea/issues/2065
https://github.com/beacondb/beacondb
Sửa: Có vẻ dự án thực sự nằm trên Codeberg[3], và ở đó có thêm một chút đóng góp từ những người khác ngoài lập trình viên chính so với GitHub
Dự án ban đầu ở GitHub nhưng nay đã chuyển sang Codeberg
Tôi tò mò có lý do gì khiến API không trả về vị trí của các điểm truy cập để client tự tính toán vị trí hay không
Hiện vẫn chưa tìm thấy client nào đã được triển khai để tận dụng loại dữ liệu đó. Nếu bạn đã thấy hoặc đang phát triển thứ như vậy thì rất mong được báo cho biết
Hy vọng GrapheneOS sẽ sớm hỗ trợ cái này. Hiện tại các nhà cung cấp GPS không phải Google gần như vô vọng nếu không ở ngoài trời
Dự án thật sự rất tuyệt. Luôn vui khi thấy những người thiên về giải quyết vấn đề lấp đầy khoảng trống mà MLS để lại. Ngoài ra thiết kế cũng xuất sắc
Tôi tò mò không biết hiện còn có thể tải bản dump dữ liệu cuối cùng của MLS ở đâu. Tôi không tìm thấy trên mạng
Tôi đang làm một dự án tìm trạm gốc đang kết nối dựa trên mcc, mnc, cid, v.v. Hiện chỉ lấy dữ liệu từ opencellid và combain, nên nếu có thêm dữ liệu này thì sẽ rất tuyệt
Sẽ tốt nếu hợp tác với geoclue2. Khi MLS ngừng hoạt động, geoclue2 hiện đã vô hiệu hóa định vị dựa trên WiFi
https://gitlab.freedesktop.org/geoclue/geoclue