lineageos
Use when working with LineageOS custom ROM development, including syncing sources, building, device trees, repopick, Gerrit contributions, or LineageOS-specific features. Triggers on "LineageOS", "lineage-sdk", "breakfast", "brunch", "repopick", "vendor/lineage", "lineage.dependencies", "mka bacon".
How do I install this agent skill?
npx skills add https://github.com/hyperb1iss/hyperdroid-skill --skill lineageosIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides standard development workflows and build instructions for LineageOS. All external references and downloads target official, trusted infrastructure managed by Google and the LineageOS project.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerwarn
2/2 files flagged
- ZeroLeakspass
Score: 93/100 · 2 sections analyzed
What does this agent skill do?
LineageOS Development
This skill covers LineageOS custom ROM development - from syncing sources to building and contributing.
Getting Started
Initialize Source
mkdir ~/lineage && cd ~/lineage
# Install repo (if needed)
mkdir -p ~/.bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+x ~/.bin/repo
export PATH="$HOME/.bin:$PATH"
# Init LineageOS 21 (Android 14)
repo init -u https://github.com/LineageOS/android.git -b lineage-21.0 --git-lfs
# Sync
repo sync -c -j$(nproc) --force-sync --no-tags --no-clone-bundle
Build Commands
# Setup environment
source build/envsetup.sh
# Setup device (syncs device repos too)
breakfast <device>
# Build flashable ZIP
brunch <device>
# Or separately:
breakfast <device>
mka bacon
# Output: out/target/product/<device>/lineage-21.0-*-UNOFFICIAL-<device>.zip
Essential Commands
| Command | Purpose |
|---|---|
breakfast <device> | Setup device + sync dependencies |
brunch <device> | breakfast + full build |
mka bacon | Build flashable ZIP |
mka bootimage | Build kernel only |
mka systemimage | Build system only |
repopick <change> | Cherry-pick from Gerrit |
Device Trees
Required Files
device/<vendor>/<device>/
├── lineage_<device>.mk # Product makefile
├── lineage.dependencies # Repo dependencies
├── vendorsetup.sh # Add to lunch
├── BoardConfig.mk # Hardware config
├── device.mk # Packages and configs
└── extract-files.sh # Vendor blob extraction
lineage_<device>.mk
# Inherit device
$(call inherit-product, device/vendor/device/device.mk)
# Inherit LineageOS common
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
PRODUCT_NAME := lineage_device
PRODUCT_DEVICE := device
PRODUCT_BRAND := Vendor
PRODUCT_MODEL := Device Name
PRODUCT_MANUFACTURER := Vendor
lineage.dependencies
[
{
"repository": "android_kernel_vendor_device",
"target_path": "kernel/vendor/device"
},
{
"repository": "android_device_vendor_device-common",
"target_path": "device/vendor/device-common"
},
{
"repository": "proprietary_vendor_device",
"target_path": "vendor/device"
}
]
repopick - Cherry-picking from Gerrit
# Single change
repopick 12345
# Multiple changes
repopick 12345 12346 12347
# By topic
repopick -t feature-topic
# With dependencies
repopick -Q 12345
# Force overwrite local changes
repopick -f 12345
# Show what would be picked
repopick -n 12345
Find Change Numbers
- Go to
https://review.lineageos.org - Search for changes
- Change number is in the URL or displayed
Vendor Blobs
Extract from Device
cd device/vendor/device
./extract-files.sh
Extract from OTA/Factory Image
./extract-files.sh ~/Downloads/ota.zip
proprietary-files.txt Format
# Audio HAL
vendor/lib64/hw/audio.primary.platform.so
vendor/etc/audio_policy_configuration.xml
# With destination path
vendor/lib64/lib.so:vendor/lib64/libfoo.so
# From another device
vendor/lib64/lib.so|other_device
LineageOS Features
Trust Interface
Security dashboard showing device integrity:
# device.mk
PRODUCT_PACKAGES += \
LineageTrust
LiveDisplay
Hardware-accelerated display tuning:
PRODUCT_PACKAGES += \
lineage.livedisplay@2.0-service-sdm
Styles / Themes
System theming support:
PRODUCT_PACKAGES += \
ThemePicker
Key Directories
| Path | Purpose |
|---|---|
vendor/lineage/ | LineageOS additions |
lineage-sdk/ | LineageOS SDK |
device/<vendor>/<device>/ | Device tree |
kernel/<vendor>/<device>/ | Kernel source |
vendor/<vendor>/ | Proprietary blobs |
Contributing
Setup Gerrit Access
git config --global review.review.lineageos.org.username <username>
Submit Change
# Create branch
repo start my-feature .
# Make changes
git add -A
git commit -m "subsystem: Short description
Detailed explanation.
Change-Id: <auto-generated>"
# Push for review
git push ssh://<username>@review.lineageos.org:29418/<project> HEAD:refs/for/<branch>
Commit Message Format
subsystem: Short description
Longer explanation wrapped at 72 characters.
Explain why, not what.
Change-Id: I1234567890abcdef...
Common Issues
Breakfast Fails - Missing Repos
# Re-sync device tree
repo sync device/vendor/device kernel/vendor/device vendor/device
Build Fails - SELinux
# Find denials
adb shell dmesg | grep "avc: denied"
# Generate policy (on host)
adb shell dmesg | audit2allow -p out/target/product/<device>/root/sepolicy
Missing Blobs
Check logcat for:
E linker: cannot find symbol...
E ServiceManager: Could not find service...
Add missing files to proprietary-files.txt and re-extract.
Quick Reference
# Full workflow
source build/envsetup.sh
breakfast cheeseburger
brunch cheeseburger
# Just kernel
mka bootimage
# Cherry-pick fix
repopick 12345
# Sync everything
repo sync -c -j$(nproc)
# Sync one project
repo sync packages/apps/Settings
# Clean build
m clean && brunch <device>
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/hyperb1iss/hyperdroid-skill/lineageos">View lineageos on skillZs</a>