Skip to content

feat: add Shevery native Privilege API support and complete Kazakh localization - #1636

Open
HmnDev-Tech wants to merge 4 commits into
sameerasw:developfrom
HmnDev-Tech:dev
Open

HmnDev-Tech wants to merge 4 commits into
sameerasw:developfrom
HmnDev-Tech:dev

Conversation

@HmnDev-Tech

Copy link
Copy Markdown
Contributor

Description

This pull request introduces native support for Shevery via the Shevery Privilege API and provides a complete, high-quality Kazakh (kk and kk-rKZ) localization across the application.

1. Native Shevery Support

  • Context: Recent releases of Shevery (14.6.0+) deprecated and dropped the legacy moe.shizuku.manager.permission.API_V23 permission in favor of its dedicated permission com.hamondev.shevery.permission.PRIVILEGED_API and provider authority ${applicationId}.shevery.
  • Integrated Shevery Client Runtime: Added native Shevery API client interfaces and SheveryProvider to allow low-latency, lock-free privileged binder acquisition and command execution.
  • Privileged Access Integration:
    • Added PrivilegedMode.SHEVERY to selectable backends in PrivilegedMode.kt.
    • Added auto-resolution and execution branching in ShellUtils.kt (isSheveryEnabled, isAvailable, hasPermission, runCommandBlocking, newProcess).
    • Added fast binder connection on app launch in EssentialsApp.kt via SheveryUtils.initialize().
    • Added Shevery server control support via SheveryUtils.toggleShevery (using Shevery public automation intents com.hamondev.shevery.action.START_SERVER and STOP_SERVER).
    • Added WRITE_SECURE_SETTINGS permission grant support through Shevery in PermissionUIHelper and MainViewModel.
    • Updated ProGuard rules to keep com.hamondev.shevery.**.

2. Complete Kazakh (kk / kk-rKZ) Localization

  • Previously, Kazakh locale files had incomplete coverage (~1,800 entries out of 3,200+ base strings), with over 1,100 strings left in Russian and over 500 in English.
  • Translated all base application strings into authentic, natural Kazakh across values-kk/strings.xml and values-kk-rKZ/strings.xml.
  • Translated search keyword string-arrays (string-array name="keywords_*") and plural forms (plurals).
  • Verified that all format specifiers, positional arguments, and XML escapes strictly match base strings and pass scripts/validate_strings.py --strict with 0 errors.

Type of change

  • Bug fix
  • New feature
  • UI / visual update
  • Performance improvement
  • Refactoring / cleanup
  • Translations
  • Build / CI tooling

Checklist

Before submitting, please make sure:

  • The base branch is set to develop (not main).
  • The app builds cleanly locally.
  • Unit tests pass.
  • Tested the changes on a device or emulator.
  • New preferences use SettingsRepository for keys and getter/setter methods.
  • New user-facing settings are registered in FeatureRegistry.kt for search indexing.
  • New UI follows the design system in ui/core/.
  • Strings are added to res/values/strings.xml and drawables use rounded variants.

sameerasw and others added 3 commits October 30, 2026 12:55
## Type of change
- [ ] Bug fix
- [ ] New feature
- [x] UI / visual update
- [ ] Performance improvement
- [x] Refactoring / cleanup
- [ ] Translations
- [ ] Build / CI tooling
- Integrate Shevery-API client runtime and provider (.shevery)
- Declare com.hamondev.shevery.permission.PRIVILEGED_API permission
- Add SHEVERY backend to PrivilegedMode and ShellUtils
- Add SheveryUtils helper for fast-pull binder acquisition and command execution
- Support starting and stopping Shevery server via public automation intents
…and plurals

- Replace Russian and English untranslated strings in Kazakh resources with authentic translations
- Translate all base application strings to Kazakh (values-kk and values-kk-rKZ)
- Translate search keywords string-arrays and plural forms
- Ensure format specifiers and XML escaping pass strict translation validation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants