快轉到主要內容

Android如何移除GMS服務,不刪除資料,改刷MicroG

· 民國115年丙午年
·
切換正體/简体 ·
分類 智慧型手機 Root與刷機
標籤 Degoogle MicroG LineageOS GrapheneOS
目錄

Remove Google Play Services (MindTheGapps) from LineageOS without losing data.

在不清除資料的情況下從Android手機解除安裝Google服務框架(GMS)。

這篇文章是在LineageOS ROM測試的。非LineageOS用戶斟酌參考,雖然理論上可行但有機率卡開機。

Google服務框架是Android手機的寄生蟲,務必將其清除。這就是Degoogle。

(附圖由ChatGPT生成,表達我目前在Android機上的真實做法,看起來有點噁心我還是把它留下了)

記住,請神容易送神難。LineageOS預設是沒有Google服務的,這很好,但你要是禁不住誘惑去刷GApps問題就來了。LineageOS開發者有維護MindTheGapps的GAPPS套件,給有需要的人使用。

在Recovery刷MindTheGapps之後,會寫入到/system分區,成為系統APP,檔案四散。難以解除安裝。

通常這種時候是清除手機資料重刷LineageOS比較快。但若要解除安裝GMS不清除手機資料仍然是有可能的。

在不清除資料的情況下從Android手機移除Google服務框架,就是動用Root權限清除,並手動rm -rf相關檔案。

測試環境:LineageOS 23 Android 16

1. 準備遷移到microG
#

移除GMS之後,若APP依然期望GMS服務存在才能運作,那麼就要用microG填補空缺。

microG不像MindTheGapps,不用使用Recovery刷入,安裝APK就行了。LineageOS支援signature spoofing所以能幾乎無縫替代GMS服務。

2. 檔案對照表
#

  1. MindTheGApps的Github下載檔案

  2. 解壓縮,用tree指令列出檔案列表。例如Android 16的MindTheGapps有以下目錄。這些就是GMS安裝的實際目錄。

├── build.prop
├── META-INF
│   └── com
│       ├── android
│       │   └── otacert
│       └── google
│           └── android
│               ├── update-binary
│               └── updater-script
├── system
│   ├── addon.d
│   │   ├── addond_head
│   │   └── addond_tail
│   ├── product
│   │   ├── app
│   │   │   ├── GoogleCalendarSyncAdapter
│   │   │   │   └── GoogleCalendarSyncAdapter.apk
│   │   │   ├── GoogleContactsSyncAdapter
│   │   │   │   └── GoogleContactsSyncAdapter.apk
│   │   │   ├── MarkupGoogle_v2
│   │   │   │   └── MarkupGoogle_v2.apk
│   │   │   ├── PrebuiltExchange3Google
│   │   │   │   └── PrebuiltExchange3Google.apk
│   │   │   ├── SpeechServicesByGoogle
│   │   │   │   └── SpeechServicesByGoogle.apk
│   │   │   └── talkback
│   │   │       └── talkback.apk
│   │   ├── etc
│   │   │   ├── default-permissions
│   │   │   │   ├── default-permissions-google.xml
│   │   │   │   └── default-permissions-mtg.xml
│   │   │   ├── init
│   │   │   │   └── gapps.rc
│   │   │   ├── permissions
│   │   │   │   ├── com.google.android.dialer.support.xml
│   │   │   │   ├── privapp-permissions-google-product.xml
│   │   │   │   └── privapp-permissions-mtg.xml
│   │   │   ├── security
│   │   │   │   └── fsverity
│   │   │   │       └── gms_fsverity_cert.der
│   │   │   └── sysconfig
│   │   │       ├── d2d_cable_migration_feature.xml
│   │   │       ├── google_build.xml
│   │   │       ├── google-hiddenapi-package-allowlist.xml
│   │   │       ├── google.xml
│   │   │       ├── sysconfig_contextual_search.xml
│   │   │       └── wellbeing.xml
│   │   ├── framework
│   │   │   └── com.google.android.dialer.support.jar
│   │   ├── lib64
│   │   │   └── libjni_latinimegoogle.so
│   │   ├── overlay
│   │   │   ├── GmsOverlay.apk
│   │   │   ├── GmsSettingsOverlay.apk
│   │   │   ├── GmsSettingsProviderOverlay.apk
│   │   │   └── GmsSetupWizardOverlay.apk
│   │   └── priv-app
│   │       ├── AndroidAutoStub
│   │       │   └── AndroidAutoStub.apk
│   │       ├── GmsCore
│   │       │   └── GmsCore.apk
│   │       ├── GooglePartnerSetup
│   │       │   └── GooglePartnerSetup.apk
│   │       ├── GoogleRestore
│   │       │   └── GoogleRestore.apk
│   │       ├── Phonesky
│   │       │   └── Phonesky.apk
│   │       ├── Velvet
│   │       │   └── Velvet.apk
│   │       ├── VelvetTitan
│   │       │   └── VelvetTitan.apk
│   │       └── Wellbeing
│   │           └── Wellbeing.apk
│   └── system_ext
│       ├── etc
│       │   └── permissions
│       │       └── privapp-permissions-google-system-ext.xml
│       └── priv-app
│           ├── GoogleFeedback
│           │   └── GoogleFeedback.apk
│           ├── GoogleServicesFramework
│           │   └── GoogleServicesFramework.apk
│           └── SetupWizard
│               └── SetupWizard.apk
└── toybox

