microg / GmsCore

Free implementation of Play Services
https://microg.org
Apache License 2.0
7.61k stars 1.61k forks source link

[ Feature Request ] : Android Auto Support #897

Closed geeky-neo closed 6 months ago

geeky-neo commented 4 years ago

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 07-21 00:12:25.788 18062 18097 I Adreno-EGL: : EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.3_RB1__release_AU (I741a3d36ca) 07-21 00:12:25.788 18062 18097 I Adreno-EGL: OpenGL ES Shader Compiler Version: E031.29.00.00 07-21 00:12:25.788 18062 18097 I Adreno-EGL: Build Date: 04/04/16 Mon 07-21 00:12:25.788 18062 18097 I Adreno-EGL: Local Branch: mybranch19053788 07-21 00:12:25.788 18062 18097 I Adreno-EGL: Remote Branch: quic/LA.BF.1.1.3_rb1.12 07-21 00:12:25.788 18062 18097 I Adreno-EGL: Local Patches: NONE 07-21 00:12:25.788 18062 18097 I Adreno-EGL: Reconstruct Branch: NOTHING 07-21 00:12:25.794 18062 18097 I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0 07-21 00:12:25.795 18062 18097 I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0 07-21 00:12:25.795 18062 18097 I OpenGLRenderer: Initialized EGL, version 1.4 07-21 00:12:25.795 18062 18097 D OpenGLRenderer: Swap behavior 1 07-21 00:12:25.802 18062 18097 W Adreno-EGL: : EGL_BAD_ATTRIBUTE 07-21 00:12:25.806 297 297 E WifiHAL : wifi_get_logger_supported_feature_set: Error -3 happened. 07-21 00:12:25.807 297 297 E WifiHAL : wifi_get_logger_supported_feature_set: Error -3 happened. 07-21 00:12:25.811 18062 18097 W Adreno-EGL: : EGL_BAD_ATTRIBUTE 07-21 00:12:25.813 18062 18097 D vndksupport: Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace. 07-21 00:12:25.833 18062 18097 D vndksupport: Loading /vendor/lib/hw/android.hardware.graphics.mapper@2.0-impl.so from current namespace instead of sphal namespace. 07-21 00:12:25.834 18062 18097 D vndksupport: Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace. 07-21 00:12:25.850 672 1372 I ActivityManager: Displayed com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity: +518ms 07-21 00:12:25.926 306 437 W SurfaceFlinger: Attempting to set client state on removed layer: Surface(name=AppWindowToken{40d00aa token=Token{c0ef795 ActivityRecord{c521b4c u0 com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity t32}}})/@0xf20fb02 - animation-leash#0 07-21 00:12:25.926 306 437 W SurfaceFlinger: Attempting to set client state on removed layer: Surface(name=AppWindowToken{dc5f633 token=Token{96d99a2 ActivityRecord{2cef96d u0 com.android.launcher3/.lineage.LineageLauncher t6}}})/@0x4e6b376 - animation-leash#0 07-21 00:12:25.926 306 437 W SurfaceFlinger: Attempting to destroy on removed layer: Surface(name=AppWindowToken{40d00aa token=Token{c0ef795 ActivityRecord{c521b4c u0 com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity t32}}})/@0xf20fb02 - animation-leash#0 07-21 00:12:25.926 306 437 W SurfaceFlinger: Attempting to destroy on removed layer: Surface(name=AppWindowToken{dc5f633 token=Token{96d99a2 ActivityRecord{2cef96d u0 com.android.launcher3/.lineage.LineageLauncher t6}}})/@0x4e6b376 - animation-leash#0 07-21 00:12:26.003 18062 18062 I GH.LifetimeManager: connectToCarService 07-21 00:12:26.011 12264 12276 D SafeParcel: Unknown field num 10 in com.google.android.gms.common.internal.GetServiceRequest, skipping. 07-21 00:12:26.011 12264 12276 D SafeParcel: Unknown field num 11 in com.google.android.gms.common.internal.GetServiceRequest, skipping. 07-21 00:12:26.011 12264 12276 D SafeParcel: Unknown field num 12 in com.google.android.gms.common.internal.GetServiceRequest, skipping. 07-21 00:12:26.011 12264 12276 D SafeParcel: Unknown field num 13 in com.google.android.gms.common.internal.GetServiceRequest, skipping. 07-21 00:12:26.012 12264 12276 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:26.018 3239 3239 D StatusBar: disable disable2 07-21 00:12:26.022 306 2084 W SurfaceFlinger: Attempting to set client state on removed layer: Splash Screen com.google.android.projection.gearhead#0 07-21 00:12:26.022 306 2084 W SurfaceFlinger: Attempting to destroy on removed layer: Splash Screen com.google.android.projection.gearhead#0 07-21 00:12:27.548 344 344 W wificond: Copy constructor is only used for unit tests 07-21 00:12:27.554 344 344 W wificond: Failed to get NL80211_ATTR_EXT_FEATURES 07-21 00:12:27.558 344 344 W wificond: Copy constructor is only used for unit tests 07-21 00:12:27.560 344 344 W wificond: Failed to get NL80211_ATTR_EXT_FEATURES 07-21 00:12:27.562 344 344 W wificond: Copy constructor is only used for unit tests 07-21 00:12:27.565 344 344 W wificond: Failed to get NL80211_ATTR_EXT_FEATURES 07-21 00:12:28.471 285 461 D audio_hw_primary: out_standby: enter: stream (0xb0858000) usecase(4: audio-ull-playback) 07-21 00:12:28.539 285 461 D hardware_info: hw_info_append_hw_type : device_name = speaker 07-21 00:12:28.826 672 4040 D WificondControl: Scan result ready event 07-21 00:12:28.831 672 1379 I EthernetTracker: interfaceLinkStateChanged, iface: wlan0, up: true 07-21 00:12:35.743 16269 16305 I WorkerManager: dispose() 07-21 00:12:35.752 16269 16305 W ThreadPoolDumper: Queue length for executor EventBus is now 11. Perhaps some tasks are too long, or the pool is too small. 07-21 00:12:35.783 12264 12264 D GmsDummySvc: onBind: Intent { act=com.google.android.contextmanager.service.ContextManagerService.START pkg=com.google.android.gms } 07-21 00:12:35.795 12264 12292 D SafeParcel: Unknown field num 10 in com.google.android.gms.common.internal.GetServiceRequest, skipping. 07-21 00:12:35.795 12264 12292 D SafeParcel: Unknown field num 11 in com.google.android.gms.common.internal.GetServiceRequest, skipping. 07-21 00:12:35.795 12264 12292 D SafeParcel: Unknown field num 12 in com.google.android.gms.common.internal.GetServiceRequest, skipping. 07-21 00:12:35.795 12264 12292 D SafeParcel: Unknown field num 13 in com.google.android.gms.common.internal.GetServiceRequest, skipping. 07-21 00:12:35.795 12264 12292 D GmsDummySvc: bound by: GetServiceRequest{serviceId=CONTEXT_MANAGER, gmsVersion=18591000, packageName='com.google.android.googlequicksearchbox', extras=Bundle[{com.google.android.contextmanager.service.args=[B@3f17e3b}]} 07-21 00:13:07.549 344 344 W wificond: Copy constructor is only used for unit tests 07-21 00:13:07.550 344 344 W wificond: Failed to get NL80211_ATTR_EXT_FEATURES 07-21 00:13:07.552 344 344 W wificond: Copy constructor is only used for unit tests 07-21 00:13:07.557 344 344 W wificond: Failed to get NL80211_ATTR_EXT_FEATURES 07-21 00:13:07.558 344 344 W wificond: Copy constructor is only used for unit tests 07-21 00:13:07.560 344 344 W wificond: Failed to get NL80211_ATTR_EXT_FEATURES 07-21 00:13:08.787 672 4040 D WificondControl: Scan result ready event 07-21 00:13:08.793 672 1379 I EthernetTracker: interfaceLinkStateChanged, iface: wlan0, up: true 07-21 00:13:29.199 672 1372 I UsageStatsService: User[0] Flushing usage stats to disk 07-21 00:13:51.296 672 1375 I ActivityManager: Start proc 18162:com.android.dialer/u0a38 for service com.android.dialer/com.android.voicemail.impl.StatusCheckJobService 07-21 00:13:51.320 16269 16269 I BgTaskExecutorImpl: Starting PERIODIC background task UPLOAD_AUDIO_LOGS. 07-21 00:13:51.327 16269 16269 I BgTaskExecutorImpl: Starting PERIODIC background task MDH_WIPEOUT. 07-21 00:13:51.330 16269 16269 I BgTaskExecutorImpl: Starting PERIODIC background task UPDATE_GSERVICES_CONFIG. 07-21 00:13:51.337 13571 18180 D NetworkSecurityConfig: No Network Security Config specified, using platform default 07-21 00:13:51.372 672 4040 W ActivityManager: Background start not allowed: service Intent { cmp=com.google.android.googlequicksearchbox/com.google.android.apps.gsa.shared.util.keepalive.StandaloneKeepAlive$KeepAliveService } to com.google.android.googlequicksearchbox/com.google.android.apps.gsa.shared.util.keepalive.StandaloneKeepAlive$KeepAliveService from pid=16269 uid=10092 pkg=com.google.android.googlequicksearchbox startFg?=false 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: Attempting to start service when the app is in background is not allowed on Android O+. Intent: Intent { cmp=com.google.android.googlequicksearchbox/com.google.android.apps.gsa.shared.util.keepalive.StandaloneKeepAlive$KeepAliveService } 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.google.android.googlequicksearchbox/com.google.android.apps.gsa.shared.util.keepalive.StandaloneKeepAlive$KeepAliveService }: app is in background uid UidRecord{7c5a9c5 u0a92 TRNB bg:+1m25s426ms idle change:uncached procs:1 seq(0,0,0)} 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1577) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at android.app.ContextImpl.startService(ContextImpl.java:1532) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at android.content.ContextWrapper.startService(ContextWrapper.java:664) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.shared.util.keepalive.StandaloneKeepAlive.a(SourceFile:62) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.shared.util.keepalive.StandaloneKeepAlive.a(SourceFile:9) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.search.core.service.bp.a(SourceFile:18) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.search.core.service.am.run(Unknown Source:8) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.libraries.gsa.m.a.j.run(Unknown Source:2) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.shared.util.c.b.ci.a(SourceFile:2) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.shared.util.c.b.cf.run(SourceFile:5) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.shared.util.c.b.ap.a(SourceFile:7) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.shared.util.c.b.as.run(Unknown Source:2) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.shared.util.c.b.i.run(Unknown Source:3) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at java.util.concurrent.FutureTask.run(FutureTask.java:266) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at java.lang.Thread.run(Thread.java:764) 07-21 00:13:51.373 16269 16305 E StandaloneKeepAlive: at com.google.android.apps.gsa.shared.util.c.b.l.run(SourceFile:6) 07-21 00:13:51.376 16269 16295 W RlzHelperImpl: RlzAppProvider unavailable 07-21 00:13:51.404 16269 16335 I GservicesUpdateTask: Updating Gservices keys 07-21 00:13:51.411 12264 12276 D GmsServicesProvider: query caller=com.google.android.googlequicksearchbox prefix=qsb: name=qsb:action_discovery_data_uri value=https://www.gstatic.com/android/voicesearch/help/help_action_1377256643_%s 07-21 00:13:51.418 12264 13363 D GmsServicesProvider: query caller=com.google.android.googlequicksearchbox name=device_country value=de 07-21 00:13:51.426 12264 12292 D GmsServicesProvider: query caller=com.google.android.googlequicksearchbox name=gms_disable:com.google.android.ears value=null 07-21 00:13:51.430 12264 13363 D GmsServicesProvider: query caller=com.google.android.googlequicksearchbox name=gms.udc.ctx_mgr_enabled value=null 07-21 00:13:51.437 16269 16297 I S3UtteranceSender: send account: %s, modelType: %d[null, 1] 07-21 00:13:51.443 18162 18162 I Dialer : DialerExecutorModule.newThread - creating low priority thread 07-21 00:13:51.447 16269 16305 W SearchServiceCore: Abort, client detached. 07-21 00:13:51.447 16269 16305 W SearchServiceCore: Abort, client detached. 07-21 00:13:51.452 18162 18162 I Dialer : CallLogFramework.registerContentObservers - enter 07-21 00:13:51.454 18162 18162 I Dialer : CallLogFramework.registerContentObservers - not registering content observers 07-21 00:13:51.457 18162 18162 I Dialer : DialerExecutorModule.newThread - creating low priority thread 07-21 00:13:51.471 16269 16305 W SearchServiceCore: Abort, client detached. 07-21 00:13:51.500 16269 18199 V MDH : Opening MDH wipeout table. 07-21 00:13:51.848 13571 18180 I cr_VariationsSeedFetch: Fetched first run seed in 518 ms

