microG and Android Auto on the TCL Flip 2
A complete record of the working setup used to run microG and Android Auto on a rooted TCL Flip 2 running Android 11.
Tested with: TCL Flip 2 · Android 11 · Magisk with Zygisk · LSPosed 1.9.2
Important warning: This procedure requires root, Magisk modules, Zygisk and LSPosed. A mistake can cause a boot loop. Keep USB debugging enabled and confirm that ADB works before beginning. Never remove the
aa4mgmodule while a real Android Auto update remains installed; follow the removal instructions at the end.
Requirements
-
A rooted TCL Flip 2
-
Magisk with Zygisk support
-
USB debugging enabled
-
A computer with ADB
-
Internet access on the phone
-
A data-capable USB cable for Android Auto
1. Install LSPosed and enable signature spoofing
microG requires signature spoofing. The TCL Flip 2 ROM does not provide it natively, so this setup uses Zygisk LSPosed and FakeGApps.
The tested LSPosed version was v1.9.2:
Choose the correct file: Download the Zygisk release ZIP, not the Riru version.
-
Open Magisk settings.
-
Enable Zygisk.
-
Reboot.
-
Install the LSPosed v1.9.2 Zygisk ZIP through Magisk → Modules → Install from storage.
-
Reboot.
-
Install the FakeGApps APK.
-
Open LSPosed Manager.
-
Enable FakeGApps using its recommended scope.
-
Reboot again.
On this phone, the parasitic LSPosed Manager can be opened with:
adb shell am start -a android.intent.action.MAIN -c org.lsposed.manager.LAUNCH_MANAGER -n com.android.shell/.BugreportWarningActivity
2. Install microG
The tested version is microG v0.3.15.250932.
Download microG v0.3.15.250932 and select:
-
com.google.android.gms-250932030.apk -
com.android.vending-84022630.apk
Do not download: Files ending in
-hw.apk, theorg.microg.gms-...-user.apkdevelopment build, or source-code archives.
Also download the APK from microG GsfProxy v0.1.0.
Install all three APKs, adjusting the GsfProxy filename if necessary:
adb install com.google.android.gms-250932030.apk
adb install com.android.vending-84022630.apk
adb install com.google.android.gsf-8.apk
Verify the packages:
adb shell pm list packages | grep -E 'com.google.android.gms|com.google.android.gsf|com.android.vending'
Expected:
package:com.google.android.gms
package:com.google.android.gsf
package:com.android.vending
3. Promote microG to privileged system apps
Use microG Installer Revived Again. It promotes the official microG APKs already installed instead of bundling an outdated copy.
git clone https://github.com/spacealtctrl/microg_installer_revived_again.git
cd microg_installer_revived_again
zip -9r ../microg-promoter.zip . -x '.git/*'
cd ..
adb push microg-promoter.zip /sdcard/Download/
adb shell su -c 'magisk --install-module /sdcard/Download/microg-promoter.zip'
adb reboot
Then go to lsposed and enable MicroG Spoofing
4. Configure microG and grant permissions
Open microG Settings and enter Self-Check. Both checks below must pass:
-
Signature spoofing supported
-
System spoofs signature
Grant the permissions requested by microG:
-
Accounts
-
Phone status and identity
-
Contacts
-
SMS
-
Location
-
Background location, if available
They can also be granted through ADB:
adb shell pm grant com.google.android.gms android.permission.GET_ACCOUNTS
adb shell pm grant com.google.android.gms android.permission.READ_PHONE_STATE
adb shell pm grant com.google.android.gms android.permission.READ_PHONE_NUMBERS
adb shell pm grant com.google.android.gms android.permission.READ_CONTACTS
adb shell pm grant com.google.android.gms android.permission.READ_SMS
adb shell pm grant com.google.android.gms android.permission.RECEIVE_SMS
adb shell pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
adb shell pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
adb shell pm grant com.google.android.gms android.permission.ACCESS_BACKGROUND_LOCATION
If a permission command fails: Grant foreground location before background location. A command may fail if this microG build does not request that permission or Android does not allow it to be changed through
pm grant. Skip that command and grant whatever is available under Settings → Apps → microG Services → Permissions.
Enable the following inside microG Settings:
-
Google device registration
-
Cloud Messaging
-
Background operation without battery optimization
adb shell dumpsys deviceidle whitelist +com.google.android.gms
adb shell cmd appops set com.google.android.gms RUN_IN_BACKGROUND allow
adb shell cmd appops set com.google.android.gms RUN_ANY_IN_BACKGROUND allow
adb reboot
Required result: After reboot, microG Cloud Messaging should report
Connected. Do not continue until signature spoofing passes and Cloud Messaging connects.
5. Install the Android Auto system layer
Use aa4mg: Android Auto for microG.
git clone https://github.com/sn-00-x/aa4mg.git
cd aa4mg
zip -9r ../aa4mg.zip . -x '.git/*'
cd ..
adb push aa4mg.zip /sdcard/Download/aa4mg.zip
Install it through Magisk → Modules → Install from storage → aa4mg.zip.
| Installer question | Selection |
|---|---|
| Fake Google Maps stub | No — Volume Down |
| Fake Google Speech Services | No — Volume Down |
| Fake Google Search | No — Volume Down |
| XLauncher Unlocked | Yes — Volume Up |
These are also the installer defaults if no volume key is pressed.
What happened in this installation I did not see the installer questions above. Android Auto did not work in the car until I separately installed Fake Google Maps, Fake Google Search, and Google Speech Services. Search JTech Forums Apps for the Android Auto, Fake Google Maps, and Fake Google Search packages. JTech Forums states that it cannot guarantee every submitted app is safe or secure, so use third-party downloads at your own discretion.
Install the tested Google speech package as well:
Google renamed Google Text-to-Speech to Speech Recognition & Synthesis from Google. Its package remains com.google.android.tts. Use the armeabi-v7a, Android 8.0+, 120–640 DPI variant.
If it downloads as an .apkm bundle:
mkdir google-tts
unzip '/path/to/google-tts.apkm' -d google-tts
cd google-tts
adb install-multiple -r -i com.android.vending *.apk
adb shell settings put secure tts_default_synth com.google.android.tts
adb shell settings get secure tts_default_synth
The expected TTS result is com.google.android.tts. It may not have a launcher icon because it operates as a background speech engine. It is not the same app as Google Voice Access.
Reboot and verify aa4mg:
adb shell pm list packages | grep com.google.android.projection.gearhead
adb shell su -c 'ls /data/adb/modules | grep -Ei "aa|auto"'
Expected results include:
package:com.google.android.projection.gearhead
package:com.google.android.projection.gearhead.xunlocked
aa4mg
Open LSPosed Manager, enable Android Auto – XLauncher Unlocked, scope it only to com.google.android.projection.gearhead, and reboot.
6. Install the real 32-bit Android Auto update
The TCL Flip 2 is 32-bit ARM. The Android Auto bundle must contain split_config.armeabi_v7a.apk. An arm64-v8a build will fail with INSTALL_FAILED_NO_MATCHING_ABIS.
The tested version was Android Auto 17.2.662633-release. Download an armeabi-v7a, Android 10+ bundle from Android Auto releases on APKMirror.
The tested bundle contained:
base.apk
split_config.armeabi_v7a.apk
split_config.en.apk
split_config.xhdpi.apk
split_config.xxhdpi.apk
split_config.xxxhdpi.apk
An .apkm file is a ZIP archive. Extract it:
mkdir -p android-auto-17.2
unzip \
'com.google.android.projection.gearhead_17.2.662633-release-172662633_1arch_3dpi_24lang_ffda54e430a5df7be3ebfdc6e9587a61_apkmirror.com.apkm' \
-d android-auto-17.2
cd android-auto-17.2
Install the base APK and required splits:
adb install-multiple -r -i com.android.vending \
base.apk \
split_config.armeabi_v7a.apk \
split_config.en.apk \
split_config.xhdpi.apk \
split_config.xxhdpi.apk \
split_config.xxxhdpi.apk
Verify:
adb shell dumpsys package com.google.android.projection.gearhead | grep -E 'versionName|versionCode|installerPackageName'
The working result showed:
versionName=17.2.662633-release
installerPackageName=com.android.vending
versionName=1.2.534620-stub
This is normal. The first is the real Android Auto update; the second is the privileged aa4mg system stub.
7. Configure Android Auto
The standard settings intent may not work on the TCL Flip 2:
adb shell am start -a android.settings.ANDROID_AUTO_SETTINGS
If it does not open, launch Android Auto – XLauncher Unlocked from the phone’s app list.
-
Select Classic or Material3.
-
Open Android Auto settings.
-
Open About.
-
Select Version repeatedly until Developer Mode activates.
-
Open the developer settings.
-
Set Application mode → Developer.
Android Auto 17.2 may not display an Unknown sources option. It is not required for normal navigation, calls, messaging or audio.
Grant Android Auto all requested permissions and notification access, then allow background operation:
adb shell dumpsys deviceidle whitelist +com.google.android.projection.gearhead
adb shell cmd appops set com.google.android.projection.gearhead RUN_IN_BACKGROUND allow
adb shell cmd appops set com.google.android.projection.gearhead RUN_ANY_IN_BACKGROUND allow
adb reboot
Confirm that microG Cloud Messaging is still connected, then connect the phone to the vehicle using a data-capable USB cable.
Performance tip
If Android Auto is slow on the vehicle display:
-
Open Android Auto Developer Settings through XLauncher.
-
Find Video resolution.
-
Select Allow up to 480p.
-
Reboot the phone.
-
Reconnect it to the vehicle.
A short, good-quality USB data cable can also make a significant difference. Android Auto 17.2 supports Android 11; its minSdk=29 means Android 10 or newer is supported.
Packages and modules that must remain enabled
Do not hide, disable or remove the following packages:
com.google.android.gms
com.google.android.gsf
com.android.vending
com.google.android.apps.maps
com.google.android.googlequicksearchbox
com.google.android.projection.gearhead
com.google.android.projection.gearhead.xunlocked
com.google.android.tts
Also keep these Magisk and LSPosed components enabled:
zygisk_lsposed
FakeGApps
aa4mg
Android Auto – XLauncher Unlocked
The exact package name of a separately downloaded fake Maps or fake Search app may differ. Check before disabling anything:
adb shell pm list packages | grep -Ei 'maps|quicksearch|search|gearhead|xunlocked'
Do not use package hiding here: Disabling these packages or modules can break signature spoofing, microG, account login, Cloud Messaging, speech services or Android Auto. To remove only an icon, hide it through the launcher without disabling the package.
Boot-loop recovery
If a newly installed Magisk module causes a boot loop and ADB becomes available during startup:
adb wait-for-device
adb shell magisk --remove-modules
adb reboot
Emergency command: This removes every Magisk module. Use it only for recovery.
Safely uninstalling aa4mg
Do not remove aa4mg while the real Android Auto update is still installed.
-
Open Android Auto’s App Info screen.
-
Open the three-dot menu.
-
Select Uninstall updates.
-
Verify that only the system stub remains.
-
Remove the
aa4mgmodule through Magisk. -
Reboot.
Removal order matters: Removing the privileged system stub while the user-installed Android Auto update remains installed can cause permission errors and may prevent the phone from booting.