Skip to content

fix: Preserve manifest attributes in minimized jar - #255

Merged
LisoUseInAIKyrios merged 1 commit into
MorpheApp:devfrom
donnykurnia:patch-2
Aug 7, 2026
Merged

fix: Preserve manifest attributes in minimized jar#255
LisoUseInAIKyrios merged 1 commit into
MorpheApp:devfrom
donnykurnia:patch-2

Conversation

@donnykurnia

Copy link
Copy Markdown
Contributor

Bug Fix: Explicitly map JVM Manifest attributes to ShadowJar

Context / Problem

When running the built executable application via java -jar morphe-desktop-1.13.0-all.jar, the JVM triggers warnings stating WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module.

While we had Enable-Native-Access: ALL-UNNAMED declared inside the standard jar task configuration block, the Gradle Shadow Plugin (com.gradleup.shadow) generates its own isolated manifest scope for the final fat/minified distribution artifact. Because we use the application plugin alongside down-stream ProGuard/minification routines, the standard manifest attributes were failing to properly inherit/merge down to the final artifact.

Solution

Following the Gradleup Shadow Manifest Configuration Guidelines, I have explicitly assigned the requisite MANIFEST.MF properties (the Enable-Native-Access) directly into the shadowJar task block.

This ensures that the required flag is hardcoded into the final compiled archive, removing runtime console spam without requiring users to append manual execution flags.

Verification

Checked compiled artifact via:
jar xf build/libs/morphe-desktop-all.jar META-INF/MANIFEST.MF && cat META-INF/MANIFEST.MF

  • Confirmed properties are written properly.
  • Confirmed java -jar executes without native-access warnings.

The version of jre that I use:

java --version
openjdk 26.0.2 2026-07-21
OpenJDK Runtime Environment Zulu26.32+13-CA (build 26.0.2+10)
OpenJDK 64-Bit Server VM Zulu26.32+13-CA (build 26.0.2+10, mixed mode, sharing)

### Bug Fix: Explicitly map JVM Manifest attributes to ShadowJar

#### Context / Problem
When running the built executable application via `java -jar morphe-desktop-1.13.0-all.jar`, the JVM triggers warnings stating `WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module`.

While we had `Enable-Native-Access: ALL-UNNAMED` declared inside the standard `jar` task configuration block, the Gradle Shadow Plugin (`com.gradleup.shadow`) generates its own isolated manifest scope for the final fat/minified distribution artifact. Because we use the `application` plugin alongside down-stream ProGuard/minification routines, the standard manifest attributes were failing to properly inherit/merge down to the final artifact.

