-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ Feature Request ] : Android Auto Support #897
Comments
I would also definitely love android auto support! |
There are other issues on this: #458 #778 From reading around, Android Auto's app is only a partial implementation of what is required as the play framework provides some libraries it uses to function. The most important one has to do with SSL, and in fact, newer versions of this SSL lib break crankshaft, an open source Android Auto headunit software. Because crankshaft exists I wonder if a non-root, non-google framework emulation could be done in a standalone APK to use the Android Auto protocol? It would be neat to get it working, and find a way to disable the bottom bar and have fullscreen support without all the limitations. I bet that other than the bluetooth buttons, and audio stuff, that Android Auto is pretty much chromecast. |
OpenHU goes into more detail (note it's a probably dead bounty). If we find a way to include libsslwrapper.so and set it up such that we can vet any cert we want as valid, that could be fun anyway, but: http://wiki.console.com.co/w/Fixing_OpenHU GMS has a file called libsslwrapper.so that vets security certificates.
|
Is there anything else required? I'm going to start looking at this. I'd be happy with standard Android Auto working, just seems to be a few GMS APIs that are missing Also correct me if I'm wrong but isn't OpenHU sort of the opposite of what we're trying to accomplish? OpenHU is a tablet that you plug your phone into? Whereas we're trying to plug our devices (microG + Android Auto APK) into an existing car and have that work? Looking at the above error log, it looks like it just doesn't have
Also if anyone has any documentation on how the Android Auto protocol works please share it, from what I understand most if not all of the protocol is located within the Android Auto APK. |
Quick update It looks like Android Auto immedately crashes when you try to launch it It complains about UseageReporting.API being unavailable
It does this about 4-5 times Then the actual crash is here
Looking at these errors it looks like
|
It should be possible to fix this without patching the apk
It seems it's just not implemented into GmsCore yet, if you patch the app it'll cause other apps (like Spotify etc) to not trust it because the signature changed. If anyone has any pointers on how to fix the above issue any guidance would be appreciated It's only failing due to a certificate check, no other APIs within GMS are required from what I can tell |
It did not, the logic that handles dealing with USB is (I think) located within GMS, so this is what needs to be implemented into microG. https://github.com/tomasz-grobelny/AACS I'll start doing some PoCs next week |
@dylangerdaly I use the official builds of GrapheneOS, have built myself in the past with the sig spoof patch and used MicroG, but it has been a while. It would be great if we could find a way to build an open source application that just uses the android auto protocol to mirror the device fully to the head unit... For USB, you may have some luck looking at OpenAuto - it handles the emulation of a head unit (or a real one if you build it with a Pi)... It could give us some info on implementing our own mirroring, or at least the protocol - I think they have technical info somewhere. https://github.com/f1xpl/openauto |
Oh awesome, yeah I'm doing the same with GrapheneOS + microG, usually kick off a build each month, I like being able to add my own patches on top of the OS. Yeah I think OpenAuto will be the way to go, as I don't have my own car that support AA, yet I agree I think people would find just mirroring the screen more useful than trying to integrate it with the Android Auto app. |
Apparently "extras for AA" here lets you hide the navbar, and then there's AA mirror... https://github.com/shmykelsa/extrasforaa-release I tried using an HDMI mirroring system for my vehicle but that didn't end up working, so AA is my only choice - I may end up building it and putting it on a Pi or other SBC instead so it is private...I've already disabled the cell modem on the headunit itself. This is all a combo of privacy concerns and the fact the headunit can't handle my FLAC collection. |
Someone also has written an interesting app to proxy android auto from one device to another, to facilitate adding wireless functionality to unsupported vehicles: |
Oh, even better: |
Quick little update I've managed to get Android Auto working on a GrapheneOS device with microG It appears Google have moved the AACS logic from Google Services into the standalone Android Auto apk, there currently is an issue with a possible certificate missing from microG(?) causing it to crash immediately, to get around this I patched the check and added a sig spoof patch similar to the microG sig spoof patch, making it look to other apps Android Auto is signed with the correct Google cert. After that the app needs to be a privapp with a long list of permissions Thanks to the people in the microG element room for pointing me in the right direction with the permissions. It could be possible to patch the Activity that gets launched when you plug a device in 👀 |
Great job! |
I think so, only had 30 or so seconds to test, still waiting on my car to arrive lol, I should be able to test further tomorrow. Maps works well with Apple's Nlp Backend from my initial testing Another fun little factoid if you patch this to always return true
It'll show apps that don't typically support AA, like SoundCloud etc |
This is awesome the one reason I still used GAPPS. Looking forward to when it gets released. |
@dylangerdaly Awesome work. Being a recent owner of an Android Auto car, I’m looking forward to being able to use it on my car with microG. Were you able to run it without installing the “Google App” and such? Or is that still with those apps installed? |
I've opened a PR --> #1396 This fixes Auto from crashing immediately on startup, just needed to add it to the Google Packages list.
I haven't tested this yet, I think the next hurdle will be getting it working without it needing to be a privapp, Graphene and other OSs give you the ability to disallow internet access to specific apps, as a workaround for having the Google App installed, I just disallowed internet access to the app, it's possible just having the Google App installed as a sub could work, this needs to be tested further. |
With pico gapps I have run it with Google, text to speech and maps without being in privapp. Now just have to figure out how to run with this. Managed to compile it but getting it on the phone is another challenge. |
So I have it running everything in data ezcpect android auto. The one thing I noticed and looks the same.in your screen shot is no messaging. I tried to put signal in and nothing also no default SMS. It well read an SMS and I can reply but doesn't show on screen. |
Having this working would be fantastic. Having recently switched over to the MicroG + Lineage build, this is one of the very few things missing. The plus point if you include it for the extra apps would be great for services like Jellyfin. Thanks, and keep up the good work! Edited to add: |
If this becomes true, it would be a resounding triumph for the true public interest towards privacy protection, especially with graphene packed on a pixel. Some of us still need to keep the bootloader unlocked for safetynet, but that would be the last step towards perfection if someone could get the magisk integration signed and bootloader lockable, which may not be far away. I am really looking forward to the publication of this patch as well as many who have to stay behind wheels. Rest assured, donations will come like giving the money tree a kick. Imagine. PS: I am also interested in getting a beta version for testing. Yet I see only a master branch, where can I find the beta channel? |
There are some root only apps that do a lot towards enabling all apps in AA, I suspect combining AAMirror or whatever it's called with the one that disables the always on menu bar would be excellent together, giving you a direct mirror of the phone... |
So in case anyone is interested Maps and Google just have to be installed. You can disable them and android auto well still run. If you disable Google there is no voice control and maps is obvious. I would assume text to speech is the same. |
Does that mean we could patch MicroG further to allow spoofing for maps and the google app with fake apks? |
...for that matter, I suppose because we do that kind of thing anyway, we could theoretically strip down the AA apk down to just a basic app with no deps, no connections, no google bits if we're spoofing? |
I imagine it’s beyond me. Fake apps like the play store would probably be the easiest option. The apps do have to be installed once removed it asks for them but if they are disabled it works fine. Disabled Google you get voice search not available when trying to search something. Disabled maps no navigation. But install Waze and that works fine. There is only one other navigation app for Android Auto but it’s in beta and I haven’t tried it yet. |
Is there a good guide somewhere to get this into a working build on 13? Been doing the standard GrapheneOS builds but I'm missing Auto. |
I finally had time to finish the integration. With the help of this patch it is possible to run Android Auto as user app under GrapheneOS (and probably other Android 13 roms, cause it doesn't rely on GrapheneOS itself). It also provides a layer for Screen2Auto that only grants invasive permissions (draw over other apps, accessibility service) while connected to a head unit or screen sharing. That means you can watch Netflix on your head unit and even use it as a touch screen while not granting any of those permissions to Screen2Auto when they are not needed. Follow these basic instructions to build |
Thank you so much for your work on this. I hope some day the GrapheneOS devs come to their senses and see the value in officially integrating this as an option for those who want it. |
Giving invasive privileged permissions is not the sandboxed Google Play approach. The whole point of it is that it runs Google Play as a regular app with zero additional access than the Google Play SDK and libraries have within apps. Taking this shortcut is not a valid approach for it. The approach we do in GrapheneOS is not taking very problematic shortcuts instead of doing things properly. The only proper approach to this would be using a combination of the same approach we already use with sandboxed Google Play and if necessary developing new permissions for access it requires but so far we haven't added any way of granting additional access and we don't really want to do that. Better to develop a full alternative. |
I gotcha, and I don't disagree. I'm in a position where the lack of Android Auto is quite literally the only reason I'm not using GrapheneOS; I drive a lot and can't safely navigate maps, calls, and music on my phone screen while doing so. I'm sure I'm not the only one that really needs head unit support in their cars. It's important enough to me that I personally would be willing to sacrifice some privileged permission access to get it, but a more privacy-conscious approach would obviously be better. Hopefully Android Auto is added to Graphene sooner rather than later. Fingers crossed. |
+1 to the above. Ive spent most of today doing research into what my options are if android auto, or something like it are a requirement for me. So far it seems like my options are quite limited. While I dont think android auto itself is a requirement in graphene OS or any other not stock OS, I think it is super important there is some option that can make us of cars screens for navigation. Especially as more and more cars are not offering GPS as an option |
One option (I think) is to make a "non-free-android-auto" fork version of grapheneOS similar on what debian was doing with their iso's (a Foss and a proprietary). Or just like the google play services could be made a similar sandboxed module for android auto. To be installed and uninstalled just like a normal app. |
Relatively new CalyxOS user here. What can be done to move forward with this feature request? Is it viable to add a new permission to MicroG specifically to allow Android Auto to work? E.g. a permission that is disabled by default, and that the user can opt into?
@thestinger, could you explain the thinking behind your comment "we don't really want to do that". Is that because the permissions are too specific, or they are too "permissive", or something else?
By this, do you mean forget about using Android Auto and develop a new e.g. open source replacement? If so, is anyone working on such a project? @sn-00-x, thanks for the work to demonstrate that AA can be made to work! |
@hbchai The devs of CalyxOS have 2 implementations that would result in Android Auto working. See https://review.calyxos.org/c/CalyxOS/vendor_calyx/+/18108 and https://review.calyxos.org/c/CalyxOS/platform_frameworks_base/+/15365. However, they are currently finishing their port to 14 and will be busy for a while after that porting to the Pixel 8 series, the Fairphone 5 and some Motorola devices. If you're savvy enough you could build CalyxOS yourself with either one of the implementations merged. |
Does Auto work in Calyx 5.1.x already? |
From @bblacher answer; if you read both Gerrit reviews changelogs:
What you can do is download the patch from their GitLab repository ("Options" dropdown in right-corner) and apply it to your local and -home-made- build. Watchout: since your installed version of CalyxOS will not be -official-, |
The mentioned implementation https://review.calyxos.org/c/CalyxOS/platform_frameworks_base/+/15365 will not work. It is missing a lot stuff required for newer Android versions. To make Android Auto work as user app under Android 14 you need this and this. For more info and for media app support see https://github.com/sn-00-x/android-auto which describes how to use my small GrapheneOS fork. |
@sn-00-x GrapheneOS is about to ship an extension of the sandboxed Google Play compatibility layer to Android Auto which avoids needing to give it a whole bunch of privileged access. The access which needs to be granted it actually a reasonable scope with the compatibility layer extended to it. Our existing approach largely works for it, but not entirely so we do need to add another toggle for granting the privileges it does need. We could have added a privileged Android Auto toggle ages ago but it's not our approach. We care about doing this well. We certainly wouldn't simply automatically grant privileged access to it to get it working. |
@thestinger Great to see Android Auto support will finally make it into GrapheneOS! Exactly what I was waiting for since I bought a Pixel and realized the OS I intended to use is missing a key feature (for me). Actually I'm glad you took so long, because it was great fun to work on the integration and will be so when adding Screen2Auto support on top of your compat layer extension. I learned many things while working on this. :) If I could make a wish for another feature, it would be a local network toggle. Android Auto uses wifi for wireless connections to a head unit. With the current network permission, it requires granting full internet access to Android Auto or fall back to a wired connection. Having a separate toggle for local network access only, would make it possible to connect Android Auto wirelessly while still blocking it's connections to the outside. |
This is very exciting. Can't wait for its release. |
Just wanted to ask if anyone got CalyxOS (Android 14) working with a minimal amount of permissions given to android auto. |
Nope. |
Well, my patches should also work on CalyxOS. You basically only need Support Android Auto as user app (part one and part two), if you only want standard Android Auto. |
Thank you, @sn-00-x. I would also be interested in the minimal ammount of permissions. Have you played with them in order to see if AA still works? |
Yes, that was exactly my intention. That's why I've implemented support for Android Auto as user app and not as a system app. |
Thanks for all the efforts 🙏 @sn-00-x . When are the changes going to be published to the devices? |
It goes against the approach followed by GrapheneOS to give privileged permissions to an application like Android Auto. Sandboxed Google Play avoids giving absolutely any special access or privileges to the Google Play apps. We're aware that's how others handle it including operating systems using privileged microG and granting special privileges to other Google apps, but it's not what we do ourselves. It has to be minimized via the same compatibility layer approach to the extent possible, and a toggle provided for whatever can't be eliminated via a compatibility layer. Long term, it will ideally trend away from granting special privileges via a toggle as better approaches are developed. Longer term, we would ideally have our own implementation of the protocol not tied to Google services, so this would be a stopgap just like the eSIM activation app toggle we currently provide. |
The comment from @bblacher on Nov 5 was useful. Do we have any news on progress towards adding Android Auto support properly? Is this the issue ticket to follow, or should we be referencing some other tracker? What is the best way to get this support prioritized? If there is a tip jar / bug bounty mechanism, I would happily make a donation if it might accelerate work here. Is it possible to get a design specification of the approach acceptable per multiple comments from @thestinger? @sn-00-x has done valuable work, and given the right guidance, might (I hope?) be willing to contribute a mergeable fix, a win-win for everyone. |
The comment from Nov 5 mentions two approaches at CalyxOS. |
We've implemented a compatibility layer for Android Auto which deals with as much as possible via the compatibility layer. Only a single USB privileged permission is currently required for Android Auto via USB. The current implementation has 4 toggles for enabling different functionality. In theory, it might be possible to avoid even more, but it's a good starting point. Simply giving Google apps privileged permissions when installed like other operating systems do goes against our approach. They also give microG privileged access and microG downloads/runs Google binaries (droidguard, snet) within that privileged context when that functionality is being used. Our approach must not give any special access or permissions to Google apps by default. There can be toggles for opting into certain special access but it needs to be minimized and we're going to try to explain exactly what access is granted in a way people can understand. We still need to do that for the Google eSIM activation but we're going to be adding an open source alternative once we have time to write or rewrite one (the existing open source app doesn't meet our standards).
GrapheneOS doesn't ship with sandboxed Google Play. There's the option to install them as regular sandboxed apps. You can install microG as a regular sandboxed app too, but it's not designed to work that way. microG could have been built differently to avoid the privileged access it expects as we did for our FCM compatibility layer and other sandboxed Google Play features. There's also signature spoofing which even for just the Google Play apps is also a special privilege. The reason signature spoofing is not acceptable is because microG does not uphold the same privacy/security checks for APIs and security checks for connections to Google services. It also doesn't meet our robustness and security standards for any code included as a trusted part of the OS, and signature spoofing makes it a trusted part of the OS. Signature spoofing is currently not fully required for all Google Play functionality but it likely will be in the future so we don't document the fact that people can use microG as a regular sandboxed app on GrapheneOS since we don't expect it to continue working, and it already largely doesn't work properly mainly because it doesn't try. DivestOS integrates support for microG as being a regular sandboxed app other than signature spoofing but it has a toggle so people have a choice. We expect signature spoofing will become more required than it is now so there's no point of us telling people they can use sandboxed microG on GrapheneOS with partial functionality when we expect it's not going to keep working. We also don't see much point in the approach when each app using it has the Google Play libraries, many of which work without Google Play. The point of sandboxed Google Play is to run the rest of Google Play in the same app sandbox as the Google Play, Firebase, etc. libraries which run as part of the app using it. Unlike the apps using it, there's no need to grant permissions for Google Play for the vast majority of functionality, our Sensors permission can be disabled and all the standard ones can be left disabled other than Unrestricted battery mode for reliable push. It works fine with our Network toggle disabled but that's somewhat pointless when most of the functionality is about using Google services like FCM. It's entirely possible we'll reimplement essentially everything microG provides with our own approach. We already have our own much better implementation of the Google Play location APIs which properly attributes permission and power usage without any privileged access since it redirects the requests from inside the apps. We're likely going to do more this, we're just able to focus on doing parts of it that are more useful. Should always bear in mind that the client side used by apps are the proprietary Google Play, Firebase and other Google libraries. They can fundamentally do everything that sandboxed Google Play can do and more because they have all the access and capabilities of sandboxed Google Play along with access within the app's sandbox and the permissions users grant to it. Our reimplementation of the Google Play location APIs only means you can make the Google location libraries used by apps use the OS location APIs instead of the Google Play location APIs. You're still running the Google Play location libraries within those apps you've granted access to Location. If you want to avoid Google Play code entirely, that requires using apps not including it as part of themselves. This isn't regarded as any kind of significant issue by us since we're just making Google apps, libraries and services work like any other apps, libraries and services: no special access or privileges, and in rare cases like Android Auto properly explained toggles for granting very limited special access not giving access to things like the data of other apps, cross-profile communication, hardware identifiers, etc. Wireless Android Auto currently needs access to Bluetooth MAC but this doesn't necessarily need to leak a hardware identifier and the Android Auto hardware in the car can see nearby Bluetooth MACs anyway. |
I locked this conversation as it turned more into a discussion of CalyxOS and GrapheneOS principles. microG is somewhat compatible with the proprietary Android Auto app. To get it running on custom OS though, Android Auto needs to be granted privileges. This is out of scope of microG. If I ever were to do something about Android Auto as part of microG, it would be a new implementation of Android Auto that does not require the proprietary Android Auto app. If you want to further discuss which patches are best suited for which OS and for what reason, I ask you to use another suitable venue for that.
For the sake of accuracy, SafetyNet (snet) has its own implementation in microG and does not require downloading or running proprietary binaries except for using DroidGuard. microG's implementation of DroidGuard, if enabled, usually downloads Google binaries. microG also allows remote DroidGuard execution (which can be configured in the settings), allowing to instruct a remote server to download and execute the proprietary binary from Google. DroidGuard requires to download and execute proprietary code from Google, as this code is designed to be hard to reverse-engineer and regularly updates and changes itself. This is how I personally use microG: As unprivileged app on a custom OS that spoofs signature for the two microG packages and uses full verified boot on a Pixel 3, with microG configured to use remote DroidGuard execution, which I run on an old Nexus 7 I keep running at home as a server.
Signature spoofing is essentially required for all features where Google's client library does a signature check before connecting to the Push notifications predate Play Services (back then under the name C2DM) and the corresponding service is provided under the package name Future features in Play Services would technically not require these signature checks, as Play Services only targets Android versions that bundle the |
Installed : Google App / Google Maps / Android Auto
Launched Android Auto
Stuck at Android Auto launcher.
Below are the logs :
07-21 00:12:25.191 16269 16305 I MicroDetectionWorker: #startMicroDetector [speakerMode: 0]
07-21 00:12:25.202 16269 16305 W ErrorReporter: reportError [type: 211, code: 393244, bug: 0]: errorCode: 393244, engine: 0
07-21 00:12:25.208 16269 16305 I MicroDetector: Keeping mic open: false
07-21 00:12:25.208 16269 16305 I MicroDetectionWorker: #onError(false)
07-21 00:12:25.320 285 4872 D audio_hw_primary: start_output_stream: enter: stream(0xb0858000)usecase(4: audio-ull-playback) devices(0x2)
07-21 00:12:25.320 285 4872 D audio_hw_primary: start_output_stream: enter: usecase(4: audio-ull-playback) devices(0x2)
07-21 00:12:25.320 285 4872 D audio_hw_primary: select_devices: out_snd_device(2: speaker) in_snd_device(0: )
07-21 00:12:25.320 285 4872 W msm8974_platform: Codec backend bitwidth 16, samplerate 48000
07-21 00:12:25.321 285 4872 D hardware_info: hw_info_append_hw_type : device_name = speaker
07-21 00:12:25.321 285 4872 I msm8974_platform: platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> send_audio_cal, acdb_id = 15, path = 0
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> send_adm_topology
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TOPOLOGY_ID
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> send_asm_topology
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_STREAM_TOPOLOGY_ID
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> send_audtable
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TABLE
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> AUDIO_SET_AUDPROC_CAL
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> send_audvoltable
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_GAIN_DEP_STEP_TABLE
07-21 00:12:25.321 285 4872 D : Failed to fetch the lookup information of the device 0000000F
07-21 00:12:25.321 285 4872 E ACDB-LOADER: Error: ACDB AudProc vol returned = -19
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> AUDIO_SET_AUDPROC_VOL_CAL
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> send_afe_cal
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_COMMON_TABLE
07-21 00:12:25.321 285 4872 D : Failed to fetch the lookup information of the device 0000000F
07-21 00:12:25.321 285 4872 E ACDB-LOADER: Error: ACDB AFE returned = -19
07-21 00:12:25.321 285 4872 D ACDB-LOADER: ACDB -> AUDIO_SET_AFE_CAL
07-21 00:12:25.321 285 4872 D audio_route: Apply path: speaker
07-21 00:12:17.671 672 672 V SettingsProvider: Notifying for 0: content://settings/system/screen_brightness
07-21 00:12:25.322 672 3303 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity bnds=[35,258][287,554]} from uid 10037
07-21 00:12:25.330 285 4872 D audio_route: Apply path: audio-ull-playback
07-21 00:12:25.331 285 4872 D audio_hw_primary: select_devices: done
07-21 00:12:25.376 672 1375 I ActivityManager: Start proc 18062:com.google.android.projection.gearhead:vanagon/u0a93 for activity com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity
07-21 00:12:25.411 672 15876 W ActivityManager: Request to remove task ignored for non-existent task 31
07-21 00:12:25.465 18062 18062 I MultiDex: VM with version 2.1.0 has multidex support
07-21 00:12:25.466 18062 18062 I MultiDex: install
07-21 00:12:25.466 18062 18062 I MultiDex: VM has multidex support, MultiDex support library is disabled.
07-21 00:12:25.467 18062 18062 W Primes : Primes not initialized, returning default (no-op) Primes instance which will ignore all calls. Please call Primes.initialize(...) before using any Primes API.
07-21 00:12:25.469 18062 18062 I CAR.GH : onCreate
07-21 00:12:25.478 16269 16313 I PBSessionCacheImpl: Deleted sessionId[71553382334609986] from persistence.
07-21 00:12:25.510 12264 12264 D GmsDummySvc: onBind: Intent { act=com.google.android.gms.phenotype.service.START pkg=com.google.android.gms }
07-21 00:12:25.540 18062 18062 I CAR.GH : Process: VANAGON
07-21 00:12:25.547 16269 16305 W SearchServiceCore: Abort, client detached.
07-21 00:12:25.570 12264 12277 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:message_change_filter_blacklist value=null
07-21 00:12:25.573 12264 13363 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:frx_gearhead_package value=com.google.android.projection.gearhead:39585000
07-21 00:12:25.576 12264 12277 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:frx_maps_package value=com.google.android.apps.maps:952000000
07-21 00:12:25.578 12264 12276 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:frx_gsa_package value=com.google.android.googlequicksearchbox:300758200
07-21 00:12:25.581 12264 12292 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:frx_music_package value=
07-21 00:12:25.585 12264 13363 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:frx_tts_package value=com.google.android.tts:210307100
07-21 00:12:25.609 18062 18062 I GH.CallAdapterFactory: creating call adapter instance
07-21 00:12:25.609 18062 18062 I GH.CallAdapterFactory: useCompat().
07-21 00:12:25.610 12264 12277 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:telecom_stack value=null
07-21 00:12:25.610 18062 18062 I GH.CallAdapterFactory: useCompat=false, Device running M or later, assuming a healthy telecom stack.
07-21 00:12:25.631 3239 3239 W StaticLayout: maxLineHeight should not be -1. maxLines:1 lineCount:1
07-21 00:12:25.636 17430 17430 I GH.SharedService: Shared Service created
07-21 00:12:25.642 12264 12264 D GmsCarSvc: onBind: Intent { act=com.google.android.gms.car.service.START pkg=com.google.android.gms }
07-21 00:12:25.645 12264 12292 D SafeParcel: Unknown field num 10 in com.google.android.gms.common.internal.GetServiceRequest, skipping.
07-21 00:12:25.646 12264 12292 D SafeParcel: Unknown field num 11 in com.google.android.gms.common.internal.GetServiceRequest, skipping.
07-21 00:12:25.646 12264 12292 D SafeParcel: Unknown field num 12 in com.google.android.gms.common.internal.GetServiceRequest, skipping.
07-21 00:12:25.646 12264 12292 D SafeParcel: Unknown field num 13 in com.google.android.gms.common.internal.GetServiceRequest, skipping.
07-21 00:12:25.646 12264 12292 D GmsCarSvc: bound by: GetServiceRequest{serviceId=CAR, gmsVersion=18003000, packageName='com.google.android.projection.gearhead', extras=Bundle[{client_name=car-1-0}]}
07-21 00:12:25.648 18062 18062 I GH.CarClientManager: Gearhead Car Service not enabled. Skipping initialization.
07-21 00:12:25.693 18062 18062 I GH.CONFIG: groups:
07-21 00:12:25.694 12264 12276 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_everyone value=true
07-21 00:12:25.696 18062 18062 I GH.CONFIG: everyone
07-21 00:12:25.697 12264 12292 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_googler value=null
07-21 00:12:25.698 12264 12276 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_dogfood value=null
07-21 00:12:25.700 12264 12277 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_partner value=null
07-21 00:12:25.701 12264 13363 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_engineer value=null
07-21 00:12:25.702 12264 12292 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_demo value=null
07-21 00:12:25.702 12264 12276 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_oem value=null
07-21 00:12:25.703 12264 12277 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_developer value=null
07-21 00:12:25.704 12264 13363 D GmsServicesProvider: query caller=com.google.android.projection.gearhead name=gearhead:group_partner_qa value=null
07-21 00:12:25.751 18062 18062 D OpenGLRenderer: Skia GL Pipeline
07-21 00:12:25.768 12264 12292 D SafeParcel: Unknown field num 10 in com.google.android.gms.common.internal.GetServiceRequest, skipping.
07-21 00:12:25.769 12264 12292 D SafeParcel: Unknown field num 11 in com.google.android.gms.common.internal.GetServiceRequest, skipping.
07-21 00:12:25.769 12264 12292 D SafeParcel: Unknown field num 12 in com.google.android.gms.common.internal.GetServiceRequest, skipping.
07-21 00:12:25.769 12264 12292 D SafeParcel: Unknown field num 13 in com.google.android.gms.common.internal.GetServiceRequest, skipping.
07-21 00:12:25.769 12264 12292 D GmsDummySvc: bound by: GetServiceRequest{serviceId=PHENOTYPE, gmsVersion=18003000, packageName='com.google.android.projection.gearhead', extras=Bundle[{}]}
07-21 00:12:25.779 3239 3239 D StatusBar: disable disable2
Willing to help by testing.
The text was updated successfully, but these errors were encountered: