Engine rewrite release. The 8-pass sed pipeline is dead — one streaming awk pass now edits packages.xml, byte for byte.
What's new:
- Single-pass streaming engine — one walk, one write. Everything outside your user apps is preserved verbatim instead of being reformatted.
- Fixed invalid XML on multi-line packages.xml — wrapped attributes no longer cause duplicate installer attributes. Package Manager rejections from this are gone.
- No more file growth — the old normalization added junk on every boot. v1.6.1 is byte-identical on repeat runs. Flash it, reboot twice, diff is empty.
- Full ABX variant support — installerUid-int, packageSource-int, isOrphaned-bool, installInitiatorUninstalled-bool handled in patch, DB and restore.
- OTA updates — your manager will now notify you when a new BKI build drops.
- New regression harness (tools/bki_debug.sh) — validates the real module code against any packages.xml dump. 24/24 green on a real 868-package file.
Uninstall restore rebuilt on the same engine, DB schema unchanged — safe upgrade from v1.6.0.
Seeing "Abnormal PM" in Native Detector?
That's residue from old BKI versions (pre-1.6.0) — it used to patch system apps too, and those changes stay in packages.xml even after updating. ND sees system apps with store installer metadata and flags it.
Fix:
1. Flash KOW's fork of BKI
2. Reboot — it reverts the system app changes
3. Remove the fork, Install the latest official BKI, reboot
ND goes clean and you keep the UNKNOWN_INSTALLED fix.
Update and reboot. Feedback welcome as always.