Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add local Android installer #25

Merged
merged 23 commits into from
Apr 7, 2024
Merged

feat: Add local Android installer #25

merged 23 commits into from
Apr 7, 2024

Conversation

oSumAtrIX
Copy link
Member

@oSumAtrIX oSumAtrIX commented Jan 10, 2024

About

This PR refactors the project to use Kotlin Multiplatform to support installation on Android directly. This will allow ReVanced frontends that run on Android to use the unified local installer from this library instead of using their own implementation.

TODO

  • Implement local Android installer
  • Check for breaking changes
  • Ideally, add tests No idea how
  • Make root installer and regular installer handle common error cases such as incorrect preinstalled version, or package installer errors

# Conflicts:
#	gradle.properties
#	gradle/libs.versions.toml
@oSumAtrIX oSumAtrIX linked an issue Feb 11, 2024 that may be closed by this pull request
3 tasks
# Conflicts:
#	.editorconfig
#	build.gradle.kts
#	gradle/libs.versions.toml
#	gradle/wrapper/gradle-wrapper.properties
#	revanced-library/src/commonMain/kotlin/app/revanced/library/zip/Extensions.kt
#	revanced-library/src/commonMain/kotlin/app/revanced/library/zip/ZipFile.kt
#	revanced-library/src/commonMain/kotlin/app/revanced/library/zip/structures/ZipEndRecord.kt
#	revanced-library/src/commonMain/kotlin/app/revanced/library/zip/structures/ZipEntry.kt
# Conflicts:
#	api/revanced-library.api
#	build.gradle.kts
#	gradle.properties
#	gradle/libs.versions.toml
#	src/main/kotlin/app/revanced/library/adb/Constants.kt
# Conflicts:
#	api/revanced-library.api
# Conflicts:
#	gradle.properties
@oSumAtrIX oSumAtrIX marked this pull request as ready for review April 7, 2024 16:22
@oSumAtrIX oSumAtrIX merged commit 1ef188c into dev Apr 7, 2024
1 of 2 checks passed
Copy link

welcome bot commented Apr 7, 2024

Thank you for contributing to ReVanced. Join us on Discord to receive a role for your contribution.

@oSumAtrIX oSumAtrIX deleted the feat/installer branch April 7, 2024 16:28
oSumAtrIX added a commit that referenced this pull request Apr 7, 2024
revanced-bot pushed a commit that referenced this pull request Apr 7, 2024
# [2.4.0-dev.1](v2.3.0...v2.4.0-dev.1) (2024-04-07)

### Features

