├── .github ├── FUNDING.yml ├── renovate.json5 └── workflows │ └── release.yml ├── .gitignore ├── META-INF └── com │ └── google │ └── android │ ├── update-binary │ └── updater-script ├── README.md ├── changelog.md ├── customize.sh ├── hosts ├── module.json └── module.prop /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | buy_me_a_coffee: goooler 2 | github: Goooler 3 | -------------------------------------------------------------------------------- /.github/renovate.json5: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:recommended", 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | release: 8 | runs-on: ubuntu-latest 9 | permissions: 10 | contents: write 11 | steps: 12 | - uses: actions/checkout@v4 13 | - name: Pack the project 14 | run: zip -r systemless-fcm-hosts.zip . -x "*.git*" 15 | - name: Generate release name with current date 16 | run: echo "RELEASE_NAME=$(date +'%Y%m%d')" >> $GITHUB_ENV 17 | - name: Delete the release if exists then create a new one 18 | env: 19 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 20 | run: | 21 | gh release view ${{ env.RELEASE_NAME }} && gh release delete ${{ env.RELEASE_NAME }} -y --cleanup-tag 22 | gh release create ${{ env.RELEASE_NAME }} --generate-notes systemless-fcm-hosts.zip 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build 3 | 4 | *.csv 5 | *.xls 6 | *.xlsx 7 | 8 | ### IntelliJ IDEA ### 9 | .idea 10 | *.iws 11 | *.iml 12 | *.ipr 13 | out 14 | 15 | ### VS Code ### 16 | .vscode/ 17 | 18 | ### Mac OS ### 19 | .DS_Store 20 | -------------------------------------------------------------------------------- /META-INF/com/google/android/update-binary: -------------------------------------------------------------------------------- 1 | #!/sbin/sh 2 | 3 | ################# 4 | # Initialization 5 | ################# 6 | 7 | umask 022 8 | 9 | # echo before loading util_functions 10 | ui_print() { echo "$1"; } 11 | 12 | require_new_magisk() { 13 | ui_print "*******************************" 14 | ui_print " Please install Magisk v20.4+! " 15 | ui_print "*******************************" 16 | exit 1 17 | } 18 | 19 | ######################### 20 | # Load util_functions.sh 21 | ######################### 22 | 23 | OUTFD=$2 24 | ZIPFILE=$3 25 | 26 | mount /data 2>/dev/null 27 | 28 | [ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk 29 | . /data/adb/magisk/util_functions.sh 30 | [ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk 31 | 32 | install_module 33 | exit 0 34 | -------------------------------------------------------------------------------- /META-INF/com/google/android/updater-script: -------------------------------------------------------------------------------- 1 | #MAGISK 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Systemless FCM Hosts 2 | ==================== 3 | 4 | Overview: 5 | --------- 6 | 7 | - A Magisk module integrated with FCM hosts for Chinese users, packed 8 | from [fcm-hosts](https://github.com/entr0pia/fcm-hosts). 9 | - Support Magisk / KernelSU / APatch root implementations. 10 | 11 | Credits: 12 | -------- 13 | 14 | - [@topjohnwu](https://github.com/topjohnwu) / Magisk - Magisk Module Template. 15 | - [@entr0pia](https://github.com/entr0pia) / Base hosts sources. 16 | - [@JumbomanXDA](https://github.com/JumbomanXDA) / Custom installation script. 17 | - [@gloeyisk](https://github.com/gloeyisk) / The upstream maintainer. 18 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## [20250526](https://github.com/Goooler/systemless-fcm-hosts/releases/tag/20250526) - 2025-05-26 4 | 5 | **Added** 6 | 7 | - module: Improve root implementations (Support Magisk / KernelSU / APatch) 8 | 9 | **Removed** 10 | 11 | - module: Drop support for recovery installation 12 | -------------------------------------------------------------------------------- /customize.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | 3 | # 4 | # Systemless Hosts by the 5 | # open source loving GL-DP and all contributors; 6 | # An efficient ad blocker, with no user interface 7 | # 8 | 9 | # Check root implementation 10 | ui_print "- Checking root implementation" 11 | if [ "$BOOTMODE" ] && [ "$KSU" ]; then 12 | ui_print "- Installing from KernelSU app" 13 | ui_print " KernelSU version: $KSU_KERNEL_VER_CODE (kernel) + $KSU_VER_CODE (ksud)" 14 | if [ "$(which magisk)" ]; then 15 | ui_print " Multiple root implementation is NOT supported" 16 | abort " Aborting!" 17 | fi 18 | elif [ "$BOOTMODE" ] && [ "$MAGISK_VER_CODE" ]; then 19 | ui_print "- Installing from Magisk app" 20 | else 21 | ui_print " Installation from recovery is NOT supported" 22 | ui_print " Please install from Magisk / KernelSU app" 23 | abort " Aborting!" 24 | fi 25 | 26 | # Patch default hosts file 27 | PATH=/system/etc 28 | ui_print "- Patching hosts file" 29 | mkdir -p $MODPATH$PATH 30 | mv -f $MODPATH/hosts $MODPATH$PATH 31 | 32 | # Clean up 33 | rm -rf $MODPATH/hosts 34 | rm -rf $MODPATH/LICENSE 35 | -------------------------------------------------------------------------------- /hosts: -------------------------------------------------------------------------------- 1 | 142.250.157.188 mtalk.google.com 2 | 74.125.200.188 alt1-mtalk.google.com 3 | 142.250.141.188 alt2-mtalk.google.com 4 | 64.233.171.188 alt3-mtalk.google.com 5 | 173.194.202.188 alt4-mtalk.google.com 6 | 74.125.126.188 alt5-mtalk.google.com 7 | 142.250.115.188 alt6-mtalk.google.com 8 | 108.177.104.188 alt7-mtalk.google.com 9 | 142.250.152.188 alt8-mtalk.google.com 10 | 180.163.151.161 dl.google.com 11 | 180.163.150.33 dl.l.google.com 12 | -------------------------------------------------------------------------------- /module.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "17.0.20250526", 3 | "versionCode": 20250526, 4 | "zipUrl": "https://github.com/Goooler/systemless-fcm-hosts/releases/download/20250526/systemless-fcm-hosts.zip", 5 | "changelog": "https://raw.githubusercontent.com/Goooler/systemless-fcm-hosts/trunk/changelog.md" 6 | } -------------------------------------------------------------------------------- /module.prop: -------------------------------------------------------------------------------- 1 | id=systemless-fcm-hosts 2 | name=Systemless FCM Hosts - Unified 3 | version=17.0.20250526 4 | versionCode=20250526 5 | author=Goooler 6 | description=A Magisk module integrated with FCM hosts for Chinese users 7 | updateJson=https://raw.githubusercontent.com/Goooler/systemless-fcm-hosts/master/module.json 8 | --------------------------------------------------------------------------------