3. 登出Google帳號
#

在Android系統設定,登出Google帳號。

4. 進入Android ADB取得root
#

  1. LineageOS的ADB支援Root權限。在開發人員啟用ADB Root。

  2. 連到電腦,在電腦上進入ADB Root

adb root
  1. 進入ADB Shell
adb shell

5. 刪除addon.d目錄
#

這個目錄是在OTA更新後保存GMS之用。

不過我測試的時候這個目錄是空的。

嘗試刪除以下檔案

rm -f /system/addon.d/*gapps*
rm -f /system/addon.d/*GApps*
rm -f /system/addon.d/*google*
rm -f /system/addon.d/*Google*
rm -f /system/addon.d/*mind*
rm -f /system/addon.d/*Mind*

6. 刪除GMS相關的APK
#

  1. 用這個指令找
pm list packages -f | grep -E 'gms|gsf|vending|phonesky|setupwizard'
  1. 刪除APK
pm uninstall --user 0 com.google.android.gms
pm uninstall --user 0 com.android.vending
pm uninstall --user 0 com.google.android.gsf
pm uninstall --user 0 com.google.android.setupwizard
pm uninstall --user 0 com.google.android.partnersetup
pm uninstall --user 0 com.google.android.apps.restore
pm uninstall --user 0 com.google.android.googlequicksearchbox
pm uninstall --user 0 com.google.android.tts
pm uninstall --user 0 com.google.android.marvin.talkback
pm uninstall --user 0 com.google.android.apps.wellbeing
pm uninstall --user 0 com.google.android.syncadapters.contacts
pm uninstall --user 0 com.google.android.syncadapters.calendar
  1. 對照MindTheGapps的檔案路徑,刪除以下GMS相關檔案
rm -rf /product/app/GoogleCalendarSyncAdapter
rm -rf /product/app/GoogleContactsSyncAdapter
rm -rf /product/app/MarkupGoogle_v2
rm -rf /product/app/PrebuiltExchange3Google
rm -rf /product/app/SpeechServicesByGoogle
rm -rf /product/app/talkback

rm -f /product/etc/default-permissions/default-permissions-google.xml
rm -f /product/etc/default-permissions/default-permissions-mtg.xml

rm -f /product/etc/init/gapps.rc

rm -f /product/etc/permissions/com.google.android.dialer.support.xml
rm -f /product/etc/permissions/privapp-permissions-google-product.xml
rm -f /product/etc/permissions/privapp-permissions-mtg.xml

rm -rf /product/etc/security/fsverity

rm -f /product/etc/sysconfig/d2d_cable_migration_feature.xml
rm -f /product/etc/sysconfig/google_build.xml
rm -f /product/etc/sysconfig/google-hiddenapi-package-allowlist.xml
rm -f /product/etc/sysconfig/google.xml
rm -f /product/etc/sysconfig/sysconfig_contextual_search.xml
rm -f /product/etc/sysconfig/wellbeing.xml

rm -f /product/framework/com.google.android.dialer.support.jar

rm -f /product/lib64/libjni_latinimegoogle.so

rm -f /product/overlay/GmsOverlay.apk
rm -f /product/overlay/GmsSettingsOverlay.apk
rm -f /product/overlay/GmsSettingsProviderOverlay.apk
rm -f /product/overlay/GmsSetupWizardOverlay.apk

rm -rf /product/priv-app/AndroidAutoStub
rm -rf /product/priv-app/GmsCore
rm -rf /product/priv-app/GooglePartnerSetup
rm -rf /product/priv-app/GoogleRestore
rm -rf /product/priv-app/Phonesky
rm -rf /product/priv-app/Velvet
rm -rf /product/priv-app/VelvetTitan
rm -rf /product/priv-app/Wellbeing

rm -f /system_ext/etc/permissions/privapp-permissions-google-system-ext.xml

rm -rf /system_ext/priv-app/GoogleFeedback
rm -rf /system_ext/priv-app/GoogleServicesFramework
rm -rf /system_ext/priv-app/SetupWizard

7. 後續
#

重開機。

刪除GMS,切換microG之後部分APP可能要重裝。

例如我遇過Line收不到訊息,要重裝APK才會觸發向microG註冊FCM。

相關文章


感謝您的閱讀。我寫作是為了誠實表達想法,而不是追逐社群互動與流量。我很樂意傾聽你在仔細閱讀我文章之後的心得。若有內容勘誤 or 技術問題 or 回饋想法,歡迎透過本站「關於」頁面的Email與我聯絡。