1.4.3: root HID injection and Material 3 Expressive redesign - #46
Open
anasvhora284 wants to merge 12 commits into
Open
anasvhora284 wants to merge 12 commits into
anasvhora284 wants to merge 12 commits into
Conversation
Rebased onto master after 1.4.2. RootInputInjectorService hosts the same IInputInjector stub at uid 0, and su is granted through Shell.getShell(). ShizukuInputInjector is host-agnostic behind PrivilegedUserServiceHost. Master's 1.4.2 HID behavior stays: OPEN readiness, deferred INPUT2, reader teardown, enter warp inside the injector, client-death destroy, and the mouse staying registered across Leave. The parked branch's older START/CURSOR UHID rework is not restored. The root service category is v5 so a daemon left from the parked branch is not reused.
versionName 1.4.3 and versionCode 9. The changelog notes su-backed uid-0 HID injection.
The emulator smoke test clicked Next and then required "Non-root Accessibility" to be displayed. That row is composed but below the fold, so assertIsDisplayed failed android-coverage. The page heading is the visible proof Next advanced.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Codecov requires 100% of the diff. Exercise root availability, the su grant, and the Shizuku and root service hosts that the new code adds.
JaCoCo never probed the try/catch and signature lines in the root privilege diff, so Codecov marked them uncovered. Fold those lines onto instructions the unit tests already execute, and cover the cached-root branch that skips closing the shell.
JaCoCo does not probe the Shizuku try/catch or the root host and factory signatures. Put those lines on instructions the unit tests already run so the 100% patch gate can see them.
cursor
Bot
force-pushed
the
feature/root-injection
branch
2 times, most recently
from
September 28, 2026 05:38
9da8ea1 to
92804ba
Compare
Remember a connect-time su grant, keep never-asked root off the accessibility HID host, ignore a Shizuku restart only for the root injector itself, and do not recover an explicit root session as Shizuku. Restore the try/catch and signatures that were folded only so JaCoCo would count them.
Codecov has no Jacoco setting for a line with no probes, so the Android upload's miss on those lines fails the 100% patch gate. Upload skipped coverage for lines the JVM report did not probe. A missed instruction or a fully missed branch stays in the report.
anasvhora284
marked this pull request as ready for review
September 28, 2026 14:55
Contributor
There was a problem hiding this comment.
Sorry @anasvhora284, your pull request is larger than the review limit of 150,000 diff characters
Owner
Author
|
@guaje Can you please review this PR??? |
4 tasks done
The Shizuku, root, and accessibility cards were custom boxes with a hardcoded corner and no card elevation. Use the theme's Material 3 Card, shape, and color roles. Layout and copy stay the same.
Theme the whole app with MaterialExpressiveTheme on material3 1.5.0-alpha29, using dynamic color on Android 12+ and a leaf-green fallback scheme below it. Screens use segmented list items, flexible top app bars, the short navigation bar, connected toggle buttons, loading indicators and Material shapes. Draw edge to edge so the system bars show the theme surface instead of the old ocean blue window colors. Co-authored-by: Cursor <cursoragent@cursor.com>
Capture every screen and dialog, in dark and light themes, and group them in the README gallery. Co-authored-by: Cursor <cursoragent@cursor.com>
Add the redesign to the in-app What's New highlights and the README feature list. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Release 1.4.3 does two things:
suthrough libsu and hosts the same input injector at uid 0, so HID injection no longer depends on Shizuku. The 1.4.2 keyboard and mouse behavior stays.Features Added
Root-backed HID injection
RootInputInjectorServicehosts the existingIInputInjectorstub at uid 0.suis granted throughShell.getShell().1.4.2 HID behavior kept
Material 3 Expressive UI
MaterialExpressiveThemewith the expressive motion scheme, dynamic color on Android 12+, and a leaf-green fallback scheme on older versions.Docs and release notes
docs/screenshots/). The olddocs/0*_*.jpgimages are removed.Bug Fixes
sugrant made at connect time is remembered.scripts/codecov_skip_unprobed.pyuploads those lines as skipped. A missed instruction or a fully missed branch still counts.Technical & Architectural Improvements
ShizukuInputInjectortalks toPrivilegedUserServiceHost. Shizuku and root are two hosts for the same injector (PrivilegeSelector,RootAccess).ui/theme/Theme.ktowns the color and motion schemes. The inline scheme inMainActivity,Shape.kt, andGradientCard.ktare removed.SettingsGroup,SettingsRow,SettingsSwitchRow, andConnectedChoiceRowbuild every settings section. The separate theme dialog is replaced by an inline choice row.androidx.compose.material3is pinned to1.5.0-alpha29for the Expressive APIs.versionName1.4.3 andversionCode9.Screenshots
Captured on a OnePlus Nord 4 (Android 16) with dynamic color. The README gallery uses the same images from
docs/screenshots/.Onboarding: welcome
Onboarding: input method
Onboarding: Accessibility
Home: disconnected
Home: connecting
Home: connected
Servers: discovered
Servers: favorites
Servers: connected
Add server
Trust fingerprint
Permissions: Shizuku
Permissions: root
Settings: connection & display
Settings: security
Settings: about
Connection security dialog
Input method dialog
Cursor style dialog
Screen name dialog
Author dialog
Light: home
Light: servers
Light: permissions
Light: settings
Issues Closed & Resolved
No open issue is closed here. Android TV clicks (#45) stay a separate change.
Test Plan & Verification
sugrant, remembered grants, and the Shizuku and root service hosts.6fce719:fast-jvm,android-coverage,codecov/patch, andqlty checkpass.