Document compatibility test matrix

This commit is contained in:
ajp_anton
2026-07-01 11:29:04 +00:00
parent 75861e2480
commit 861ffd52d5
+50 -20
View File
@@ -7,6 +7,11 @@ still keeping Samsung's own icons and visual style where possible.
The project is currently tested only on a Samsung Galaxy Z Fold5 running One UI The project is currently tested only on a Samsung Galaxy Z Fold5 running One UI
8.0 / Android 16. Expect device- and One UI-version-specific behaviour. 8.0 / Android 16. Expect device- and One UI-version-specific behaviour.
## AI Assistance
This project was developed with help from AI-assisted coding tools. The design
decisions, physical device testing, and final behaviour are still manually reviewed.
## What It Does ## What It Does
- Custom status bar layout for the unlocked screen, lockscreen, and AOD. - Custom status bar layout for the unlocked screen, lockscreen, and AOD.
@@ -41,31 +46,62 @@ It also supports lightweight markup:
- Pipe alignment with `|`, useful for aligning split clock rows around a camera - Pipe alignment with `|`, useful for aligning split clock rows around a camera
cutout. cutout.
- Colour variants and reverse Polish notation colour math for light/dark status - Colour variants and reverse Polish notation colour math for light/dark status
bar states, for example `color(#batterybar 1.2 * ; invRGB 0.5 *RGB)`. bar states, for example `color(#batterybar 1.2 *RGB ; #batterybar 0.5 *RGB)`, which uses the batterybar's dynamic colour as its base. For the bright tint, it brightens it up some more, while for the dark tint, it is darkened.
The in-app clock page has the full syntax help and examples. The in-app clock page has the full syntax help and examples.
## Requirements ## Requirements
- A rooted Samsung device. - A rooted Android device or emulator.
- A modern Xposed implementation such as LSPosed. - A modern Xposed implementation such as LSPosed or another libxposed-compatible runtime.
- Xposed API 101 or newer. - Xposed API 101 or newer.
- A Samsung/One UI version close to One UI 8.0 / Android 16. - SystemUI access for the module scope.
This module hooks Samsung SystemUI internals. It is not expected to work on The module is currently developed and manually tested on a Samsung Galaxy Z
non-Samsung SystemUI, and updates to One UI may require fixes. Fold5 running One UI 8.0 / Android 16. Other Android versions and non-Samsung
SystemUI builds are being investigated, but should be treated as experimental
until the compatibility matrix says otherwise.
## Device Compatibility ## Device Compatibility
StatusBarTweak is Samsung-specific in its current form. Some lower-level ideas, Some behavior cannot be fully verified on emulators. In particular, smooth
such as drawing a custom battery bar or parsing custom clock text, could be transitions between AOD, lockscreen, unlocked mode, and fullscreen apps may need
ported elsewhere. The layout engine itself depends on Samsung's SystemUI, physical-device testing. Emulator testing can still verify whether hooks load,
lockscreen, AOD service, notification display modes, status icons, and status whether SystemUI stays stable, whether settings apply, whether excessive
chip implementation. background work appears in logs, and whether the steady state looks the way it
should.
Plain Android or other OEM skins would need separate hooks and probably a | Feature | Galaxy Z Fold5<br>One UI 8 / Android 16 | AOSP API 34<br>Android 14 | AOSP API 35<br>Android 15 | AOSP API 36<br>Android 16 | Google APIs API 35<br>Android 15 | Google APIs API 36<br>Android 16 | LineageOS 22<br>Android 15 | LineageOS 23<br>Android 16 |
different source-collection layer. They should be treated as unsupported rather | --- | --- | --- | --- | --- | --- | --- | --- | --- |
than untested-compatible. | Module loads in SystemUI | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Settings app opens and writes settings | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Custom unlocked statusbar layout | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Custom lockscreen statusbar layout | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Custom AOD statusbar layout | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Notification icons mode | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Notification cards mode | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Notification dot mode and read-state behavior | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Hide notification icons by app | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Hide status icons | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Dual-SIM status icon handling | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Samsung status chips: media/navigation/call | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Samsung charging chip handling | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Privacy indicator stability | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Custom statusbar clock text | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Custom drawer clock/date text | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Stored clock pattern previews | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Battery bar: base statusbar modes | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Battery bar: fullscreen and transparent statusbar modes | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Battery bar: curved top-edge geometry | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Battery bar threshold colours and colour math | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Camera cutout and under-display-camera handling | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Rotation and fold/unfold handling | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Drawer scrolling and background-work performance | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
| Debug visualizers and debug notifications | ✅ | Untested | Untested | Untested | Untested | Untested | Untested | Untested |
Current emulator targets use rooted LSPosed snapshots in a local test lab. They
are useful for compatibility work, but the matrix above is intentionally not
optimistic: until a target has been tested, it remains `Untested`.
## Build ## Build
@@ -80,9 +116,3 @@ Release builds require local signing configuration:
```bash ```bash
./gradlew assembleRelease ./gradlew assembleRelease
``` ```
## Development Note
This project has been coded with the help of AI as an implementation aid. The
design decisions, device testing, and final behaviour are still manually
reviewed.