├── README.md ├── androidautostub ├── Android.mk ├── AndroidAutoStubPrebuilt.apk ├── default-permissions.xml └── privapp-permissions-com.google.android.projection.gearhead.xml ├── gappstub ├── Android.mk └── gappsstub.apk └── speechservicestub ├── Android.mk └── speech-services-stub.apk /README.md: -------------------------------------------------------------------------------- 1 | ## AndroidAutoStub 2 | 3 | - stock AndroidAutoStub extracted from pixel 4 | - custom built Google Search App and Google Speech Services Stubs 5 | 6 | ## Build (Generic AOSP) 7 | 8 | *This assumes you already are getting microg on your device some other way.* 9 | 10 | add this to your manifests to use: 11 | ``` 12 | 13 | 14 | 15 | 16 | ``` 17 | 18 | then include the following line in your device.mk or common.mk: 19 | ``` 20 | PRODUCT_PACKAGES += AndroidAuto gappsstub speechservicestub 21 | ``` 22 | or you can also add it to your `vendor/$vendor/config/common.mk` 23 | 24 | Now continue to "Get android auto setup" below 25 | 26 | ## Build lineageOS with Android Auto 27 | 28 | *this method will include microg and Android Auto and the stubs automatically in your build* 29 | 30 | I suggest using https://github.com/lineageos4microg/docker-lineage-cicd 31 | 32 | see the following repo for an example device: 33 | https://github.com/SolidHal/lineageos-microg-oneplus-lemonade 34 | 35 | Now continue to "Get android auto setup" below 36 | 37 | ## Get android auto setup 38 | 39 | - Install the latest android auto apk (you can find this online or get it with aurora store) 40 | - Install google maps in the same way 41 | - open google maps once, grant it location permissions. Just while in use is fine. 42 | - android auto *should* just work now 43 | 44 | if you get stuck on google maps permission, try pressing cancel instead of settings. 45 | 46 | if you are having trouble with first time setup, I found it was helpful to setup the bluetooth connection to the car before plugging in the usb c. 47 | 48 | 49 | ## Sources 50 | 51 | sources for custom built stubs with build instructions for each of the stubs: 52 | https://github.com/SolidHal/SpeechServices-Package-Spoof 53 | https://github.com/SolidHal/Gapp-Package-Spoof 54 | 55 | ## Thanks 56 | big thanks to @dylangerdaly and the thread here https://github.com/microg/GmsCore/issues/897 57 | 58 | -------------------------------------------------------------------------------- /androidautostub/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | LOCAL_MODULE := privapp-permissions-com.google.android.projection.gearhead.xml 5 | LOCAL_MODULE_TAGS := optional 6 | LOCAL_MODULE_CLASS := ETC 7 | LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions 8 | LOCAL_SRC_FILES := privapp-permissions-com.google.android.projection.gearhead.xml 9 | LOCAL_REQUIRED_MODULES := default-permissions.xml 10 | include $(BUILD_PREBUILT) 11 | 12 | include $(CLEAR_VARS) 13 | LOCAL_MODULE := default-permissions.xml 14 | LOCAL_MODULE_TAGS := optional 15 | LOCAL_MODULE_CLASS := ETC 16 | LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/default-permissions 17 | LOCAL_SRC_FILES := default-permissions.xml 18 | include $(BUILD_PREBUILT) 19 | 20 | include $(CLEAR_VARS) 21 | LOCAL_MODULE_TAGS := optional 22 | LOCAL_MODULE := AndroidAuto 23 | LOCAL_SRC_FILES := AndroidAutoStubPrebuilt.apk 24 | LOCAL_MODULE_CLASS := APPS 25 | LOCAL_PRIVILEGED_MODULE := true 26 | LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 27 | LOCAL_CERTIFICATE := PRESIGNED 28 | LOCAL_REQUIRED_MODULES := privapp-permissions-com.google.android.projection.gearhead.xml 29 | include $(BUILD_PREBUILT) 30 | -------------------------------------------------------------------------------- /androidautostub/AndroidAutoStubPrebuilt.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SolidHal/android-auto-stub/17daf293dc48dff6780a78f05bdec8464eb1fc97/androidautostub/AndroidAutoStubPrebuilt.apk -------------------------------------------------------------------------------- /androidautostub/default-permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | 18 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /androidautostub/privapp-permissions-com.google.android.projection.gearhead.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /gappstub/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | LOCAL_MODULE_TAGS := optional 5 | LOCAL_MODULE := gappsstub 6 | LOCAL_SRC_FILES := gappsstub.apk 7 | LOCAL_MODULE_CLASS := APPS 8 | LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 9 | LOCAL_CERTIFICATE := PRESIGNED 10 | include $(BUILD_PREBUILT) 11 | 12 | include $(CLEAR_VARS) 13 | LOCAL_MODULE_TAGS := optional 14 | LOCAL_MODULE := gappsstub-unsigned 15 | LOCAL_SRC_FILES := gappsstub-unsigned.apk 16 | LOCAL_MODULE_CLASS := APPS 17 | LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 18 | LOCAL_CERTIFICATE := release 19 | include $(BUILD_PREBUILT) 20 | -------------------------------------------------------------------------------- /gappstub/gappsstub.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SolidHal/android-auto-stub/17daf293dc48dff6780a78f05bdec8464eb1fc97/gappstub/gappsstub.apk -------------------------------------------------------------------------------- /speechservicestub/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | LOCAL_MODULE_TAGS := optional 5 | LOCAL_MODULE := speechservicestub 6 | LOCAL_SRC_FILES := speech-services-stub.apk 7 | LOCAL_MODULE_CLASS := APPS 8 | LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 9 | LOCAL_CERTIFICATE := PRESIGNED 10 | include $(BUILD_PREBUILT) 11 | 12 | include $(CLEAR_VARS) 13 | LOCAL_MODULE_TAGS := optional 14 | LOCAL_MODULE := speechservicestub-unsigned 15 | LOCAL_SRC_FILES := speech-services-unsigned-stub.apk 16 | LOCAL_MODULE_CLASS := APPS 17 | LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 18 | LOCAL_CERTIFICATE := release 19 | include $(BUILD_PREBUILT) 20 | -------------------------------------------------------------------------------- /speechservicestub/speech-services-stub.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SolidHal/android-auto-stub/17daf293dc48dff6780a78f05bdec8464eb1fc97/speechservicestub/speech-services-stub.apk --------------------------------------------------------------------------------