DerGoogler / MMRL

Introducing Magisk Module Repo Loader (MMRL) - the ultimate module manager for Magisk, KernelSU and APatch on Android. This highly configurable app allows users to manage modules effortlessly, all while being completely free of ads.

Home Page:https://mmrl.dergoogler.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Is it possible to add the IzzyOnDroid Magisk Repository to this app?

ccelik97 opened this issue Β· comments

It's here: https://apt.izzysoft.de/magisk.

And yes, for the URL to add to the MRepo app it seems to be the one as well; no .json stuff apparent to me.

So my question is, is it possible to add it to the MMRL app?

Duplicate of #39. Sorry, MRepo has been archived and it was never clearly planned to add support for it. The MMRL repo format is completely different and includes categories, screenshots, translateable module descriptions and many more.

commented

Oof! Good I came here (though for a different reason), I didn't notice (yet) MRepo was archived. And Sanmer didn't even mention any background 😒 So it seems I need to set up everything again (my local framework for website etc. was using Sanmer's stuff)…

The MMRL repo format is completely different and includes categories, screenshots, translateable module descriptions and many more.

That is something Sanmer refused to implement (I had asked for that; my local extensions already support parts of that, and I'd be happy to implement the rest as well). May I ask what is used in the backend part to maintain module repositories, so I might have a look, @DerGoogler? Then I could see if the wish of @ccelik97 could still be fulfilled.

Hey @IzzySoft,

the backend is in the Googlers-Repo/magisk repo, there is also more documented.

commented

Thanks! That is for generating (and submitting) modules – or for maintaining my own repo? Because I'd need the latter (i.e. something that generates the file corresponding to gmr.json, mmar.json. and mmr.json) based on what modules I define here – locally on my machine, not at Github. And it seems to be bound to Github and only working with pygithub (which was optional with MRepo). My current repo mostly works directly with the update.json files of the modules it serves (plus some local update.json files I've set up for those not providing one). Not all modules are hosted at Github. Plus, my repo runs on my own server; it's for FOSS modules, so I'd rather avoid involving a proprietary forge with my workflows πŸ˜‰

So just asking if that's the "backend" I'll need (I could not tell from the README, as I saw no instructions on "setting up your own repo"). If so, I'd raise the proper questions there.

We could use the MRepo util and add MMRLs features or you add them yourself

MMRL:

{
    "id": "mmrl_install_tools",
    "name": "MMRL Install Tools",
    "author": "Der_Googler",
    "description": "Required module if you want to install modules from Explore",
    "version": "3.2.1",
    "versionCode": 321,
    "download": "https://github.com/Googlers-Repo/mmrl_install_tools/archive/master.zip",
    "valid": true,
    "verified": true,
    "updateJson": null,
    "last_update": 1705103442000,
    "readme": "https://raw.githubusercontent.com/Googlers-Repo/mmrl_install_tools/master/README.md",
    "stars": 11,
    "about": {
        "repo_source": "Googlers Magisk Repo",
        "language": "Shell",
        "source": "https://github.com/Googlers-Repo/mmrl_install_tools.git",
        "issues": "https://github.com/Googlers-Repo/mmrl_install_tools/issues"
    },
    "mmrl": {
        "author": {
            "name": "DerGoogler",
            "avatar": "https://avatars.githubusercontent.com/u/54764558?v=4",
            "bio": "21 y/o well known Android modder and Magisk/KernelSU developer from Germany.",
            "followers": 93,
            "verified": true
        },
        "contributors": null,
        "cover": "https://mmrl.dergoogler.com/assets/MMRL-Cover.png",
        "logo": "https://github.com/DerGoogler/MMRL/blob/master/Android/app/src/main/ic_launcher-playstore.png?raw=true",
        "screenshots": [
            "https://github.com/Googlers-Repo/googlers-repo.github.io/assets/54764558/f5b7d396-781e-463a-b4ed-dc345cc15ba3I",
            "https://github.com/Googlers-Repo/googlers-repo.github.io/assets/54764558/0a03c54a-3064-4ed0-a69b-90db437bd9f0",
            "https://github.com/Googlers-Repo/googlers-repo.github.io/assets/54764558/8fbc9621-fe85-4b66-8070-271599f87d38"
        ],
        "categories": [
            "Tools",
            "System",
            "Configurable"
        ],
        "require": null,
        "developerNote": {
            "severity": "info",
            "note": "First installation? Then please install GitHub release first."
        },
        "supportedRoots": null,
        "minKernelSU": null
    },
    "fox": {
        "minApi": 26,
        "maxApi": null,
        "minMagisk": null,
        "needRamdisk": null,
        "support": null,
        "donate": null,
        "config": null,
        "changeBoot": null,
        "mmtReborn": null
    }
}

MRepo:

 {
      "id": "73sydney.coloursatmod",
      "name": "Colour And Saturation Modifier",
      "version": "1.1",
      "versionCode": 1,
      "author": "adrianmmiller (73Sydney)",
      "description": "A Colour and Saturation Modifier Module - Default Settings for Pixel 6 Pro as per Justarandomguy's post at: https://forum.xda-developers.com/t/root-tune-saturation-white-balance-and-enable-hbm-on-your-pixel.4575403/",
      "track": {
        "type": "ONLINE_JSON",
        "added": 1703840636.160768,
        "license": "GPL-2.0-or-later",
        "homepage": "",
        "source": "https://gitlab.com/adrian.m.miller/coloursatmodifier",
        "support": "https://gitlab.com/adrian.m.miller/coloursatmodifier/-/issues",
        "donate": ""
      },
      "versions": [
        {
          "timestamp": 1703786679.0,
          "version": "1.1",
          "versionCode": 1,
          "zipUrl": "https://apt.izzysoft.de/magisk/modules/73sydney.coloursatmod/1.1_1.zip",
          "changelog": "https://apt.izzysoft.de/magisk/modules/73sydney.coloursatmod/1.1_1.md"
        }
      ]
    },

When you try to add https://apt.izzysoft.de/magisk/json/modules.json
image

commented

We could use the MRepo util and add MMRLs features or you add them yourself

Hm, yes, that could be done. Part of that is already in place, I have an "enriched index" as well (which is used by my website), just pick index.json instead of modules.json – but that has too much other stuff in which might cause confusion on your end. I could probably create an mmrl.json according to your specs. Nasty thing would just be that Sanmer probably stopped working on repo-util as well, and it currently has one nasty bug preventing me from running the index builds automatically (see the corresponding issue). It would probably be asked too much from you to check if you can see the culprit (or even maintain a fork of that util should Sanmer really have dropped-out); my Python knowledge has too much dusted, so I could not figure it myself (nor could I maintain a fork).

ERR_FAILED 200 OK

Funny error if it's OK. Well, the site (or its parts) should not be "inlined" in other places. What would you suggest I should configure so the index files could be used by MMRL? I could probably declare Access-Control-Allow-Origin: * just for the json directory, I'd just need to figure out how (Apache web server here – probably a <directory> entry with Header add Access-Control-Allow-Origin "*" should do; just added that, and reloaded Apache, can you please check?).

I've forked magisk-modules-repo-util and added already specs. There will no need to create mmrl.json. Categories, screenshots, etc will added from the tracks.json.

@IzzySoft

commented

I didn't dare hoping for that – thanks a thousand times! 😍 Let me know when it's ready to fetch, so I'll see that I switch over to your fork. I guess it will provide the JSON for both (MRepo and MMRL) then (so those still using MRepo are still covered)? 🀩

I didn't dare hoping for that – thanks a thousand times! 😍 Let me know when it's ready to fetch, so I'll see that I switch over to your fork. I guess it will provide the JSON for both (MRepo and MMRL) then (so those still using MRepo are still covered)? 🀩

Early state fork.. some variables had "" and I have changed them to None. Now guess what: bad idea cuz you can't add it in MRepo, so I'll have to revert that.
Edit: fixed

It can be used in both apps. The support for FoxMMM (AMM) has been discontinued. Those modules aren't supposed yet to earn money from it, what's the point of AMM ist.

commented

The support for FoxMMM (AMM) has been discontinued. Those modules aren't supposed yet to earn money from it, what's the point of AMM ist.

Full ack. I've dropped FoxMMM once Androidacy had taken over (they added adds and other stuff; also it was often unclear whether modules were FOSS or not). That was one reason why I searched for alternatives, found MRepo, and started my own MagiskModulesRepo. Not for them to exploit, but for the FOSS folks to use. If a module contains something "questionable", I define AntiFeatures the way you know them from F-Droid. But other than that, I only accept modules which are FOSS and have a FOSS license declared. Just yesterday, the number of modules available reached 100 πŸ˜ƒ

Early state fork.

I'll wait for your signal telling me "ready for use" before I switch over. Also need time to see whether there are any side-effects (e.g. with my framework and website). I guess it won't be a "quick switch", but will be happy if it is πŸ˜‰

I think the fork has been finished... magisk-modules-repo-util, please make a test run to see if it runs without problems.

Antifeatures, categories, etc can be configured in the track.json. More in the README file.

@IzzySoft

commented

Ouch, how did I not get that notification? Just found it now when replying to a mail from Sanmer (who wrote to pick up again in March on MRepo). I've answered that mentioning your fork and that you probably would be happy to upstream your changes.

Thanks a lot! I'll make myself a note to check this ASAP (at the moment, my desk is flooded with tasks so I cannot address this immediately – my apologies for that!)

commented

PS: Sanmer plans to rewrite repo-util in Rust. I've asked them to accept your changes and take them along. So just in case (their further development might change definitions for MRepo, and the two would drift apart): I see you're also using Rust for MMRL-CLI. Would you go along with that as well? Sanmer probably wants to focus on MRepo structures (and from my past experience isn't too eager to implement things they do not want there). If they accept your upstreaming your specifics, I think that would help keeping the two in sync.

No demands here, just trying to be prepared and knowing the options πŸ˜‰