- Each font family is now its own themes/fonts/fonts-*/ module carrying its RRO switcher, font files and fonts_customization.xml fragment (merged by the genrule in prebuilt/product/etc/Android.bp) - Drop config.mk: which modules a product ships is now chosen by the product (vendor/pawlet/config/addons_packages.mk) - Add theme overlays: icon packs, UDFPS animations/icons, lockscreen clock fonts, QS tile layouts, icon shapes, charging animations and more - Add NOTICE
android_vendor_addons (PawletOS)
A library of optional device customization modules — fonts, battery styles,
icon packs, and other RRO overlays — ported from AxionOS's vendor_addons.
Synced at vendor/addons (path kept identical to upstream).
This repo doesn't decide what gets built. Every module here is independent
and opt-in; vendor/pawlet/config/addons_packages.mk is the actual
selection list a PawletOS build uses. See Build wiring below.
What's in here
Fonts (themes/fonts/) — system font-family switchers, selectable
under Settings > Display > Font:
fonts-arcticons-sans,fonts-fucek,fonts-inter,fonts-rookery— each ships its own font file and RRO.fonts-roboto,fonts-roboto-flex— select fonts the platform already provides, no files of their own.fonts-google-sans— Material You's own typography (variable-*tokens, etc). Always needed regardless of which switcher above is picked, not a switchable option itself.fonts-ndot— Nothing's "Ndot" font family. Standalone, not referenced by anything else.
Back gesture (themes/back_gesture/) — BackGestureDotTrailOverlay,
an alternate back-gesture arrow trail style.
Battery styles (themes/battery/) — five battery icon styles
(BatteryStyle{iOS15,iOS16,OneUI7,Origami,Smiley}Overlay), selectable as
alternates to the stock battery icon.
Brightness slider styles (themes/brightness_slider/) — twelve
Quick Settings brightness slider looks (BrightnessSlider*Overlay:
Acun, Bang, Cyberpunk, Filled, GradientRoundedBar, LeafyOutline,
MinimalThumb, Outline, RoundedClip, Shaded, Thin, Translucent).
Charging animations (themes/charging_animation/) —
MotoChargingAnimationOverlay, NothingChargingAnimationOverlay: lock
screen charging animations styled after those OEMs. See Licensing.
Clocks (themes/clocks/) — HideClock, HideSmartSpace,
SmartSpaceOffset: lock screen clock/smartspace visibility and
positioning toggles.
Navbar styles (themes/navbar/) — ten 3-button navigation bar icon
styles (Navbar*Overlay: Android, Asus, Dora, Moto, Nexus, Old, OnePlus,
OneUi, Sammy, TecnoCamon).
Notifications (themes/notifications/) — four notification shade
styles (NotifCyberPunk, NotifDuoline, NotifIOS, NotifLayers).
Power menu (themes/powermenu/) — four power menu styles
(PowerCyberPunk, PowerDuoline, PowerIOS, PowerLayers).
Progress bar (themes/progressbar/) — four seekbar/progress-bar
thumb styles (PGB_BlockyThumb, PGB_MinimalThumb, PGB_OutlineThumb,
PGB_Shishu).
System dark themes (themes/system/) — AndroidAmoledBlackThemeOverlay,
AndroidBlackThemeOverlay.
UI styles (themes/UiStyles/) — nine full-system visual themes
(three single-target: Espresso, SnowPaintDrop, Vivid; six that ship
three sub-overlays each targeting android/Settings/SystemUI:
Pacleggers, ShishuAmalgamation, ShishuIllusions, ShishuImmensity,
ShishuNights, SolarizedDark — 21 modules total).
QS waveforms (themes/waveforms/) — four Quick Settings media
waveform styles (AxionWaveformOverlay, HeartbeatWaveformOverlay,
OceanWaveformOverlay, PulseWaveformOverlay).
Icon packs (themes/iconpacks/) — sixteen full icon packs (Acherus,
Aurora, Circular, Filled, Gradicon, Kai, Lorn, Nostalgic, OOS, Outline,
Plumpy, PUI, Rounded, Sam, Victor, Xperia), each split into an
android-targeting + SystemUI-targeting overlay (32 modules total).
Quick Settings grid layouts (themes/QSTileLayout/) — 50 column×row
grid configurations for the QS panel and its collapsed ("QQS") state
(qs_portrait_*, qqs_portrait_*, 2×2 through 6×6).
Lock screen clock fonts (themes/lockscreenclockfonts/) — 87
lock screen clock font-family switchers (ClockFont*Overlay), same
pattern as the system font switchers in themes/fonts/ but for the
clock specifically. 15 are real and fully wired (13 ship the actual
Google Fonts release, Lato/Rubik reference AOSP's own existing copies).
The other 72 reference decorative font names (Aclonica-alikes aside,
mostly novelty/OEM-styled names like Comic Sans, HarmonyOS Sans,
SamsungOne) with no open-licensed source found — they build fine and
select cleanly in the UI, but currently render as the platform default
since nothing defines those family names. See Licensing.
Quick Settings styles (themes/qs/) — eleven QS panel tile styles
(A11QSUI, BetterQS, QSCyberPunk, QSNeumorph, QSOutline,
QSReflected, QSShaded, QSSurround, QSThin, QSTwoToneAccent,
QSTwoToneAccentTrans).
Volume dialog styles (themes/Volume/) — six volume slider styles
(VolumeDoubleLayer, VolumeGradient, VolumeNeumorph,
VolumeNeumorphOutline, VolumeOutline, VolumeShadedLayer).
UDFPS fingerprint icons (themes/udfps_icons/) — 95 static
fingerprint-sensor icon styles (UdfpsIconTheme*). See Licensing —
a large portion of these are fan art of copyrighted game/anime
characters, kept only because nothing is published yet.
UDFPS fingerprint animations (themes/udfps/) — 36 under-display
fingerprint sensor "recognizing" animations (UdfpsTheme*). See
Licensing — several of these are very likely extracted from real OEM
firmware, not original art.
Status bar icons (themes/icons/Statusbar/, themes/icons/Wi-Fi/) —
36 cellular signal icon styles + 16 Wi-Fi icon styles (*SignalOverlay,
*WiFiOverlay).
Icon shapes (themes/iconshapes/) — nineteen stock AOSP adaptive
icon shapes (IconShape*Overlay: Cloudy, Cylinder, Flower, Heart,
Hexagon, Ios, Leaf, Meow, Pebble, RoundedHexagon, RoundedRect, Samsung,
Scroll, Square, Squircle, Stretched, Taperedrect, Teardrop, Vessel),
plus PawletOS's own IconShapePawOverlay — a paw print.
How a module gets included
Each module is its own Soong target (an RRO, a font file, or both) with no
dependency on anything outside its own directory except where it
genuinely needs one — e.g. a font switcher's Android.bp lists its font
file in required:, so selecting just the switcher's name is enough to
pull everything it needs along with it.
Where a module produces a fragment of a file the platform reads as one
piece (fonts_customization.xml is the only case of this today), that
fragment is a filegroup merged by a genrule elsewhere in this repo —
adding a new font means adding its fragment to that genrule's srcs.
Licensing
See NOTICE for the full per-module attribution. Short version: most of
this is Apache-2.0 (AxionOS/Proton AOSP/risingOS-derived, or PawletOS's
own), the Google Sans fonts are the real OFL-licensed release from
google/fonts, and a couple of items (Nothing's "Ndot" fonts, two
clock-face font cuts) have no license file upstream at all — flagged in
NOTICE, not included by default.
Build wiring
This repo has no PRODUCT_PACKAGES of its own. Everything here is pure
Soong (Android.bp), discovered automatically. What actually gets built
is vendor/pawlet/config/addons_packages.mk, inherited from
vendor/pawlet/config/common.mk only when this repo is present — a
checkout without it synced just builds without any of this.