# xaveroprjkt/device_xiaomi_emerald architecture

> Architecture diagram of the GitHub repository xaveroprjkt/device_xiaomi_emerald, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/xaveroprjkt/device_xiaomi_emerald
- Repository: https://github.com/xaveroprjkt/device_xiaomi_emerald

## Overview

This Xiaomi POCO M6 Pro device tree includes device-specific Android settings and services, rather than one standalone app. Its user-facing workflows cover Dolby audio/profile and equalizer tuning, charging limits, and a configurable gaming overlay; device services also synchronize double-tap-to-wake settings and handle under-display fingerprint events. The graph preserves those distinct feature areas and their visible runtime layers. Several modules are represented from filenames and tree structure only, so uncertain wiring is omitted; the README provides no further capability detail.

Main entry points: [`dolby/src/co/aospa/dolby/xiaomi/DolbyController.kt`](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/DolbyController.kt) (Dolby controller), [`parts/src/com/xiaomi/settings/battery/ChargingLimitService.kt`](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/battery/ChargingLimitService.kt) (Charging limit service), [`parts/src/com/xiaomi/settings/gamebar/GameBarMonitorService.kt`](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBarMonitorService.kt) (Overlay monitor), [`parts/src/com/xiaomi/settings/gamebar/GameBar.kt`](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBar.kt) (Overlay controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dolby["Dolby audio"]
  node_dolby_settings["Dolby settings"]
  node_dolby_tile["Dolby quick tile"]
  node_dolby_controller["Dolby controller<br/>[DolbyController.kt]"]
  node_dolby_effect["Audio effect"]
  node_dolby_preferences["Profile preferences"]
  node_equalizer_activity["Equalizer screen"]
  node_equalizer_viewmodel["Equalizer view model"]
  node_equalizer_repository["Equalizer repository"]
  node_profile_store[("Profile and preset storage")]
end

subgraph group_battery["Charging control"]
  node_charging_settings["Charging controls"]
  node_charging_service["Charging limit service"]
  node_battery_utils["Charging utilities<br/>[BatteryUtils.kt]"]
end

subgraph group_gamebar["Gaming overlay"]
  node_gamebar_settings["Overlay settings<br/>[GameBarFragment.kt]"]
  node_gamebar_tile["Overlay quick tile"]
  node_gamebar_monitor["Overlay monitor"]
  node_foreground_detector["Foreground app detector"]
  node_gamebar["Overlay controller<br/>[GameBar.kt]"]
  node_gamebar_data["Game metrics and export<br/>[GameDataExport.kt]"]
  node_gamebar_preferences[("Overlay preferences")]
end

subgraph group_device["Device services"]
  node_dt2w_service["Double-tap service"]
end

subgraph group_fingerprint["Fingerprint hardware"]
  node_udfps_handler["Fingerprint handler<br/>[UdfpsHandler.cpp]"]
end

node_user(("Device user"))
node_audio_system["Android audio system"]
node_battery_state["Battery state"]
node_secure_settings[("Android secure settings")]
node_system_property["Device system property"]
node_fingerprint_hal["Fingerprint HAL"]
node_display_touch["Display and touch devices"]

node_user -->|"configures"| node_dolby_settings
node_user -->|"toggles"| node_dolby_tile
node_dolby_settings -->|"sets audio options"| node_dolby_controller
node_dolby_settings -->|"binds preferences"| node_dolby_preferences
node_dolby_tile -->|"toggles effect"| node_dolby_controller
node_dolby_controller -->|"controls effect"| node_dolby_effect
node_dolby_effect -->|"applies processing"| node_audio_system
node_user -->|"opens equalizer"| node_equalizer_activity
node_equalizer_activity -->|"creates"| node_equalizer_viewmodel
node_equalizer_viewmodel -->|"requests presets"| node_equalizer_repository
node_equalizer_repository -->|"sets preset"| node_dolby_controller
node_equalizer_repository -->|"reads and writes"| node_profile_store
node_dolby_controller -->|"loads profile"| node_profile_store
node_user -->|"sets limit"| node_charging_settings
node_charging_settings -->|"updates suspension"| node_battery_utils
node_charging_settings -->|"starts"| node_charging_service
node_charging_service -->|"observes level"| node_battery_state
node_charging_service -->|"sets suspension"| node_battery_utils
node_charging_service --> node_gamebar_preferences
node_user -->|"configures overlay"| node_gamebar_settings
node_user -->|"toggles overlay"| node_gamebar_tile
node_gamebar_settings -->|"updates and displays"| node_gamebar
node_gamebar_settings -->|"starts or stops"| node_gamebar_monitor
node_gamebar_tile -->|"reads and writes"| node_gamebar_preferences
node_gamebar_tile -->|"shows or hides"| node_gamebar
node_gamebar_monitor -->|"reads settings"| node_gamebar_preferences
node_gamebar_monitor -->|"checks foreground app"| node_foreground_detector
node_gamebar_monitor -->|"shows or hides"| node_gamebar
node_gamebar --> node_gamebar_data
node_dt2w_service -->|"observes setting"| node_secure_settings
node_dt2w_service -->|"updates value"| node_system_property
node_fingerprint_hal -->|"delivers events"| node_udfps_handler
node_udfps_handler -->|"controls hardware"| node_display_touch
node_udfps_handler -->|"reports press state"| node_fingerprint_hal

click node_dolby_settings "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/preference/DolbySettingsFragment.kt"
click node_dolby_tile "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/DolbyTileService.kt"
click node_dolby_controller "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/DolbyController.kt"
click node_dolby_effect "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/DolbyAudioEffect.kt"
click node_dolby_preferences "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/preference/DolbyPreferenceStore.kt"
click node_equalizer_activity "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/geq/EqualizerActivity.kt"
click node_equalizer_viewmodel "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/geq/ui/EqualizerViewModel.kt"
click node_equalizer_repository "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/geq/data/EqualizerRepository.kt"
click node_charging_settings "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/battery/ChargingControlFragment.kt"
click node_charging_service "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/battery/ChargingLimitService.kt"
click node_battery_utils "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/battery/BatteryUtils.kt"
click node_gamebar_settings "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBarFragment.kt"
click node_gamebar_tile "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBarTileService.kt"
click node_gamebar_monitor "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBarMonitorService.kt"
click node_foreground_detector "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/ForegroundAppDetector.kt"
click node_gamebar "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBar.kt"
click node_gamebar_data "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameDataExport.kt"
click node_dt2w_service "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dt2w/src/co/potatoproject/dt2w/MT6789/DT2WServiceMT6789.java"
click node_udfps_handler "https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/udfps/UdfpsHandler.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dolby_settings,node_dolby_tile,node_dolby_controller,node_dolby_effect,node_dolby_preferences,node_equalizer_activity,node_equalizer_viewmodel,node_equalizer_repository,node_profile_store,node_user toneBlue
class node_charging_settings,node_charging_service,node_battery_utils,node_secure_settings toneAmber
class node_gamebar_settings,node_gamebar_tile,node_gamebar_monitor,node_foreground_detector,node_gamebar,node_gamebar_data,node_gamebar_preferences toneMint
class node_dt2w_service toneRose
class node_udfps_handler,node_audio_system,node_battery_state,node_system_property,node_fingerprint_hal,node_display_touch toneIndigo
```

## Components

### Dolby audio

- [Dolby settings](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/preference/DolbySettingsFragment.kt): `dolby/src/co/aospa/dolby/xiaomi/preference/DolbySettingsFragment.kt`
- [Dolby quick tile](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/DolbyTileService.kt): `dolby/src/co/aospa/dolby/xiaomi/DolbyTileService.kt`
- [Dolby controller](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/DolbyController.kt): `dolby/src/co/aospa/dolby/xiaomi/DolbyController.kt`
- [Audio effect](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/DolbyAudioEffect.kt): `dolby/src/co/aospa/dolby/xiaomi/DolbyAudioEffect.kt`
- [Profile preferences](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/preference/DolbyPreferenceStore.kt): `dolby/src/co/aospa/dolby/xiaomi/preference/DolbyPreferenceStore.kt`
- [Equalizer screen](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/geq/EqualizerActivity.kt): `dolby/src/co/aospa/dolby/xiaomi/geq/EqualizerActivity.kt`
- [Equalizer view model](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/geq/ui/EqualizerViewModel.kt): `dolby/src/co/aospa/dolby/xiaomi/geq/ui/EqualizerViewModel.kt`
- [Equalizer repository](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dolby/src/co/aospa/dolby/xiaomi/geq/data/EqualizerRepository.kt): `dolby/src/co/aospa/dolby/xiaomi/geq/data/EqualizerRepository.kt`
- **Profile and preset storage**

### Charging control

- [Charging controls](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/battery/ChargingControlFragment.kt): `parts/src/com/xiaomi/settings/battery/ChargingControlFragment.kt`
- [Charging limit service](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/battery/ChargingLimitService.kt): `parts/src/com/xiaomi/settings/battery/ChargingLimitService.kt`
- [Charging utilities](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/battery/BatteryUtils.kt): `parts/src/com/xiaomi/settings/battery/BatteryUtils.kt`

### Gaming overlay

- [Overlay settings](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBarFragment.kt): `parts/src/com/xiaomi/settings/gamebar/GameBarFragment.kt`
- [Overlay quick tile](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBarTileService.kt): `parts/src/com/xiaomi/settings/gamebar/GameBarTileService.kt`
- [Overlay monitor](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBarMonitorService.kt): `parts/src/com/xiaomi/settings/gamebar/GameBarMonitorService.kt`
- [Foreground app detector](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/ForegroundAppDetector.kt): `parts/src/com/xiaomi/settings/gamebar/ForegroundAppDetector.kt`
- [Overlay controller](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameBar.kt): `parts/src/com/xiaomi/settings/gamebar/GameBar.kt`
- [Game metrics and export](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/parts/src/com/xiaomi/settings/gamebar/GameDataExport.kt): `parts/src/com/xiaomi/settings/gamebar/GameDataExport.kt`
- **Overlay preferences**

### Device services

- [Double-tap service](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/dt2w/src/co/potatoproject/dt2w/MT6789/DT2WServiceMT6789.java): `dt2w/src/co/potatoproject/dt2w/MT6789/DT2WServiceMT6789.java`

### Fingerprint hardware

- [Fingerprint handler](https://github.com/xaveroprjkt/device_xiaomi_emerald/blob/lineage-23.2/udfps/UdfpsHandler.cpp): `udfps/UdfpsHandler.cpp`

### Other components

- **Device user**
- **Android audio system**
- **Battery state**
- **Android secure settings**
- **Device system property**
- **Fingerprint HAL**
- **Display and touch devices**

## Connections

- Device user → Dolby settings: configures
- Device user → Dolby quick tile: toggles
- Dolby settings → Dolby controller: sets audio options
- Dolby settings → Profile preferences: binds preferences
- Dolby quick tile → Dolby controller: toggles effect
- Dolby controller → Audio effect: controls effect
- Audio effect → Android audio system: applies processing
- Device user → Equalizer screen: opens equalizer
- Equalizer screen → Equalizer view model: creates
- Equalizer view model → Equalizer repository: requests presets
- Equalizer repository → Dolby controller: sets preset
- Equalizer repository → Profile and preset storage: reads and writes
- Dolby controller → Profile and preset storage: loads profile
- Device user → Charging controls: sets limit
- Charging controls → Charging utilities: updates suspension
- Charging controls → Charging limit service: starts
- Charging limit service → Battery state: observes level
- Charging limit service → Charging utilities: sets suspension
- Charging limit service → Overlay preferences
- Device user → Overlay settings: configures overlay
- Device user → Overlay quick tile: toggles overlay
- Overlay settings → Overlay controller: updates and displays
- Overlay settings → Overlay monitor: starts or stops
- Overlay quick tile → Overlay preferences: reads and writes
- Overlay quick tile → Overlay controller: shows or hides
- Overlay monitor → Overlay preferences: reads settings
- Overlay monitor → Foreground app detector: checks foreground app
- Overlay monitor → Overlay controller: shows or hides
- Overlay controller → Game metrics and export
- Double-tap service → Android secure settings: observes setting
- Double-tap service → Device system property: updates value
- Fingerprint HAL → Fingerprint handler: delivers events
- Fingerprint handler → Display and touch devices: controls hardware
- Fingerprint handler → Fingerprint HAL: reports press state
