INTRODUCTION | ABOUT | CFC | LIBCIMBAR
This is an android app for receiving data over the camera as a one-way data channel. It does not use any antennas (wifi, bluetooth, nfc, ...) or other tricks. Notably, this means it works just as well in airplane mode.
The app reads animated cimbar codes. Nearly all the interesting logic is from libcimbar -- included via a git subtree.
The sender component of cfc is a cimbar encoder -- such as https://cimbar.org. Navigate to that website (or use libcimbar's cimbar_send to generate barcodes natively), open a file to initialize the cimbar stream, and point the app+camera at the animated barcode.
The bundled WebView encoder uses the Fountain v2 assets from turtleSST/cimbar-js-bits.
The current personal-use release APK is available here: https://github.com/turtleSST/cfc/releases/tag/v0.6.8-fountain-v2-release
Only arm64-v8a is officially supported at the moment, because that is all I can test for.
The release build is signed with the local Android debug keystore so it can update an existing debug installation without changing the application ID. This is suitable for personal use; a separate private signing key must be configured before public store distribution.
- Install android studio
- Install the android ndk
- Download OpenCV for android
- Create a project with this repo at the root
- update
gradle.propertiessuch thatopencvsdkpoint to wherever you extracted the OpenCV Android SDK.
I found this project incredibly useful for getting started:
https://github.com/VlSomers/native-opencv-android-template
The code in cfc, such as it is, is MIT licensed. It is mostly a blend of various tutorial apps + wrapper code around libcimbar.
The libcimbar code is MPL 2.0. libcimbar's dependencies are a variety of MIT, BSD, zlib, boost, apache, ...