Pearity
1.0.0-alpha.twenty-two-debug · GitHub
More about this app
Matches Samsung One UI system settings to iOS defaults one toggle at a time (three-state Android/Custom/iOS), writing secure settings via Shizuku or root.
Pearity
iOS parity for One UI — a native Android app that lets you match individual Android/Samsung settings to their iOS defaults, one toggle at a time.
"Pear" (not Apple) + "parity" (matching iOS defaults) = Pearity
What it does
Pearity gives you a card for each tweakable system setting. Every card has a three-state toggle:
| State | Meaning |
|---|---|
| Android | Restore the Android / Samsung One UI default |
| Custom | Your personal value, captured the first time Pearity reads the setting |
| iOS | Apply the iOS default for that setting |
You choose which settings to touch — nothing is changed without your explicit interaction.
Prerequisites
Pearity writes privileged system settings, so it needs one of:
Shizuku (recommended, no root required)
- Install Shizuku from the Play Store or GitHub Releases.
- Start the Shizuku service (via wireless ADB or root, one-time setup).
- Open Pearity — it will prompt you to grant the Shizuku permission.
Root
If your device is rooted (Magisk / KernelSU), Pearity can use su directly. Select Root in the connection mode picker inside Settings.
ADB / rish
Advanced users can place Shizuku's rish binary at /data/local/tmp/rish (must be executable) and select ADB / rish in Settings. Note: most devices block apps from reading /data/local/tmp, so prefer Shizuku or Root mode.
Installation
- Download the latest APK from Releases.
- On your device, enable Install unknown apps for your file manager or browser.
- Open the APK to install.
- Launch Pearity and follow the in-app prompts.
Requires Android 12 (API 31) or later. Primarily tested on Samsung One UI.
Settings catalogue
Pearity currently manages 54 settings across 11 categories (highlights below):
Animations
| Setting | Android default | iOS default |
|---|---|---|
| Window Animation Speed | 1.0× | 0.5× |
| Transition Animation Speed | 1.0× | 0.5× |
| Animator Duration Scale | 1.0× | 0.5× |
Text
| Setting | Android default | iOS default |
|---|---|---|
| Font Size | 1.0× | 1.0× |
| Bold Text | off (0) | on (300) |
Sound
| Setting | Android default | iOS default |
|---|---|---|
| Touch Sounds | on | off |
| Lock / Unlock Sound | on | on |
| Keyboard Click Sound | off | off |
| Charging Sound | on | on |
| Vibrate on Ring | on | on |
Haptics
| Setting | Android default | iOS default |
|---|---|---|
| Haptic Feedback | on | on |
| Keyboard Haptics | on | off |
| Haptic on Error | off | on |
| Vibrate on Clear Notifications | on | off |
Display
| Setting | Android default | iOS default |
|---|---|---|
| Battery % in Status Bar | off | on |
| Pulse Notification Light | on | off |
| App Icon Badges | on | on |
| Night Mode / True Tone | off | off |
| Peak Refresh Rate | 60 Hz | 120 Hz |
| Minimum Refresh Rate | 60 Hz | 10 Hz |
| Adaptive Color / True Tone | off | on |
| Background Blur Effects | on | on |
Navigation
| Setting | Android default | iOS default |
|---|---|---|
| Gesture Hint (Home Bar) | on | on |
| Home Bar Width | 1.0× | 1.5× |
| Back Gesture Sensitivity | 1.0× | 1.0× |
Keyboard
| Setting | Android default | iOS default |
|---|---|---|
| Auto-Correction | on | on |
| Predictive Text | on | on |
Accessibility
| Setting | Android default | iOS default |
|---|---|---|
| Reduce Motion | off | off |
| Pointer / Scroll Speed | 0 | 0 |
| Increase Contrast | off | off |
| Smart Invert / Color Inversion | off | off |
| Color Filters | off | off |
| One-Handed Mode | off | off |
Lock Screen
| Setting | Android default | iOS default |
|---|---|---|
| Lock Screen Media Controls | on | on |
| Lock Immediately on Sleep | 5000 ms | 0 ms |
| Notifications on Lock Screen | on | on |
| Show Notification Content | on | on |
Samsung One UI
| Setting | Android default | iOS default |
|---|---|---|
| Clock Position | right | left |
| Edge Panels | on | off |
| Edge Lighting | off | off |
| Smart Stay | off | off |
| Raise to Wake | on | on |
| Double-Tap to Wake | on | on |
| Always-On Display (One UI) | off | on (Pro) |
| Reduce Animations (One UI) | off | off |
| High Touch Sensitivity | off | off |
| Notification Vibration Intensity | 3 | 3 |
| Ring Vibration Intensity | 3 | 3 |
System
| Setting | Android default | iOS default |
|---|---|---|
| Automatic Brightness | on | on |
| Screen Timeout | 15 000 ms | 30 000 ms |
| Location Accuracy Mode | 3 | 3 |
| Always-On Display | off | on (Pro) |
Building from source
Pearity is built entirely through GitHub Actions — no Android Studio required.
Prerequisites
- A GitHub account with the repo forked or cloned
- Java 17 (handled automatically by the CI workflow)
Local build (Termux)
# Install Gradle (one-time)
pkg install gradle
# Build debug APK
cd pearity
gradle assembleDebug --no-daemon
# Output: app/build/outputs/apk/debug/app-debug.apk
CI build (GitHub Actions)
Every push to main automatically:
- Compiles the debug APK
- Uploads it as a build artifact
- Publishes / updates the
v1.0.0-alpha01pre-release on GitHub Releases
The workflow is defined in .github/workflows/build.yml.
Architecture
PearitySetting (data model)
└─ SettingCatalogue.all (47 settings, hardcoded catalogue)
│
▼
SettingsRepository
├─ reads current value via shell / Settings provider
└─ writes new value via selected ConnectionMode:
AUTO → tries root, then Shizuku, then rish
SHIZUKU → Shizuku API (remote shell process)
ROOT → su shell
ADB_RISH → rish binary only
│
▼
MainViewModel (StateFlow → UiState)
│
▼
Compose UI
├─ HomeScreen — LazyColumn of SettingCards
│ └─ SettingCard → TriStateToggle (Android / Custom / iOS)
└─ SettingsScreen — connection mode picker, status cards
Tech stack: Kotlin · Jetpack Compose · Material 3 · Shizuku API 13 · DataStore Preferences
Disclaimer
Pearity modifies system settings using privileged APIs. While all changes are reversible (tap the "Android" state to restore defaults), use at your own risk. Some Samsung One UI keys may not exist on all firmware versions — Pearity skips settings it cannot read.
License
MIT — see LICENSE for details.
How Shizuku is used
Can match Samsung settings to iOS defaults and tune display, sound and haptics via `settings put` and `wm density` through Shizuku.
This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.
How this app uses Shizuku
Pearity uses Shizuku to read and write protected system settings so each Samsung One UI option can be flipped between its Android default, a saved custom value and an iOS equivalent.
- Match settings to iOS defaults: switch animation scales, font weight, haptics, sounds, lock screen, Always-On Display and Samsung One UI toggles between Android, Custom and iOS values, applied with
settings put secure,settings put globalandsettings put systemshell commands through Shizuku. - Change display density: apply or reset the screen density override with the
wm densityshell command through Shizuku and read back the current override the same way. - Tune back gesture sensitivity: set left and right back gesture inset scales together with paired
settings put securecommands through Shizuku and read the current value withsettings get secure. - Import iPhone backup suggestions: apply values inferred from a Smart Switch backup, such as refresh rate, Always-On Display and status bar or sound choices, using the same privileged settings writes.
Android APIs or commands used
Settings.System.getStringSettings.Secure.getStringSettings.Global.getStringSettings.System.putStringSettings.Secure.putStringSettings.Global.putStringsettings put systemsettings put securesettings put globalsettings get secure back_gesture_inset_scale_leftwm densitywm density reset
Notable details
Settings that only need normal system settings access work without Shizuku once the system write permission is granted, and secure settings write directly without a shell command when the system has granted write secure settings access. Values sent to the shell are restricted to safe characters, so only preset Android, iOS and saved custom values are applied.
Changelog
What's new for version 1.0.0-alpha.twenty-two-debug
Pearity 1.0.0-alpha.twenty-two
Alpha software — settings are read/written via Shizuku or root. Not all settings may apply on every device. Samsung One UI is the primary target.
Build: 0fbdcfee3ecd29d09ef27051548cbf03998acbee · run #22
Requirements
- Android 12+ (API 31)
- Shizuku running or a rooted device
Install
- Download the
.apkfile below - Enable Install unknown apps in your file manager / browser settings
- Install and launch Pearity
Permissions
3 permissions requested