Willing to help by testing.

chaptergy commented 4 years ago

I would also definitely love android auto support! @geeky-neo You should probably quote your logs as code to make them more readable.

ilikenwf commented 4 years ago

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.

ilikenwf commented 4 years ago

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. When GMS 9.2 is updated on a device, that is when OpenHU breaks. We can confirm this by swapping in the libsslwrapper.so from GMS 9.0, and suddenly OpenHU works again.



Unfortunately, from there, Android Auto services (part of Google Play Services) fail to establish a connection.

We have isolated this to being a client-side issue, 
the presence of Play Services 9.2 on the host/OpenHU device does not cause an issue. 
And the latest versions of both the Android Auto app, and Google Play Store are not an issue. 
When we manually overwrite Play Services 9.2 with Play Services 9.0 on the client, everything 
works again. ```
dylangerdaly commented 3 years ago

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 com.google.android.googlequicksearchbox installed?

07-21 00:13:51.372 672 4040 W ActivityManager: Background start not allowed: service Intent { cmp=com.google.android.googlequicksearchbox/com.google.android.apps.gsa.shared.util.keepalive.StandaloneKeepAlive$KeepAliveService }

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.

dylangerdaly commented 3 years ago

Quick update

It looks like Android Auto immedately crashes when you try to launch it

It complains about UseageReporting.API being unavailable

02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS: com.google.android.gms.common.api.ApiException: 17: API: UsageReporting.API is not available on this device. Connection failed with: ConnectionResult{statusCode=CANCELED, resolution=null, message=null}
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at com.google.android.gms.common.internal.ApiExceptionUtil.a(SourceFile:1)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at com.google.android.gms.common.api.internal.ApiCallRunner$TaskRunner.c(SourceFile:1)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at com.google.android.gms.common.api.internal.GoogleApiManager$ClientConnection.s(SourceFile:7)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at com.google.android.gms.common.api.internal.GoogleApiManager$ClientConnection.k(SourceFile:2)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at com.google.android.gms.common.api.internal.GoogleApiManager$ClientConnection.f(SourceFile:21)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at com.google.android.gms.common.api.internal.GoogleApiManager$ClientConnection.b(SourceFile:1)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at mtq.a(SourceFile:1)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at com.google.android.gms.common.internal.BaseGmsClient$PostInitCallback.b(SourceFile:1)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at mtk.d(Unknown Source:24)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at mtl.handleMessage(SourceFile:37)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at android.os.Handler.dispatchMessage(Handler.java:106)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at android.os.Looper.loop(Looper.java:223)
02-04 12:39:55.787 28836 28836 E CAR.ANALYTICS:     at android.os.HandlerThread.run(HandlerThread.java:67)

It does this about 4-5 times

Then the actual crash is here

02-04 12:39:55.863 28766 28766 I GH.CarClientManager: CarClientToken connected.
02-04 12:39:55.874 28836 28866 I com.google.android.projection.gearhead:car: The ClassLoaderContext is a special shared library.
02-04 12:39:55.905 28836 28866 W DynamiteModule: IDynamite loader version < 2, falling back to getModuleVersion2
02-04 12:39:55.911 28836 28866 I DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:1
02-04 12:39:55.911 28836 28866 I DynamiteModule: Selected remote version of com.google.android.gms.googlecertificates, version >= 1
02-04 12:39:55.911 28836 28866 W DynamiteModule: Dynamite loader version < 2, falling back to createModuleContext
02-04 12:39:55.912 28836 28866 D GmsDynamiteLoaderImpl: createModuleContext for com.google.android.gms.googlecertificates at version 1
02-04 12:39:55.935 28836 28866 D SafeParcel: Unknown field id 4 in com.google.android.gms.common.internal.GoogleCertificatesQuery, skipping.
02-04 12:39:55.935 28836 28868 D SafeParcel: Unknown field id 4 in com.google.android.gms.common.internal.GoogleCertificatesQuery, skipping.
02-04 12:39:55.947 28766 28766 D AndroidRuntime: Shutting down VM
02-04 12:39:55.947 28797 28797 D AndroidRuntime: Shutting down VM
02-04 12:39:55.949 28766 28873 E BpDisplayEventConnection: Failed to transact (-9)
02-04 12:39:55.949 28766 28766 E AndroidRuntime: FATAL EXCEPTION: main
02-04 12:39:55.949 28766 28766 E AndroidRuntime: Process: com.google.android.projection.gearhead:vanagon, PID: 28766
02-04 12:39:55.949 28766 28766 E AndroidRuntime: java.lang.SecurityException: Wrong signature - go/gearhead-retail-device
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at android.os.Parcel.createException(Parcel.java:2357)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:2340)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:2282)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at bvp.transactAndReadException(SourceFile:3)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at com.google.android.gms.car.ICar$Stub$Proxy.bp(SourceFile:4)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at loc.call(Unknown Source:1)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at com.google.android.gms.car.internal.exception.CarServiceExceptionHandler.f(SourceFile:1)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at com.google.android.gms.car.api.impl.CarClientBase.ag(SourceFile:1)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at lcb.L(SourceFile:1)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at pjq.a(SourceFile:19)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at pkg.d(SourceFile:1)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at dgo.a(SourceFile:12)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at com.google.android.gms.car.api.impl.GearheadCarClientToken.h(SourceFile:4)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at lrx.run(Unknown Source:1)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:938)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:99)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:223)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:7660)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at com.android.internal.os.ExecInit.main(ExecInit.java:48)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
02-04 12:39:55.949 28766 28766 E AndroidRuntime:    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)
02-04 12:39:55.949 28797 28797 E AndroidRuntime: FATAL EXCEPTION: main
02-04 12:39:55.949 28797 28797 E AndroidRuntime: Process: com.google.android.projection.gearhead:shared, PID: 28797
02-04 12:39:55.949 28797 28797 E AndroidRuntime: java.lang.SecurityException: Wrong signature - go/gearhead-retail-device
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at android.os.Parcel.createException(Parcel.java:2357)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:2340)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:2282)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at bvp.transactAndReadExceptionReturnVoid(SourceFile:3)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at com.google.android.gms.car.ICar$Stub$Proxy.bq(SourceFile:4)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at lod.a(Unknown Source:1)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at com.google.android.gms.car.internal.exception.CarServiceExceptionHandler.g(SourceFile:1)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at com.google.android.gms.car.api.impl.CarClientBase.h(SourceFile:1)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at lcb.j(SourceFile:1)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at gfd.f(SourceFile:3)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at gfa.d(SourceFile:3)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at dgo.a(SourceFile:12)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at com.google.android.gms.car.api.impl.GearheadCarClientToken.h(SourceFile:4)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at lrx.run(Unknown Source:1)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:938)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:99)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:223)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:7660)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at com.android.internal.os.ExecInit.main(ExecInit.java:48)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
02-04 12:39:55.949 28797 28797 E AndroidRuntime:    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl: Failed to get process stats.
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at android.app.IActivityManager$Stub$Proxy.getRunningAppProcesses(IActivityManager.java:7076)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at android.app.ActivityManager.getRunningAppProcesses(ActivityManager.java:3671)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at ojl.b(SourceFile:2)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at szu.g(SourceFile:5)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at szu.f(SourceFile:1)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at olq.uncaughtException(SourceFile:15)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.951 28766 28766 W CrashMetricServiceImpl:    at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl: Failed to get process stats.
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at android.app.IActivityManager$Stub$Proxy.getRunningAppProcesses(IActivityManager.java:7076)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at android.app.ActivityManager.getRunningAppProcesses(ActivityManager.java:3671)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at ojl.b(SourceFile:2)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at szu.g(SourceFile:5)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at szu.f(SourceFile:1)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at olq.uncaughtException(SourceFile:15)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.952 28797 28797 W CrashMetricServiceImpl:    at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.961 28766 28766 W PrimesExecutors: Background task failed
02-04 12:39:55.961 28766 28766 W PrimesExecutors: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:4692)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserUncached(PackageManager.java:8179)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.access$100(PackageManager.java:96)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8191)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8188)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.PropertyInvalidatedCache.query(PropertyInvalidatedCache.java:438)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserCached(PackageManager.java:8206)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:201)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:178)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at olb.a(Unknown Source:17)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at okz.a(Unknown Source:18)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at oks.run(Unknown Source:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfn.c(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at seu.run(SourceFile:4)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfo.run(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sdz.execute(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfc.h(SourceFile:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at okt.c(SourceFile:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at olr.f(SourceFile:18)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at olq.uncaughtException(SourceFile:72)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.961 28797 28797 W PrimesExecutors: Background task failed
02-04 12:39:55.961 28797 28797 W PrimesExecutors: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:4692)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserUncached(PackageManager.java:8179)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.access$100(PackageManager.java:96)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8191)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8188)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.PropertyInvalidatedCache.query(PropertyInvalidatedCache.java:438)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserCached(PackageManager.java:8206)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:201)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:178)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at olb.a(Unknown Source:17)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at okz.a(Unknown Source:18)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at oks.run(Unknown Source:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfn.c(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at seu.run(SourceFile:4)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfo.run(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sdz.execute(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfc.h(SourceFile:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at okt.c(SourceFile:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at olr.f(SourceFile:18)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at olq.uncaughtException(SourceFile:72)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.961 28766 28766 W PrimesExecutors: Background task failed
02-04 12:39:55.961 28766 28766 W PrimesExecutors: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:4692)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserUncached(PackageManager.java:8179)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.access$100(PackageManager.java:96)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8191)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8188)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.PropertyInvalidatedCache.query(PropertyInvalidatedCache.java:438)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserCached(PackageManager.java:8206)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:201)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:178)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at olb.a(Unknown Source:17)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at okz.a(Unknown Source:18)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at oks.run(Unknown Source:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfn.c(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at seu.run(SourceFile:4)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfo.run(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sdz.execute(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfc.h(SourceFile:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at okt.c(SourceFile:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at olr.f(SourceFile:18)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at olq.uncaughtException(SourceFile:75)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.961 28797 28797 W PrimesExecutors: Background task failed
02-04 12:39:55.961 28797 28797 W PrimesExecutors: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:4692)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserUncached(PackageManager.java:8179)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.access$100(PackageManager.java:96)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8191)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8188)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.PropertyInvalidatedCache.query(PropertyInvalidatedCache.java:438)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserCached(PackageManager.java:8206)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:201)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:178)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at olb.a(Unknown Source:17)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at okz.a(Unknown Source:18)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at oks.run(Unknown Source:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfn.c(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at seu.run(SourceFile:4)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfo.run(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sdz.execute(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfc.h(SourceFile:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at okt.c(SourceFile:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at olr.f(SourceFile:18)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at olq.uncaughtException(SourceFile:78)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.961 28766 28766 W PrimesExecutors: Background task failed
02-04 12:39:55.961 28766 28766 W PrimesExecutors: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:4692)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserUncached(PackageManager.java:8179)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.access$100(PackageManager.java:96)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8191)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8188)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.PropertyInvalidatedCache.query(PropertyInvalidatedCache.java:438)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserCached(PackageManager.java:8206)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:201)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:178)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at olb.a(Unknown Source:17)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at okz.a(Unknown Source:18)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at oks.run(Unknown Source:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfn.c(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at seu.run(SourceFile:4)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfo.run(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sdz.execute(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at sfc.h(SourceFile:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at okt.c(SourceFile:2)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at olq.uncaughtException(SourceFile:85)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.961 28766 28766 W PrimesExecutors:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.961 28797 28797 W PrimesExecutors: Background task failed
02-04 12:39:55.961 28797 28797 W PrimesExecutors: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:4692)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserUncached(PackageManager.java:8179)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.access$100(PackageManager.java:96)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8191)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager$2.recompute(PackageManager.java:8188)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.PropertyInvalidatedCache.query(PropertyInvalidatedCache.java:438)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.content.pm.PackageManager.getPackageInfoAsUserCached(PackageManager.java:8206)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:201)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:178)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at olb.a(Unknown Source:17)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at okz.a(Unknown Source:18)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at uug.a(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at oks.run(Unknown Source:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfn.c(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at seu.run(SourceFile:4)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfo.run(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sdz.execute(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at sfc.h(SourceFile:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at okt.c(SourceFile:2)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at olq.uncaughtException(SourceFile:85)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.961 28797 28797 W PrimesExecutors:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler: Version code: 60615334
02-04 12:39:55.964 28797 28797 E GH.CrashHandler: Version code: 60615334
02-04 12:39:55.964 28766 28766 E GH.CrashHandler: GH FATAL EXCEPTION: main
02-04 12:39:55.964 28766 28766 E GH.CrashHandler: Process: com.google.android.projection.gearhead:vanagon
02-04 12:39:55.964 28766 28766 E GH.CrashHandler: PID: 28766
02-04 12:39:55.964 28766 28766 E GH.CrashHandler: 
02-04 12:39:55.964 28766 28766 E GH.CrashHandler: java.lang.SecurityException: Wrong signature - go/gearhead-retail-device
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at android.os.Parcel.createException(Parcel.java:2357)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at android.os.Parcel.readException(Parcel.java:2340)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at android.os.Parcel.readException(Parcel.java:2282)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at bvp.transactAndReadException(SourceFile:3)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at com.google.android.gms.car.ICar$Stub$Proxy.bp(SourceFile:4)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at loc.call(Unknown Source:1)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at com.google.android.gms.car.internal.exception.CarServiceExceptionHandler.f(SourceFile:1)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at com.google.android.gms.car.api.impl.CarClientBase.ag(SourceFile:1)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at lcb.L(SourceFile:1)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at pjq.a(SourceFile:19)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at pkg.d(SourceFile:1)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at dgo.a(SourceFile:12)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at com.google.android.gms.car.api.impl.GearheadCarClientToken.h(SourceFile:4)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at lrx.run(Unknown Source:1)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at android.os.Handler.handleCallback(Handler.java:938)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at android.os.Handler.dispatchMessage(Handler.java:99)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at android.os.Looper.loop(Looper.java:223)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at android.app.ActivityThread.main(ActivityThread.java:7660)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at java.lang.reflect.Method.invoke(Native Method)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at com.android.internal.os.ExecInit.main(ExecInit.java:48)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
02-04 12:39:55.964 28766 28766 E GH.CrashHandler:   at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler: GH FATAL EXCEPTION: main
02-04 12:39:55.964 28797 28797 E GH.CrashHandler: Process: com.google.android.projection.gearhead:shared
02-04 12:39:55.964 28797 28797 E GH.CrashHandler: PID: 28797
02-04 12:39:55.964 28797 28797 E GH.CrashHandler: 
02-04 12:39:55.964 28797 28797 E GH.CrashHandler: java.lang.SecurityException: Wrong signature - go/gearhead-retail-device
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at android.os.Parcel.createException(Parcel.java:2357)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at android.os.Parcel.readException(Parcel.java:2340)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at android.os.Parcel.readException(Parcel.java:2282)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at bvp.transactAndReadExceptionReturnVoid(SourceFile:3)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at com.google.android.gms.car.ICar$Stub$Proxy.bq(SourceFile:4)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at lod.a(Unknown Source:1)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at com.google.android.gms.car.internal.exception.CarServiceExceptionHandler.g(SourceFile:1)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at com.google.android.gms.car.api.impl.CarClientBase.h(SourceFile:1)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at lcb.j(SourceFile:1)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at gfd.f(SourceFile:3)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at gfa.d(SourceFile:3)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at dgo.a(SourceFile:12)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at com.google.android.gms.car.api.impl.GearheadCarClientToken.h(SourceFile:4)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at lrx.run(Unknown Source:1)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at android.os.Handler.handleCallback(Handler.java:938)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at android.os.Handler.dispatchMessage(Handler.java:99)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at android.os.Looper.loop(Looper.java:223)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at android.app.ActivityThread.main(ActivityThread.java:7660)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at java.lang.reflect.Method.invoke(Native Method)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at com.android.internal.os.ExecInit.main(ExecInit.java:48)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
02-04 12:39:55.964 28797 28797 E GH.CrashHandler:   at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)
02-04 12:39:55.964 28797 28797 W GH.CrashHandler: [DEFAULT] Dumping the last 25 logs.
02-04 12:39:55.965 28766 28766 W GH.CrashHandler: [DEFAULT] Dumping the last 36 logs.
02-04 12:39:55.991 28766 28766 W GH.CrashHandler: 02-04 12:39:55.155 D GH.PermissionChecker : checking permission for package: com.google.android.projection.gearhead
02-04 12:39:55.991 28797 28797 W GH.CrashHandler: 02-04 12:39:55.159 D GH.PermissionChecker : checking permission for package: com.google.android.projection.gearhead
02-04 12:39:55.991 28797 28797 W GH.CrashHandler: 02-04 12:39:55.159 D GH.PermissionChecker : initAppPermissions: 30
02-04 12:39:55.991 28766 28766 W GH.CrashHandler: 02-04 12:39:55.155 D GH.PermissionChecker : initAppPermissions: 30
02-04 12:39:55.991 28797 28797 W GH.CrashHandler: 02-04 12:39:55.162 D GH.AppInstallerUtil : Package com.google.android.projection.gearhead: installed ver=60615334 minimum required ver=53501600
02-04 12:39:55.991 28766 28766 W GH.CrashHandler: 02-04 12:39:55.160 D GH.AppInstallerUtil : Package com.google.android.projection.gearhead: installed ver=60615334 minimum required ver=53501600
02-04 12:39:55.991 28797 28797 W GH.CrashHandler: 02-04 12:39:55.162 D GH.AppInstallerUtil : Package com.google.android.googlequicksearchbox not found.
02-04 12:39:55.991 28766 28766 W GH.CrashHandler: 02-04 12:39:55.160 D GH.AppInstallerUtil : Package com.google.android.googlequicksearchbox not found.
02-04 12:39:55.991 28797 28797 W GH.CrashHandler: 02-04 12:39:55.163 D GH.AppInstallerUtil : Package com.google.android.apps.maps: installed ver=1059102040 minimum required ver=1031000000
02-04 12:39:55.991 28766 28766 W GH.CrashHandler: 02-04 12:39:55.161 D GH.AppInstallerUtil : Package com.google.android.apps.maps: installed ver=1059102040 minimum required ver=1031000000
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.163 D GH.AppInstallerUtil : Package com.google.android.tts not found.
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.161 D GH.AppInstallerUtil : Package com.google.android.tts not found.
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.163 D GH.CommonServiceLocator : Injecting real cloud card manager
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.169 D GH.CarClientManager : registered listener dgx@1fc5211
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.204 I GH.CallAdapterFactory : creating call adapter instance
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.172 D GH.CarClientManager : registered listener gfa@3964f76
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.210 D GH.SharedServiceConnect : Shared service started. [oomAdjSimplification:false, foregroundBound:true, bound:true]
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.189 D GH.CarClientManager : registered listener pkg@e79f977
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.210 I GH.CallAdapterFactory : useCompat().
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.210 D GH.CarClientManager : registered listener klm@cfba9e4
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.210 I GH.CallAdapterFactory : useCompat=false, Device running M or later, assuming a healthy telecom stack.
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.210 D GH.CarClientManager : start
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.222 I GH.UserSettings : Setting Bluetooth receiver state: 2
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.232 I CAR.TOKEN : Connecting com.google.android.gms.car.api.impl.GearheadCarClientToken@d9e57d8 using class com.google.android.gms.car.api.impl.CarClientImpl@22416918/class com.google.android.gms.car.api.impl.GearheadCarClientConnector@71264049 (cx attempt 1)
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.228 D GH.CarClientManager : registered listener dgx@91d3ade
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.232 I GH.SharedService : Shared Service created
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.300 D GH.CarClientManager : registered listener pkg@f15e4bf
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.236 E CAR.ANALYTICS : CarTelemetryCheckboxFeature exception
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.336 D GH.Morris : Error querying M status
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.377 D GH.SharedNotifications : Current notification listener: com.google.android.gearhead.notifications.SharedNotificationListenerManager$ListenerService
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.363 D GH.VnLaunchPadActivity : Turning screen on.
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.801 I GH.GhCarClientCtor : Bound to startup service, got Car Service: com.google.android.gms.car.ICar$Stub$Proxy@57c151c
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.376 D GH.SharedServiceConnect : onServiceConnected(ComponentName:ComponentInfo{com.google.android.projection.gearhead/com.google.android.gearhead.service.SharedService}, service:android.os.BinderProxy@2bec78c)
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.801 I GH.GhCarClientCtor : Bound to startup service, got Car Service: com.google.android.gms.car.ICar$Stub$Proxy@3ebb525
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.377 D GH.Telemetry : Logged 1 events.
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.802 I CAR.TOKEN : Successfully connected lry@5eba4ab using class com.google.android.gms.car.api.impl.CarClientImpl@22416918/class com.google.android.gms.car.api.impl.GearheadCarClientConnector@71264049 (cx attempt 1)
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.504 E CAR.ANALYTICS : CarTelemetryCheckboxFeature exception
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.802 D CAR.TOKEN : Fell back to GH due to: NO_FALLBACK_GH_CAR_USED
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.614 D GH.VnLaunchPadActivity : Ensuring preflight checks pass.
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.804 W CAR.TOKEN : Not allowing logging client connection event
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.615 D GH.VnLaunchPadActivity : Not connected to car service yet.
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.804 I GH.CarClientManager : CarClientToken connected.
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.615 D GH.VnLaunchPadActivity : Trying to connect
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.804 D GH.CarClientManager : notifyListenersOnConnected entered
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.616 I GH.LifetimeManager : connectToCarService
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.804 D GH.CarClientManager : calling onConnected on dgx@1fc5211
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.616 D GH.CarClientManager : registered listener eir@e4fced5
02-04 12:39:55.992 28797 28797 W GH.CrashHandler: 02-04 12:39:55.804 D GH.CarClientManager : calling onConnected on gfa@3964f76
02-04 12:39:55.992 28766 28766 W GH.CrashHandler: 02-04 12:39:55.616 D GH.CarClientManager : start
02-04 12:39:55.993 28797 28797 W GH.CrashHandler: 02-04 12:39:55.964 E GH.CrashHandler : Version code: 60615334
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.623 I CAR.TOKEN : Connecting com.google.android.gms.car.api.impl.GearheadCarClientToken@2ecf871 using class com.google.android.gms.car.api.impl.CarClientImpl@235140823/class com.google.android.gms.car.api.impl.GearheadCarClientConnector@184444502 (cx attempt 1)
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.860 I GH.GhCarClientCtor : Bound to startup service, got Car Service: com.google.android.gms.car.ICar$Stub$Proxy@2a144a9
02-04 12:39:55.993 28797 28797 W GH.CrashHandler: [ASSISTANT] Dumping the last 0 logs.
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.860 I GH.GhCarClientCtor : Bound to startup service, got Car Service: com.google.android.gms.car.ICar$Stub$Proxy@54bea2e
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.861 I CAR.TOKEN : Successfully connected lry@7facf5c using class com.google.android.gms.car.api.impl.CarClientImpl@235140823/class com.google.android.gms.car.api.impl.GearheadCarClientConnector@184444502 (cx attempt 1)
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.861 D CAR.TOKEN : Fell back to GH due to: NO_FALLBACK_GH_CAR_USED
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.863 W CAR.TOKEN : Not allowing logging client connection event
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.863 I GH.CarClientManager : CarClientToken connected.
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.863 D GH.CarClientManager : notifyListenersOnConnected entered
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.863 D GH.CarClientManager : calling onConnected on dgx@91d3ade
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.863 D GH.CarClientManager : calling onConnected on pkg@f15e4bf
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: 02-04 12:39:55.964 E GH.CrashHandler : Version code: 60615334
02-04 12:39:55.993 28766 28766 W GH.CrashHandler: [ASSISTANT] Dumping the last 0 logs.
02-04 12:39:55.994 28766 28766 E GH.CrashHandler: Restore failed and we are bailing out. Ignore crashes here
02-04 12:39:55.994 28766 28766 E GH.CrashHandler: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.app.IActivityManager$Stub$Proxy.refContentProvider(IActivityManager.java:5772)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.app.ActivityThread.incProviderRefLocked(ActivityThread.java:6879)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.app.ActivityThread.acquireExistingProvider(ActivityThread.java:6943)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.app.ActivityThread.acquireProvider(ActivityThread.java:6802)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:2916)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.content.ContentResolver.acquireProvider(ContentResolver.java:2465)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.content.ContentResolver.call(ContentResolver.java:2400)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at android.content.ContentResolver.call(ContentResolver.java:2385)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at dmb.contains(SourceFile:4)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at com.google.android.projection.gearhead.GhCrashHandler.d(SourceFile:4)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at com.google.android.projection.gearhead.GhCrashHandler.uncaughtException(SourceFile:22)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at olq.uncaughtException(SourceFile:87)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:55.994 28766 28766 E GH.CrashHandler:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:55.994 28797 28797 E GH.CarModeSettings: Crash before we setup. Silently quit
02-04 12:39:56.004 28766 28766 I GH.CrashReporter: Reporting crash a217baaf-4d3b-47e3-993c-61ef30896921
02-04 12:39:56.004 28766 28766 E GH.CrashHandler: Creating a crash report failed
02-04 12:39:56.004 28766 28766 E GH.CrashHandler: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at android.app.IActivityManager$Stub$Proxy.broadcastIntentWithFeature(IActivityManager.java:5553)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at android.app.ContextImpl.sendBroadcast(ContextImpl.java:1115)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:468)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at dzb.a(SourceFile:15)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at com.google.android.projection.gearhead.GhCrashHandler.uncaughtException(SourceFile:29)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at olq.uncaughtException(SourceFile:87)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:56.004 28766 28766 E GH.CrashHandler:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:56.008 28766 28766 I GH.CrashHandler: Finished processing crash for com.google.android.projection.gearhead:vanagon
02-04 12:39:56.008 28766 28766 I Process : Sending signal. PID: 28766 SIG: 9
02-04 12:39:56.010 28797 28797 D CompatibilityChangeReporter: Compat change id reported: 119147584; UID 10160; state: ENABLED
02-04 12:39:56.010 28797 28797 E GH.CrashHandler: Restore failed and we are bailing out. Ignore crashes here
02-04 12:39:56.010 28797 28797 E GH.CrashHandler: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.IContentService$Stub$Proxy.notifyChange(IContentService.java:1256)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentResolver.notifyChange(ContentResolver.java:2828)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentResolver.notifyChange(ContentResolver.java:2817)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentResolver.notifyChange(ContentResolver.java:2736)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentResolver.notifyChange(ContentResolver.java:2706)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentResolver.notifyChange(ContentResolver.java:2672)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at com.google.android.apps.auto.components.config.preferences.contentprovider.SharedPreferencesProvider.onSharedPreferenceChanged(SourceFile:5)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.app.SharedPreferencesImpl$EditorImpl.notifyListeners(SharedPreferencesImpl.java:629)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.app.SharedPreferencesImpl$EditorImpl.commit(SharedPreferencesImpl.java:617)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at com.google.android.apps.auto.components.config.preferences.contentprovider.SharedPreferencesProvider.call(SourceFile:42)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentProvider.call(ContentProvider.java:2448)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentProvider$Transport.call(ContentProvider.java:517)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentResolver.call(ContentResolver.java:2405)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at android.content.ContentResolver.call(ContentResolver.java:2385)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at dly.commit(SourceFile:2)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at com.google.android.projection.gearhead.GhCrashHandler.d(SourceFile:7)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at com.google.android.projection.gearhead.GhCrashHandler.uncaughtException(SourceFile:22)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at olq.uncaughtException(SourceFile:87)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:56.010 28797 28797 E GH.CrashHandler:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:56.015 28797 28797 I GH.CrashReporter: Reporting crash 9a528fd8-451e-40f9-86d8-01a69da2062d
02-04 12:39:56.016 28797 28797 E GH.CrashHandler: Creating a crash report failed
02-04 12:39:56.016 28797 28797 E GH.CrashHandler: java.lang.RuntimeException: Bad file descriptor
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at android.app.IActivityManager$Stub$Proxy.broadcastIntentWithFeature(IActivityManager.java:5553)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at android.app.ContextImpl.sendBroadcast(ContextImpl.java:1115)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:468)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at dzb.a(SourceFile:15)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at com.google.android.projection.gearhead.GhCrashHandler.uncaughtException(SourceFile:29)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at olq.uncaughtException(SourceFile:87)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at dhh.uncaughtException(SourceFile:9)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at pkj.uncaughtException(SourceFile:1)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
02-04 12:39:56.016 28797 28797 E GH.CrashHandler:   at java.lang.Thread.dispatchUncaughtException(Thread.java:2203)
02-04 12:39:56.023 28797 28797 I GH.CrashHandler: Finished processing crash for com.google.android.projection.gearhead:shared
02-04 12:39:56.023 28797 28797 I Process : Sending signal. PID: 28797 SIG: 9
02-04 12:39:56.043  1483  1884 W InputDispatcher: channel '23de282 com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
02-04 12:39:56.043  1483  1884 E InputDispatcher: channel '23de282 com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
02-04 12:39:56.045  1483 14166 I ActivityManager: Process com.google.android.projection.gearhead:vanagon (pid 28766) has died: fg  TOP 
02-04 12:39:56.046  1483 16490 I WindowManager: WIN DEATH: Window{23de282 u0 com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity}
02-04 12:39:56.046  1483 16490 W InputDispatcher: Attempted to unregister already unregistered input channel '23de282 com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity (server)'
02-04 12:39:56.052   898   898 I Zygote  : Process 28797 exited due to signal 9 (Killed)
02-04 12:39:56.052   898 28837 I Zygote  : Process 28766 exited due to signal 9 (Killed)
02-04 12:39:56.053  1483 14166 W ActivityManager: Exception when unbinding service com.google.android.projection.gearhead/com.google.android.gearhead.service.SharedService
02-04 12:39:56.053  1483 14166 W ActivityManager: android.os.DeadObjectException
02-04 12:39:56.053  1483 14166 W ActivityManager:   at android.os.BinderProxy.transactNative(Native Method)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at android.os.BinderProxy.transact(BinderProxy.java:550)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at android.app.IApplicationThread$Stub$Proxy.scheduleUnbindService(IApplicationThread.java:1646)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at com.android.server.am.ActiveServices.removeConnectionLocked(ActiveServices.java:3505)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at com.android.server.am.ActiveServices.killServicesLocked(ActiveServices.java:3907)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:14751)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3756)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:3910)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:1601)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at android.os.IBinder$DeathRecipient.binderDied(IBinder.java:305)
02-04 12:39:56.053  1483 14166 W ActivityManager:   at android.os.BinderProxy.sendDeathNotice(BinderProxy.java:664)
02-04 12:39:56.054   630   630 W lowmemorykiller: Failed to open /proc/28797/oom_score_adj; errno=2: process 28797 might have been killed
02-04 12:39:56.056  1483 14166 W ActivityTaskManager: Force removing ActivityRecord{7e9d757 u0 com.google.android.projection.gearhead/com.google.android.gearhead.vanagon.VnLaunchPadActivity t5295}: app died, no saved state
02-04 12:39:56.064  2394  5591 D KeyguardViewMediator: setOccluded false
02-04 12:39:56.065  2394  2394 D KeyguardViewMediator: adjustStatusBarLocked: mShowing=false mOccluded=false isSecure=true force=false --> flags=0x0
02-04 12:39:56.077  4108  4108 D Launcher.Utilities: onLauncherStart: 0
02-04 12:39:56.080   630   630 W lowmemorykiller: Failed to open /proc/28797/oom_score_adj; errno=2: process 28797 might have been killed
02-04 12:39:56.084  1483  6327 I ActivityManager: Process com.google.android.projection.gearhead:shared (pid 28797) has died: cch CACC
02-04 12:39:56.085 28836 28836 I GH.CAR  : onDestroy
02-04 12:39:56.085 28836 28836 I GH.CAR  : tearDown()
02-04 12:39:56.089  1483  1534 W ActivityManager: setHasOverlayUi called on unknown pid: 28766
02-04 12:39:56.090  1483  1542 I libprocessgroup: Successfully killed process cgroup uid 10160 pid 28766 in 44ms
02-04 12:39:56.091  1483  1542 I libprocessgroup: Successfully killed process cgroup uid 10160 pid 28797 in 0ms
02-04 12:39:56.092  1483 14193 W ActivityManager: Unable to start service Intent { act=com.android.launcher3.WINDOW_OVERLAY dat=app://ch.deletescape.lawnchair.plah:10125?v=7&cv=9 pkg=com.google.android.googlequicksearchbox } U=0: not found
02-04 12:39:56.095 28836 28836 I GH.CarService: tearDown()
02-04 12:39:56.095 28836 28836 I GH.DelegateMngCarSvc: tearDown()
02-04 12:39:56.097 28836 28836 E ActivityThread: Service com.google.android.apps.auto.carservice.service.impl.GearheadCarStartupService has leaked ServiceConnection coi@b1daeee that was originally bound here
02-04 12:39:56.097 28836 28836 E ActivityThread: android.app.ServiceConnectionLeaked: Service com.google.android.apps.auto.carservice.service.impl.GearheadCarStartupService has leaked ServiceConnection coi@b1daeee that was originally bound here
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1835)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.app.LoadedApk.getServiceDispatcherCommon(LoadedApk.java:1707)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1686)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1819)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.app.ContextImpl.bindService(ContextImpl.java:1749)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.content.ContextWrapper.bindService(ContextWrapper.java:756)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at coj.run(SourceFile:1)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.os.Handler.handleCallback(Handler.java:938)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.os.Handler.dispatchMessage(Handler.java:99)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.os.Looper.loop(Looper.java:223)
02-04 12:39:56.097 28836 28836 E ActivityThread:    at android.os.HandlerThread.run(HandlerThread.java:67)
02-04 12:39:56.104 28836 28836 I CAR.SERVICE: Skip, no clients bound.
02-04 12:39:56.114 28836 28881 I GH.DelegateICarSupplier: Calling release callback on delegate com.google.android.gms.car.DelegatingCarServiceBinder@3b62a4c
02-04 12:39:56.114 28836 28881 I GH.DelegateICarSupplier: Releasing delegate ICar.
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor: Exception unbinding service connection.
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor: java.lang.IllegalArgumentException: Service not registered: coi@b1daeee
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1781)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at android.app.ContextImpl.unbindService(ContextImpl.java:1874)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at android.content.ContextWrapper.unbindService(ContextWrapper.java:792)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at cok.a(SourceFile:1)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at cof.a(Unknown Source:1)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at sdg.e(Unknown Source:2)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at sdh.run(SourceFile:9)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at sdz.execute(SourceFile:1)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at sdd.r(SourceFile:1)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at sdd.a(SourceFile:6)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at sei.a(SourceFile:1)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at sdh.g(SourceFile:3)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at coe.a(Unknown Source:4)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at cow.b(SourceFile:2)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at cov.a(Unknown Source:1)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at qye.a(SourceFile:1)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at cor.d(Unknown Source:104)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at com.a(Unknown Source:4)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at qye.a(SourceFile:1)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at cop.b(Unknown Source:36)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at sen.run(SourceFile:7)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
02-04 12:39:56.157 28836 28881 E GH.CarChiSvcCtor:  at java.lang.Thread.run(Thread.java:923)
02-04 12:39:56.157 28836 28881 W GH.DelegateICarSupplier: ICar release task succeeded but did not release ICar.

Looking at these errors it looks like

  1. java.lang.SecurityException: Wrong signature - go/gearhead-retail-device a certificate check is failing somewhere
  2. Bound to startup service, got Car Service: com.google.android.gms.car.ICar$Stub$Proxy@2a144a9 a service is missing from "GMS" (microG)
dylangerdaly commented 3 years ago

Patching the GoogleSignatureVerifier.a(arg5).b(v3) function results in Android Auto starting up without crashing aa

Next up is to get away with not having to have these apps

After install the requested apps, it works

aa2

I will have to wait til my car arrives to test plugging it into an Android Auto car.

FYI this device is running GrapheneOS, installing the Google app defeats the purpose of such OS, as a work around I've denied the Google app access to the internet.

dylangerdaly commented 3 years ago

It should be possible to fix this without patching the apk

66 W DynamiteModule: IDynamite loader version < 2, falling back to getModuleVersion2
02-04 12:39:55.911 28836 28866 I DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:1
02-04 12:39:55.911 28836 28866 I DynamiteModule: Selected remote version of com.google.android.gms.googlecertificates, version >= 1
02-04 12:39:55.911 28836 28866 W DynamiteModule: Dynamite loader version < 2, falling back to createModuleContext
02-04 12:39:55.912 28836 28866 D GmsDynamiteLoaderImpl: createModuleContext for com.google.android.gms.googlecertificates at version 1
02-04 12:39:55.935 28836 28866 D SafeParcel: Unknown field id 4 in com.google.android.gms.common.internal.GoogleCertificatesQuery, skipping.
02-04 12:39:55.935 28836 28868 D SafeParcel: Unknown field id 4 in com.google.android.gms.common.internal.GoogleCertificatesQuery, skipping.

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

woolmonkey commented 3 years ago

Patching the GoogleSignatureVerifier.a(arg5).b(v3) function results in Android Auto starting up without crashing aa

Next up is to get away with not having to have these apps

After install the requested apps, it works

aa2

I will have to wait til my car arrives to test plugging it into an Android Auto car.

FYI this device is running GrapheneOS, installing the Google app defeats the purpose of such OS, as a work around I've denied the Google app access to the internet.

So did this work with a head unit?

dylangerdaly commented 3 years ago

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

ilikenwf commented 3 years ago

@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

dylangerdaly commented 3 years ago

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.

ilikenwf commented 3 years ago

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.

ilikenwf commented 3 years ago

Someone also has written an interesting app to proxy android auto from one device to another, to facilitate adding wireless functionality to unsupported vehicles:

https://github.com/borconi/AAGateWay

ilikenwf commented 3 years ago

Oh, even better:

https://github.com/tomasz-grobelny/AACS

dylangerdaly commented 3 years ago

Quick little update

I've managed to get Android Auto working on a GrapheneOS device with microG PXL_20210216_002412925 PXL_20210216_002513872

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 :eyes:

domhaas commented 3 years ago

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 eyes

Great job! Is everything working so far?

dylangerdaly commented 3 years ago

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

    private final boolean y(String arg7, ApplicationType arg8) throws PackageManager.NameNotFoundException {
        if(arg8 == ApplicationType.a) {
            cgw.a.k().aa(0x402).t("Skip meta-data checks; OEM application type [%s]", arg7);
            return true;
        }

It'll show apps that don't typically support AA, like SoundCloud etc

woolmonkey commented 3 years ago

This is awesome the one reason I still used GAPPS. Looking forward to when it gets released.

ArchangeGabriel commented 3 years ago

@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?

dylangerdaly commented 3 years ago

I've opened a PR --> https://github.com/microg/GmsCore/pull/1396

This fixes Auto from crashing immediately on startup, just needed to add it to the Google Packages list.

Were you able to run it without installing the “Google App” and such? Or is that still with those apps installed?

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.

woolmonkey commented 3 years ago

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.

woolmonkey commented 3 years ago

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.

joshaspinall commented 3 years ago

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 you need testing, please let me know!

Wieczorkiewicz commented 3 years ago

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?

ilikenwf commented 3 years ago

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

woolmonkey commented 3 years ago

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.

ilikenwf commented 3 years ago

Does that mean we could patch MicroG further to allow spoofing for maps and the google app with fake apks?

ilikenwf commented 3 years ago

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

woolmonkey commented 3 years ago

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. Also it has worked with 2 head unit this way fine.

dylangerdaly commented 3 years ago

I'll look into this, the Google app is huge and I'd rather not have it installed, even tho all permissions have been removed (including Network) I don't like the fact it's on my phone

It's likely possible to still have it work without any of the "required" apps

-------- Original Message -------- On 12 Mar 2021, 8:58 am, atka wrote:

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

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

dylangerdaly commented 3 years ago

Yeah so it's possible to just use a stub for the Google App, I forked Gcam-Services-Provider and literally just changed the package name & version to match the Google App

https://github.com/dylangerdaly/Gcam-Services-Provider/commit/793b617090232abead0e41c1dc8423295901c38a

Doing this results in Android Auto thinking the Google App is installed :+1:

No cert spoofing required, from what I can tell it only verifies the sig if it's about to call into function within the remote app.

ArchangeGabriel commented 3 years ago

Regarding the availability of other navigation apps, Google recently started to open the API for this to happen, and there is some discussion for OSM at https://github.com/osmandapp/OsmAnd/issues/3391.

woolmonkey commented 3 years ago

Nice just tried it and it works fine.

Wieczorkiewicz commented 3 years ago

Nice just tried it and it works fine.

Can I ask how did you test it and where did you download it? The latest release on the website is dates at March 4th thus it probably is not there yet. But based on the comments I think the project is almost ripe for a release. Definitely want to try it out.

Edit: I figured that there is a beta version but still not sure if it has this feature included.

woolmonkey commented 3 years ago

No just downloaded the code made the change for android auto and compiled. The Google place holder app just downloaded dylangerdaly changes to gcam and compiled and ran.

woolmonkey commented 3 years ago

This might be interesting the database exists with microg but is basically blank as far as I can tell. Might be a flag to bypass app checks or something. Or I could be completely off base but it’s an idea. https://github.com/shmykelsa/AA-Tweaker

dylangerdaly commented 3 years ago

This looks super interesting, indeed microG should just be able to hook these calls and return whatever.

I wonder what other apps are looking to GMS for configuration.

It could be possible to just pop AA-Tweaker into microG.

-------- Original Message -------- On 20 Mar 2021, 11:11 pm, atka wrote:

This might be interesting the database exists with microg but is basically blank as far as I can tell. Might be a flag to bypass app checks or something. Or I could be completely off base but it’s an idea. https://github.com/shmykelsa/AA-Tweaker

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

dylangerdaly commented 3 years ago

https://github.com/shmykelsa/AA-Tweaker/blob/master/app/src/main/java/sksa/aa/tweaker/MainActivity.java#L2012

For "Custom Android Auto Apps" it's setting the flag should_bypass_validation, all of these flags are specific to AA

Here's a list of all flags ("var_name", "default_value")

Lol look at that blacklist, wonder what these apps did wrong

        otj v0 = new otj(osu.a("com.google.android.gms.car")).b();
        uzr.a = v0.n("app_black_list", "100|com.my.mail,ru.mail.mailapp,it.italiaonline.mail,com.riis.emailnotifier,com.fabbro.voiceinfos.trial,at.krone:43,com.thekirankumar.youtubeauto,com.google.youtube.auto,com.carstream.auto,com.google.android.gms.youtube,com.softartdev.podtube:43,com.svyatoslavbabyak.radio:27,media.video.player:10000009,app.fixnowitdeveloper.podflix:3000395,com.masterapppro.podcast:13030005,com.unify.unifyoffice:620324003,it.nems.loquacemobile:56,net.dihost.radion:76,com.soundtima:999293201,com.raksyazilim.radyomadyo:31,com.playerTVPRO:10000009,co.uk.leevalleyboats.lvbc:3,com.hawk1hunterapp.app:2,com.kanpekiapps.geonotes:34,mx.com.clupp.hdi:15,by.antonbabich.mary:10100,com.angrygoat.android.squeezectrl:142180002,com.attofficeathand.android:1120324002,com.avaya.cloudoffice:620332003,com.bt.cloudphone:1120321003,com.scdi.android.hutoolbox:7,com.musicapp.tomadownload:900007,com.musicapp.tomahawk2:900001,com.mymusic.audioplayer.music.musicplayer:3,com.stayfprod.awesomeradio.free:47,com.thehouseofcode.radio_nowy_swiat:14,com.thesquaregroot.whitenoise:2,com.tourpatronNew.app:6,fm.trebble:10151,fm.trebble:12,ganador.com.alexgurdo:2,ganador.com.badbinny:2,com.mr.ludiop:13030005,com.bestlaysoft.boatmusic:1,autoandshare.headvr:13010600,chat.ahtapot.app:20091530,co.nobility.chatwave:11,com.bubblesnet.talk:5940,com.dna.circle:120,com.ruakhradio:4,com.scdi.st3p_up:15,com.securesms.mindme:6,com.sunokitaab.sunokitaab:12,com.apna.music:1,com.trioangle.passup:21,cz.uhk.dip.mmsparams.android:5295,app.alhokha.fm:1,app.aloka.fm:1,audio.breaker:60,com.alberichtech.allaudio:3,com.applej4ck.siamdio:2038,com.erank.koletsionpods:1,com.fourbysixproduction.riwayat:5,com.gkmicro.media.ncpodcasts:2,com.jacapps.kgbi:10003,com.jacobsmedia.knwi:40000,com.judahmusic.stuthi:196,com.kkbox.kids:1559,com.maruthiiptv.manaradio.app:14,com.mobilesoftwaredesign.oldtimeradio:6012,com.olehka.kuzmaskryabin:7,com.olehka.sektorgaza:7,com.perfinica.RockRadio:2,com.perfinica.christmasradio:4,net.williamott.simplepodcastplayer:9,nhacphatgiao.mp3phatgiao.com:1,fr.nkirchho.phonographe:1,com.storiyoh.android:103,com.qdance.radio:1073,com.tridenia.carapp:4,de.radio7.app:15,com.kmedia.videoplayer:29,com.augustusiam.androidx.mziki:6,com.vnnguyen.muzik:5,com.kab.channel66:70,com.kab.channel66:67,com.olehka.korolishut:7");
        uzr.b = v0.n("app_white_list", "");
        uzr.c = v0.n("car_audio_single_channel_capturing_list", "KIA,,1.0,,,avn_40:HYUNDAI,,1.0,,,avn_40:HYUNDAI,daudio,1.0:KIA,daudio,1.0:SYNC,,1.0");
        uzr.d = v0.n("car_connect_broadcast_whitelist", "");
        uzr.e = v0.k("car_pm_low_power_battery_drop_entry", 10L);
        uzr.f = v0.k("car_pm_low_power_battery_level_entry", 15L);
        uzr.g = v0.k("car_pm_low_power_battery_level_exit", 20L);
        uzr.h = v0.k("car_pm_low_power_temperature_entry", 45L);
        uzr.i = v0.k("car_pm_low_power_temperature_exit", 40L);
        uzr.j = v0.n("car_pwm_disable_dynamic_frame_rate_list", "CHEVROLET,myLink,1.0:Volkswagen,Car,1.0,,TechniSat,MIB Standard2 PQ Nav:Volkswagen,Car,1.0,,TechniSat,MIB Standard2 PQ Plus:SEAT,Car,1.0,,TechniSat,MIB Standard2 PQ Nav:SEAT,Car,1.0,,TechniSat,MIB Standard2 PQ Plus:SKODA,Car,1.0,,TechniSat,MIB Standard2 PQ Nav:SKODA,Car,1.0,,TechniSat,MIB Standard2 PQ Plus");
        uzr.k = v0.k("car_pwm_frame_rate_low_idle", 30L);
        uzr.l = v0.k("car_pwm_frame_rate_low_interactive", 30L);
        uzr.m = v0.k("car_pwm_frame_rate_normal_idle", 30L);
        uzr.n = v0.m("car_pwm_non_square_scale_limit", 1.35);
        uzr.o = v0.m("car_pwm_non_square_scale_min_limit", 1.0125);
        uzr.p = v0.n("car_sm_lock_screen_sounds_enabled", "");
        uzr.q = v0.n("car_sm_screen_off_timeout_ms", "");
        uzr.r = v0.n("car_sm_sound_effects_enabled", "0");
        uzr.s = v0.n("diagnostics_user_package_whitelist", "com.google.android.projection.gearhead");
        uzr.t = v0.l("double_tap_disable_car_mode_enabled", true);
        v0.l("driving_mode_force_copier_copy", false);
        uzr.u = v0.l("enable_focus_finder_in_rotary", false);
        uzr.v = v0.n("enable_interaction_log_command_list", "0,2,5,7,9,11,13,20,22,23,27");
        uzr.w = v0.n("enable_interaction_log_package_list", "");
        uzr.x = v0.n("enable_unknown_sources_for_app_type", "NOTIFICATION,MEDIA,SERVICE,SMS,OEM,NAVIGATION");
        v0.l("is_retail_mode_enabled", false);
        uzr.y = v0.l("play_install_api", true);
        uzr.z = v0.l("reset_audio_after_call", false);
        uzr.A = v0.l("should_bypass_validation", false);
        uzr.B = v0.l("sys_ui_use_car_window", true);
        uzr.C = v0.l("use_app_whitelist_version_as_min_version", true);
        uzr.D = v0.k("wifi_projection_exit_timeout_ms", -1L);

From what I can tell, should_bypass_validation disables AA verifying other AA compatible apps, meaning you don't need to 'Enable Unknown Sources' for other apps to show up? It looks like Anything Signed by Google is :heavy_check_mark:

Here's a snippet of the Package Validation code

        if(v2 == null) {
            CarProjectionValidatorImpl.a.c().aa(0xEB3).r("Package DENIED; null package name");
            v1.o(ryf.h, null);
            return false;
        }

        try {
            v9 = Build.VERSION.SDK_INT < 24 ? v1.t.getPackageManager().getApplicationInfo(v2, 0).uid : v1.t.getPackageManager().getPackageUid(v2, 0);
            v10 = v1.t.getPackageManager().getPackageInfo(v2, 0).versionCode;
        }
        catch(PackageManager.NameNotFoundException v0_1) {
            CarProjectionValidatorImpl.a.c().aa(0xEB0).t("Package DENIED; package not found [%s]", v6);
            v1.n(ryf.e, v2);
            return false;
        }

        if(v1.s(false, v2, v10)) {
            CarProjectionValidatorImpl.a.c().aa(0xEB5).t("Package DENIED; block listed [%s]", v6);
            v1.n(ryf.g, v2);
            return false;
        }

        if((v2.equals("com.android.vending")) && (this.q(arg17)) && v3 == ApplicationType.e) {
            CarProjectionValidatorImpl.a.l().aa(0xEB6).t("Package ALLOWED; Play Store [%s]", v6);
            return true;
        }

        try {
            v0_3 = CarProjectionValidatorImpl.a;
            v0_3.l().aa(0xEC1).t("#isPackageAllowed checkUsesTag: %b", Boolean.valueOf(((boolean)(((int)arg20)))));
            if((arg20) && !this.t(arg17, arg18)) {
                v0_3.l().aa(0xEC2).u("Package DENIED; Uses for %s not defined [%s]", v3, v2);
                if(v3 == ApplicationType.b) {
                    return false;
                }

                v0_3.c().aa(0xEC3).u("Package DENIED; Uses for %s not defined [%s]", v3, v2);
                v1.n(ryf.l, v2);
                return false;
            }
        }
        catch(PackageManager.NameNotFoundException v0_2) {
            CarProjectionValidatorImpl.a.c().aa(0xEB1).t("Package DENIED; package not found [%s]", v6);
            v1.n(ryf.e, v2);
            return false;
        }

        if(v4 != null && ("Google".equals(v4.a)) && (("Desktop Head Unit".equals(v4.b)) || ("Emulator".equals(v4.b)))) {
            v0_3.l().aa(0xEB7).t("Package ALLOWED; desktop head unit [%s]", v2);
            return true;
        }

        if(!v1.k(v2, v4, v5_1)) {
            v0_3.c().aa(0xEB8).u("Package DENIED; Should not run on HU [%s] [%s]", v4, v6);
            v1.o(ryf.f, v2);
            return false;
        }

        if(v1.should_bypass_validation) {
            v0_3.l().aa(0xEB9).t("Package ALLOWED; validation bypassed [%s]", v2);
            return true;
        }

        if(this.q(arg17)) {
            v0_3.l().aa(3770).t("Package ALLOWED; is Google signed [%s]", v2);
            return true;
        }

        if("com.google.android.projection.gearhead".equals(v2)) {
            v0_3.c().aa(0xEBB).t("Package is not a first party package [%s]", "com.google.android.projection.gearhead");
        }
shmykelsa commented 3 years ago

Hi, since my app AA AIO TWEAKER was mentioned, I would like to state the actual state of 3rd party apps in Android Auto. As far as apps with GUI, there are two types of SDK used:

The custom one uses a SDK which is a result from reverse engineering on Waze. Apps with that SDK require to be whitelisted in Google Play Services' database otherwise they won't work. Yes, there's a blacklist (which is also pretty populated by apps that are not even compatible with Android Auto) but what Android Auto does is checking the app whitelist first, then it makes a query to the package manager to list the apps' manifests and find the ones with Android Auto SDK.

In january, with Android Auto 6.0, another step was introduced: as an enforcing mechanism to avoid using of this apps (since they are pretty much a security threat while driving), Android Auto also asks to the package manager whether the package comes from Google Play Store or not. Also this was exploited by setting the flag of "should_bypass_validation" to true.

@dylangerdaly made a wonderful job in sharing the part of code that does the job.

As for the official SDK, as long as the app is downloaded from the Google Play Store and it's not blacklisted, the app will be shown in Android Auto. This means that a sideloaded app would require a installation with a PC (you can see an example of how it can be done with the readme of this app) or it can manually put in the whitelist (but that would require a software like the one I'm mantaining or manually manipulating the database and that would require a rooted phone in general).

There has been a case of a very unsafe app that uses the official SDK in a non-condoned way (since Google released some guidelines and it has made the SDK specifically for navigators and parking apps) which probably will be blacklisted (see here: https://issuetracker.google.com/issues/183716550) but as long as the SDK is used in an acceptable way, basically any app can be submitted to Google Play Store.

dylangerdaly commented 3 years ago

then it makes a query to the package manager to list the apps' manifests and find the ones with Android Auto SDK.

You can manage to skip all meta-data checks by patching this function --> https://github.com/microg/GmsCore/issues/897#issuecomment-779691026 that'll result in all apps that have a category of PROJECTION in their manifest showing up, it's interesting because apps that don't support AA such as SoundCloud show up

    @Override  // cgo
    public final List b(Intent arg3) {
        CarServiceUtils.g();
        Intent v3 = arg3.cloneFilter();
        v3.addCategory("com.google.android.gms.car.category.CATEGORY_PROJECTION");
        return this.p(v3, ApplicationType.f, true);
    }

This is the function that returns a list of all possible AA apps, I don't know what happens if you change that category to be something more broad or remove it altogether, added together with the forced OEM type patch, should results in all apps being displayed as valid apps on AA.

or it can manually put in the whitelist

Ah yes, Phenotype APIs are interesting, I've been trying to further extend microG's implmentaiton, it should be possible to hook a getConfiguration call and return with a populated Flag object, no need to mess with SQLite DBs, it appears Phenotype flags are very useful indeed for manipulating Google's suite of apps.

There has been a case of a very unsafe app that uses the official SDK

This looks like malware, is it legit? Why is it just a jar? I don't understand how that works.

Personally I've been looking for something like this, as I own an electric car, I've wanted to plug in at a public fast charger, kick back and use the HU as a little YouTube viewing iPad-like thing, but I can understand some people don't have common sense.

Other apps verify the integrity of Android Auto, much like GMS, so it's possible to use basically the same microG sig spoof patch to fake the cert for AA, allowing for a pre-signed AA, an easier way to patch functions within AA without needing to resign is using Frida.

ghost commented 3 years ago

I'm running LineageOS with MicroG on a Pixel 5. I'm wondering if there's any hope for us mere mortals that don't know how to recompile and spoof signatures. Just bought a car with Android Auto, and I'm super bummed that I have to suck Google off to use it.

Edit: When I run AA, it just does the whole force close thing.

fr34kyn01535 commented 3 years ago

I got AA running on the phone using the dummy app, but it force-closes when connecting to my VW. It would be awesome to have this working soon.

dylangerdaly commented 3 years ago

Try the Android Auto: 6.0.615334-release version specifically, that should work

I think this could be the general dance of Google changing something breaking it, I'll look into what's breaking on the newer version

-------- Original Message -------- On 4 May 2021, 11:39 pm, Sven Mawby wrote:

I got AA running on the phone using the dummy app, but it force-closes when connecting to my VW. It would be awesome to have this working soon.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

woolmonkey commented 3 years ago

Is it a priv-app? I’m running the latest version and haven’t had an issue on either of the vehicles I have run it on.

fr34kyn01535 commented 3 years ago

Is it a priv-app? I’m running the latest version and haven’t had an issue on either of the vehicles I have run it on.

I am sorry to post it in this issue, but how would it a priv-app on LineageOS 18.1/Android11? Remounting / and moving it to /system/priv-app seems to delete it on reboot..

domhaas commented 3 years ago

Try the Android Auto: 6.0.615334-release version specifically, that should work I think this could be the general dance of Google changing something breaking it, I'll look into what's breaking on the newer version

Tried it with this specific version together with your stub-app. Crashes instantly:

2021-05-05 10:25:11.941 24795-24822/? W/GH.FeedbackSender: Error fetching ID for crash reporting
    java.util.concurrent.ExecutionException: com.google.android.gms.common.api.ApiException: 17: API: PseudonymousId.API is not available on this device. Connection failed with: ConnectionResult{statusCode=CANCELED, resolution=null, message=null}
        at com.google.android.gms.tasks.Tasks.c(SourceFile:3)
        at com.google.android.gms.tasks.Tasks.b(SourceFile:9)
        at das.f(SourceFile:4)
        at das.d(SourceFile:3)
        at das.c(SourceFile:14)
        at dak.d(SourceFile:7)
        at jfl.run(Unknown Source:1)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)
     Caused by: com.google.android.gms.common.api.ApiException: 17: API: PseudonymousId.API is not available on this device. Connection failed with: ConnectionResult{statusCode=CANCELED, resolution=null, message=null}
        at com.google.android.gms.common.internal.ApiExceptionUtil.a(SourceFile:1)
        at com.google.android.gms.common.api.internal.ApiCallRunner$TaskRunner.c(SourceFile:1)
        at com.google.android.gms.common.api.internal.GoogleApiManager$ClientConnection.s(SourceFile:7)
        at com.google.android.gms.common.api.internal.GoogleApiManager$ClientConnection.k(SourceFile:2)
        at com.google.android.gms.common.api.internal.GoogleApiManager$ClientConnection.f(SourceFile:21)
        at com.google.android.gms.common.api.internal.GoogleApiManager$ClientConnection.dN(SourceFile:1)
        at lrs.a(SourceFile:1)
        at com.google.android.gms.common.internal.BaseGmsClient$PostInitCallback.b(SourceFile:1)
        at lrm.d(Unknown Source:24)
        at lrn.handleMessage(SourceFile:37)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.os.HandlerThread.run(HandlerThread.java:67)
2021-05-05 10:25:11.949 24795-24816/? W/GoogleApiManager: com.google.android.gms.phenotype.internal.PhenotypeClientImpl could not execute call because it requires feature (get_experiment_tokens_api, 1).
2021-05-05 10:25:11.951 24795-24795/? E/GH.CrashHandler: Version code: 59604644
2021-05-05 10:25:11.952 24795-24795/? E/GH.CrashHandler: GH FATAL EXCEPTION: main
    Process: com.google.android.projection.gearhead:shared
    PID: 24795

    java.lang.SecurityException: Wrong signature - go/gearhead-retail-device
        at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
        at android.os.Parcel.createException(Parcel.java:2357)
        at android.os.Parcel.readException(Parcel.java:2340)
        at android.os.Parcel.readException(Parcel.java:2282)
        at brv.transactAndReadExceptionReturnVoid(SourceFile:3)
        at com.google.android.gms.car.ICar$Stub$Proxy.n(SourceFile:4)
        at kli.a(Unknown Source:1)
        at com.google.android.gms.car.internal.exception.CarServiceExceptionHandler.g(SourceFile:1)
        at com.google.android.gms.car.api.impl.CarClientBase.i(SourceFile:1)
        at jzh.i(SourceFile:1)
        at ezs.f(SourceFile:3)
        at ezp.d(SourceFile:3)
        at cin.a(SourceFile:12)
        at com.google.android.gms.car.api.impl.GearheadCarClientToken.j(SourceFile:4)
        at kpe.run(Unknown Source:1)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7660)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

I'm using a pixel 4a together with latest calyxos. I couldn't find anything about those two exceptions with missing features: Caused by: com.google.android.gms.common.api.ApiException: 17: API: PseudonymousId.API is not available on this device. com.google.android.gms.phenotype.internal.PhenotypeClientImpl could not execute call because it requires feature (get_experiment_tokens_api, 1).

I also tried it with some older versions of Auto down to 5.9 and also tried it the the Google-App and Google-Maps.

dylangerdaly commented 3 years ago

Ah, this is because AA needs to be a priv app, with a specific set of priv permissions.

The specific permissions xml I'm using is

<?xml version="1.0" encoding="utf-8"?>
<permissions>
    <privapp-permissions package="com.google.android.projection.gearhead">
        <permission name="android.permission.ACCESS_NETWORK_CONDITIONS"/>
        <permission name="android.permission.ACTIVITY_EMBEDDING"/>
        <permission name="android.permission.BLUETOOTH_PRIVILEGED"/>
        <permission name="android.permission.CALL_PRIVILEGED"/>
        <permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/>
        <permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
    <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
        <permission name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"/>
        <permission name="android.permission.COMPANION_APPROVE_WIFI_CONNECTIONS"/>
        <permission name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>
        <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.LOCATION_HARDWARE"/>
        <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.MODIFY_PHONE_STATE"/>
        <permission name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"/>
        <permission name="android.permission.OVERRIDE_WIFI_CONFIG"/>
        <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
        <permission name="android.permission.READ_WIFI_CREDENTIAL"/>
        <permission name="android.permission.REAL_GET_TASKS"/>
        <permission name="android.permission.REGISTER_CALL_PROVIDER"/>
        <permission name="android.permission.REMOTE_DISPLAY_PROVIDER"/>
        <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
        <permission name="android.permission.START_TASKS_FROM_RECENTS"/>
        <permission name="android.permission.UPDATE_DEVICE_STATS"/>
        <permission name="android.permission.USER_ACTIVITY"/>
        <permission name="com.google.android.gms.permission.CAR_SPEED"/>
    </privapp-permissions>
</privapp-permissions>
</permissions>

I had the some crashing on GrapheneOS, it's freaking out because it's not a privapp.

Hm, also what version of microG are you using? My commit made it in on the 18th of April, but the latest downloadable build is from March, you'll need to manually build and sign the master branch to get my commit.

Otherwise just wait until Marvin does another build.

domhaas commented 3 years ago

I had the some crashing on GrapheneOS, it's freaking out because it's not a privapp.

Hm, also what version of microG are you using? My commit made it in on the 18th of April, but the latest downloadable build is from March, you'll need to manually build and sign the master branch to get my commit.

Otherwise just wait until Marvin does another build.

@dylangerdaly Thank's for your reply. I'm currently using microG v0.2.18.204714-19 - I think this should be the current Version you mentioned from march.

I wasn't aware that running Auto as priv-app is needed - I don't think I can achieve that on calaxyos due to missing root/magisk. As I understand, on Stock with Google Services Auto is not running as priv-app, so I think Auto is going into a fallback/alternate mode when there is something missing.

But anyhow, thank you very much for the effort - hoping that Auto runs out of the box with an microG-Update. As I own an electric car since a few weeks with AA-Support, I would be happy to help by testing.

ilikenwf commented 3 years ago

If you're using your own GrapheneOS build I'm assuming you're patching the sig spoofing patch? If not that would prevent it from working.

I really wish we could decouple auto's functionality from requiring GSF or microg personally...especially considering you can emulate it with linux now:

https://github.com/tomasz-grobelny/AACS

Don't get me wrong, microg is great, but I'd rather have no connections to google whatsoever.

On 5/5/21 7:20 PM, domhaas wrote:

I had the some crashing on GrapheneOS, it's freaking out because
it's not a privapp.

Hm, also what version of microG are you using? My commit made it
in on the 18th of April, but the latest downloadable build is from
March, you'll need to manually build and sign the master branch to
get my commit.

Otherwise just wait until Marvin does another build.

@dylangerdaly https://github.com/dylangerdaly Thank's for your reply. I'm currently using microG v0.2.18.204714-19 - I think this should be the current Version you mentioned from march.

I wasn't aware that running Auto as priv-app is needed - I don't think I can achieve that on calaxyos due to missing root/magisk. As I understand, on Stock with Google Services Auto is not running as priv-app, so I think Auto is going into a fallback/alternate mode when there is something missing.

But anyhow, thank you very much for the effort - hoping that Auto runs out of the box with an microG-Update. As I own an electric car since a few weeks with AA-Support, I would be happy to help by testing.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/microg/GmsCore/issues/897#issuecomment-832946435, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADFIOXSNVAKDJ7DBHSFG7LTMGLANANCNFSM4IFPSCPQ.

ArchangeGabriel commented 3 years ago

Don't get me wrong, microg is great, but I'd rather have no connections to google whatsoever.

You can definitively use µG without any connection to Google. That’s the mode I use, and also the default one ootb. ;)