* Add local Android installer ([#25](#25)) ([43d655a](43d655a))
revanced-bot pushed a commit that referenced this pull request Aug 6, 2024
# [3.0.0](v2.3.0...v3.0.0) (2024-08-06)

### Bug Fixes

* Make functions internal which are supposed to be internal ([893d22d](893d22d))

### Build System

* Refactor to DSL to bump ReVanced Patcher ([7f5d6da](7f5d6da))

### Features

* Add local Android installer ([#25](#25)) ([43d655a](43d655a))
* Remove deprecated functions ([b9bf3bc](b9bf3bc))

### BREAKING CHANGES

* Some functions have been removed.
* Some functions are not available anymore.
* The signature of some functions has changed.
revanced-bot pushed a commit that referenced this pull request Aug 6, 2024
# [3.0.0](v2.3.0...v3.0.0) (2024-08-06)

### Bug Fixes

* Make functions internal which are supposed to be internal ([893d22d](893d22d))

### Build System

* Refactor to DSL to bump ReVanced Patcher ([7f5d6da](7f5d6da))

### Features

* Add local Android installer ([#25](#25)) ([43d655a](43d655a))
* Remove deprecated functions ([b9bf3bc](b9bf3bc))

### BREAKING CHANGES

* Some functions have been removed.
* Some functions are not available anymore.
* The signature of some functions has changed.
E85Addict pushed a commit to E85Addict/revanced-library that referenced this pull request Aug 21, 2024
# [3.0.0](v2.3.0...v3.0.0) (2024-08-21)

### Bug Fixes

* Make functions internal which are supposed to be internal ([893d22d](893d22d))

### Build System

* Refactor to DSL to bump ReVanced Patcher ([7f5d6da](7f5d6da))

### Features

* Add local Android installer ([ReVanced#25](https://github.com/E85Addict/revanced-library/issues/25)) ([43d655a](43d655a))
* Remove deprecated functions ([b9bf3bc](b9bf3bc))

### Performance Improvements

* --rip-lib ([df39ae3](df39ae3))
* Personal Sync Upstream ([5381f3a](5381f3a))

### BREAKING CHANGES

* Some functions have been removed.
* Some functions are not available anymore.
* The signature of some functions has changed.
E85Addict pushed a commit to E85Addict/revanced-library that referenced this pull request Aug 24, 2024
# [3.0.0](v2.3.0...v3.0.0) (2024-08-24)

### Bug Fixes

* Make functions internal which are supposed to be internal ([893d22d](893d22d))

### Build System

* Refactor to DSL to bump ReVanced Patcher ([7f5d6da](7f5d6da))

### Features

* Add local Android installer ([ReVanced#25](https://github.com/E85Addict/revanced-library/issues/25)) ([43d655a](43d655a))
* Remove deprecated functions ([b9bf3bc](b9bf3bc))

### Performance Improvements

* --rip-lib ([eec3306](eec3306))
* Personal Sync Upstream ([a7b785f](a7b785f))

### BREAKING CHANGES

* Some functions have been removed.
* Some functions are not available anymore.
* The signature of some functions has changed.
github-actions bot pushed a commit to inotia00/revanced-library that referenced this pull request Dec 7, 2024
# 1.0.0 (2024-12-07)

### Bug Fixes

* Add missing log when calling `UserAdbManager#install` ([90b612b](90b612b))
* Ask for root permissions before trying to use them ([aea1d69](aea1d69))
* Catch exceptions when serializing invalid patch options ([cd73bd3](cd73bd3))
* Check if file exists before trying to open it ([8ddc6e9](8ddc6e9))
* Delete mount script ([4fe0fb0](4fe0fb0))
* Detect if app is installed by fixing inversion ([649f06b](649f06b))
* Differentiate no package compatibility to any version compatibility ([762b7e3](762b7e3))
* Do not specify a provider to automatically select an available one ([249372c](249372c))
* Execute ADB commands sequentially to fix mounting issues ([ReVanced#12](https://github.com/inotia00/revanced-library/issues/12)) ([fda3eca](fda3eca))
* Make functions internal which are supposed to be internal ([893d22d](893d22d))
* Make property private ([51109c4](51109c4))
* Map dependencies from `KClass` into `String` to fix serialization ([57e36ab](57e36ab))
* Only load the keystore once per instantiation ([5993f7e](5993f7e))
* Serialize compatible packages as a map instead of a set of pairs. ([737e272](737e272))
* Sign APKs using `apksig` ([f59ecbc](f59ecbc))
* Sort the version maps by the most common version ([e4be6db](e4be6db))
* Support mounting even when Magisk is not installed ([2a30845](2a30845))
* Use `BKS` instead of default signing provider to fix backwards compatibility ([41805fc](41805fc))
* Use correct function name casing ([ef38d8b](ef38d8b))
* Use the JVM name instead of the value from `KClass#toString` ([d18e436](d18e436))

### Build System

* Refactor to DSL to bump ReVanced Patcher ([7f5d6da](7f5d6da))

### Features

* Add `PatchUtils#getMostCommonCompatibleVersions` utility function ([c5f3536](c5f3536))
* add `rip-libs` ([23df153](23df153))
* add compatibility with keystores generated in CLI v3.0 ([907124a](907124a))
* Add initial project structure ([833291d](833291d))
* Add JSON de- and serialization of patches ([ecff6fe](ecff6fe))
* Add local Android installer ([ReVanced#25](https://github.com/inotia00/revanced-library/issues/25)) ([43d655a](43d655a))
* Add utility function around key certificate pairs ([2df3484](2df3484))
* Allow getting most common compatible versions for all packages ([96845ba](96845ba))
* Improve exception message ([b15efa4](b15efa4))
* Improve mount reliability by unmounting existing mounts and killing running apps ([9fda407](9fda407))
* Increase certainty of the possibility to mount ([10f8cd1](10f8cd1))
* Increase default expiration date of certificate ([f2bd3f5](f2bd3f5))
* Increase the key size to 4096 ([892e083](892e083))
* Log warnings when compiling resources ([1dc8e2e](1dc8e2e))
* Mention APK file name when logging aligning ([244ebc2](244ebc2))
* Remove deprecated functions ([b9bf3bc](b9bf3bc))
* revert Options object ([99d81d1](99d81d1))
* Select first Adb device, if none supplied automatically ([1a5f868](1a5f868))
* Simplify signing utility API ([4c6a636](4c6a636))
* Use `apkzlib` instead of own implementations and bump ReVanced Patcher ([3aa6dc2](3aa6dc2))
* Use better log messages when handling exceptions ([5896968](5896968))
* Warn when option could not be set because the option does not exist ([7ec6504](7ec6504))

### Performance Improvements

* Use maps to set options ([13823b7](13823b7))

### BREAKING CHANGES

* Some functions have been removed.
* Some functions are not available anymore.
* The signature of some functions has changed.
* This commit removes deprecated APIs and bumps ReVanced Patcher. Because of it's changes, `apkzlib` is now used instead of own implementations of `ZipFile`
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: provide a way to mount apk without adb
1 participant