(misc) tweaks and upgrades

Signed-off-by: androidacy-user <opensource@androidacy.com>
master
androidacy-user 1 year ago
parent 208ad83920
commit d4218e5a9d

@ -1,11 +1,15 @@
# Fox's Magisk Module Manager # Fox's Magisk Module Manager
### Sponsored by and developed with Androidacy. Find them on the web [here](https://www.androidacy.com/?utm_source=fox-readme&utm_medium=web&utm_campagin=github).
<details> <details>
<summary> <summary>
Important news Important news about Fox2Code
</summary> </summary>
I have health problems that made me work slow on everything. I don't like sharing my health problmes **Tl;Dr: Fox2Code is temporarily less involved with development and support due to health issues. Androidacy is happy to take on both in his absence, and will continue to provide both upon his return.**
I have health problems that made me work slow on everything. I don't like sharing my health problems
but it has been to much recently for me to keep it for myself. but it has been to much recently for me to keep it for myself.
This has been too much for me recently, so my moderators (same that on telegram) This has been too much for me recently, so my moderators (same that on telegram)
@ -97,21 +101,24 @@ and download and install the latest `.apk` on your device.
## Repositories Available ## Repositories Available
The app currently use these two repos as module sources, each with their own benefits and #### Please note that we reserve the right to add, remove, and change default repos at any time, and the inclusion of any repo does not equate endorsement or any agreement with or of said repo.
drawbacks:
(Note: Each module repo can be disabled in the settings of the app) The app currently use the below repos as module sources, each with their own benefits and
(Note²: I do not own or actively monitor any of the repos or modules, **download at your own risk**) drawbacks. Note that the app developers do not actively monitor any repos, and downloading or
installing from them is at the user's own risk. Default repos can be enabled or disabled in-app.
#### [https://www.androidacy.com/modules-repo/](https://www.androidacy.com/modules-repo/) #### [Androidacy](https://www.androidacy.com/magisk-modules-repository/?utm_source=fox-readme&utm_medium=web&utm_campagin=github)
- Accepting new modules [here](https://www.androidacy.com/module-repository-applications/) - Accepting new
modules [here](https://www.androidacy.com/module-repository-applications/?utm_source=fox-readme&utm_medium=web&utm_campagin=github)
- Modules downloadable easily outside the app - Modules downloadable easily outside the app
- Rigorously reviewed and tested modules - Rigorously reviewed and tested modules
- Officially supported by Fox's mmm - Officially supported by Fox's mmm
- May show ads to help cover infrastrcture costs. - May show ads to help cover infrastructure costs.
- [Read more](https://www.androidacycom/doing-it-alone-the-what-the-how-and-the-why/) - [Read more](https://www.androidacycom/doing-it-alone-the-what-the-how-and-the-why/?utm_source=fox-readme&utm_medium=web&utm_campagin=github)
| [Privacy policy](https://www.androidacy.com/privacy/) | [Privacy policy](https://www.androidacy.com/privacy/?utm_source=fox-readme&utm_medium=web&utm_campagin=github)
- Added features like module reviews, automatic VirusTotal scans, and more - Added features like module reviews, automatic VirusTotal scans, and more.
- Pays module developers for their work as part of the Revenue Sharing Program
Support: Support:
@ -121,13 +128,17 @@ Support:
- Accepting new modules [here](https://github.com/Magisk-Modules-Alt-Repo/submission) - Accepting new modules [here](https://github.com/Magisk-Modules-Alt-Repo/submission)
- Less restrictive than the original repo - Less restrictive than the original repo
- May have lower quality, untested, or otherwise broken modules due to this - May have lower quality, untested, or otherwise broken modules due to their policies or lack
thereof.
- Officially supported by Fox's mmm - Officially supported by Fox's mmm
Support: Support:
[![GitHub issues](https://img.shields.io/github/issues/Magisk-Modules-Alt-Repo/submission)](https://github.com/Magisk-Modules-Alt-Repo/submission/issues) [![GitHub issues](https://img.shields.io/github/issues/Magisk-Modules-Alt-Repo/submission)](https://github.com/Magisk-Modules-Alt-Repo/submission/issues)
**Please do not use GitHub issues for help or questions. GitHub issues are specifically for bug
reporting and general app feedback.**
If a module is in multiple repos, the manager will just pick the most up to date version of the If a module is in multiple repos, the manager will just pick the most up to date version of the
module, if a module is in multiple repos it will just use first registered repo. module, if a module is in multiple repos it will just use first registered repo.
@ -149,7 +160,7 @@ It allow module developers to have a more customizable install experience
For more information please check the [developer documentation](docs/DEVELOPERS.md) For more information please check the [developer documentation](docs/DEVELOPERS.md)
## For translators ## Help us make our app more accessible!
**We need your help!** The app has started lagging behind in translations, and we need your help to **We need your help!** The app has started lagging behind in translations, and we need your help to
catch up! As a reminder, translations are required to be at 60% or more to be included in the app. catch up! As a reminder, translations are required to be at 60% or more to be included in the app.
@ -179,11 +190,17 @@ See [the documentation](docs/add-repo.md).
If you have a problem with a repo, please contact the repo owner **first**. If you are unable to If you have a problem with a repo, please contact the repo owner **first**. If you are unable to
reach them or they are not willing to help, you can contact us as a last resort. reach them or they are not willing to help, you can contact us as a last resort.
_The developers of this app are unable to help with any issues arising from use or installation of
modules, and may be of limited help with issues arising from a specific repo._
Default repo owners: Default repo owners:
- Androidacy: [Telegram](https://telegram.dog/androidacy_discussions) - Androidacy: [Telegram](https://telegram.dog/androidacy_discussions)
- Magisk-Modules-Alt-Repo: [GitHub](https://github.com/Magisk-Modules-Alt-Repo/submission/issues) - Magisk-Modules-Alt-Repo: [GitHub](https://github.com/Magisk-Modules-Alt-Repo/submission/issues)
Custom repos may have their own support channels, and we are unable to provide any support
whatsoever for them, outside of direct implementation bugs.
## License ## License
Fox's Magisk Manager, the icon, and names are copyright Fox's Magisk Manager, the icon, and names are copyright
@ -192,17 +209,18 @@ later portions of the code are copyright
2022-present [Androidacy](https://www.androidacy.com/?utm_source=fox-repo&utm_medium=web). See 2022-present [Androidacy](https://www.androidacy.com/?utm_source=fox-repo&utm_medium=web). See
[LICENSE](LICENCE) for details. Library licenses can be found in the licenses section of the app. [LICENSE](LICENCE) for details. Library licenses can be found in the licenses section of the app.
Modules and their files, names, and other assets are not covered by this license, please check the Modules and their files, names, and other assets are not covered by this license or other
license of each module before using it. agreements, and are not warranted, checked, or otherwise guaranteed by the authors of this app.
Some third party backend services may be proprietary or have additional terms, please check their Some third party backend services may have additional terms, please check their
terms of service before terms of service before
using them. using them.
## EULA ## EULA
The EULA can be found [here](https://www.androidacy.com/foxmmm-eula/). By downloading, installing, The EULA can be found [here](https://www.androidacy.com/foxmmm-eula/). By downloading, installing,
or using this app you agree to the terms of the EULA. Under no circumstances shall the EULA override or using this app you agree to the supplemental terms of the EULA.
the LGPL-3.0 license, and in the event of a conflict between the EULA and the LGPL-3.0 license, the LGPL-3.0 shall take precedence.
`IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.` **IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR AN CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.**

@ -4,7 +4,6 @@ import com.android.build.api.dsl.Packaging
import io.sentry.android.gradle.extensions.InstrumentationFeature import io.sentry.android.gradle.extensions.InstrumentationFeature
import io.sentry.android.gradle.instrumentation.logcat.LogcatLevel import io.sentry.android.gradle.instrumentation.logcat.LogcatLevel
import com.android.build.api.variant.FilterConfiguration.FilterType.* import com.android.build.api.variant.FilterConfiguration.FilterType.*
import java.io.ByteArrayOutputStream
import java.util.Properties import java.util.Properties
import java.io.File import java.io.File
@ -22,30 +21,15 @@ apply(plugin = "realm-android")
val hasSentryConfig = File(rootProject.projectDir, "sentry.properties").exists() val hasSentryConfig = File(rootProject.projectDir, "sentry.properties").exists()
android { android {
// functions to get git info: gitCommitHash, gitBranch, gitRemote // functions to get git info: gitCommitHash, gitBranch, gitRemote
val gitCommitHash by lazy { val gitCommitHash = providers.exec {
val stdout = ByteArrayOutputStream() commandLine("git", "rev-parse", "--short", "HEAD")
rootProject.exec { }.standardOutput.asText.get().toString().trim()
commandLine("git", "rev-parse", "--short", "HEAD") val gitBranch = providers.exec {
standardOutput = stdout commandLine("git", "rev-parse", "--abbrev-ref", "HEAD")
} }.standardOutput.asText.get().toString().trim()
stdout.toString().trim() val gitRemote = providers.exec {
} commandLine("git", "config", "--get", "remote.origin.url")
val gitBranch by lazy { }.standardOutput.asText.get().toString().trim()
val stdout = ByteArrayOutputStream()
rootProject.exec {
commandLine("git", "rev-parse", "--abbrev-ref", "HEAD")
standardOutput = stdout
}
stdout.toString().trim()
}
val gitRemote by lazy {
val stdout = ByteArrayOutputStream()
rootProject.exec {
commandLine("git", "config", "--get", "remote.origin.url")
standardOutput = stdout
}
stdout.toString().trim()
}
namespace = "com.fox2code.mmm" namespace = "com.fox2code.mmm"
compileSdk = 33 compileSdk = 33
ndkVersion = "25.2.9519653" ndkVersion = "25.2.9519653"
@ -107,11 +91,11 @@ android {
// debug http requests. do not set this to true if you care about performance!!!!! // debug http requests. do not set this to true if you care about performance!!!!!
buildConfigField("boolean", "DEBUG_HTTP", "false") buildConfigField("boolean", "DEBUG_HTTP", "false")
// Latest commit hash as BuildConfig.COMMIT_HASH // Latest commit hash as BuildConfig.COMMIT_HASH
buildConfigField("String", "COMMIT_HASH", "\"" + gitCommitHash + "\"") buildConfigField("String", "COMMIT_HASH", "\"$gitCommitHash\"")
// Get the current branch name as BuildConfig.BRANCH_NAME // Get the current branch name as BuildConfig.BRANCH_NAME
buildConfigField("String", "BRANCH_NAME", "\"" + gitBranch + "\"") buildConfigField("String", "BRANCH_NAME", "\"$gitBranch\"")
// Get remote url as BuildConfig.REMOTE_URL // Get remote url as BuildConfig.REMOTE_URL
buildConfigField("String", "REMOTE_URL", "\"" + gitRemote + "\"") buildConfigField("String", "REMOTE_URL", "\"$gitRemote\"")
dimension = "type" dimension = "type"
buildConfigField("boolean", "ENABLE_AUTO_UPDATER", "true") buildConfigField("boolean", "ENABLE_AUTO_UPDATER", "true")
buildConfigField("boolean", "DEFAULT_ENABLE_CRASH_REPORTING", "true") buildConfigField("boolean", "DEFAULT_ENABLE_CRASH_REPORTING", "true")
@ -151,11 +135,11 @@ android {
buildConfigField("boolean", "DEBUG_HTTP", "false") buildConfigField("boolean", "DEBUG_HTTP", "false")
// Latest commit hash as BuildConfig.COMMIT_HASH // Latest commit hash as BuildConfig.COMMIT_HASH
buildConfigField("String", "COMMIT_HASH", "\"" + gitCommitHash + "\"") buildConfigField("String", "COMMIT_HASH", "\"$gitCommitHash\"")
// Get the current branch name as BuildConfig.BRANCH_NAME // Get the current branch name as BuildConfig.BRANCH_NAME
buildConfigField("String", "BRANCH_NAME", "\"" + gitBranch + "\"") buildConfigField("String", "BRANCH_NAME", "\"$gitBranch\"")
// Get remote url as BuildConfig.REMOTE_URL // Get remote url as BuildConfig.REMOTE_URL
buildConfigField("String", "REMOTE_URL", "\"" + gitRemote + "\"") buildConfigField("String", "REMOTE_URL", "\"$gitRemote\"")
// Need to disable auto-updater for F-Droid flavor because their inclusion policy // Need to disable auto-updater for F-Droid flavor because their inclusion policy
// forbids downloading blobs from third-party websites (and F-Droid APK isn"t signed // forbids downloading blobs from third-party websites (and F-Droid APK isn"t signed

@ -32,6 +32,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Objects;
import timber.log.Timber; import timber.log.Timber;
@ -100,7 +101,11 @@ public class AndroidacyWebAPI {
} }
final String fModuleUrl = moduleUrl, fTitle = title, fConfig = config, fChecksum = checksum; final String fModuleUrl = moduleUrl, fTitle = title, fConfig = config, fChecksum = checksum;
final boolean fMMTReborn = mmtReborn; final boolean fMMTReborn = mmtReborn;
builder.setPositiveButton(hasUpdate ? R.string.update_module : R.string.install_module, (x, y) -> IntentHelper.openInstaller(this.activity, fModuleUrl, fTitle, fConfig, fChecksum, fMMTReborn)); builder.setPositiveButton(hasUpdate ? R.string.update_module : R.string.install_module, (x, y) -> {
IntentHelper.openInstaller(this.activity, fModuleUrl, fTitle, fConfig, fChecksum, fMMTReborn);
// close activity
this.activity.runOnUiThread(this.activity::finishAndRemoveTask);
});
} }
builder.setOnCancelListener(dialogInterface -> { builder.setOnCancelListener(dialogInterface -> {
if (!this.activity.backOnResume) if (!this.activity.backOnResume)
@ -173,7 +178,7 @@ public class AndroidacyWebAPI {
this.downloadMode = false; this.downloadMode = false;
if (BuildConfig.DEBUG) if (BuildConfig.DEBUG)
Timber.d("Received openUrl request: %s", url); Timber.d("Received openUrl request: %s", url);
if (Uri.parse(url).getScheme().equals("https")) { if (Objects.equals(Uri.parse(url).getScheme(), "https")) {
IntentHelper.openUrl(this.activity, url); IntentHelper.openUrl(this.activity, url);
} }
} }
@ -189,7 +194,7 @@ public class AndroidacyWebAPI {
this.downloadMode = false; this.downloadMode = false;
if (BuildConfig.DEBUG) if (BuildConfig.DEBUG)
Timber.d("Received openCustomTab request: %s", url); Timber.d("Received openCustomTab request: %s", url);
if (Uri.parse(url).getScheme().equals("https")) { if (Objects.equals(Uri.parse(url).getScheme(), "https")) {
IntentHelper.openCustomTab(this.activity, url); IntentHelper.openCustomTab(this.activity, url);
} }
} }

@ -532,7 +532,7 @@ public class InstallerActivity extends FoxActivity {
}); });
this.rebootFloatingButton.setVisibility(View.VISIBLE); this.rebootFloatingButton.setVisibility(View.VISIBLE);
// handle back button // handle back button
this.cancelFloatingButton.setOnClickListener(_view -> this.finishAndRemoveTask()); this.cancelFloatingButton.setOnClickListener(_view -> this.forceBackPressed());
if (message != null && !message.isEmpty()) this.installerTerminal.addLine(message); if (message != null && !message.isEmpty()) this.installerTerminal.addLine(message);
if (optionalLink != null && !optionalLink.isEmpty()) { if (optionalLink != null && !optionalLink.isEmpty()) {
this.setActionBarExtraMenuButton(ActionButtonType.supportIconForUrl(optionalLink), menu -> { this.setActionBarExtraMenuButton(ActionButtonType.supportIconForUrl(optionalLink), menu -> {

@ -37,7 +37,7 @@ public final class ExternalHelper {
public void refreshHelper(Context context) { public void refreshHelper(Context context) {
Intent intent = new Intent(FOX_MMM_OPEN_EXTERNAL, Uri.parse("https://fox2code.com/module.zip")); Intent intent = new Intent(FOX_MMM_OPEN_EXTERNAL, Uri.parse("https://fox2code.com/module.zip"));
List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER); List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);
if (resolveInfos == null || resolveInfos.isEmpty()) { if (resolveInfos.isEmpty()) {
Timber.i("No external provider installed!"); Timber.i("No external provider installed!");
label = TEST_MODE ? "External" : null; label = TEST_MODE ? "External" : null;
multi = TEST_MODE; multi = TEST_MODE;

@ -23,4 +23,5 @@ org.gradle.parallel=true
android.enableR8.fullMode=true android.enableR8.fullMode=true
org.gradle.unsafe.configuration-cache=true org.gradle.unsafe.configuration-cache=true
android.defaults.buildfeatures.buildconfig=true android.defaults.buildfeatures.buildconfig=true
kotlin.jvm.target.validation.mode=IGNORE kotlin.jvm.target.validation.mode=IGNORE
org.gradle.caching=true

@ -1,6 +1,6 @@
#Sun Jun 05 10:40:53 EDT 2022 #Sat Apr 22 15:39:14 EDT 2023
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

@ -9,5 +9,10 @@ dependencyResolutionManagement {
maven { setUrl("https://jitpack.io") } maven { setUrl("https://jitpack.io") }
} }
} }
buildCache {
local {
isEnabled = true
}
}
rootProject.name = "MagiskModuleManager" rootProject.name = "MagiskModuleManager"
include(":app") include(":app")
Loading…
Cancel
Save