Skip to content

Release v1.9: Full Android 10 & TV Box compatibility, MediaStore cleanup, and instant UI - #5

Merged
k10halifa merged 13 commits into
k10halifa:masterfrom
e010rror:master
Nov 6, 2026
Merged

k10halifa merged 13 commits into
k10halifa:masterfrom
e010rror:master

Conversation

@e010rror

@e010rror e010rror commented Nov 6, 2026

Copy link
Copy Markdown

Comprehensive updates in v1.9:

  1. Full Android 10 (API 29) & TV Box Support:
    • Inlined hidden PackageManager/PackageInstaller compile-time constants to eliminate NoSuchFieldError on API 29.
    • Staged APK caching as 'base.apk' for unified parsing, archive metadata resolution (real app name & icon), and session streaming.
    • Isolated hidden IIntentSender.Stub inside ModernInstallResultSender and added dynamic PendingIntent BroadcastReceiver fallback for API 29.
    • Handled INTERACT_ACROSS_USERS / MATCH_ANY_USER SecurityExceptions via unprivileged current-user PackageManager fallback.
    • Added 32-bit (armeabi-v7a) support, optional touchscreen/Leanback manifest declarations, and auto-focused the 'Install' button for TV Box D-Pad remotes while keeping phone touch UI unchanged.
  2. Privileged MediaStore Cleanup: Resolves rows prior to deletion and executes privileged Shizuku shell commands ('content delete') to remove ghost APK entries in Samsung My Files.
  3. Instant UI Feedback: Decoupled post-install tasks onto Dispatchers.IO, transitioning to 'App installed' / 'Open' immediately upon installation completion.
  4. 100% Preserved Fast Path: Modern Android (11, 13+) devices continue using direct-stream sessions and LocalIntentReceiver untouched.

e010rror and others added 13 commits November 6, 2026 14:48
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Guard API 29-incompatible SessionParams calls, recover from install and Binder failures, support system confirmation through PackageInstaller, and make dialog transitions state-loss safe. Keep the release APK as an untracked local artifact.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Select loadFromFd overloads using runtime parameter types, including Android 11's descriptor offset and length signature, and fall back to parsing the embedded binary manifest when framework asset loading fails.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Retain MATCH_ANY_USER queries when Shizuku has cross-user permission, and retry denied or unprivileged lookups with only that flag removed. Fall back to current-user package and install-session queries where appropriate.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Capture a separate package-context PackageManager before initializing Shizuku hooks so current-user retry queries do not reuse the mutated privileged manager.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use a dynamically registered PendingIntent broadcast receiver on Android 10 or when the hidden AIDL receiver is unavailable, retaining LocalIntentReceiver as the Android 11+ fast path. Resolve missing APK labels and icons through PackageManager archive metadata.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…mode

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@k10halifa
k10halifa merged commit b0a58b8 into k10halifa:master Nov 6, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants