Skip to content

feat: Migrate to Ackpine for package installation/uninstallation#444

Merged
MarcaDian merged 8 commits intodevfrom
install-via-ackpine
Apr 18, 2026
Merged

feat: Migrate to Ackpine for package installation/uninstallation#444
MarcaDian merged 8 commits intodevfrom
install-via-ackpine

Conversation

@MarcaDian
Copy link
Copy Markdown
Contributor

@MarcaDian MarcaDian commented Apr 17, 2026

Replaces the custom BroadcastReceiver + InstallService pipeline with Ackpine - a coroutine-based wrapper around Android's PackageInstaller API. Install and uninstall sessions now suspend until the user confirms or cancels the system dialog, so dismissing the dialog immediately returns to Ready state instead of waiting for a timeout.
Signature conflict detection via deprecated reflection is removed - InstallFailure.Conflict from Ackpine covers this. ShizukuInstaller is replaced by AckpineInstaller which handles internal, Shizuku, and uninstall operations in one place. InstallReceiver, UninstallReceiver, InstallService, UninstallService are deleted.


Extends the split APK merge pipeline with device-aware config split filtering.
Previously only ABI splits could be excluded via stripNativeLibs. Two new filtering passes are now applied when skipUnneededSplits is enabled:

  • Locale splits - modules whose language/region qualifier does not appear in the system's active locale list are skipped
  • Density splits - modules whose DPI qualifier does not match the device's screen density bucket are skipped

This reduces the size of the intermediate merged APK before patching begins.

@MarcaDian MarcaDian changed the title feat: Use Ackpine as installer provider feat: Migrate to Ackpine for package installation/uninstallation Apr 18, 2026
# Conflicts:
#	app/src/main/java/app/morphe/manager/patcher/runtime/CoroutineRuntime.kt
#	app/src/main/java/app/morphe/manager/patcher/runtime/ProcessRuntime.kt
#	app/src/main/java/app/morphe/manager/ui/viewmodel/SettingsViewModel.kt
#	gradle/libs.versions.toml
@MarcaDian MarcaDian merged commit aa7207d into dev Apr 18, 2026
1 check passed
@MarcaDian MarcaDian deleted the install-via-ackpine branch April 18, 2026 06:11
@MarcaDian MarcaDian linked an issue Apr 18, 2026 that may be closed by this pull request
3 tasks
github-actions Bot pushed a commit that referenced this pull request Apr 18, 2026
# [1.16.0-dev.3](v1.16.0-dev.2...v1.16.0-dev.3) (2026-04-18)

### Bug Fixes

* Handle `InstallFailure` result when installing manager update ([a4d1eb8](a4d1eb8))

### Features

* Migrate to `Ackpine` for package installation/uninstallation ([#444](#444)) ([aa7207d](aa7207d))
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.

feat: Add 'Skip unneeded split APKs'

1 participant