LunaCam Open Source Notices and Source Offer
Last updated: 2026-06-19
This page provides open source license notices and source availability information for the USB-C/UVC camera support included in LunaCam.
Open Source Notice
LunaCam uses open source software for USB-C/UVC camera access. The USB-C camera feature includes UVCCamera, libusb, libuvc, and libjpeg-turbo based components. Copyrights remain with their respective owners. LunaCam uses and distributes these components under their applicable open source license terms.
This product includes software based in part on the work of the Independent JPEG Group.
This notice does not claim endorsement, certification, sponsorship, or approval by UVCCamera, libusb, libuvc, libjpeg-turbo, the Independent JPEG Group, or their contributors.
Distributed USB-C Camera Package
| Android library package | uvccamera-lib-16kb.aar |
|---|---|
| AAR SHA-256 | F6AAD5A65871B3C10985ABDF950C03DAC49158CCB15B47A09CEB4021C180DD09 |
| Included ABIs | arm64-v8a, armeabi-v7a |
| Included native libraries |
libUVCCamera.so,
libusb100.so,
libuvc.so,
libjpeg-turbo1500.so
|
Component Licenses
| Component | Purpose | License | Notice |
|---|---|---|---|
| UVCCamera / Serenegiant USB camera wrapper | USB camera permission, connection, preview, and capture API on Android | Apache License 2.0 | Copyright and Apache License 2.0 notices are preserved. |
| libusb | Native USB access layer for Android USB Host communication | GNU Lesser General Public License version 2.1 | Corresponding source, build instructions, and binary hash records are available under the source offer below. |
| libuvc | USB Video Class camera protocol support | BSD-style license | Copyright, license conditions, and disclaimer notices are preserved. |
| libjpeg-turbo | JPEG/MJPEG frame handling | IJG License and Modified BSD-style license terms | Independent JPEG Group and libjpeg-turbo notices are preserved. |
libusb Source Code Offer
LunaCam includes libusb100.so as part of its USB-C/UVC camera support.
libusb is licensed under the GNU Lesser General Public License version 2.1.
A copy of the LGPL 2.1 license text is available from the official GNU link below.
For the LunaCam USB-C camera package identified on this page, LunaCam does not apply source-code
modifications to libusb. The distributed Android libusb100.so binaries are rebuilt from
libusb source for Android with 16KB page-size compatible build/linker settings.
The corresponding libusb source reference, source modification statement, build instructions,
and binary hash records are available by request. Please contact
[email protected].
This source offer remains valid for at least three years from the last distribution date of the
LunaCam version that includes the listed libusb100.so binaries.
If LunaCam later applies source-level changes to libusb, those changes will be provided as patches under the GNU LGPL 2.1 terms.
libusb Android 16KB Build Method
The distributed libusb100.so binaries are built for Android using unmodified libusb source,
Android ABI toolchains, and linker settings intended to satisfy Android 16KB page-size compatibility.
Build Summary
| Source project | https://github.com/libusb/libusb |
|---|---|
| Source modifications | None by LunaCam for the package identified on this page |
| Output library name | libusb100.so |
| Output ABIs | arm64-v8a, armeabi-v7a |
| Android page-size compatibility | Built with 16KB-compatible linker/build settings and packaged in uvccamera-lib-16kb.aar |
Reference Build Steps
The exact build script, source reference, and build notes are provided with the corresponding source package upon request. The build flow follows this structure:
1. Obtain the libusb source used for the distributed binary.
2. Confirm that no LunaCam source-code patches are applied to libusb.
3. Build libusb for arm64-v8a and armeabi-v7a using the Android NDK.
4. Apply 16KB page-size compatible linker/build settings.
5. Produce libusb100.so for each ABI.
6. Record SHA-256 hashes for each produced binary.
7. Package the binaries into uvccamera-lib-16kb.aar under jni/<abi>/libusb100.so.
8. Verify the APK/AAB native library alignment before release.
16KB Linker Settings
Depending on the build system, LunaCam's libusb Android build uses 16KB-compatible linker settings equivalent to:
-Wl,-z,max-page-size=16384
-Wl,-z,common-page-size=16384
CMake-style example:
target_link_options(usb-1.0 PRIVATE
"-Wl,-z,max-page-size=16384"
"-Wl,-z,common-page-size=16384"
)
ndk-build-style example:
LOCAL_LDFLAGS += -Wl,-z,max-page-size=16384
LOCAL_LDFLAGS += -Wl,-z,common-page-size=16384
Binary Hashes
| Artifact | SHA-256 |
|---|---|
uvccamera-lib-16kb.aar |
F6AAD5A65871B3C10985ABDF950C03DAC49158CCB15B47A09CEB4021C180DD09 |
arm64-v8a/libusb100.so |
40F95B062C4CFB184B31C07A77FD9B60E76C7E15D1DD53428036D7CC9B5DBD76 |
armeabi-v7a/libusb100.so |
96F214252D2C3792178671C133BE6C926E51B8C2B2C0A0B1F269F330D9BF5755 |
Release Verification
LunaCam verifies native library packaging and Android 16KB page-size compatibility
using appropriate Android build validation tools, such as APK Analyzer, readelf, and
zipalign -c -P 16 -v 4.