# AJA Intercom 1.0.0/code1 — controlled libusb corresponding source

Prepared distribution; **owner publication/adoption and USB runtime qualification still required**.
The Maven libusb correspondence in the previous candidate was unproven. This release instead
uses `com.herohan:UVCAndroid:1.0.13-ajalibusb.1`: the original 1.0.13 AAR with ONLY
`jni/{armeabi-v7a,arm64-v8a,x86_64}/libusb1.0.so` replaced by our controlled source build.
Every other AAR payload file (Java/JNI UVC, JPEG, yuv, resources, license metadata) is preserved byte for byte.

Complete sources: UVCAndroid commit `6018c7f20238832929cf61427427bb7828056260`, including
vendor-modified libusb 1.0.25.11692, platform backends, headers, copyright and ndk-build/CMake
recipes. Archive SHA-256 `1638ac12f67f84af2cf85740ff2ea961ab462f7205f32a0b6429d161703b8f1b`.
No source patch. Controlled build uses Android NDK **28.1.13356709**, android-21,
APP_OPTIM=release, three release ABIs. Prefix-map flags normalize compiler paths; the upstream
Android.mk already includes both 16 KB linker flags. Exact invocation, source hash, per-ABI
binary hashes, unchanged AAR entries and AAR hash are in `libusb-build.json` in the source kit.

## Build from the distributed source (no proprietary application code needed)

Install the pinned NDK through Android SDK manager. Extract `UVCAndroid-source.zip`, set
ANDROID_HOME, then run:

```sh
bash rebuild-libusb.sh /absolute/path/UVCAndroid-6018c7f20238832929cf61427427bb7828056260 /absolute/new/work-without-spaces
```

The script copies all JNI source inputs to a fresh space-free directory and builds only libusb.
This is the replacement build path; exact release regeneration uses `scripts/build-android-libusb.py`
from an AJA checkout (the script/lock are also included for audit). Build flags differ only in prefix
mapping when using the standalone path; API/optimization/source/ABI are the same. Verify exported
symbols/SONAME `libusb1.0.so` and 16 KB alignment. Expected unmodified release hashes are in
`libusb-build.json`; a modified rebuild is expected to have different hashes.

## Modify and relink

See `RELINK.md` and `repackage-apk.py` in this distribution. Obtain the full APK object code for
this version from AJA's source distribution page or the written offer. Android bytecode/native
objects in the APK are the application relink materials. The separate libusb is dynamically
linked and the app does not require an AJA signature to run. Replace only libusb for each ABI,
align, then sign with your own key. No AJA Upload/App Signing private key is needed.

Full LGPL-2.1 and all original native copyright/license texts are in `licenses/` and the in-app
notices. Reverse engineering to debug modifications of the LGPL component is permitted.
The distributor's public terms must preserve that exception.

## Distributor offer — owner must adopt before distribution

AJA Studio offers, to any third party, for at least three years after the **last** distribution of
AJA Intercom 1.0.0/code1, the complete machine-readable corresponding source of its shipped
LGPL libusb (including vendor changes), build scripts, licenses and application object/relink
materials needed to modify/relink it. Electronic delivery is free; physical delivery costs no more
than actual distribution cost. Requests: **biuro@ajastudio.pl**, identify app/version/code1.
Fulfil without requiring a purchase, NDA, organizational login or a reason for modification.
Keep this kit, the final signed APK objects, hashes and instructions until at least that date.
Assign a monitored mailbox/operator; extend retention when distributing this version again.

Public page: https://ajastudio.pl/aja-intercom/third-party/ (the earlier address https://ajastudio.pl/aja-intercom/open-source/ redirects there and stays valid, because the in-app notice of this release names it)
The page and email fulfilment are **not operationalized by preparing these local files**.
An upstream repository link does not fulfil our offer. Publication and owner acceptance are
required before shipping notices that make this offer. See the publication runbook.

License basis: [LGPL 2.1 sections 4 and 6](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html).