#### Solution
Following the [Gradleup Shadow Manifest Configuration Guidelines](https://gradleup.com/shadow/configuration/), I have explicitly assigned the requisite `MANIFEST.MF` properties (the `Enable-Native-Access`) directly into the `shadowJar` task block.

This ensures that the required flag is hardcoded into the final compiled archive, removing runtime console spam without requiring users to append manual execution flags.

#### Verification
Checked compiled artifact via:
`jar xf build/libs/morphe-desktop-all.jar META-INF/MANIFEST.MF && cat META-INF/MANIFEST.MF`
- Confirmed properties are written properly.
- Confirmed `java -jar` executes without native-access warnings.

The version of jre that I use:
```
java --version
openjdk 26.0.2 2026-07-21
OpenJDK Runtime Environment Zulu26.32+13-CA (build 26.0.2+10)
OpenJDK 64-Bit Server VM Zulu26.32+13-CA (build 26.0.2+10, mixed mode, sharing)
```
@donnykurnia

Copy link
Copy Markdown
Contributor Author

related with #248 and #249

@LisoUseInAIKyrios LisoUseInAIKyrios changed the title Bug Fix: Explicitly map JVM Manifest attributes to ShadowJar fix: Preserve manifest attributes in minimized jar Aug 7, 2026
@LisoUseInAIKyrios
LisoUseInAIKyrios merged commit e5684d9 into MorpheApp:dev Aug 7, 2026
3 checks passed
github-actions Bot pushed a commit that referenced this pull request Aug 7, 2026
## [1.13.1-dev.1](v1.13.0...v1.13.1-dev.1) (2026-08-07)

### Bug Fixes

* Preserve manifest attributes in minimized jar ([#255](#255)) ([e5684d9](e5684d9))
github-actions Bot pushed a commit that referenced this pull request Aug 18, 2026
## [1.13.1](v1.13.0...v1.13.1) (2026-08-18)

### Bug Fixes

* Preserve manifest attributes in minimized jar ([#255](#255)) ([e5684d9](e5684d9))
* Update patcher dependency ([7ba5e1c](7ba5e1c))
github-actions Bot pushed a commit to AzyrRuthless/morphe-cli that referenced this pull request Aug 24, 2026
# [1.8.0-dev.1](v1.7.1...v1.8.0-dev.1) (2026-08-24)

### Bug Fixes

* Add Enable-Native-Access attribute to jar manifest ([MorpheApp#249](https://github.com/AzyrRuthless/morphe-cli/issues/249)) ([d70a4c2](d70a4c2))
* Added progress bar to first time GUI download + Switched from materials icon to materials symbol + Cleaned up home screen code ([MorpheApp#234](https://github.com/AzyrRuthless/morphe-cli/issues/234)) ([39e948e](39e948e))
* Allow enabling/disabling patches using case insensitive patch names ([MorpheApp#48](https://github.com/AzyrRuthless/morphe-cli/issues/48)) ([03a280a](03a280a))
* Allow patches with empty targets to apply automatically ([MorpheApp#207](https://github.com/AzyrRuthless/morphe-cli/issues/207)) ([5a07bf7](5a07bf7))
* ARSCLib libraries are excluded during minimization ([2714ab5](2714ab5))
* ARSCLib libraries are not included in minimized fat jar ([5dce038](5dce038))
* Bump arsclib version, remove APKEditor ([412847e](412847e))
* clean up libs.versions.toml and build.gradle.kts configuration ([431bd82](431bd82))
* Clean up obsolete GUI dependencies ([MorpheApp#233](https://github.com/AzyrRuthless/morphe-cli/issues/233)) ([0d6816c](0d6816c))
* CLI --purge command does not cleanup temp APK ([MorpheApp#169](https://github.com/AzyrRuthless/morphe-cli/issues/169)) ([6163e9c](6163e9c))
* Close adb when app closes ([MorpheApp#153](https://github.com/AzyrRuthless/morphe-cli/issues/153)) ([a43de5a](a43de5a))
* continue-on-error fix + force windows to `FULL` ([MorpheApp#120](https://github.com/AzyrRuthless/morphe-cli/issues/120)) ([036faba](036faba))
* Dispatch error when launching app ([MorpheApp#79](https://github.com/AzyrRuthless/morphe-cli/issues/79)) ([989e72a](989e72a))
* Do not log patch name more than once if disabled ([MorpheApp#49](https://github.com/AzyrRuthless/morphe-cli/issues/49)) ([b980bb8](b980bb8))
* fix patch repo rate limiting by switching to raw links + stream downloads to disk ([MorpheApp#214](https://github.com/AzyrRuthless/morphe-cli/issues/214)) ([e21646c](e21646c))
* Handle GUI patching xapk / apks, add distinct patch-source channel colors, improve patch loading errors ([MorpheApp#180](https://github.com/AzyrRuthless/morphe-cli/issues/180)) ([d8245f0](d8245f0))
* Handle patching XAPK files ([MorpheApp#93](https://github.com/AzyrRuthless/morphe-cli/issues/93)) ([5d18490](5d18490))
* Handle running CLI in headless environment ([MorpheApp#95](https://github.com/AzyrRuthless/morphe-cli/issues/95)) ([70f2952](70f2952))
* Include Notice and License files in shadow jar release ([MorpheApp#113](https://github.com/AzyrRuthless/morphe-cli/issues/113)) ([a9a2402](a9a2402))
* move both HTTP clients to OkHttp for parity with manager ([MorpheApp#254](https://github.com/AzyrRuthless/morphe-cli/issues/254)) ([e8379be](e8379be))
* Multi patch source minor network times out ([MorpheApp#155](https://github.com/AzyrRuthless/morphe-cli/issues/155)) ([06e5788](06e5788))
* Preserve manifest attributes in minimized jar ([MorpheApp#255](https://github.com/AzyrRuthless/morphe-cli/issues/255)) ([e5684d9](e5684d9))
* Re-enable strip libs feature ([MorpheApp#117](https://github.com/AzyrRuthless/morphe-cli/issues/117)) ([6d2bb94](6d2bb94))
* Resilient patch bundle loading + quieter ADB logging + unique version output naming ([MorpheApp#224](https://github.com/AzyrRuthless/morphe-cli/issues/224)) ([8cb5250](8cb5250))
* resolve deprecation warnings and fix `list-versions` accuracy ([MorpheApp#225](https://github.com/AzyrRuthless/morphe-cli/issues/225)) ([9b79d69](9b79d69))
* signing improvements ([MorpheApp#160](https://github.com/AzyrRuthless/morphe-cli/issues/160)) ([166f940](166f940))
* Update dependencies ([83d3969](83d3969))
* Update patcher dependency ([7ba5e1c](7ba5e1c))
* Update to latest ARSCLib ([f62a179](f62a179))
* Update to latest patcher ([2c89128](2c89128))
* Update to latest patcher ([a0bea3d](a0bea3d))
* Update to latest patcher ([efd0cf1](efd0cf1))
* Update to latest Patcher ([fa1aa30](fa1aa30))
* Update to latest Patcher ([fbc6c9e](fbc6c9e))
* Update to latest patcher dev ([496d8e9](496d8e9))
* Update to latest patcher dev ([1356259](1356259))
* Update to latest patcher dev ([fb8a4ff](fb8a4ff))
* Update to latest patcher dev ([1551c8e](1551c8e))
* Update to Patcher 1.3.0 ([19c0846](19c0846))
* Update to Patcher 1.3.1 ([39bdd44](39bdd44))
* Update to Patcher 1.3.2 ([f4c00bb](f4c00bb))
* Update to Patcher 1.3.3 ([ca579fb](ca579fb))
* Update to patcher 1.5.1 ([d7c5036](d7c5036))
* Use GitHub raw links for CLI update check ([MorpheApp#87](https://github.com/AzyrRuthless/morphe-cli/issues/87)) ([2aa6263](2aa6263))
* Use latest library dev release ([b60ea86](b60ea86))
* use latest patcher ([d7e9b62](d7e9b62))
* Use latest patcher and library dev release ([2f21880](2f21880))
* Use latest patcher dev release ([ea6e231](ea6e231))
* Use latest patcher dev release ([2b33a6c](2b33a6c))
* Use latest patcher dev release ([baf34de](baf34de))
* Use latest patcher dev release ([9cf07f9](9cf07f9))
* Use latest patcher dev release ([791257c](791257c))
* Use latest patcher dev release ([7cc195a](7cc195a))
* Use latest patcher dev release ([f8bd235](f8bd235))
* Use more logging verbosity when updating options.json ([MorpheApp#72](https://github.com/AzyrRuthless/morphe-cli/issues/72)) ([4d223f2](4d223f2))
* Use patcher implementation of strip libs ([MorpheApp#83](https://github.com/AzyrRuthless/morphe-cli/issues/83)) ([43f50ea](43f50ea)), closes [MorpheApp#80](https://github.com/AzyrRuthless/morphe-cli/issues/80) [MorpheApp#82](https://github.com/AzyrRuthless/morphe-cli/issues/82)
* Use same default keystore values as Morphe Manager ([MorpheApp#96](https://github.com/AzyrRuthless/morphe-cli/issues/96)) ([2d70c01](2d70c01))

### Features

* "your apps" section + settings and tools split + re-orderable patch sources + block play store updates for patched apps ([MorpheApp#176](https://github.com/AzyrRuthless/morphe-cli/issues/176)) ([d865abd](d865abd))
* Add `--continue-on-error` argument, return non zero exit code if patching fails ([MorpheApp#47](https://github.com/AzyrRuthless/morphe-cli/issues/47)) ([255646b](255646b))
* Add `--include-experimental` flag to `list-patches` and `list-versions` ([MorpheApp#189](https://github.com/AzyrRuthless/morphe-cli/issues/189)) ([8ef916c](8ef916c))
* Add `--options-file` json patch/option configuration ([MorpheApp#53](https://github.com/AzyrRuthless/morphe-cli/issues/53)) ([44943da](44943da))
* Add `--out` and `--patches` arguments to `list-patches` command ([MorpheApp#60](https://github.com/AzyrRuthless/morphe-cli/issues/60)) ([ef9fc48](ef9fc48))
* Add `--striplibs` argument to strip unwanted architectures ([MorpheApp#46](https://github.com/AzyrRuthless/morphe-cli/issues/46)) ([7442d94](7442d94))
* Add ability to write patching results to JSON file ([MorpheApp#25](https://github.com/AzyrRuthless/morphe-cli/issues/25)) ([304b3ea](304b3ea))
* Add ARSCLib support ([MorpheApp#55](https://github.com/AzyrRuthless/morphe-cli/issues/55)) ([07c3f7e](07c3f7e))
* Add desktop GUI ([MorpheApp#42](https://github.com/AzyrRuthless/morphe-cli/issues/42)) ([cd627e6](cd627e6))
* Add GUI third party patch sources, add experimental app patching ([MorpheApp#98](https://github.com/AzyrRuthless/morphe-cli/issues/98)) ([da5ec1c](da5ec1c))
* Add icon studio ([MorpheApp#211](https://github.com/AzyrRuthless/morphe-cli/issues/211)) ([16e5cb3](16e5cb3))
* Add in-app dependency license viewer ([MorpheApp#114](https://github.com/AzyrRuthless/morphe-cli/issues/114)) ([77a1dde](77a1dde))
* Add ProGuard jar shrinking ([MorpheApp#227](https://github.com/AzyrRuthless/morphe-cli/issues/227)) ([0e6ae05](0e6ae05))
* Add search function to license viewer ([MorpheApp#124](https://github.com/AzyrRuthless/morphe-cli/issues/124)) ([d3d9feb](d3d9feb))
* Add setting menu to save patched app crash logs to file ([MorpheApp#143](https://github.com/AzyrRuthless/morphe-cli/issues/143)) ([90836b5](90836b5))
* Apply patches from multiple patch bundles, add GUI patch source selector  ([MorpheApp#145](https://github.com/AzyrRuthless/morphe-cli/issues/145)) ([44ed6c6](44ed6c6))
* Array GUI patches alphabetically, improve error logging, use separate class loader for multiple patch bundles ([MorpheApp#187](https://github.com/AzyrRuthless/morphe-cli/issues/187)) ([755909c](755909c))
* cli ignores unknown keys (fix) + unify CLI/GUI patch cache + add clear-cache + make purge opt-out ([MorpheApp#192](https://github.com/AzyrRuthless/morphe-cli/issues/192)) ([70d16f0](70d16f0))
* Custom output path + better GUI scrollbars ([MorpheApp#127](https://github.com/AzyrRuthless/morphe-cli/issues/127)) ([70e2721](70e2721))
* developer mode +  configurable data directory ([MorpheApp#220](https://github.com/AzyrRuthless/morphe-cli/issues/220)) ([a1ba3a2](a1ba3a2))
* dynamically download GUI dependencies to reduce jar size ([MorpheApp#232](https://github.com/AzyrRuthless/morphe-cli/issues/232)) ([d74a3c2](d74a3c2))
* Faster dex rebuilding + reduced memory requirements  ([MorpheApp#108](https://github.com/AzyrRuthless/morphe-cli/issues/108)) ([ed8918e](ed8918e))
* Inform user if cli is outdated ([MorpheApp#81](https://github.com/AzyrRuthless/morphe-cli/issues/81)) ([5bcd4f7](5bcd4f7))
* Patch sources follows latest (stable/dev) instead of to last used version ([MorpheApp#185](https://github.com/AzyrRuthless/morphe-cli/issues/185)) ([5d34993](5d34993))
* Rename project to "Morphe Desktop" ([MorpheApp#181](https://github.com/AzyrRuthless/morphe-cli/issues/181)) ([66a6de7](66a6de7))
* route links through patched app + uninstall from "Your Apps" section's cards ([MorpheApp#179](https://github.com/AzyrRuthless/morphe-cli/issues/179)) ([1626ce5](1626ce5))
* Support GitHub repo urls with `--patches` argument ([MorpheApp#71](https://github.com/AzyrRuthless/morphe-cli/issues/71)) ([2cc09a9](2cc09a9))
* Support patching APKM bundles ([MorpheApp#40](https://github.com/AzyrRuthless/morphe-cli/issues/40)) ([bfe43d0](bfe43d0))
* UI improvements and fixes ([MorpheApp#128](https://github.com/AzyrRuthless/morphe-cli/issues/128)) ([980ebac](980ebac))
* Update to Morphe patcher / library 1.1.0 ([ef8e95d](ef8e95d))
* Update to Morphe patcher 1.1.1 ([6162983](6162983))
github-actions Bot pushed a commit to AzyrRuthless/morphe-cli that referenced this pull request Aug 24, 2026
# [1.8.0](v1.7.1...v1.8.0) (2026-08-24)

### Bug Fixes

* Add Enable-Native-Access attribute to jar manifest ([MorpheApp#249](https://github.com/AzyrRuthless/morphe-cli/issues/249)) ([d70a4c2](d70a4c2))
* Added progress bar to first time GUI download + Switched from materials icon to materials symbol + Cleaned up home screen code ([MorpheApp#234](https://github.com/AzyrRuthless/morphe-cli/issues/234)) ([39e948e](39e948e))
* Allow enabling/disabling patches using case insensitive patch names ([MorpheApp#48](https://github.com/AzyrRuthless/morphe-cli/issues/48)) ([03a280a](03a280a))
* Allow patches with empty targets to apply automatically ([MorpheApp#207](https://github.com/AzyrRuthless/morphe-cli/issues/207)) ([5a07bf7](5a07bf7))
* ARSCLib libraries are excluded during minimization ([2714ab5](2714ab5))
* ARSCLib libraries are not included in minimized fat jar ([5dce038](5dce038))
* Bump arsclib version, remove APKEditor ([412847e](412847e))
* clean up libs.versions.toml and build.gradle.kts configuration ([431bd82](431bd82))
* Clean up obsolete GUI dependencies ([MorpheApp#233](https://github.com/AzyrRuthless/morphe-cli/issues/233)) ([0d6816c](0d6816c))
* CLI --purge command does not cleanup temp APK ([MorpheApp#169](https://github.com/AzyrRuthless/morphe-cli/issues/169)) ([6163e9c](6163e9c))
* Close adb when app closes ([MorpheApp#153](https://github.com/AzyrRuthless/morphe-cli/issues/153)) ([a43de5a](a43de5a))
* continue-on-error fix + force windows to `FULL` ([MorpheApp#120](https://github.com/AzyrRuthless/morphe-cli/issues/120)) ([036faba](036faba))
* Dispatch error when launching app ([MorpheApp#79](https://github.com/AzyrRuthless/morphe-cli/issues/79)) ([989e72a](989e72a))
* Do not log patch name more than once if disabled ([MorpheApp#49](https://github.com/AzyrRuthless/morphe-cli/issues/49)) ([b980bb8](b980bb8))
* fix patch repo rate limiting by switching to raw links + stream downloads to disk ([MorpheApp#214](https://github.com/AzyrRuthless/morphe-cli/issues/214)) ([e21646c](e21646c))
* Handle GUI patching xapk / apks, add distinct patch-source channel colors, improve patch loading errors ([MorpheApp#180](https://github.com/AzyrRuthless/morphe-cli/issues/180)) ([d8245f0](d8245f0))
* Handle patching XAPK files ([MorpheApp#93](https://github.com/AzyrRuthless/morphe-cli/issues/93)) ([5d18490](5d18490))
* Handle running CLI in headless environment ([MorpheApp#95](https://github.com/AzyrRuthless/morphe-cli/issues/95)) ([70f2952](70f2952))
* Include Notice and License files in shadow jar release ([MorpheApp#113](https://github.com/AzyrRuthless/morphe-cli/issues/113)) ([a9a2402](a9a2402))
* move both HTTP clients to OkHttp for parity with manager ([MorpheApp#254](https://github.com/AzyrRuthless/morphe-cli/issues/254)) ([e8379be](e8379be))
* Multi patch source minor network times out ([MorpheApp#155](https://github.com/AzyrRuthless/morphe-cli/issues/155)) ([06e5788](06e5788))
* Preserve manifest attributes in minimized jar ([MorpheApp#255](https://github.com/AzyrRuthless/morphe-cli/issues/255)) ([e5684d9](e5684d9))
* Re-enable strip libs feature ([MorpheApp#117](https://github.com/AzyrRuthless/morphe-cli/issues/117)) ([6d2bb94](6d2bb94))
* Resilient patch bundle loading + quieter ADB logging + unique version output naming ([MorpheApp#224](https://github.com/AzyrRuthless/morphe-cli/issues/224)) ([8cb5250](8cb5250))
* resolve deprecation warnings and fix `list-versions` accuracy ([MorpheApp#225](https://github.com/AzyrRuthless/morphe-cli/issues/225)) ([9b79d69](9b79d69))
* signing improvements ([MorpheApp#160](https://github.com/AzyrRuthless/morphe-cli/issues/160)) ([166f940](166f940))
* Update dependencies ([83d3969](83d3969))
* Update patcher dependency ([7ba5e1c](7ba5e1c))
* Update to latest ARSCLib ([f62a179](f62a179))
* Update to latest patcher ([2c89128](2c89128))
* Update to latest patcher ([a0bea3d](a0bea3d))
* Update to latest patcher ([efd0cf1](efd0cf1))
* Update to latest Patcher ([fa1aa30](fa1aa30))
* Update to latest Patcher ([fbc6c9e](fbc6c9e))
* Update to latest patcher dev ([496d8e9](496d8e9))
* Update to latest patcher dev ([1356259](1356259))
* Update to latest patcher dev ([fb8a4ff](fb8a4ff))
* Update to latest patcher dev ([1551c8e](1551c8e))
* Update to Patcher 1.3.0 ([19c0846](19c0846))
* Update to Patcher 1.3.1 ([39bdd44](39bdd44))
* Update to Patcher 1.3.2 ([f4c00bb](f4c00bb))
* Update to Patcher 1.3.3 ([ca579fb](ca579fb))
* Update to patcher 1.5.1 ([d7c5036](d7c5036))
* Use GitHub raw links for CLI update check ([MorpheApp#87](https://github.com/AzyrRuthless/morphe-cli/issues/87)) ([2aa6263](2aa6263))
* Use latest library dev release ([b60ea86](b60ea86))
* use latest patcher ([d7e9b62](d7e9b62))
* Use latest patcher and library dev release ([2f21880](2f21880))
* Use latest patcher dev release ([ea6e231](ea6e231))
* Use latest patcher dev release ([2b33a6c](2b33a6c))
* Use latest patcher dev release ([baf34de](baf34de))
* Use latest patcher dev release ([9cf07f9](9cf07f9))
* Use latest patcher dev release ([791257c](791257c))
* Use latest patcher dev release ([7cc195a](7cc195a))
* Use latest patcher dev release ([f8bd235](f8bd235))
* Use more logging verbosity when updating options.json ([MorpheApp#72](https://github.com/AzyrRuthless/morphe-cli/issues/72)) ([4d223f2](4d223f2))
* Use patcher implementation of strip libs ([MorpheApp#83](https://github.com/AzyrRuthless/morphe-cli/issues/83)) ([43f50ea](43f50ea)), closes [MorpheApp#80](https://github.com/AzyrRuthless/morphe-cli/issues/80) [MorpheApp#82](https://github.com/AzyrRuthless/morphe-cli/issues/82)
* Use same default keystore values as Morphe Manager ([MorpheApp#96](https://github.com/AzyrRuthless/morphe-cli/issues/96)) ([2d70c01](2d70c01))

### Features

* "your apps" section + settings and tools split + re-orderable patch sources + block play store updates for patched apps ([MorpheApp#176](https://github.com/AzyrRuthless/morphe-cli/issues/176)) ([d865abd](d865abd))
* Add `--continue-on-error` argument, return non zero exit code if patching fails ([MorpheApp#47](https://github.com/AzyrRuthless/morphe-cli/issues/47)) ([255646b](255646b))
* Add `--include-experimental` flag to `list-patches` and `list-versions` ([MorpheApp#189](https://github.com/AzyrRuthless/morphe-cli/issues/189)) ([8ef916c](8ef916c))
* Add `--options-file` json patch/option configuration ([MorpheApp#53](https://github.com/AzyrRuthless/morphe-cli/issues/53)) ([44943da](44943da))
* Add `--out` and `--patches` arguments to `list-patches` command ([MorpheApp#60](https://github.com/AzyrRuthless/morphe-cli/issues/60)) ([ef9fc48](ef9fc48))
* Add `--striplibs` argument to strip unwanted architectures ([MorpheApp#46](https://github.com/AzyrRuthless/morphe-cli/issues/46)) ([7442d94](7442d94))
* Add ability to write patching results to JSON file ([MorpheApp#25](https://github.com/AzyrRuthless/morphe-cli/issues/25)) ([304b3ea](304b3ea))
* Add ARSCLib support ([MorpheApp#55](https://github.com/AzyrRuthless/morphe-cli/issues/55)) ([07c3f7e](07c3f7e))
* Add desktop GUI ([MorpheApp#42](https://github.com/AzyrRuthless/morphe-cli/issues/42)) ([cd627e6](cd627e6))
* Add GUI third party patch sources, add experimental app patching ([MorpheApp#98](https://github.com/AzyrRuthless/morphe-cli/issues/98)) ([da5ec1c](da5ec1c))
* Add icon studio ([MorpheApp#211](https://github.com/AzyrRuthless/morphe-cli/issues/211)) ([16e5cb3](16e5cb3))
* Add in-app dependency license viewer ([MorpheApp#114](https://github.com/AzyrRuthless/morphe-cli/issues/114)) ([77a1dde](77a1dde))
* Add ProGuard jar shrinking ([MorpheApp#227](https://github.com/AzyrRuthless/morphe-cli/issues/227)) ([0e6ae05](0e6ae05))
* Add search function to license viewer ([MorpheApp#124](https://github.com/AzyrRuthless/morphe-cli/issues/124)) ([d3d9feb](d3d9feb))
* Add setting menu to save patched app crash logs to file ([MorpheApp#143](https://github.com/AzyrRuthless/morphe-cli/issues/143)) ([90836b5](90836b5))
* Apply patches from multiple patch bundles, add GUI patch source selector  ([MorpheApp#145](https://github.com/AzyrRuthless/morphe-cli/issues/145)) ([44ed6c6](44ed6c6))
* Array GUI patches alphabetically, improve error logging, use separate class loader for multiple patch bundles ([MorpheApp#187](https://github.com/AzyrRuthless/morphe-cli/issues/187)) ([755909c](755909c))
* cli ignores unknown keys (fix) + unify CLI/GUI patch cache + add clear-cache + make purge opt-out ([MorpheApp#192](https://github.com/AzyrRuthless/morphe-cli/issues/192)) ([70d16f0](70d16f0))
* Custom output path + better GUI scrollbars ([MorpheApp#127](https://github.com/AzyrRuthless/morphe-cli/issues/127)) ([70e2721](70e2721))
* developer mode +  configurable data directory ([MorpheApp#220](https://github.com/AzyrRuthless/morphe-cli/issues/220)) ([a1ba3a2](a1ba3a2))
* dynamically download GUI dependencies to reduce jar size ([MorpheApp#232](https://github.com/AzyrRuthless/morphe-cli/issues/232)) ([d74a3c2](d74a3c2))
* Faster dex rebuilding + reduced memory requirements  ([MorpheApp#108](https://github.com/AzyrRuthless/morphe-cli/issues/108)) ([ed8918e](ed8918e))
* Inform user if cli is outdated ([MorpheApp#81](https://github.com/AzyrRuthless/morphe-cli/issues/81)) ([5bcd4f7](5bcd4f7))
* Patch sources follows latest (stable/dev) instead of to last used version ([MorpheApp#185](https://github.com/AzyrRuthless/morphe-cli/issues/185)) ([5d34993](5d34993))
* Rename project to "Morphe Desktop" ([MorpheApp#181](https://github.com/AzyrRuthless/morphe-cli/issues/181)) ([66a6de7](66a6de7))
* route links through patched app + uninstall from "Your Apps" section's cards ([MorpheApp#179](https://github.com/AzyrRuthless/morphe-cli/issues/179)) ([1626ce5](1626ce5))
* Support GitHub repo urls with `--patches` argument ([MorpheApp#71](https://github.com/AzyrRuthless/morphe-cli/issues/71)) ([2cc09a9](2cc09a9))
* Support patching APKM bundles ([MorpheApp#40](https://github.com/AzyrRuthless/morphe-cli/issues/40)) ([bfe43d0](bfe43d0))
* UI improvements and fixes ([MorpheApp#128](https://github.com/AzyrRuthless/morphe-cli/issues/128)) ([980ebac](980ebac))
* Update to Morphe patcher / library 1.1.0 ([ef8e95d](ef8e95d))
* Update to Morphe patcher 1.1.1 ([6162983](6162983))
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