From 2634e876c0c8c3209d8a57df13c5bf946b28046a Mon Sep 17 00:00:00 2001 From: SanmerDev Date: Sat, 22 Jun 2024 22:57:38 +0800 Subject: [PATCH] Initial commit --- .github/workflows/core.yml | 48 ++ .gitignore | 2 + README.md | 8 + json/config.json | 1625 ++++++++++++++++++++++++++++++++++++ scripts/build.py | 260 ++++++ scripts/git-commit.py | 92 ++ scripts/requirements.txt | 3 + 7 files changed, 2038 insertions(+) create mode 100644 .github/workflows/core.yml create mode 100644 .gitignore create mode 100644 README.md create mode 100644 json/config.json create mode 100644 scripts/build.py create mode 100644 scripts/git-commit.py create mode 100644 scripts/requirements.txt diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml new file mode 100644 index 0000000..4a3f27d --- /dev/null +++ b/.github/workflows/core.yml @@ -0,0 +1,48 @@ +name: Core +on: + schedule: + - cron: "0 21 * * 1" + + workflow_dispatch: + +permissions: + contents: write + +jobs: + sync: + name: Sync + if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: Set up Git + run: | + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Set up Rust + uses: dtolnay/rust-toolchain@stable + + - name: Install dependencies + run: | + pip install python-dateutil + cargo install --git https://github.com/MRepoApp/mrepo-rs.git --features git + + - name: Sync + run: | + mrepo update --ssh-key='${{ secrets.SSH_PRIVATE_KEY }}' + mrepo upgrade --pretty + + - name: Push + run: | + python scripts/git-commit.py + git push origin main diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5a73fbc --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# MacOS +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..6e29761 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# Magisk Modules Alt Repo (mirror) +- This repository stores modules for [MRepo](https://github.com/MRepoApp/MRepo). +- This is a mirror of [Magisk-Modules-Alt-Repo](https://github.com/Magisk-Modules-Alt-Repo). + +## Use in MRepo +``` +https://raw.githubusercontent.com/MRepoApp/magisk-modules-alt-repo/main/ +``` diff --git a/json/config.json b/json/config.json new file mode 100644 index 0000000..0274414 --- /dev/null +++ b/json/config.json @@ -0,0 +1,1625 @@ +{ + "log": { + "disabled": false, + "level": "info", + "timestamp": true + }, + "repository": { + "name": "Magisk Modules Alt Repo (mirror)", + "metadata": { + "homepage": "https://github.com/MRepoApp/magisk-modules-alt-repo", + "support": "https://github.com/MRepoApp/magisk-modules-alt-repo/issues" + }, + "setting": { + "base_url": "https://raw.githubusercontent.com/MRepoApp/magisk-modules-alt-repo/main", + "keep_size": 6 + } + }, + "modules": [ + { + "id": "1_MARS_SOM_BASE-GEAR_FIRST", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/1_MARS_SOM_BASE-GEAR_FIRST/main/update.json", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/1_MARS_SOM_BASE-GEAR_FIRST.git", + "donate": "https://patreon.com/miustone", + "support": "https://github.com/Magisk-Modules-Alt-Repo/1_MARS_SOM_BASE-GEAR_FIRST/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "abootloop", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/abootloop/main/update.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/abootloop.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/abootloop/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "acc", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/VR-25/acc/master/module.json", + "metadata": { + "license": "GPL-3.0", + "homepage": "https://github.com/VR-25/acc", + "source": "https://github.com/Magisk-Modules-Alt-Repo/acc.git", + "donate": "https://patreon.com/VR25" + }, + "setting": { + "disabled": false + } + }, + { + "id": "AdGuardDNS4Magisk", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/TukangM/AdGuardDNS4Magisk/main/update.json", + "metadata": { + "license": "LGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/AdGuardDNS4Magisk.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/AdGuardDNS4Magisk/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "AdGuardDNS4Magisk-IPv6", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/AdGuardDNS4Magisk-IPv6/main/Update.json", + "metadata": { + "license": "LGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/AdGuardDNS4Magisk-IPv6.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/AdGuardDNS4Magisk-IPv6/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "AFWall-Boot-AntiLeak", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/AFWall-Boot-AntiLeak.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/AFWall-Boot-AntiLeak.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/AFWall-Boot-AntiLeak/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "audio-jitter-silencer", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/audio-jitter-silencer.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/audio-jitter-silencer/main/changelog.md", + "metadata": { + "license": "AGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/audio-jitter-silencer.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/audio-jitter-silencer/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "audio-misc-settings", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/audio-misc-settings.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/audio-misc-settings/master/changelog.md", + "metadata": { + "license": "AGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/audio-misc-settings.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/audio-misc-settings/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "backup", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/backup.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/backup.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/backup/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Better-MIUI-Icons", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Better-MIUI-Icons.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Better-MIUI-Icons.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Better-MIUI-Icons/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "BraviaEngine", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/enggarsulistyo/BraviaEngine/master/bravia_update_info.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/BraviaEngine.git", + "donate": "https://enggarsulistyo.github.io", + "support": "https://github.com/Magisk-Modules-Alt-Repo/BraviaEngine/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "BuiltIn-BusyBox", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/BuiltIn-BusyBox/main/update.json", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/BuiltIn-BusyBox.git", + "donate": "https://zgfg.github.io/PayPal.html", + "support": "https://github.com/Magisk-Modules-Alt-Repo/BuiltIn-BusyBox/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "ByeBlur", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Bye-Blur.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/Bye-Blur.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Bye-Blur/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "charch", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/charch.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/charch.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/charch/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "charch_dinit", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/charch_dinit.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/charch_dinit.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/charch_dinit/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "charch_openrc", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/charch_openrc.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/charch_openrc.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/charch_openrc/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "charch_sshd", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/charch_sshd.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/charch_sshd.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/charch_sshd/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "chroot-distro", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/chroot-distro.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/chroot-distro.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/chroot-distro/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Clash4Magisk", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Kry9toN/Clash4Magisk/master/update.json", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Clash4Magisk.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Clash4Magisk/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "CloudflareDNS4Magisk", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/xerta555/CloudflareDNS4Magisk/master/update.json", + "metadata": { + "license": "LGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/CloudflareDNS4Magisk.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/CloudflareDNS4Magisk/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "CloudflareDNS4Magisk-IPv6", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/xerta555/CloudflareDNS4Magisk-IPv6/master/Update.json", + "metadata": { + "license": "LGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/CloudflareDNS4Magisk-IPv6.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/CloudflareDNS4Magisk-IPv6/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "cmdpatch", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/cmdpatch.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/cmdpatch.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/cmdpatch/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "com.omergoktas.Foundation", + "kind": "update-json", + "provider": "https://github.com/Magisk-Modules-Alt-Repo/com.omergoktas.Foundation/raw/master/update.json", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/com.omergoktas.Foundation.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/com.omergoktas.Foundation/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "compatible-magisk-mirroring", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/compatible-magisk-mirroring.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/compatible-magisk-mirroring/main/changelog.md", + "metadata": { + "license": "AGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/compatible-magisk-mirroring.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/compatible-magisk-mirroring/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "custom-certificate-authorities", + "kind": "update-json", + "provider": "https://github.com/whalehub/custom-certificate-authorities/releases/latest/download/updateJson.json", + "metadata": { + "license": "GPL-3.0", + "homepage": "https://github.com/whalehub/custom-certificate-authorities", + "source": "https://github.com/Magisk-Modules-Alt-Repo/custom-certificate-authorities.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/custom-certificate-authorities/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "CustomizedNavbar", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/CustomizedNavbar/main/module.json", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/CustomizedNavbar.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/CustomizedNavbar/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "DalvikHyperthreading", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/DalvikHyperthreading.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/DalvikHyperthreading.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/DalvikHyperthreading/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "data_backup", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/data_backup/main/module.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/data_backup.git" + }, + "setting": { + "disabled": false + } + }, + { + "id": "data_isolation_support", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/data_isolation_support.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/data_isolation_support.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/data_isolation_support/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "data_restore_Courier", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/ziandzivan/data_restore_Courier/main/module.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/data_restore_Courier.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/data_restore_Courier/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Detach", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/xerta555/Detach-Files/blob/master/Updater.json", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Detach.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Detach/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "disable-low-ram", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/disable-low-ram/main/update.json", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/disable-low-ram.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/disable-low-ram/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Disable_high_volume_warning", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Disable_high_volume_warning.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/Disable_high_volume_warning/main/changelog.md", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Disable_high_volume_warning.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Disable_high_volume_warning/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "djs", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/djs.git", + "metadata": { + "license": "GPL-3.0", + "homepage": "https://github.com/VR-25/djs", + "source": "https://github.com/Magisk-Modules-Alt-Repo/djs.git", + "donate": "https://patreon.com/VR25" + }, + "setting": { + "disabled": false + } + }, + { + "id": "drc-remover", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/drc-remover.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/drc-remover/master/changelog.md", + "metadata": { + "license": "AGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/drc-remover.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/drc-remover/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Evolve-Evo", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Evolve-Evo.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/Evolve-Evo.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Evolve-Evo/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "ezme-dex-space", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/ezme-dex-space.git", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/ezme-dex-space.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/ezme-dex-space/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "ezme-nodebug", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/ezme-nodebug.git", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/ezme-nodebug.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/ezme-nodebug/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "faina", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/faina.git", + "metadata": { + "license": "LGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/faina.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/faina/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "vr25.fbind", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/fbind.git", + "metadata": { + "license": "GPL-3.0", + "homepage": "https://github.com/VR-25/fbind", + "source": "https://github.com/Magisk-Modules-Alt-Repo/fbind.git", + "donate": "https://patreon.com/VR25", + "support": "https://github.com/Magisk-Modules-Alt-Repo/fbind/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Fdroid-Priv", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/entr0pia/Fdroid-Priv/master/update.json", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/Fdroid-Priv.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Fdroid-Priv/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "FluentEmojiMagisk", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/k3rnelpanik/FluentEmojiMagisk/main/update.json", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/FluentEmojiMagisk.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/FluentEmojiMagisk/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "FOSSAPPS", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/FOSSAPPS.git", + "metadata": { + "license": "Apache-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/FOSSAPPS.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/FOSSAPPS/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "frozen_magisk_app", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/frozen_magisk_app.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/frozen_magisk_app.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/frozen_magisk_app/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "gaming", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/gaming.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/gaming.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/gaming/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "gboard-dict-3", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/entr0pia/gboard_dict_3/master/update.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/gboard-dict-3.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/gboard-dict-3/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "GlitchedCyberBoot", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/GlitchedCyberBoot.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/GlitchedCyberBoot.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/GlitchedCyberBoot/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "GMSDozeBlockFind", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/GMS-Doze_Block_FindMyDevice.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/GMS-Doze_Block_FindMyDevice/main/changelog.md", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/GMS-Doze_Block_FindMyDevice.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/GMS-Doze_Block_FindMyDevice/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "GMSDoze", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/GMSDoze.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/GMSDoze/main/changelog.md", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/GMSDoze.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/GMSDoze/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Google-Sans", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Google-Sans.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Google-Sans.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Google-Sans/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Google-Sans-Plus", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Google-Sans-Plus.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Google-Sans-Plus.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Google-Sans-Plus/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "GoogleDNS4Magisk", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/TukangM/GoogleDNS4Magisk/main/update.json", + "metadata": { + "license": "LGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/GoogleDNS4Magisk.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/GoogleDNS4Magisk/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "GoogleDNS4Magisk-IPv6", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/TukangM/GoogleDNS4Magisk-IPv6/main/update.json", + "metadata": { + "license": "LGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/GoogleDNS4Magisk-IPv6.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/GoogleDNS4Magisk-IPv6/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Google_Product_Sans_Font", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Google_Product_Sans_Font.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Google_Product_Sans_Font.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Google_Product_Sans_Font/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "heimdall-ndk", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/heimdall-ndk.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/heimdall-ndk.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/heimdall-ndk/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "HideNavBar", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/HideNavBar.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/HideNavBar.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/HideNavBar/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "isodrive", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/isodrive.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/isodrive.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/isodrive/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "kaina", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/kaina.git", + "metadata": { + "license": "LGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/kaina.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/kaina/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "lhroot", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/lhroot.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/lhroot.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/lhroot/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Luz-Nocturna_Modded", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Luz-Nocturna_Modded.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/Luz-Nocturna_Modded/main/changelog.md", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Luz-Nocturna_Modded.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Luz-Nocturna_Modded/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "MacRandomizationEnabler", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/MacRandomizationEnabler.git", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/MacRandomizationEnabler.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/MacRandomizationEnabler/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "magic-flash", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/magic-flash.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/magic-flash.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/magic-flash/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "magisk-autoboot", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/anasfanani/magisk-autoboot/master/update.json", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/magisk-autoboot.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/magisk-autoboot/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "magisk-captive-control", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Magisk-Captive-Control.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Magisk-Captive-Control.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Magisk-Captive-Control/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "magisk-drm-disabler", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Magisk-DRM-Disabler.git", + "metadata": { + "license": "GPL-3.0", + "homepage": "https://gitlab.com/atrate/magisk-drm-disabler", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Magisk-DRM-Disabler.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Magisk-DRM-Disabler/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "font-koruri-n", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/AndroPlus-org/magisk-module-koruri-font/master/update.json", + "metadata": { + "license": "WTFPL", + "source": "https://github.com/Magisk-Modules-Alt-Repo/magisk-module-koruri-font.git", + "donate": "https://github.com/sponsors/AndroPlus-org", + "support": "https://github.com/Magisk-Modules-Alt-Repo/magisk-module-koruri-font/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "font-mejiro-oshi", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/AndroPlus-org/magisk-module-mejiro-font/master/update.json", + "metadata": { + "license": "WTFPL", + "source": "https://github.com/Magisk-Modules-Alt-Repo/magisk-module-mejiro-font.git", + "donate": "https://github.com/sponsors/AndroPlus-org", + "support": "https://github.com/Magisk-Modules-Alt-Repo/magisk-module-mejiro-font/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "magisk-tailscaled", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/anasfanani/Magisk-Tailscaled/master/update.json", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/Magisk-Tailscaled.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Magisk-Tailscaled/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "magisk_overlayfs", + "kind": "update-json", + "provider": "https://github.com/huskydg/magic_overlayfs/releases/latest/download/update_release.json", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/magisk_overlayfs.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/magisk_overlayfs/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "magisk_proc_monitor", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/magisk_proc_monitor.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/magisk_proc_monitor.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/magisk_proc_monitor/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "Malwack", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/Malwack/main/update.json", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/Malwack.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Malwack/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "microG-GApps", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/microG-GApps.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/microG-GApps.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/microG-GApps/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "microg_installer", + "kind": "update-json", + "provider": "https://raw.github.com/nift4/microg_installer_revived/master/update.json", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/microg_installer.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/microg_installer/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "MiXplorer", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/MiXplorer.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/MiXplorer.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/MiXplorer/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "mkshrc", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/mkshrc.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/mkshrc.git", + "donate": "https://github.com/sponsors/DerGoogler", + "support": "https://github.com/Magisk-Modules-Alt-Repo/mkshrc/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "NavBar_Resize", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/NavBar_Resize_AOSP.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/NavBar_Resize_AOSP/main/changelog.md", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/NavBar_Resize_AOSP.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/NavBar_Resize_AOSP/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "NavBar_Resize_Miui10-11-12-13", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/NavBar_Resize_MIUI.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/NavBar_Resize_MIUI/main/changelog.md", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/NavBar_Resize_MIUI.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/NavBar_Resize_MIUI/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "node_on_android", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/node.git", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/node.git", + "donate": "https://github.com/sponsors/DerGoogler", + "support": "https://github.com/Magisk-Modules-Alt-Repo/node/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "NoProcStatRestriction", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Young-Lord/NoProcStatRestriction/master/update.json", + "metadata": { + "license": "WTFPL", + "homepage": "https://github.com/Young-Lord/NoProcStatRestriction", + "source": "https://github.com/Magisk-Modules-Alt-Repo/NoProcStatRestriction.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/NoProcStatRestriction/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "NoStorageRestrict", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/NoStorageRestrict.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/NoStorageRestrict.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/NoStorageRestrict/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "NotchBarKiller", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/NotchBarKiller.git", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/NotchBarKiller.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/NotchBarKiller/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "OneController", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/OneController.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/OneController.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/OneController/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "oneplus-8series-9r-camera-unlocker", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/oneplus-8series-9r-camera-unlocker/master/update.json", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/oneplus-8series-9r-camera-unlocker.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/oneplus-8series-9r-camera-unlocker/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "oneplusdotfix", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/oneplusdotfix/master/update.json", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/oneplusdotfix.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/oneplusdotfix/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "open_fonts", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/open_fonts/master/update.json", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/open_fonts.git", + "donate": "https://www.paypal.me/f3ff0", + "support": "https://github.com/Magisk-Modules-Alt-Repo/open_fonts/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "open_webview", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/open_webview/master/update.json", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/open_webview.git", + "donate": "https://www.paypal.me/f3ff0", + "support": "https://github.com/Magisk-Modules-Alt-Repo/open_webview/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "pdx213_assistant_camera_remap", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/pdx213_assistant_camera_remap.git", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/pdx213_assistant_camera_remap.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/pdx213_assistant_camera_remap/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "perf-limit-xiaomi-12", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/perf-limit-xiaomi-12.git", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/perf-limit-xiaomi-12.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/perf-limit-xiaomi-12/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "pixel-tensor-audio-decompressor", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/pixel-tensor-audio-decompressor.git", + "metadata": { + "homepage": "https://github.com/JoshuaDoes/pixel-tensor-audio-decompressor", + "source": "https://github.com/Magisk-Modules-Alt-Repo/pixel-tensor-audio-decompressor.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/pixel-tensor-audio-decompressor/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "PLEX_SKIP_INTRO_DPAD_CONTROLLER_FIX", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/PLEX_SKIP_INTRO_DPAD_CONTROLLER_FIX.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/PLEX_SKIP_INTRO_DPAD_CONTROLLER_FIX.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/PLEX_SKIP_INTRO_DPAD_CONTROLLER_FIX/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "pmmp", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/pmmp/main/update.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/pmmp.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/pmmp/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "qdl-ndk", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/qdl-ndk.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/qdl-ndk.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/qdl-ndk/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "QS_Rectangulares", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/QS_Rectangulares.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/QS_Rectangulares/main/changelog.md", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/QS_Rectangulares.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/QS_Rectangulares/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "resampling-for-cheapies", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/resampling-for-cheapies.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/resampling-for-cheapies/main/changelog.md", + "metadata": { + "license": "AGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/resampling-for-cheapies.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/resampling-for-cheapies/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "RTKS", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/RTKS.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/RTKS/stable/changelog.md", + "metadata": { + "license": "GPL-2.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/RTKS.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/RTKS/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "saturation", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/saturation.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/saturation.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/saturation/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "selinux_mode", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/selinux_mode/main/update.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/selinux_mode.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/selinux_mode/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "sensitive_props", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/sensitive_props.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/sensitive_props.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/sensitive_props/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "simple_bootloopsaver", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/Simple_BootloopSaver.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/Simple_BootloopSaver.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/Simple_BootloopSaver/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "smallbattery", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/smallbattery.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/smallbattery.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/smallbattery/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "SomcGameEnhancer-Upgrade", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/entr0pia/SomcGameEnhancer-Upgrade/master/update.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/SomcGameEnhancer-Upgrade.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/SomcGameEnhancer-Upgrade/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "sqlite3", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/sqlite3.git", + "metadata": { + "homepage": "https://github.com/rojenzaman/sqlite3-magisk-module/releases", + "source": "https://github.com/Magisk-Modules-Alt-Repo/sqlite3.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/sqlite3/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "StevenBlock", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/mikropsoft/StevenBlock/main/update.json", + "metadata": { + "license": "GPL-2.0", + "homepage": "https://github.com/mikropsoft/StevenBlock", + "source": "https://github.com/Magisk-Modules-Alt-Repo/StevenBlock.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/StevenBlock/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "supl-replacer", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/supl-replacer/master/update.json", + "metadata": { + "license": "BSD-3-Clause", + "source": "https://github.com/Magisk-Modules-Alt-Repo/supl-replacer.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/supl-replacer/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "systemless_adblocker", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Burhanverse/systemless-adblocker/main/update.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/systemless-adblocker.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/systemless-adblocker/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "SystemlessDebloater", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/zgfg/SystemlessDebloater/main/update.json", + "metadata": { + "license": "LGPL-2.1", + "source": "https://github.com/Magisk-Modules-Alt-Repo/SystemlessDebloater.git", + "donate": "https://zgfg.github.io/PayPal.html", + "support": "https://github.com/Magisk-Modules-Alt-Repo/SystemlessDebloater/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "systemui-bootloop", + "kind": "update-json", + "provider": "https://tsukimio.github.io/systemui-bootloop/update.json", + "metadata": { + "license": "GPL-3.0", + "homepage": "https://tsukimio.github.io/systemui-bootloop", + "source": "https://github.com/Magisk-Modules-Alt-Repo/systemui-bootloop.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/systemui-bootloop/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "ThemedProject", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/Osanosa/ThemedProject/main/update.json", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/ThemedProject.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/ThemedProject/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "ToyBox-Ext", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/zgfg/ToyBox-Ext/main/update.json", + "metadata": { + "license": "0BSD", + "source": "https://github.com/Magisk-Modules-Alt-Repo/ToyBox-Ext.git", + "donate": "https://zgfg.github.io/PayPal.html", + "support": "https://github.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "trichromelibrary-squoosh", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/entr0pia/trichromelibrary-squoosh/master/update.json", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/trichromelibrary-squoosh.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/trichromelibrary-squoosh/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "ttf-twemoji", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/ttf-twemoji.git", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/ttf-twemoji.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/ttf-twemoji/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "UbuntuFontVinaooo", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/UbuntuFontVinaooo.git", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/UbuntuFontVinaooo.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/UbuntuFontVinaooo/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "unityfix", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/unityfix.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/unityfix.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/unityfix/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "upx-ndk", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/upx-ndk.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/upx-ndk.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/upx-ndk/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "usb-samplerate-unlocker", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/usb-samplerate-unlocker.git", + "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/usb-samplerate-unlocker/master/changelog.md", + "metadata": { + "license": "AGPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/usb-samplerate-unlocker.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/usb-samplerate-unlocker/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "vintf-bypass", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/vintf-bypass.git", + "metadata": { + "license": "GPL-3.0", + "source": "https://github.com/Magisk-Modules-Alt-Repo/vintf-bypass.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/vintf-bypass/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "wifi-bonding", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/wifi-bonding-nolog.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/wifi-bonding-nolog.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/wifi-bonding-nolog/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "xhhttp", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/xhhttp.git", + "metadata": { + "license": "MIT", + "homepage": "https://github.com/ducaale/xh", + "source": "https://github.com/Magisk-Modules-Alt-Repo/xhhttp.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/xhhttp/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "xmlpak-RE", + "kind": "update-json", + "provider": "https://raw.githubusercontent.com/rushiranpise/xmlpak-RE/RE/update.json", + "metadata": { + "homepage": "https://github.com/rushiranpise/xmlpak-RE", + "source": "https://github.com/Magisk-Modules-Alt-Repo/xmlpak-RE.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/xmlpak-RE/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "YAKT", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/YAKT.git", + "metadata": { + "license": "MIT", + "source": "https://github.com/Magisk-Modules-Alt-Repo/YAKT.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/YAKT/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "ytmusic_revancedinject", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/ytmusic_revancedinject.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/ytmusic_revancedinject.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/ytmusic_revancedinject/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "ytrevancedinject", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/ytrevancedinject.git", + "metadata": { + "source": "https://github.com/Magisk-Modules-Alt-Repo/ytrevancedinject.git", + "support": "https://github.com/Magisk-Modules-Alt-Repo/ytrevancedinject/issues" + }, + "setting": { + "disabled": false + } + }, + { + "id": "zram-swap-manager", + "kind": "git", + "provider": "git@github.com:Magisk-Modules-Alt-Repo/zram-swap-manager.git", + "metadata": { + "license": "GPL-3.0", + "homepage": "https://github.com/VR-25/zram-swap-manager", + "source": "https://github.com/Magisk-Modules-Alt-Repo/zram-swap-manager.git", + "donate": "https://patreon.com/VR25" + }, + "setting": { + "disabled": false + } + } + ] +} diff --git a/scripts/build.py b/scripts/build.py new file mode 100644 index 0000000..4e02d9e --- /dev/null +++ b/scripts/build.py @@ -0,0 +1,260 @@ +#!/usr/bin/env python3 + +import json +import os +from argparse import ArgumentParser +from datetime import datetime +from pathlib import Path +from typing import Optional, List + +import requests +from dateutil.parser import parse +from github import Github, Auth, UnknownObjectException +from github.Repository import Repository + + +class GitHubGraphQL: + def __init__(self, token: str): + self._token = token + + def graphql_query(self, query: str) -> Optional[dict]: + query = {"query": query} + + response = requests.post( + url="https://api.github.com/graphql", + headers={ + "Authorization": f"bearer {self._token}", + "Content-Type": "application/json", + }, + json=query + ) + + if response.ok: + return response.json() + else: + return None + + def query_repository(self, owner: str, name: str, query: str) -> Optional[dict]: + params = "owner: \"{}\", name: \"{}\"".format(owner, name) + _query = "query { repository(%s) { %s } }" % (params, query) + result = self.graphql_query(_query) + + try: + data = result.get("data") + repository = data.get("repository") + return repository + except AttributeError: + return None + + def get_sponsor_url(self, owner: str, name: str) -> List[str]: + repository = self.query_repository( + owner=owner, + name=name, + query="fundingLinks { platform url }" + ) + if repository is None: + return list() + + links = list() + funding_links = repository["fundingLinks"] + + for item in funding_links: + if item["platform"] == "GITHUB": + name = item["url"].split("/")[-1] + links.append(f"https://github.com/sponsors/{name}") + else: + links.append(item["url"]) + + return links + + def get_homepage_url(self, owner: str, name: str) -> Optional[str]: + repository = self.query_repository( + owner=owner, + name=name, + query="homepageUrl" + ) + if repository is None: + return None + + homepage_url = repository["homepageUrl"] + if homepage_url != "": + return homepage_url + else: + return None + + def get_pushed_at(self, owner: str, name: str) -> Optional[datetime]: + repository = self.query_repository( + owner=owner, + name=name, + query="pushedAt" + ) + if repository is None: + return None + + try: + return parse(repository["pushedAt"]) + except TypeError: + return None + + +class GithubApi: + def __init__(self, token: str): + self._github = Github(auth=Auth.Token(token)) + self._graphql = GitHubGraphQL(token) + + self._config: dict = { + "log": {}, + "repository": {}, + "modules": {} + } + + def generate_module(self, repo: Repository) -> Optional[dict]: + module_prop = self.get_module_prop(repo) + if module_prop is None: + return None + + if module_prop.get("updateJson"): + provider = module_prop["updateJson"] + changelog = "" + kind = "update-json" + else: + provider = repo.ssh_url + changelog = self.get_changelog(repo) + kind = "git" + + if repo.has_issues: + issues = f"{repo.html_url}/issues" + else: + issues = "" + + donate_urls = self._graphql.get_sponsor_url( + owner=repo.owner.login, + name=repo.name + ) + if len(donate_urls) == 0: + donate = "" + else: + donate = donate_urls[0] + + homepage = self._graphql.get_homepage_url( + owner=repo.owner.login, + name=repo.name + ) + if homepage is None: + homepage = "" + + print(f"id: {module_prop["id"]}") + return { + "id": module_prop["id"], + "kind": kind, + "provider": provider, + "changelog": changelog, + "metadata": { + "license": self.get_license(repo), + "homepage": homepage, + "source": repo.clone_url, + "donate": donate, + "support": issues + } + } + + def generate_modules(self, user_name: str): + modules = [] + user = self._github.get_user(user_name) + for repo in user.get_repos(): + module = self.generate_module(repo) + if module is not None: + modules.append(module) + + self._config["modules"] = modules + + def write_to(self, path: Path): + with open(path, "w") as f: + json.dump(self._config, f, indent=2) + + @classmethod + def get_license(cls, repo: Repository): + spdx_id = "" + try: + spdx_id = repo.get_license().license.spdx_id + if spdx_id == "NOASSERTION": + spdx_id = "" + except UnknownObjectException: + pass + + return spdx_id + + @classmethod + def get_changelog(cls, repo: Repository): + changelog = "" + try: + changelog = repo.get_contents("changelog.md").download_url + except UnknownObjectException: + pass + + return changelog + + @classmethod + def get_module_prop(cls, repo: Repository) -> Optional[dict]: + module_prop = {} + try: + prop = repo.get_contents("module.prop").decoded_content.decode("utf-8") + for line in prop.splitlines(): + if "=" not in line: + continue + key, value = line.split("=", 1) + module_prop[key] = value + + except UnknownObjectException: + return None + + return module_prop + + +class Main: + @classmethod + def generate_parser(cls) -> ArgumentParser: + parser = ArgumentParser() + parser.add_argument( + "-t", + "--token", + dest="token", + metavar="TOKEN", + type=str, + default=os.getenv("GITHUB_TOKEN"), + help="set github token" + ) + parser.add_argument( + "-u", + "--user", + dest="user_name", + metavar="NAME", + type=str, + required=True, + help="set user-name or organization-name" + ) + parser.add_argument( + "-w", + "--write", + dest="config_path", + metavar="PATH", + type=str, + required=True, + help="write config to file" + ) + + return parser + + @classmethod + def exec(cls): + parser = cls.generate_parser() + args = parser.parse_args() + config_path = Path(args.config_path) + + api = GithubApi(args.token) + api.generate_modules(args.user_name) + api.write_to(config_path) + + +if __name__ == "__main__": + Main.exec() diff --git a/scripts/git-commit.py b/scripts/git-commit.py new file mode 100644 index 0000000..53fadcf --- /dev/null +++ b/scripts/git-commit.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 + +import json +import subprocess +from argparse import ArgumentParser +from datetime import datetime, UTC +from pathlib import Path + +MODULES_JSON = "modules.json" +JSON_DIR = "json" +MODULES_DIR = "modules" +GITHUB_MAX_SIZE = 50 * 1024 * 1024 + + +class Git: + def __init__(self, working_dir: Path): + self._cwd_dir = working_dir + self._json_dir = working_dir.joinpath(JSON_DIR) + self._modules_dir = working_dir.joinpath(MODULES_DIR) + + self._modules_json = self._json_dir.joinpath(MODULES_JSON) + + def add_all(self): + self.add(f"{JSON_DIR}/{MODULES_JSON}") + for module_dir in sorted(self._modules_dir.glob("[!.]*/")): + if self.skip_it(module_dir): + continue + else: + self.add(f"{MODULES_DIR}/{module_dir.name}") + + def add(self, path: str): + subprocess.run( + args=["git", "add", path], + check=True, + cwd=self._cwd_dir + ) + + def commit(self): + with open(self._modules_json, "r") as f: + modules = json.load(f) + + timestamp = modules["timestamp"] / 1000 + time = datetime.fromtimestamp(timestamp, UTC) + msg = f"Update by CLI ({time})" + + subprocess.run( + args=["git", "commit", "-m", msg], + check=True, + cwd=self._cwd_dir + ) + + @classmethod + def skip_it(cls, module_dir: Path) -> bool: + for file in module_dir.glob("*.zip"): + if file.stat().st_size >= GITHUB_MAX_SIZE: + return True + + return False + + +class Main: + @classmethod + def generate_parser(cls) -> ArgumentParser: + cwd_folder = Path(__name__).resolve().parent + print(cwd_folder) + + parser = ArgumentParser() + parser.add_argument( + "-D", + "--directory", + dest="working_dir", + metavar="DIR", + type=str, + default=cwd_folder.as_posix(), + help="set working directory" + ) + + return parser + + @classmethod + def exec(cls): + parser = cls.generate_parser() + args = parser.parse_args() + working_dir = Path(args.working_dir) + + git = Git(working_dir) + git.add_all() + git.commit() + + +if __name__ == "__main__": + Main.exec() diff --git a/scripts/requirements.txt b/scripts/requirements.txt new file mode 100644 index 0000000..8aa3af2 --- /dev/null +++ b/scripts/requirements.txt @@ -0,0 +1,3 @@ +pygithub>=2.3.0 +python-dateutil>=2.9.0 +requests>=2.31.0