<< All versions
Skill v1.0.1
currentAutomated scan100/100hyperb1iss/hyperdroid-skill/lineageos
3 files
──Details
PublishedSeptember 26, 2026 at 03:55 AM
Content Hashsha256:7e65c04a8723185e...
Git SHAfebe9c56fed3
Bump Typepatch
──Files
Files (1 file, 5.9 KB)
SKILL.md5.9 KBactive
SKILL.md · 314 lines · 5.9 KB
version: "1.0.1" name: lineageos description: 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".
LineageOS Development
This skill covers LineageOS custom ROM development - from syncing sources to building and contributing.
Getting Started
Initialize Source
bash
mkdir ~/lineage && cd ~/lineage# Install repo (if needed)mkdir -p ~/.bincurl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repochmod a+x ~/.bin/repoexport PATH="$HOME/.bin:$PATH"# Init LineageOS 21 (Android 14)repo init -u https://github.com/LineageOS/android.git -b lineage-21.0 --git-lfs# Syncrepo sync -c -j$(nproc) --force-sync --no-tags --no-clone-bundle
Build Commands
bash
# Setup environmentsource build/envsetup.sh# Setup device (syncs device repos too)breakfast <device># Build flashable ZIPbrunch <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
makefile
# 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_devicePRODUCT_DEVICE := devicePRODUCT_BRAND := VendorPRODUCT_MODEL := Device NamePRODUCT_MANUFACTURER := Vendor
lineage.dependencies
json
[{"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
bash
# Single changerepopick 12345# Multiple changesrepopick 12345 12346 12347# By topicrepopick -t feature-topic# With dependenciesrepopick -Q 12345# Force overwrite local changesrepopick -f 12345# Show what would be pickedrepopick -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
bash
cd device/vendor/device./extract-files.sh
Extract from OTA/Factory Image
bash
./extract-files.sh ~/Downloads/ota.zip
proprietary-files.txt Format
txt
# Audio HALvendor/lib64/hw/audio.primary.platform.sovendor/etc/audio_policy_configuration.xml# With destination pathvendor/lib64/lib.so:vendor/lib64/libfoo.so# From another devicevendor/lib64/lib.so|other_device
LineageOS Features
Trust Interface
Security dashboard showing device integrity:
makefile
# device.mkPRODUCT_PACKAGES += \LineageTrust
LiveDisplay
Hardware-accelerated display tuning:
makefile
PRODUCT_PACKAGES += \lineage.livedisplay@2.0-service-sdm
Styles / Themes
System theming support:
makefile
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
bash
git config --global review.review.lineageos.org.username <username>
Submit Change
bash
# Create branchrepo start my-feature .# Make changesgit add -Agit commit -m "subsystem: Short descriptionDetailed explanation.Change-Id: <auto-generated>"# Push for reviewgit push ssh://<username>@review.lineageos.org:29418/<project> HEAD:refs/for/<branch>
Commit Message Format
subsystem: Short descriptionLonger explanation wrapped at 72 characters.Explain why, not what.Change-Id: I1234567890abcdef...
Common Issues
Breakfast Fails - Missing Repos
bash
# Re-sync device treerepo sync device/vendor/device kernel/vendor/device vendor/device
Build Fails - SELinux
bash
# Find denialsadb 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
bash
# Full workflowsource build/envsetup.shbreakfast cheeseburgerbrunch cheeseburger# Just kernelmka bootimage# Cherry-pick fixrepopick 12345# Sync everythingrepo sync -c -j$(nproc)# Sync one projectrepo sync packages/apps/Settings# Clean buildm clean && brunch <device>