MicroG and Android Auto on the tcl flip 2(/go)

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 aa4mg module 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.

  1. Open Magisk settings.

  2. Enable Zygisk.

  3. Reboot.

  4. Install the LSPosed v1.9.2 Zygisk ZIP through Magisk → Modules → Install from storage.

  5. Reboot.

  6. Install the FakeGApps APK.

  7. Open LSPosed Manager.

  8. Enable FakeGApps using its recommended scope.

  9. 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, the org.microg.gms-...-user.apk development 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.

  1. Select Classic or Material3.

  2. Open Android Auto settings.

  3. Open About.

  4. Select Version repeatedly until Developer Mode activates.

  5. Open the developer settings.

  6. 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:

  1. Open Android Auto Developer Settings through XLauncher.

  2. Find Video resolution.

  3. Select Allow up to 480p.

  4. Reboot the phone.

  5. 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.

  1. Open Android Auto’s App Info screen.

  2. Open the three-dot menu.

  3. Select Uninstall updates.

  4. Verify that only the system stub remains.

  5. Remove the aa4mg module through Magisk.

  6. 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.

4 Likes

LSPosed is a big security risk.

Use this instead, doesn’t need signature spoofing:

3 Likes

before i go through with setting this up, can you or anyone confirm, is this fundamentally different to the android auto implementation that was done in Darth’s aa-test-rom?
in that rom, it fails to connect to my car and throws a communications error (says something about the time being off sync).
would this work where that fails?

can you explain more (this is what i did should i be scared?)

1 Like