Wanted: install it and the two office cameras are already there - but without the release carrying their admin password where anyone with the zip can read it. "Encode it" does not achieve that; anything the installer can decode, anyone holding the installer can decode. pkg/demo seals the camera list with AES-256-GCM under a key that is NOT in the package: a 120-bit unlock code minted when the bundle is sealed, given to whoever runs setup by voice or message, typed once. The code is random, so it is key material directly through SHA-256; a human- chosen passphrase would need a KDF and a dependency, 120 random bits do not. The sealed file contains the format marker and noise. Tested: the password and the host do not appear in it, a wrong code and a flipped byte are both refused as ErrWrongCode, every seal differs. behavision-demo-pack seals; it runs on the build machine and is never shipped. The code is printed once and stored nowhere. behavision-setup, on finding demo-cameras.enc beside the engine source, asks for the code BEFORE the ten-minute download so a mistyped one costs seconds, and adds the cameras at the end - through the running engine's own Add Camera endpoint, not by writing its file. The store's save() is what applies DPAPI to the password on Windows, so this is how the credential ends up encrypted and machine-bound on the demo PC rather than in cameras.json for anyone who can read ProgramData. It then marks the PC standalone, so the app opens on Live instead of asking for an installation code it will never get. Which found the gap that DPAPI only works if pywin32 is importable, and nothing had ever pulled it in - every Windows install to date would have logged the warning and written camera passwords in the clear. Added as a Windows-only dependency. Verified in a clean container: a wrong code refused, the right one unlocks two cameras, every install step passes, both cameras added through the API, standalone set. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KGcjxF1cNLcuwc3DAPcnfj
121 lines
4.1 KiB
Plaintext
121 lines
4.1 KiB
Plaintext
Behavision — installing on a shop PC
|
|
====================================
|
|
|
|
This is a source install. It needs Python and a working internet connection
|
|
once, at setup. After that the shop PC runs on its own.
|
|
|
|
|
|
WHAT YOU NEED FIRST
|
|
-------------------
|
|
|
|
Python 3.10 or newer.
|
|
|
|
https://www.python.org/downloads/windows/
|
|
|
|
On the very first screen of the Python installer, tick
|
|
"Add python.exe to PATH". If you miss it, setup cannot find Python and
|
|
you will have to run the Python installer again.
|
|
|
|
|
|
SETTING UP
|
|
----------
|
|
|
|
1. Unzip this whole folder somewhere permanent — for example
|
|
C:\Behavision. Keep the files together; behavision-setup.exe looks for
|
|
the engine-src folder next to itself.
|
|
|
|
2. Double-click behavision-setup.exe
|
|
|
|
It will:
|
|
- find your Python and check it is new enough
|
|
- build a private Python environment under
|
|
C:\ProgramData\Behavision\runtime
|
|
- install the recognition engine and its libraries (from the wheel
|
|
in engine-src; the folder you unzipped is never written to)
|
|
- download the recognition models (a few hundred megabytes)
|
|
- start the engine once to prove it works
|
|
|
|
This takes several minutes. Leave the window open until it says Done.
|
|
If anything fails it prints why, and running it again is safe.
|
|
|
|
DEMO RELEASE ONLY: if the release came with the cameras already set up,
|
|
setup first asks for an unlock code. Type the code you were given. The
|
|
camera details are sealed inside the release and cannot be read without
|
|
it; with it, both cameras are added and the PC is set to run on its own,
|
|
with no head office. Skip the installation-code screen - it will not
|
|
appear.
|
|
|
|
3. Double-click Behavision.exe
|
|
|
|
The window opens and an icon appears in the system tray, next to the
|
|
clock. Right-click the tray icon to open the window again, or to stop
|
|
recognition.
|
|
|
|
|
|
CONNECTING IT TO HEAD OFFICE
|
|
----------------------------
|
|
|
|
The first screen asks for an installation code. Ask whoever manages your
|
|
shops — they create one from the Behavision platform, under the shop.
|
|
|
|
No head office? Choose "set this PC up on its own" on the same screen.
|
|
Recognition, the cameras and the customer list all work locally; nothing is
|
|
sent anywhere.
|
|
|
|
|
|
ADDING A CAMERA
|
|
---------------
|
|
|
|
Cameras → Add. You need the camera's address on the shop network, its
|
|
username and password. Choose your camera's make from the list and the
|
|
stream path is filled in for you — that is the field nobody can look up.
|
|
|
|
Press "Test" before saving. Then press "Check placement" and walk past the
|
|
camera a few times. It will tell you whether the camera can actually
|
|
recognise faces from where it is mounted, which is not the same question as
|
|
whether it is connected.
|
|
|
|
Camera placement matters more than camera quality. Aim for roughly head
|
|
height, facing the direction people walk in. A camera high in a corner
|
|
looking down, or pointing at a bright window or glass door, will connect
|
|
perfectly and recognise almost nobody.
|
|
|
|
|
|
WHERE THINGS LIVE
|
|
-----------------
|
|
|
|
C:\ProgramData\Behavision\ database, logs, camera list, models
|
|
C:\ProgramData\Behavision\runtime the engine's own Python
|
|
|
|
Everything the software writes is under ProgramData. The folder you unzipped
|
|
is never written to, so you can keep it on a shared drive.
|
|
|
|
|
|
STOPPING IT
|
|
-----------
|
|
|
|
Right-click the tray icon and choose Quit. That stops recognition as well —
|
|
leaving it running with no visible control would be worse than stopping it.
|
|
|
|
Closing the window does NOT stop recognition. The window hides and the tray
|
|
icon stays, because a shop assistant clicking X should not switch the shop's
|
|
footfall counting off for the rest of the day.
|
|
|
|
|
|
IF SOMETHING IS WRONG
|
|
---------------------
|
|
|
|
"No Python 3.10 or newer was found"
|
|
Python is missing, too old, or was installed without the
|
|
"Add python.exe to PATH" tick. Reinstall Python with that ticked.
|
|
|
|
Setup fails while installing libraries
|
|
Almost always no internet, or a proxy in the way. The error printed
|
|
just above the failure says which.
|
|
|
|
The window opens but says the engine is not running
|
|
Run behavision-setup.exe again; it will report what is missing.
|
|
|
|
Logs
|
|
C:\ProgramData\Behavision\engine.log
|