Addon Development: Bass Lineout
This page is for Bass: Lineout (vendor/ax86-lite, tools/build.sh).
If you are on classic Bass OS with private/addons/ and unfold_bliss.sh, use the separate guide instead:
→ Addon Development: Legacy Bass OS
Do not mix the two. Lineout does not scan private/addons/ the way older Bass unfold did. Legacy Bass does not use vendor/ax86-lite/vendor_packages/ the same way.
Lineout overview
On Lineout, "addon" work falls into two buckets that both belong to this product line:
Both are documented below. Neither is the old private/addons/ patchset model.
Build packages
Features ship as product packages in the vendor tree.
vendor/ax86-lite/vendor_packages/<Name>/
Android.bp / *.mk
README.md # picked up by Ax86Docs when present
init .rc / .sh # optional; keep package-local when possible
Enable them from vendor/ax86-lite/tools/build.sh (see Building Bass OS):
Adding a new Lineout package
- Create
vendor_packages/YourFeature/with a product.mkand (for apps)Android.bp. - Wire it in
ax86_lite.mkbehind a flag (or always-on if that is intentional). - Add the flag to
tools/build.shhelp and export defaults. - Drop a
README.mdin the package so Ax86Docs picks it up on the next--extrasbuild. - Prefer package-local
init.rc/ scripts. Avoid editing coreaddon_init.rcunless the feature is shared early-boot plumbing.
App docs on this site:
Newer Lineout branches (addons/<id>/)
Some newer ax86-lite branches move packages under addons/<id>/ with addon.cfg and a compat symlink from vendor_packages/<Pkg>. See vendor_packages/Ax86ButtonManager/docs/PORTING-23.2.md in the vendor tree.
On current Lineage 21 / A14 Lineout trees, packages still live directly under vendor_packages/ and are gated by ax86_lite.mk + tools/build.sh. Use that layout unless your branch already has the addons/ integrator.
Runtime overrides (addon_init)
Lineout also supports on-device overrides without rebuilding the ISO. Scripts under /vendor/bin/addon_*.sh run from addon_init.rc after /data is available. They can bind-mount files from /data/misc/ over vendor/system paths, apply settings, and react to property triggers.
This is still the Lineout product path (same vendor tree). It is not the legacy Bass private-addon unfold flow.
GRUB / cmdline toggles (Lineout)
How-tos:
On --extras builds, Touch Mapper can generate the input-port file from Settings. Prefer that UI when available; GRUB flags still matter for headless imaging.
Config files and property triggers (Lineout)
Vendor reference (also in Ax86Docs): OVERRIDES.md and VENDOR_DEPLOYMENT.md in vendor/ax86-lite.
Good uses for runtime overrides
- Field fixes (digitizer axes, DPI) without a new ISO
- Fleet imaging: push
/data/miscfiles, set GRUB flags, reboot - Config Override examples under
vendor/ax86-lite/docs/examples/
Runtime overrides are not how you ship a new privileged app. New apps go under vendor_packages/ with a build flag.
Related (Lineout)
- Building Bass OS
- Ax86Docs
- Config Overrides
- Fleet Management
- Addon Development: Legacy Bass OS (different product tree)