Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
sn-00-x committed May 30, 2022
0 parents commit 393a44d
Show file tree
Hide file tree
Showing 11 changed files with 175 additions and 0 deletions.
33 changes: 33 additions & 0 deletions META-INF/com/google/android/update-binary
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/sbin/sh

#################
# Initialization
#################

umask 022

# echo before loading util_functions
ui_print() { echo "$1"; }

require_new_magisk() {
ui_print "*******************************"
ui_print " Please install Magisk v20.4+! "
ui_print "*******************************"
exit 1
}

#########################
# Load util_functions.sh
#########################

OUTFD=$2
ZIPFILE=$3

mount /data 2>/dev/null

[ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk
. /data/adb/magisk/util_functions.sh
[ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk

install_module
exit 0
1 change: 1 addition & 0 deletions META-INF/com/google/android/updater-script
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#MAGISK
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Android Auto 4 microG

This is a Magisk module that adds Android Auto to de-googled devices running microG. Tested under LineageOS 4 microG 18.1 only, but should run on all Android 11 devices.

## Installation

- Install [LineageOS for microG](https://lineage.microg.org/)
- Install [Magisk](https://github.com/topjohnwu/Magisk/)
- Install this module through the Magisk Manager App
- Install [Google TTS](https://play.google.com/store/apps/details?id=com.google.android.tts)
- Install either [Google App Stub](https://git.sr.ht/~dylanger/Google-App-Stub) or the original [Google](https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox)-app
- Optionally upgrade Android Auto through Aurora Store (see "Upgrade to current version" below)

## Upgrade to current version

This module ships with Android Auto 6.2.6109 (extracted from NikGapps) and can be upgraded through Aurora Store. The reason for shipping with AA 6.2 is that with current versions there's no way to use apps like Screen2Auto / AA Mirror / etc.

However those earlier versions throw "Communication error 8" on some devices (including mine). If you want to use apps like S2A, please try to upgrade to AA 6.3 first (by requesting 63611324 under "Manual download" in Aurora Store). If that fails, you could try AA 6.6 (66612524). If that also fails, just update to the latest version and pass on S2A for now.

## First steps

When first using your device in your car, follow the usual flow on your head unit and device until you reach a page asking for location permissions for maps. Double check maps has permissions and click "cancel". If nothing happens, unplug and replug your device. When asked for, grant all permissions. In case you encounter an error "Communication error 17", manually open Settings and grant all available persmissions to the Android Auto app. Then unplug and replug your device.

Android Auto won't show apps not installed through Play Store. Since you most probably installed all your compatible apps through Aurora Store, they are missing in Android Auto. In the Android Auto interface on your head unit: select "Settings", scroll down, tap "See more in the phone app". On your phone: scroll down, tap version 10 times to become a developer, tap the three dots in the upper right corner and select "Developer Settings", then check "Unkown sources".

## Build

zip aa4mg.zip -9r *

## Credits

- **Nikhil Menghani** for [NikGapps](https://nikgapps.com/)
1 change: 1 addition & 0 deletions customize.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ui_print "Installing aa4mg..."
6 changes: 6 additions & 0 deletions module.prop
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
id=aa4mg
name=Android Auto 4 microG
version=aa4mg 0.1
versionCode=21001
author=sn00x
description=Install Android Auto on top of microG
54 changes: 54 additions & 0 deletions system/etc/default-permissions/default-permissions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>

<!-- Copyright (C) 2019 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<!--
This file contains permissions to be granted by default. Default
permissions are granted to special platform components and to apps
that are approved to get default grants. The special components
are apps that are expected tto work out-of-the-box as they provide
core use cases such as default dialer, default email, etc. These
grants are managed by the platform. The apps that are additionally
approved for default grants are ones that provide carrier specific
functionality, ones legally required at some location, ones providing
alternative disclosure and opt-out UI, ones providing highlight features
of a dedicated device, etc. This file contains only the latter exceptions.
Fixed permissions cannot be controlled by the user and need a special
approval. Typically these are to ensure either legally mandated functions
or the app is considered a part of the OS.
-->

<exceptions>
<exception
package="com.google.android.projection.gearhead">
<!-- Gearhead legacy -->
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
<permission name="android.permission.CALL_PHONE" fixed="false"/>
<permission name="android.permission.READ_CALL_LOG" fixed="false"/>
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
<permission name="android.permission.RECEIVE_SMS" fixed="false"/>
<permission name="android.permission.RECORD_AUDIO" fixed="false"/>
<permission name="android.permission.SEND_SMS" fixed="false"/>
<permission name="android.permission.READ_CALENDAR" fixed="false"/>
<!-- For Top Gear -->
<permission name="android.permission.PROCESS_OUTGOING_CALLS" fixed="false"/>
<permission name="android.permission.READ_SMS" fixed="false"/>
<permission name="android.permission.RECEIVE_MMS" fixed="false"/>
<permission name="android.permission.WRITE_CALL_LOG" fixed="false"/>
<permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false"/>
</exception>
</exceptions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<permissions>
<privapp-permissions package="com.google.android.projection.gearhead">
<permission name="android.permission.READ_PHONE_STATE" />
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<permission name="android.permission.CALL_PHONE" />
<permission name="android.permission.READ_CALL_LOG" />
<permission name="android.permission.READ_CONTACTS" />
<permission name="android.permission.GET_ACCOUNTS" />
<permission name="android.permission.ACCESS_FINE_LOCATION" />
<permission name="com.google.android.gms.permission.CAR_SPEED" />
<permission name="android.permission.RECEIVE_SMS" />
<permission name="android.permission.SEND_SMS" />
<permission name="android.permission.RECORD_AUDIO" />
<permission name="android.permission.READ_CALENDAR" />
<permission name="android.permission.WAKE_LOCK" />
<permission name="android.permission.INTERNET" />
<permission name="android.permission.ACCESS_NETWORK_STATE" />
<permission name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<permission name="android.permission.ACCESS_WIFI_STATE" />
<permission name="android.permission.CHANGE_NETWORK_STATE" />
<permission name="android.permission.QUERY_ALL_PACKAGES" />
<permission name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<permission name="android.permission.SYSTEM_ALERT_WINDOW" />
<permission name="android.permission.BLUETOOTH" />
<permission name="android.permission.BLUETOOTH_ADMIN" />
<permission name="android.permission.CHANGE_WIFI_STATE" />
<permission name="android.permission.FOREGROUND_SERVICE" />
<permission name="android.permission.RECEIVE_BOOT_COMPLETED" />
<permission name="android.permission.VIBRATE" />
<permission name="com.google.android.finsky.permission.GEARHEAD_SERVICE" />
<permission name="android.permission.WRITE_SETTINGS" />
<permission name="android.permission.BLUETOOTH_PRIVILEGED" />
<permission name="android.permission.CALL_PRIVILEGED" />
<permission name="android.permission.COMPANION_APPROVE_WIFI_CONNECTIONS" />
<permission name="android.permission.LOCATION_HARDWARE" />
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE" />
<permission name="android.permission.DUMP" />
<permission name="android.permission.ENTER_CAR_MODE_PRIORITIZED" />
<permission name="android.permission.LOCAL_MAC_ADDRESS" />
<permission name="android.permission.MANAGE_USB" />
<permission name="android.permission.MODIFY_AUDIO_ROUTING" />
<permission name="android.permission.MODIFY_DAY_NIGHT_MODE" />
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
<permission name="android.permission.TOGGLE_AUTOMOTIVE_PROJECTION" />
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
<permission name="android.permission.INTERACT_ACROSS_PROFILES" />
</privapp-permissions>
</permissions>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 comments on commit 393a44d

Please sign in to comment.